pub struct WalletCoinSpendParams {
pub coin_id: String,
}Expand description
control.wallet.coinSpend params: WHICH coin’s spend to read, named by that coin’s own id.
§Why the spend and the coin record are separate methods
WalletCoinByIdParams answers what is this coin, and was it spent? — an id, an amount, a
puzzle HASH and two heights. None of that reveals what the spend DID. Reconstructing a lineage
(which is how a dig-profile’s DID singleton is followed forward) needs the puzzle REVEAL and the
solution, and those exist only in the spend. A caller holding a coin record alone can see that a
coin is gone and cannot see what it became.
§The id names the SPENT coin, not the spend
A spend has no id of its own on chain; it is identified by the coin it consumed. So the parameter
is the same 64-hex coin id WalletCoinByIdParams takes, validated by the same rule, and the
two methods are asked with the identical value.
Fields§
§coin_id: StringThe SPENT coin’s id: lowercase 64-hex, unprefixed. A 0x prefix is TOLERATED on input and
normalized away by Self::validated; it is never emitted.
Implementations§
Source§impl WalletCoinSpendParams
impl WalletCoinSpendParams
Sourcepub fn validated(self) -> Result<Self, ControlError>
pub fn validated(self) -> Result<Self, ControlError>
Normalize and check the coin id, or reject the request as -32602 INVALID_PARAMS.
A malformed id is a malformed REQUEST, and the node refuses it here — before consulting any chain. That ordering is normative rather than an optimisation: were a bad id allowed through, the read would come back empty, and the caller would be told the honest-looking answer the chain holds nothing about a coin it never actually asked after. An unanswerable question and a chain that answered “no” must never wear the same shape.
Accepts exactly two spellings — 64 lowercase hex characters, or the same 64 preceded
by 0x. Uppercase, whitespace and every other length are refused, because the
contract’s hex wire form is lowercase and unprefixed everywhere else in this crate.
Trait Implementations§
Source§impl Clone for WalletCoinSpendParams
impl Clone for WalletCoinSpendParams
Source§fn clone(&self) -> WalletCoinSpendParams
fn clone(&self) -> WalletCoinSpendParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more