fn burn_NFT(&self, token_to_burn: TokenIdentifier, nonce:u64) {
let caller = self.blockchain().get_caller();
let roles = self.blockchain().get_esdt_local_roles(&token_to_burn);
require!(
roles.has_role(&EsdtLocalRole::NftBurn),
"ESDTRoleNFTBurn role not set!"
);
require!(
self.initial_indexes_populate_done().get(),
"The indexes are not properly populated! Double check the deployment process and populateIndexes endpoint calls."
);
require!(
self.initial_shuffle_triggered().get(),
"Run the shuffle mechanism at least once!"
);
require!(
self.paused().is_empty(),
"The minting is paused or haven't started yet!"
);
require!(
self.get_current_left_tokens_amount() >= NFT_AMOUNT,
"All tokens have been minted already or the amount you want to mint is to much. Check limits (totally or per drop). You have to fit in limits with the whole amount."
);
self.send().esdt_local_burn(&token_to_burn, nonce, &BigUint::from(NFT_AMOUNT));
self.mint_single_nft(BigUint::zero(), OptionalValue::Some(caller.clone()));
}
fn burn_NFT(&self, token_to_burn: TokenIdentifier, nonce:u64) { let caller = self.blockchain().get_caller(); let roles = self.blockchain().get_esdt_local_roles(&token_to_burn); require!( roles.has_role(&EsdtLocalRole::NftBurn), "ESDTRoleNFTBurn role not set!" ); require!( self.initial_indexes_populate_done().get(), "The indexes are not properly populated! Double check the deployment process and populateIndexes endpoint calls." ); require!( self.initial_shuffle_triggered().get(), "Run the shuffle mechanism at least once!" ); require!( self.paused().is_empty(), "The minting is paused or haven't started yet!" ); require!( self.get_current_left_tokens_amount() >= NFT_AMOUNT, "All tokens have been minted already or the amount you want to mint is to much. Check limits (totally or per drop). You have to fit in limits with the whole amount." ); self.send().esdt_local_burn(&token_to_burn, nonce, &BigUint::from(NFT_AMOUNT)); self.mint_single_nft(BigUint::zero(), OptionalValue::Some(caller.clone())); }