pub enum TokenEvent {
Mint(TokenAmount, RecipientIdentifier, TokenEventPublicNote),
Burn(TokenAmount, BurnFromIdentifier, TokenEventPublicNote),
Freeze(FrozenIdentifier, TokenEventPublicNote),
Unfreeze(FrozenIdentifier, TokenEventPublicNote),
DestroyFrozenFunds(FrozenIdentifier, TokenAmount, TokenEventPublicNote),
Transfer(RecipientIdentifier, TokenEventPublicNote, TokenEventSharedEncryptedNote, TokenEventPersonalEncryptedNote, TokenAmount),
Claim(TokenDistributionTypeWithResolvedRecipient, TokenAmount, TokenEventPublicNote),
EmergencyAction(TokenEmergencyAction, TokenEventPublicNote),
ConfigUpdate(TokenConfigurationChangeItem, TokenEventPublicNote),
ChangePriceForDirectPurchase(Option<TokenPricingSchedule>, TokenEventPublicNote),
DirectPurchase(TokenAmount, Credits),
}Expand description
Represents a recorded token-related operation for use in historical documents and group actions.
TokenEvent is designed to encapsulate a single logical token operation,
such as minting, burning, transferring, or freezing tokens. These events are typically:
- Persisted as historical records of state transitions, enabling auditability and tracking.
- Used in group (multisig) actions, where multiple identities collaborate to authorize complex transitions.
This enum includes rich metadata for each type of operation, such as optional notes (plaintext or encrypted),
involved identities, and amounts. It is externally versioned and marked as unversioned in platform serialization,
meaning each variant is self-contained without requiring version dispatching logic.
Variants§
Mint(TokenAmount, RecipientIdentifier, TokenEventPublicNote)
Event representing the minting of tokens to a recipient.
TokenAmount: The amount of tokens minted.RecipientIdentifier: The identity receiving the minted tokens.TokenEventPublicNote: Optional note associated with the event.
Burn(TokenAmount, BurnFromIdentifier, TokenEventPublicNote)
Event representing the burning of tokens, removing them from circulation.
TokenAmount: The amount of tokens burned.BurnFromIdentifier: The account to burn from.TokenEventPublicNote: Optional note associated with the event.
Freeze(FrozenIdentifier, TokenEventPublicNote)
Event representing freezing of tokens for a specific identity.
FrozenIdentifier: The identity whose tokens are frozen.TokenEventPublicNote: Optional note associated with the event.
Unfreeze(FrozenIdentifier, TokenEventPublicNote)
Event representing unfreezing of tokens for a specific identity.
FrozenIdentifier: The identity whose tokens are unfrozen.TokenEventPublicNote: Optional note associated with the event.
DestroyFrozenFunds(FrozenIdentifier, TokenAmount, TokenEventPublicNote)
Event representing destruction of tokens that were previously frozen.
FrozenIdentifier: The identity whose frozen tokens are destroyed.TokenAmount: The amount of frozen tokens destroyed.TokenEventPublicNote: Optional note associated with the event.
Transfer(RecipientIdentifier, TokenEventPublicNote, TokenEventSharedEncryptedNote, TokenEventPersonalEncryptedNote, TokenAmount)
Event representing a transfer of tokens from one identity to another.
RecipientIdentifier: The recipient of the tokens.TokenEventPublicNote: Optional plaintext note.TokenEventSharedEncryptedNote: Optional shared encrypted metadata (multi-party).TokenEventPersonalEncryptedNote: Optional private encrypted metadata (recipient-only).TokenAmount: The amount of tokens transferred.
Claim(TokenDistributionTypeWithResolvedRecipient, TokenAmount, TokenEventPublicNote)
Event representing a claim of tokens from a distribution pool or source.
TokenDistributionTypeWithResolvedRecipient: Type and resolved recipient of the claim.TokenAmount: The amount of tokens claimed.TokenEventPublicNote: Optional note associated with the event.
EmergencyAction(TokenEmergencyAction, TokenEventPublicNote)
Event representing an emergency action taken on a token or identity.
TokenEmergencyAction: The type of emergency action performed.TokenEventPublicNote: Optional note associated with the event.
ConfigUpdate(TokenConfigurationChangeItem, TokenEventPublicNote)
Event representing an update to the configuration of a token.
TokenConfigurationChangeItem: The configuration change that was applied.TokenEventPublicNote: Optional note associated with the event.
ChangePriceForDirectPurchase(Option<TokenPricingSchedule>, TokenEventPublicNote)
Event representing a change in the direct purchase price of a token.
Option<TokenPricingSchedule>: The new pricing schedule.Nonedisables direct purchase.TokenEventPublicNote: Optional note associated with the event.
DirectPurchase(TokenAmount, Credits)
Event representing the direct purchase of tokens by a user.
TokenAmount: The amount of tokens purchased.Credits: The number of credits paid.
Implementations§
Source§impl TokenEvent
impl TokenEvent
pub fn associated_document_type_name(&self) -> &str
Sourcepub fn public_note(&self) -> Option<&str>
pub fn public_note(&self) -> Option<&str>
Returns a reference to the public note if the variant includes one.
pub fn associated_document_type<'a>( &self, token_history_contract: &'a DataContract, ) -> Result<DocumentTypeRef<'a>, ProtocolError>
pub fn build_historical_document_owned( self, token_id: Identifier, owner_id: Identifier, owner_nonce: IdentityNonce, block_info: &BlockInfo, platform_version: &PlatformVersion, ) -> Result<Document, ProtocolError>
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for TokenEvent
impl<'__de, __Context> BorrowDecode<'__de, __Context> for TokenEvent
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>
Source§impl Clone for TokenEvent
impl Clone for TokenEvent
Source§fn clone(&self) -> TokenEvent
fn clone(&self) -> TokenEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TokenEvent
impl Debug for TokenEvent
Source§impl<__Context> Decode<__Context> for TokenEvent
impl<__Context> Decode<__Context> for TokenEvent
Source§impl<'de> Deserialize<'de> for TokenEvent
impl<'de> Deserialize<'de> for TokenEvent
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>,
Source§impl Display for TokenEvent
impl Display for TokenEvent
Source§impl Encode for TokenEvent
impl Encode for TokenEvent
Source§impl JsonConvertible for TokenEvent
Available on crate feature json-conversion only.
impl JsonConvertible for TokenEvent
json-conversion only.Source§impl PartialEq for TokenEvent
impl PartialEq for TokenEvent
Source§impl PartialOrd for TokenEvent
impl PartialOrd for TokenEvent
Source§impl PlatformDeserializable for TokenEvent
impl PlatformDeserializable for TokenEvent
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 PlatformSerializable for TokenEvent
impl PlatformSerializable for TokenEvent
Source§impl PlatformVersionEncode for TokenEvent
impl PlatformVersionEncode for TokenEvent
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>
Source§impl<'__de> PlatformVersionedBorrowDecode<'__de> for TokenEvent
impl<'__de> PlatformVersionedBorrowDecode<'__de> for TokenEvent
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>
Source§impl PlatformVersionedDecode for TokenEvent
impl PlatformVersionedDecode for TokenEvent
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>
Source§impl Serialize for TokenEvent
impl Serialize for TokenEvent
Source§impl ValueConvertible for TokenEvent
impl ValueConvertible for TokenEvent
fn to_object(&self) -> Result<Value, ProtocolError>where
Self: Sized,
fn into_object(self) -> Result<Value, ProtocolError>where
Self: Sized,
fn from_object(value: Value) -> Result<Self, ProtocolError>where
Self: Sized,
fn from_object_ref(value: &Value) -> Result<Self, ProtocolError>where
Self: Sized,
impl Eq for TokenEvent
impl JsonSafeFields for TokenEvent
impl StructuralPartialEq for TokenEvent
Auto Trait Implementations§
impl Freeze for TokenEvent
impl RefUnwindSafe for TokenEvent
impl Send for TokenEvent
impl Sync for TokenEvent
impl Unpin for TokenEvent
impl UnwindSafe for TokenEvent
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
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,
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,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§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,
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,
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,
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,
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,
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,
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,
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,
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,
§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>
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>
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
§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,
§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,
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,
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
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
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
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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref() only in debug builds, and is erased in release
builds.