Struct multiversx_sc::storage::mappers::FungibleTokenMapper
source · pub struct FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,{ /* private fields */ }
Implementations§
source§impl<SA> FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> FungibleTokenMapper<SA>where SA: StorageMapperApi + CallTypeApi,
sourcepub fn issue(
&self,
issue_cost: BigUint<SA>,
token_display_name: ManagedBuffer<SA>,
token_ticker: ManagedBuffer<SA>,
initial_supply: BigUint<SA>,
num_decimals: usize,
opt_callback: Option<CallbackClosure<SA>>
) -> !
pub fn issue( &self, issue_cost: BigUint<SA>, token_display_name: ManagedBuffer<SA>, token_ticker: ManagedBuffer<SA>, initial_supply: BigUint<SA>, num_decimals: usize, opt_callback: Option<CallbackClosure<SA>> ) -> !
Important: If you use custom callback, remember to save the token ID in the callback and clear the mapper in case of error! Clear is unusable outside this specific case.
#[callback] fn my_custom_callback( &self, #[call_result] result: ManagedAsyncCallResult<()>, ) { match result { ManagedAsyncCallResult::Ok(token_id) => { self.fungible_token_mapper().set_token_id(token_id); }, ManagedAsyncCallResult::Err(_) => { self.fungible_token_mapper().clear(); }, }
If you want to use default callbacks, import the default_issue_callbacks::DefaultIssueCallbacksModule from multiversx-sc-modules and pass None for the opt_callback argument
sourcepub fn issue_and_set_all_roles(
&self,
issue_cost: BigUint<SA>,
token_display_name: ManagedBuffer<SA>,
token_ticker: ManagedBuffer<SA>,
num_decimals: usize,
opt_callback: Option<CallbackClosure<SA>>
) -> !
pub fn issue_and_set_all_roles( &self, issue_cost: BigUint<SA>, token_display_name: ManagedBuffer<SA>, token_ticker: ManagedBuffer<SA>, num_decimals: usize, opt_callback: Option<CallbackClosure<SA>> ) -> !
Important: If you use custom callback, remember to save the token ID in the callback and clear the mapper in case of error! Clear is unusable outside this specific case.
#[callback] fn my_custom_callback( &self, #[call_result] result: ManagedAsyncCallResult<()>, ) { match result { ManagedAsyncCallResult::Ok(token_id) => { self.fungible_token_mapper().set_token_id(token_id); }, ManagedAsyncCallResult::Err(_) => { self.fungible_token_mapper().clear(); }, }
If you want to use default callbacks, import the default_issue_callbacks::DefaultIssueCallbacksModule from multiversx-sc-modules and pass None for the opt_callback argument
pub fn clear(&mut self)
pub fn mint(&self, amount: BigUint<SA>) -> EsdtTokenPayment<SA>
pub fn mint_and_send( &self, to: &ManagedAddress<SA>, amount: BigUint<SA> ) -> EsdtTokenPayment<SA>
pub fn burn(&self, amount: &BigUint<SA>)
pub fn get_balance(&self) -> BigUint<SA>
Trait Implementations§
source§impl<SA> StorageMapper<SA> for FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> StorageMapper<SA> for FungibleTokenMapper<SA>where SA: StorageMapperApi + CallTypeApi,
source§fn new(base_key: StorageKey<SA>) -> Self
fn new(base_key: StorageKey<SA>) -> Self
#[storage_mapper]
annotation generated code.source§impl<SA> StorageTokenWrapper<SA> for FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> StorageTokenWrapper<SA> for FungibleTokenMapper<SA>where SA: StorageMapperApi + CallTypeApi,
fn get_storage_key(&self) -> ManagedRef<'_, SA, StorageKey<SA>>
fn get_token_state(&self) -> TokenMapperState<SA>
fn get_token_id(&self) -> TokenIdentifier<SA>
fn get_token_id_ref(&self) -> &TokenIdentifier<SA>
fn set_token_id(&mut self, token_id: TokenIdentifier<SA>)
fn is_empty(&self) -> bool
fn set_if_empty(&mut self, token_id: TokenIdentifier<SA>)
fn require_issued_or_set(&self)
fn require_same_token(&self, expected_token_id: &TokenIdentifier<SA>)
fn require_all_same_token( &self, payments: &ManagedVec<SA, EsdtTokenPayment<SA>> )
fn set_local_roles( &self, roles: &[EsdtLocalRole], opt_callback: Option<CallbackClosure<SA>> ) -> !
fn set_local_roles_for_address( &self, address: &ManagedAddress<SA>, roles: &[EsdtLocalRole], opt_callback: Option<CallbackClosure<SA>> ) -> !
fn get_sc_address() -> ManagedAddress<SA>
source§impl<SA> TopEncodeMulti for FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> TopEncodeMulti for FungibleTokenMapper<SA>where SA: StorageMapperApi + CallTypeApi,
source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>( &self, output: &mut O, h: H ) -> Result<(), H::HandledErr>where O: TopEncodeMultiOutput, H: EncodeErrorHandler,
top_encode
that can handle errors as soon as they occur.
For instance in can exit immediately and make sure that if it returns, it is a success.
By not deferring error handling, this can lead to somewhat smaller bytecode.