token_event_store - [testnet]
此内容尚不支持你的语言。
This module provides utils to add and emit new token events that are not in token.move
use 0x1::account;use 0x1::any;use 0x1::event;use 0x1::features;use 0x1::option;use 0x1::signer;use 0x1::string;use 0x3::property_map;
Structs
CollectionDescriptionMutateEvent
Event emitted when collection description is mutated
struct CollectionDescriptionMutateEvent has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_description: string::String
-
new_description: string::String
CollectionDescriptionMutate
Event emitted when collection description is mutated
#[event]struct CollectionDescriptionMutate has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_description: string::String
-
new_description: string::String
CollectionUriMutateEvent
Event emitted when collection uri is mutated
struct CollectionUriMutateEvent has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_uri: string::String
-
new_uri: string::String
CollectionUriMutate
Event emitted when collection uri is mutated
#[event]struct CollectionUriMutate has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_uri: string::String
-
new_uri: string::String
CollectionMaxiumMutateEvent
Event emitted when the collection maximum is mutated
struct CollectionMaxiumMutateEvent has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_maximum: u64
-
new_maximum: u64
CollectionMaximumMutate
Event emitted when the collection maximum is mutated
#[event]struct CollectionMaximumMutate has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_maximum: u64
-
new_maximum: u64
OptInTransferEvent
Event emitted when an user opt-in the direct transfer
struct OptInTransferEvent has drop, store
Fields
-
opt_in: bool
- True if the user opt in, false if the user opt-out
OptInTransfer
Event emitted when an user opt-in the direct transfer
#[event]struct OptInTransfer has drop, store
Fields
-
account_address: address
-
opt_in: bool
- True if the user opt in, false if the user opt-out
UriMutationEvent
Event emitted when the tokendata uri mutates
struct UriMutationEvent has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_uri: string::String
-
new_uri: string::String
UriMutation
Event emitted when the tokendata uri mutates
#[event]struct UriMutation has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_uri: string::String
-
new_uri: string::String
DefaultPropertyMutateEvent
Event emitted when mutating the default the token properties stored at tokendata
struct DefaultPropertyMutateEvent has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
keys: vector<string::String>
-
old_values: vector<option::Option<property_map::PropertyValue>>
- we allow upsert so the old values might be none
-
new_values: vector<property_map::PropertyValue>
DefaultPropertyMutate
Event emitted when mutating the default the token properties stored at tokendata
#[event]struct DefaultPropertyMutate has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
keys: vector<string::String>
-
old_values: vector<option::Option<property_map::PropertyValue>>
- we allow upsert so the old values might be none
-
new_values: vector<property_map::PropertyValue>
DescriptionMutateEvent
Event emitted when the tokendata description is mutated
struct DescriptionMutateEvent has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_description: string::String
-
new_description: string::String
DescriptionMutate
Event emitted when the tokendata description is mutated
#[event]struct DescriptionMutate has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_description: string::String
-
new_description: string::String
RoyaltyMutateEvent
Event emitted when the token royalty is mutated
struct RoyaltyMutateEvent has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_royalty_numerator: u64
-
old_royalty_denominator: u64
-
old_royalty_payee_addr: address
-
new_royalty_numerator: u64
-
new_royalty_denominator: u64
-
new_royalty_payee_addr: address
RoyaltyMutate
Event emitted when the token royalty is mutated
#[event]struct RoyaltyMutate has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_royalty_numerator: u64
-
old_royalty_denominator: u64
-
old_royalty_payee_addr: address
-
new_royalty_numerator: u64
-
new_royalty_denominator: u64
-
new_royalty_payee_addr: address
MaxiumMutateEvent
Event emitted when the token maximum is mutated
struct MaxiumMutateEvent has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_maximum: u64
-
new_maximum: u64
MaximumMutate
Event emitted when the token maximum is mutated
#[event]struct MaximumMutate has drop, store
Fields
-
creator: address
-
collection: string::String
-
token: string::String
-
old_maximum: u64
-
new_maximum: u64
CollectionMaxiumMutate
#[event]#[deprecated]struct CollectionMaxiumMutate has drop, store
Fields
-
creator_addr: address
-
collection_name: string::String
-
old_maximum: u64
-
new_maximum: u64
Resources
TokenEventStoreV1
struct TokenEventStoreV1 has key
Fields
-
collection_uri_mutate_events: event::EventHandle<token_event_store::CollectionUriMutateEvent>
- collection mutation events
-
collection_maximum_mutate_events: event::EventHandle<token_event_store::CollectionMaxiumMutateEvent>
-
collection_description_mutate_events: event::EventHandle<token_event_store::CollectionDescriptionMutateEvent>
-
opt_in_events: event::EventHandle<token_event_store::OptInTransferEvent>
- token transfer opt-in event
-
uri_mutate_events: event::EventHandle<token_event_store::UriMutationEvent>
- token mutation events
-
default_property_mutate_events: event::EventHandle<token_event_store::DefaultPropertyMutateEvent>
-
description_mutate_events: event::EventHandle<token_event_store::DescriptionMutateEvent>
-
royalty_mutate_events: event::EventHandle<token_event_store::RoyaltyMutateEvent>
-
maximum_mutate_events: event::EventHandle<token_event_store::MaxiumMutateEvent>
-
extension: option::Option<any::Any>
- This is for adding new events in future
Functions
initialize_token_event_store
fun initialize_token_event_store(acct: &signer)
Implementation
fun initialize_token_event_store(acct: &signer){ if (!exists<TokenEventStoreV1>(signer::address_of(acct))) { move_to(acct, TokenEventStoreV1 { collection_uri_mutate_events: account::new_event_handle<CollectionUriMutateEvent>(acct), collection_maximum_mutate_events: account::new_event_handle<CollectionMaxiumMutateEvent>(acct), collection_description_mutate_events: account::new_event_handle<CollectionDescriptionMutateEvent>(acct), opt_in_events: account::new_event_handle<OptInTransferEvent>(acct), uri_mutate_events: account::new_event_handle<UriMutationEvent>(acct), default_property_mutate_events: account::new_event_handle<DefaultPropertyMutateEvent>(acct), description_mutate_events: account::new_event_handle<DescriptionMutateEvent>(acct), royalty_mutate_events: account::new_event_handle<RoyaltyMutateEvent>(acct), maximum_mutate_events: account::new_event_handle<MaxiumMutateEvent>(acct), extension: option::none<Any>(), }); };}
emit_collection_uri_mutate_event
Emit the collection uri mutation event
public(friend) fun emit_collection_uri_mutate_event(creator: &signer, collection: string::String, old_uri: string::String, new_uri: string::String)
Implementation
friend fun emit_collection_uri_mutate_event(creator: &signer, collection: String, old_uri: String, new_uri: String) acquires TokenEventStoreV1 { let event = CollectionUriMutateEvent { creator_addr: signer::address_of(creator), collection_name: collection, old_uri, new_uri, }; initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[signer::address_of(creator)]; if (std::features::module_event_migration_enabled()) { event::emit( CollectionUriMutate { creator_addr: signer::address_of(creator), collection_name: collection, old_uri, new_uri, } ); } else { event::emit_event<CollectionUriMutateEvent>( &mut token_event_store.collection_uri_mutate_events, event, ); };}
emit_collection_description_mutate_event
Emit the collection description mutation event
public(friend) fun emit_collection_description_mutate_event(creator: &signer, collection: string::String, old_description: string::String, new_description: string::String)
Implementation
friend fun emit_collection_description_mutate_event(creator: &signer, collection: String, old_description: String, new_description: String) acquires TokenEventStoreV1 { let event = CollectionDescriptionMutateEvent { creator_addr: signer::address_of(creator), collection_name: collection, old_description, new_description, }; initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[signer::address_of(creator)]; if (std::features::module_event_migration_enabled()) { event::emit( CollectionDescriptionMutate { creator_addr: signer::address_of(creator), collection_name: collection, old_description, new_description, } ); } else { event::emit_event<CollectionDescriptionMutateEvent>( &mut token_event_store.collection_description_mutate_events, event, ); }}
emit_collection_maximum_mutate_event
Emit the collection maximum mutation event
public(friend) fun emit_collection_maximum_mutate_event(creator: &signer, collection: string::String, old_maximum: u64, new_maximum: u64)
Implementation
friend fun emit_collection_maximum_mutate_event(creator: &signer, collection: String, old_maximum: u64, new_maximum: u64) acquires TokenEventStoreV1 { let event = CollectionMaxiumMutateEvent { creator_addr: signer::address_of(creator), collection_name: collection, old_maximum, new_maximum, }; initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[signer::address_of(creator)]; if (std::features::module_event_migration_enabled()) { event::emit( CollectionMaximumMutate { creator_addr: signer::address_of(creator), collection_name: collection, old_maximum, new_maximum, } ); } else { event::emit_event<CollectionMaxiumMutateEvent>( &mut token_event_store.collection_maximum_mutate_events, event, ); };}
emit_token_opt_in_event
Emit the direct opt-in event
public(friend) fun emit_token_opt_in_event(account: &signer, opt_in: bool)
Implementation
friend fun emit_token_opt_in_event(account: &signer, opt_in: bool) acquires TokenEventStoreV1 { let opt_in_event = OptInTransferEvent { opt_in, }; initialize_token_event_store(account); let token_event_store = &mut TokenEventStoreV1[signer::address_of(account)]; if (std::features::module_event_migration_enabled()) { event::emit( OptInTransfer { account_address: signer::address_of(account), opt_in, }); } else { event::emit_event<OptInTransferEvent>( &mut token_event_store.opt_in_events, opt_in_event, ); }}
emit_token_uri_mutate_event
Emit URI mutation event
public(friend) fun emit_token_uri_mutate_event(creator: &signer, collection: string::String, token: string::String, old_uri: string::String, new_uri: string::String)
Implementation
friend fun emit_token_uri_mutate_event( creator: &signer, collection: String, token: String, old_uri: String, new_uri: String,) acquires TokenEventStoreV1 { let creator_addr = signer::address_of(creator);
let event = UriMutationEvent { creator: creator_addr, collection, token, old_uri, new_uri, };
initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[creator_addr]; if (std::features::module_event_migration_enabled()) { event::emit( UriMutation { creator: creator_addr, collection, token, old_uri, new_uri, }); } else { event::emit_event<UriMutationEvent>( &mut token_event_store.uri_mutate_events, event, ); };}
emit_default_property_mutate_event
Emit tokendata property map mutation event
public(friend) fun emit_default_property_mutate_event(creator: &signer, collection: string::String, token: string::String, keys: vector<string::String>, old_values: vector<option::Option<property_map::PropertyValue>>, new_values: vector<property_map::PropertyValue>)
Implementation
friend fun emit_default_property_mutate_event( creator: &signer, collection: String, token: String, keys: vector<String>, old_values: vector<Option<PropertyValue>>, new_values: vector<PropertyValue>,) acquires TokenEventStoreV1 { let creator_addr = signer::address_of(creator);
let event = DefaultPropertyMutateEvent { creator: creator_addr, collection, token, keys, old_values, new_values, };
initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[creator_addr]; if (std::features::module_event_migration_enabled()) { event::emit( DefaultPropertyMutate { creator: creator_addr, collection, token, keys, old_values, new_values, }); } else { event::emit_event<DefaultPropertyMutateEvent>( &mut token_event_store.default_property_mutate_events, event, ); };}
emit_token_descrition_mutate_event
Emit description mutation event
public(friend) fun emit_token_descrition_mutate_event(creator: &signer, collection: string::String, token: string::String, old_description: string::String, new_description: string::String)
Implementation
friend fun emit_token_descrition_mutate_event( creator: &signer, collection: String, token: String, old_description: String, new_description: String,) acquires TokenEventStoreV1 { let creator_addr = signer::address_of(creator);
let event = DescriptionMutateEvent { creator: creator_addr, collection, token, old_description, new_description, };
initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[creator_addr]; if (std::features::module_event_migration_enabled()) { event::emit( DescriptionMutate { creator: creator_addr, collection, token, old_description, new_description, }); } else { event::emit_event<DescriptionMutateEvent>( &mut token_event_store.description_mutate_events, event, ); };}
emit_token_royalty_mutate_event
Emit royalty mutation event
public(friend) fun emit_token_royalty_mutate_event(creator: &signer, collection: string::String, token: string::String, old_royalty_numerator: u64, old_royalty_denominator: u64, old_royalty_payee_addr: address, new_royalty_numerator: u64, new_royalty_denominator: u64, new_royalty_payee_addr: address)
Implementation
friend fun emit_token_royalty_mutate_event( creator: &signer, collection: String, token: String, old_royalty_numerator: u64, old_royalty_denominator: u64, old_royalty_payee_addr: address, new_royalty_numerator: u64, new_royalty_denominator: u64, new_royalty_payee_addr: address,) acquires TokenEventStoreV1 { let creator_addr = signer::address_of(creator); let event = RoyaltyMutateEvent { creator: creator_addr, collection, token, old_royalty_numerator, old_royalty_denominator, old_royalty_payee_addr, new_royalty_numerator, new_royalty_denominator, new_royalty_payee_addr, };
initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[creator_addr]; if (std::features::module_event_migration_enabled()) { event::emit( RoyaltyMutate { creator: creator_addr, collection, token, old_royalty_numerator, old_royalty_denominator, old_royalty_payee_addr, new_royalty_numerator, new_royalty_denominator, new_royalty_payee_addr, }); } else { event::emit_event<RoyaltyMutateEvent>( &mut token_event_store.royalty_mutate_events, event, ); };}
emit_token_maximum_mutate_event
Emit maximum mutation event
public(friend) fun emit_token_maximum_mutate_event(creator: &signer, collection: string::String, token: string::String, old_maximum: u64, new_maximum: u64)
Implementation
friend fun emit_token_maximum_mutate_event( creator: &signer, collection: String, token: String, old_maximum: u64, new_maximum: u64,) acquires TokenEventStoreV1 { let creator_addr = signer::address_of(creator);
let event = MaxiumMutateEvent { creator: creator_addr, collection, token, old_maximum, new_maximum, };
initialize_token_event_store(creator); let token_event_store = &mut TokenEventStoreV1[creator_addr]; if (std::features::module_event_migration_enabled()) { event::emit( MaximumMutate { creator: creator_addr, collection, token, old_maximum, new_maximum, }); } else { event::emit_event<MaxiumMutateEvent>( &mut token_event_store.maximum_mutate_events, event, ); };}
Specification
pragma verify = false;pragma aborts_if_is_strict;
initialize_token_event_store
fun initialize_token_event_store(acct: &signer)
let addr = signer::address_of(acct);include InitializeTokenEventStoreAbortsIf {creator : acct};
Adjust the overflow value according to the number of registered events
schema InitializeTokenEventStoreAbortsIf { creator: &signer; let addr = signer::address_of(creator); let account = global<Account>(addr); aborts_if !exists<TokenEventStoreV1>(addr) && !exists<Account>(addr); aborts_if !exists<TokenEventStoreV1>(addr) && account.guid_creation_num + 9 >= account::MAX_GUID_CREATION_NUM; aborts_if !exists<TokenEventStoreV1>(addr) && account.guid_creation_num + 9 > MAX_U64;}
schema TokenEventStoreAbortsIf { creator: &signer; let addr = signer::address_of(creator); let account = global<Account>(addr); aborts_if !exists<Account>(addr); aborts_if account.guid_creation_num + 9 >= account::MAX_GUID_CREATION_NUM; aborts_if account.guid_creation_num + 9 > MAX_U64;}
emit_collection_uri_mutate_event
public(friend) fun emit_collection_uri_mutate_event(creator: &signer, collection: string::String, old_uri: string::String, new_uri: string::String)
include InitializeTokenEventStoreAbortsIf;
emit_collection_description_mutate_event
public(friend) fun emit_collection_description_mutate_event(creator: &signer, collection: string::String, old_description: string::String, new_description: string::String)
include InitializeTokenEventStoreAbortsIf;
emit_collection_maximum_mutate_event
public(friend) fun emit_collection_maximum_mutate_event(creator: &signer, collection: string::String, old_maximum: u64, new_maximum: u64)
include InitializeTokenEventStoreAbortsIf;
emit_token_opt_in_event
public(friend) fun emit_token_opt_in_event(account: &signer, opt_in: bool)
include InitializeTokenEventStoreAbortsIf {creator : account};
emit_token_uri_mutate_event
public(friend) fun emit_token_uri_mutate_event(creator: &signer, collection: string::String, token: string::String, old_uri: string::String, new_uri: string::String)
include InitializeTokenEventStoreAbortsIf;
emit_default_property_mutate_event
public(friend) fun emit_default_property_mutate_event(creator: &signer, collection: string::String, token: string::String, keys: vector<string::String>, old_values: vector<option::Option<property_map::PropertyValue>>, new_values: vector<property_map::PropertyValue>)
include InitializeTokenEventStoreAbortsIf;
emit_token_descrition_mutate_event
public(friend) fun emit_token_descrition_mutate_event(creator: &signer, collection: string::String, token: string::String, old_description: string::String, new_description: string::String)
include InitializeTokenEventStoreAbortsIf;
emit_token_royalty_mutate_event
public(friend) fun emit_token_royalty_mutate_event(creator: &signer, collection: string::String, token: string::String, old_royalty_numerator: u64, old_royalty_denominator: u64, old_royalty_payee_addr: address, new_royalty_numerator: u64, new_royalty_denominator: u64, new_royalty_payee_addr: address)
include InitializeTokenEventStoreAbortsIf;
emit_token_maximum_mutate_event
public(friend) fun emit_token_maximum_mutate_event(creator: &signer, collection: string::String, token: string::String, old_maximum: u64, new_maximum: u64)
include InitializeTokenEventStoreAbortsIf;