pub struct NonFungibleTokenMapper<SA, A = CurrentStorage>where
SA: StorageMapperApi + CallTypeApi,
A: StorageAddress<SA>,{ /* private fields */ }
Implementations§
Source§impl<SA> NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
Sourcepub fn issue(
&self,
token_type: EsdtTokenType,
issue_cost: BigUint<SA>,
token_display_name: ManagedBuffer<SA>,
token_ticker: ManagedBuffer<SA>,
num_decimals: usize,
opt_callback: Option<CallbackClosure<SA>>,
) -> !
pub fn issue( &self, token_type: EsdtTokenType, 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
Sourcepub fn issue_and_set_all_roles(
&self,
token_type: EsdtTokenType,
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, token_type: EsdtTokenType, 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 nft_issue( issue_cost: BigUint<SA>, token_display_name: ManagedBuffer<SA>, token_ticker: ManagedBuffer<SA>, ) -> Tx<TxScEnv<SA>, (), ESDTSystemSCAddress, Egld<BigUint<SA>>, (), FunctionCall<SA>, OriginalResultMarker<TokenIdentifier<SA>>>
pub fn sft_issue( issue_cost: BigUint<SA>, token_display_name: ManagedBuffer<SA>, token_ticker: ManagedBuffer<SA>, ) -> Tx<TxScEnv<SA>, (), ESDTSystemSCAddress, Egld<BigUint<SA>>, (), FunctionCall<SA>, OriginalResultMarker<TokenIdentifier<SA>>>
pub fn meta_issue( issue_cost: BigUint<SA>, token_display_name: ManagedBuffer<SA>, token_ticker: ManagedBuffer<SA>, num_decimals: usize, ) -> Tx<TxScEnv<SA>, (), ESDTSystemSCAddress, Egld<BigUint<SA>>, (), FunctionCall<SA>, OriginalResultMarker<TokenIdentifier<SA>>>
pub fn nft_create<T>(
&self,
amount: BigUint<SA>,
attributes: &T,
) -> EsdtTokenPayment<SA>where
T: TopEncode,
pub fn nft_create_named<T>(
&self,
amount: BigUint<SA>,
name: &ManagedBuffer<SA>,
attributes: &T,
) -> EsdtTokenPayment<SA>where
T: TopEncode,
pub fn nft_create_and_send<T>(
&self,
to: &ManagedAddress<SA>,
amount: BigUint<SA>,
attributes: &T,
) -> EsdtTokenPayment<SA>where
T: TopEncode,
pub fn nft_create_and_send_named<T>(
&self,
to: &ManagedAddress<SA>,
amount: BigUint<SA>,
name: &ManagedBuffer<SA>,
attributes: &T,
) -> EsdtTokenPayment<SA>where
T: TopEncode,
pub fn nft_add_quantity( &self, token_nonce: u64, amount: BigUint<SA>, ) -> EsdtTokenPayment<SA>
pub fn nft_add_quantity_and_send( &self, to: &ManagedAddress<SA>, token_nonce: u64, amount: BigUint<SA>, ) -> EsdtTokenPayment<SA>
pub fn nft_update_attributes<T>(&self, token_nonce: u64, new_attributes: &T)where
T: TopEncode,
pub fn nft_burn(&self, token_nonce: u64, amount: &BigUint<SA>)
pub fn send_payment( &self, to: &ManagedAddress<SA>, payment: &EsdtTokenPayment<SA>, )
pub fn set_token_id(&mut self, token_id: TokenIdentifier<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 get_balance(&self, token_nonce: u64) -> BigUint<SA>
pub fn get_sc_address() -> ManagedAddress<SA>
pub fn get_all_token_data(&self, token_nonce: u64) -> EsdtTokenData<SA>
pub fn get_token_attributes<T>(&self, token_nonce: u64) -> Twhere
T: TopDecode,
Source§impl<SA, A> NonFungibleTokenMapper<SA, A>where
SA: StorageMapperApi + CallTypeApi,
A: StorageAddress<SA>,
impl<SA, A> NonFungibleTokenMapper<SA, A>where
SA: StorageMapperApi + CallTypeApi,
A: StorageAddress<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 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 default_callback_closure_obj(&self) -> CallbackClosure<SA>
Trait Implementations§
Source§impl<SA> StorageMapper<SA> for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> StorageMapper<SA> for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
Source§fn new(base_key: StorageKey<SA>) -> NonFungibleTokenMapper<SA>
fn new(base_key: StorageKey<SA>) -> NonFungibleTokenMapper<SA>
#[storage_mapper]
annotation generated code.Source§impl<SA> StorageMapperFromAddress<SA> for NonFungibleTokenMapper<SA, ManagedAddress<SA>>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> StorageMapperFromAddress<SA> for NonFungibleTokenMapper<SA, ManagedAddress<SA>>where
SA: StorageMapperApi + CallTypeApi,
Source§fn new_from_address(
address: ManagedAddress<SA>,
base_key: StorageKey<SA>,
) -> NonFungibleTokenMapper<SA, ManagedAddress<SA>>
fn new_from_address( address: ManagedAddress<SA>, base_key: StorageKey<SA>, ) -> NonFungibleTokenMapper<SA, ManagedAddress<SA>>
#[storage_mapper_from_address]
annotation generated code.Source§impl<SA> TopEncodeMulti for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> TopEncodeMulti for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
Source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), <H as EncodeErrorHandler>::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), <H as EncodeErrorHandler>::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.Source§fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Source§impl<SA> TypeAbi for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> TypeAbi for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
type Unmanaged = NonFungibleTokenMapper<SA>
fn type_name() -> String
fn type_name_rust() -> String
Source§fn provide_type_descriptions<TDC>(accumulator: &mut TDC)where
TDC: TypeDescriptionContainer,
fn provide_type_descriptions<TDC>(accumulator: &mut TDC)where
TDC: TypeDescriptionContainer,
fn type_names() -> TypeNames
impl<SA> TypeAbiFrom<NonFungibleTokenMapper<SA>> for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> TypeAbiFrom<NonFungibleTokenMapper<SA>> for TokenIdentifier<SA>where
SA: StorageMapperApi + CallTypeApi,
Auto Trait Implementations§
impl<SA, A> Freeze for NonFungibleTokenMapper<SA, A>
impl<SA, A> RefUnwindSafe for NonFungibleTokenMapper<SA, A>
impl<SA, A> Send for NonFungibleTokenMapper<SA, A>
impl<SA, A> Sync for NonFungibleTokenMapper<SA, A>
impl<SA, A> Unpin for NonFungibleTokenMapper<SA, A>
impl<SA, A> UnwindSafe for NonFungibleTokenMapper<SA, A>
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> InterpretableFrom<T> for T
impl<T> InterpretableFrom<T> for T
fn interpret_from(from: T, _context: &InterpreterContext) -> T
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