pub enum TokenPaymentInfo {
V0(TokenPaymentInfoV0),
}Expand description
Versioned container describing how a client intends to pay with tokens.
The TokenPaymentInfo enum allows the protocol to evolve the underlying structure
across versions while keeping a stable API for callers. Use the accessor trait
v0::v0_accessors::TokenPaymentInfoAccessorsV0 to read or update fields, and
methods::v0::TokenPaymentInfoMethodsV0 for helpers like token_id() and
is_valid_for_required_cost().
See v0::TokenPaymentInfoV0 for the current set of fields and semantics.
Variants§
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for TokenPaymentInfo
impl<'__de, __Context> BorrowDecode<'__de, __Context> for TokenPaymentInfo
Source§fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>(
decoder: &mut __D,
) -> Result<Self, DecodeError>
fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>
Attempt to decode this type with the given BorrowDecode.
Source§impl Clone for TokenPaymentInfo
impl Clone for TokenPaymentInfo
Source§fn clone(&self) -> TokenPaymentInfo
fn clone(&self) -> TokenPaymentInfo
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TokenPaymentInfo
impl Debug for TokenPaymentInfo
Source§impl<__Context> Decode<__Context> for TokenPaymentInfo
impl<__Context> Decode<__Context> for TokenPaymentInfo
Source§impl<'de> Deserialize<'de> for TokenPaymentInfo
impl<'de> Deserialize<'de> for TokenPaymentInfo
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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 Display for TokenPaymentInfo
impl Display for TokenPaymentInfo
Source§impl Encode for TokenPaymentInfo
impl Encode for TokenPaymentInfo
Source§impl From<TokenPaymentInfoV0> for TokenPaymentInfo
impl From<TokenPaymentInfoV0> for TokenPaymentInfo
Source§fn from(value: TokenPaymentInfoV0) -> Self
fn from(value: TokenPaymentInfoV0) -> Self
Converts to this type from the input type.
Source§impl PartialEq for TokenPaymentInfo
impl PartialEq for TokenPaymentInfo
Source§impl PlatformDeserializable for TokenPaymentInfo
impl PlatformDeserializable for TokenPaymentInfo
fn deserialize_from_bytes(data: &[u8]) -> Result<Self, ProtocolError>where
Self: Sized,
fn deserialize_from_bytes_no_limit(data: &[u8]) -> Result<Self, ProtocolError>where
Self: Sized,
Source§impl PlatformSerializableWithPlatformVersion for TokenPaymentInfo
impl PlatformSerializableWithPlatformVersion for TokenPaymentInfo
type Error = ProtocolError
Source§fn serialize_to_bytes_with_platform_version(
&self,
platform_version: &PlatformVersion,
) -> Result<Vec<u8>, ProtocolError>
fn serialize_to_bytes_with_platform_version( &self, platform_version: &PlatformVersion, ) -> Result<Vec<u8>, ProtocolError>
Version based serialization is done based on the desired structure version.
For example we have DataContractV0 and DataContractV1 for code based Contracts
This means objects that will execute code
And we would have DataContractSerializationFormatV0 and DataContractSerializationFormatV1
which are the different ways to serialize the concept of a data contract.
The data contract would call versioned_serialize. There should be a converted for each
Data contract Version towards each DataContractSerializationFormat
Source§fn serialize_consume_to_bytes_with_platform_version(
self,
platform_version: &PlatformVersion,
) -> Result<Vec<u8>, ProtocolError>
fn serialize_consume_to_bytes_with_platform_version( self, platform_version: &PlatformVersion, ) -> Result<Vec<u8>, ProtocolError>
If the trait is not used just do a simple serialize
Source§impl PlatformVersionEncode for TokenPaymentInfo
impl PlatformVersionEncode for TokenPaymentInfo
Source§fn platform_encode<__E: Encoder>(
&self,
encoder: &mut __E,
platform_version: &PlatformVersion,
) -> Result<(), EncodeError>
fn platform_encode<__E: Encoder>( &self, encoder: &mut __E, platform_version: &PlatformVersion, ) -> Result<(), EncodeError>
Encode a given type.
Source§impl<'__de> PlatformVersionedBorrowDecode<'__de> for TokenPaymentInfo
impl<'__de> PlatformVersionedBorrowDecode<'__de> for TokenPaymentInfo
Source§fn platform_versioned_borrow_decode<__D: BorrowDecoder<'__de, Context = BincodeContext>>(
decoder: &mut __D,
platform_version: &PlatformVersion,
) -> Result<Self, DecodeError>
fn platform_versioned_borrow_decode<__D: BorrowDecoder<'__de, Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>
Attempt to decode this type with the given BorrowDecode.
Source§impl PlatformVersionedDecode for TokenPaymentInfo
impl PlatformVersionedDecode for TokenPaymentInfo
Source§fn platform_versioned_decode<__D: Decoder<Context = BincodeContext>>(
decoder: &mut __D,
platform_version: &PlatformVersion,
) -> Result<Self, DecodeError>
fn platform_versioned_decode<__D: Decoder<Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>
Attempt to decode this type with the given Decode.
Source§impl Serialize for TokenPaymentInfo
impl Serialize for TokenPaymentInfo
Source§impl TokenPaymentInfoAccessorsV0 for TokenPaymentInfo
impl TokenPaymentInfoAccessorsV0 for TokenPaymentInfo
Source§fn payment_token_contract_id(&self) -> Option<Identifier>
fn payment_token_contract_id(&self) -> Option<Identifier>
Returns a cloned copy of the
payment_token_contract_id field.Source§fn payment_token_contract_id_ref(&self) -> &Option<Identifier>
fn payment_token_contract_id_ref(&self) -> &Option<Identifier>
Returns a reference to the
payment_token_contract_id field. Read moreSource§fn token_contract_position(&self) -> TokenContractPosition
fn token_contract_position(&self) -> TokenContractPosition
Returns the
token_contract_position field.Source§fn minimum_token_cost(&self) -> Option<TokenAmount>
fn minimum_token_cost(&self) -> Option<TokenAmount>
Returns a copy of the
minimum_token_cost field.Source§fn maximum_token_cost(&self) -> Option<TokenAmount>
fn maximum_token_cost(&self) -> Option<TokenAmount>
Returns a copy of the
maximum_token_cost field.Source§fn gas_fees_paid_by(&self) -> GasFeesPaidBy
fn gas_fees_paid_by(&self) -> GasFeesPaidBy
Returns the
gas_fees_paid_by strategy.Source§fn set_payment_token_contract_id(&mut self, id: Option<Identifier>)
fn set_payment_token_contract_id(&mut self, id: Option<Identifier>)
Sets the
payment_token_contract_id field to the given value.Source§fn set_token_contract_position(&mut self, position: TokenContractPosition)
fn set_token_contract_position(&mut self, position: TokenContractPosition)
Sets the
token_contract_position field to the given value.Source§fn set_minimum_token_cost(&mut self, cost: Option<TokenAmount>)
fn set_minimum_token_cost(&mut self, cost: Option<TokenAmount>)
Sets the
minimum_token_cost field to the given value.Source§fn set_maximum_token_cost(&mut self, cost: Option<TokenAmount>)
fn set_maximum_token_cost(&mut self, cost: Option<TokenAmount>)
Sets the
maximum_token_cost field to the given value.Source§fn set_gas_fees_paid_by(&mut self, payer: GasFeesPaidBy)
fn set_gas_fees_paid_by(&mut self, payer: GasFeesPaidBy)
Sets the
gas_fees_paid_by strategy.Source§impl TokenPaymentInfoMethodsV0 for TokenPaymentInfo
impl TokenPaymentInfoMethodsV0 for TokenPaymentInfo
fn is_valid_for_required_cost(&self, required_cost: TokenAmount) -> bool
fn matches_token_contract( &self, contract_id: &Option<Identifier>, token_contract_position: TokenContractPosition, ) -> bool
fn token_id(&self, current_contract_id: Identifier) -> Identifier
Source§impl TryFrom<TokenPaymentInfo> for Value
Available on crate feature value-conversion only.
impl TryFrom<TokenPaymentInfo> for Value
Available on crate feature
value-conversion only.impl Copy for TokenPaymentInfo
impl StructuralPartialEq for TokenPaymentInfo
Auto Trait Implementations§
impl Freeze for TokenPaymentInfo
impl RefUnwindSafe for TokenPaymentInfo
impl Send for TokenPaymentInfo
impl Sync for TokenPaymentInfo
impl Unpin for TokenPaymentInfo
impl UnwindSafe for TokenPaymentInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> CostsExt for T
impl<T> CostsExt for T
§fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
Wraps any value into a
CostContext object with provided costs.§fn wrap_fn_cost(
self,
f: impl FnOnce(&Self) -> OperationCost,
) -> CostContext<Self>where
Self: Sized,
fn wrap_fn_cost(
self,
f: impl FnOnce(&Self) -> OperationCost,
) -> CostContext<Self>where
Self: Sized,
Wraps any value into
CostContext object with costs computed using the
value getting wrapped.§impl<'de, T> DefaultBorrowDecode<'de> for Twhere
T: BorrowDecode<'de, ()>,
impl<'de, T> DefaultBorrowDecode<'de> for Twhere
T: BorrowDecode<'de, ()>,
fn borrow_decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
§impl<T> DefaultDecode for T
impl<T> DefaultDecode for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
§fn into_on_network(self, network: Network) -> U
fn into_on_network(self, network: Network) -> U
Calls U::from_on_network(self).
§impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
§fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
Performs the conversion.
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T, U> TryIntoPlatformVersioned<U> for Twhere
U: TryFromPlatformVersioned<T>,
impl<T, U> TryIntoPlatformVersioned<U> for Twhere
U: TryFromPlatformVersioned<T>,
§type Error = <U as TryFromPlatformVersioned<T>>::Error
type Error = <U as TryFromPlatformVersioned<T>>::Error
The type returned in the event of a conversion error.
§fn try_into_platform_versioned(
self,
platform_version: &PlatformVersion,
) -> Result<U, <U as TryFromPlatformVersioned<T>>::Error>
fn try_into_platform_versioned( self, platform_version: &PlatformVersion, ) -> Result<U, <U as TryFromPlatformVersioned<T>>::Error>
Performs the conversion.
§impl<T, U> TryIntoVersioned<U> for Twhere
U: TryFromVersioned<T>,
impl<T, U> TryIntoVersioned<U> for Twhere
U: TryFromVersioned<T>,
§type Error = <U as TryFromVersioned<T>>::Error
type Error = <U as TryFromVersioned<T>>::Error
The type returned in the event of a conversion error.
§fn try_into_versioned(
self,
grove_version: &GroveVersion,
) -> Result<U, <U as TryFromVersioned<T>>::Error>
fn try_into_versioned( self, grove_version: &GroveVersion, ) -> Result<U, <U as TryFromVersioned<T>>::Error>
Performs the conversion.