pub struct FungibleTokenMapper<SA, A = CurrentStorage>where
SA: StorageMapperApi + CallTypeApi,
A: StorageAddress<SA>,{ /* private fields */ }
Implementations§
Source§impl<SA> FungibleTokenMapper<SA, CurrentStorage>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> FungibleTokenMapper<SA, CurrentStorage>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 send_payment( &self, to: &ManagedAddress<SA>, payment: &EsdtTokenPayment<SA>, )
pub fn set_if_empty(&mut self, token_id: TokenIdentifier<SA>)
pub fn set_local_roles( &self, roles: &[EsdtLocalRole], opt_callback: Option<CallbackClosure<SA>>, ) -> !
pub fn set_local_roles_for_address( &self, address: &ManagedAddress<SA>, roles: &[EsdtLocalRole], opt_callback: Option<CallbackClosure<SA>>, ) -> !
pub fn set_token_id(&mut self, token_id: TokenIdentifier<SA>)
pub fn get_balance(&self) -> BigUint<SA>
pub fn get_sc_address() -> ManagedAddress<SA>
Source§impl<SA, A> FungibleTokenMapper<SA, A>where
SA: StorageMapperApi + CallTypeApi,
A: StorageAddress<SA>,
impl<SA, A> FungibleTokenMapper<SA, A>where
SA: StorageMapperApi + CallTypeApi,
A: StorageAddress<SA>,
pub fn get_storage_key(&self) -> ManagedRef<'_, SA, StorageKey<SA>>
pub fn get_token_state(&self) -> TokenMapperState<SA>
pub fn get_token_id(&self) -> TokenIdentifier<SA>
pub fn get_token_id_ref(&self) -> &TokenIdentifier<SA>
pub fn is_empty(&self) -> bool
pub fn require_issued_or_set(&self)
pub fn require_same_token(&self, expected_token_id: &TokenIdentifier<SA>)
pub fn require_all_same_token( &self, payments: &ManagedVec<SA, EsdtTokenPayment<SA>>, )
pub fn default_callback_closure_obj( &self, initial_supply: &BigUint<SA>, ) -> CallbackClosure<SA>
Trait Implementations§
Source§impl<SA> StorageMapper<SA> for FungibleTokenMapper<SA, CurrentStorage>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> StorageMapper<SA> for FungibleTokenMapper<SA, CurrentStorage>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> StorageMapperFromAddress<SA> for FungibleTokenMapper<SA, ManagedAddress<SA>>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> StorageMapperFromAddress<SA> for FungibleTokenMapper<SA, ManagedAddress<SA>>where
SA: StorageMapperApi + CallTypeApi,
Source§fn new_from_address(
address: ManagedAddress<SA>,
base_key: StorageKey<SA>,
) -> Self
fn new_from_address( address: ManagedAddress<SA>, base_key: StorageKey<SA>, ) -> Self
#[storage_mapper_from_address]
annotation generated code.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.