Skip to main content

WalletCoinByIdParams

Struct WalletCoinByIdParams 

Source
pub struct WalletCoinByIdParams {
    pub coin_id: String,
}
Expand description

control.wallet.coinById params: WHICH coin, named by its own id.

§Why there is no asset here

A coin id names one coin on one chain. It is not scoped to an address and not scoped to an asset, and a node reading a coin record learns neither — so an asset parameter here could only be a claim the read never checks. The answer’s asset is null for the same reason.

§Why the method exists at all

WalletCoinsParams answers by ADDRESS and lists UNSPENT coins only. A mint’s evidence is the opposite shape: the created DID coin (which sits at nobody’s wallet address) and the funding coin the mint SPENT (which is, by then, gone from every unspent list). Without a by-id read a pushed mint can never be observed — a permanent “pending” with the money already spent.

Fields§

§coin_id: String

The coin id: lowercase 64-hex, unprefixed. A 0x prefix is TOLERATED on input (block explorers print one) and normalized away by Self::validated; it is never emitted.

Implementations§

Source§

impl WalletCoinByIdParams

Source

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 WalletCoinByIdParams

Source§

fn clone(&self) -> WalletCoinByIdParams

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl ControlCall for WalletCoinByIdParams

Source§

const METHOD: ControlMethod = ControlMethod::WalletCoinById

The wire method this call invokes.
Source§

type Output = WalletCoinByIdResult

The typed result this call returns on success.
Source§

impl Debug for WalletCoinByIdParams

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for WalletCoinByIdParams

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for WalletCoinByIdParams

Source§

impl PartialEq for WalletCoinByIdParams

Source§

fn eq(&self, other: &WalletCoinByIdParams) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for WalletCoinByIdParams

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for WalletCoinByIdParams

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.