Trait multiversx_sc_modules::esdt::EsdtModule
source · pub trait EsdtModule: ContractBase + Sized {
// Required methods
fn token_id(
&self
) -> SingleValueMapper<Self::Api, TokenIdentifier<Self::Api>>;
fn callbacks(&self) -> CallbackProxyObj<Self::Api>;
// Provided methods
fn issue_token(
&self,
token_display_name: ManagedBuffer<Self::Api>,
token_ticker: ManagedBuffer<Self::Api>,
token_type: EsdtTokenType,
opt_num_decimals: OptionalValue<usize>
) { ... }
fn issue_callback(
&self,
result: ManagedAsyncCallResult<Self::Api, TokenIdentifier<Self::Api>>
) { ... }
fn mint(&self, token_nonce: u64, amount: &BigUint<Self::Api>) { ... }
fn burn(&self, token_nonce: u64, amount: &BigUint<Self::Api>) { ... }
fn nft_create<T: TopEncode>(
&self,
amount: &BigUint<Self::Api>,
attributes: &T
) -> u64 { ... }
fn get_token_attributes<T: TopDecode>(&self, token_nonce: u64) -> T { ... }
fn require_token_issued(&self) { ... }
}
Expand description
Standard smart contract module for managing a single ESDT.
When added to a smart contract offers basic ESDT usage. A lot of contracts use an owned ESDT for various purposes. This module is used to offer a standard way of performing the basic operations.
It provides endpoints for:
- issuing of an ESDT
- setting local roles
- minting/burning
Required Methods§
fn token_id(&self) -> SingleValueMapper<Self::Api, TokenIdentifier<Self::Api>>
fn callbacks(&self) -> CallbackProxyObj<Self::Api>
Provided Methods§
fn issue_token( &self, token_display_name: ManagedBuffer<Self::Api>, token_ticker: ManagedBuffer<Self::Api>, token_type: EsdtTokenType, opt_num_decimals: OptionalValue<usize> )
fn issue_callback( &self, result: ManagedAsyncCallResult<Self::Api, TokenIdentifier<Self::Api>> )
fn mint(&self, token_nonce: u64, amount: &BigUint<Self::Api>)
fn burn(&self, token_nonce: u64, amount: &BigUint<Self::Api>)
fn nft_create<T: TopEncode>( &self, amount: &BigUint<Self::Api>, attributes: &T ) -> u64
fn get_token_attributes<T: TopDecode>(&self, token_nonce: u64) -> T
fn require_token_issued(&self)
Object Safety§
This trait is not object safe.