pub fn _mint(
total_assets_key: StorageKey<u64>,
total_supply_key: StorageKey<StorageMap<AssetId, u64>>,
recipient: Identity,
sub_id: SubId,
amount: u64,
) -> AssetId Expand description
Unconditionally mints new assets using the sub_id sub-identifier.
Additional Information
Warning This function increases the total supply by the number of coins minted.
Note: If None is passed for the sub_id argument, b256::zero() is used as the SubId.
Arguments
total_assets_key: [StorageKey] - The location in storage that theu64which represents the total assets is stored.total_supply_key: [StorageKey<StorageMap<AssetId, u64>>] - The location in storage which theStorageMapthat stores the total supply of assets is stored.recipient: [Identity] - The user to which the newly minted asset is transferred to.sub_id: [SubId] - The sub-identifier of the newly minted asset.amount: [u64] - The quantity of coins to mint.
Returns
- [AssetId] - The
AssetIdof the newly minted asset.
Reverts
- When
amountis zero.
Number of Storage Accesses
- Reads:
2 - Writes:
2
Examples
use asset::supply::_mint;
use std::context::balance_of;
storage {
total_assets: u64 = 0,
total_supply: StorageMap<AssetId, u64> = StorageMap {},
}
fn foo(recipient: Identity) {
let recipient = Identity::ContractId(ContractId::zero());
let asset_id = _mint(storage.total_assets, storage.total_supply, recipient, SubId::zero(), 100);
assert(balance_of(recipient.as_contract_id(), asset_id), 100);
}