initializeMint method
Future<Mint>
initializeMint({
- required Ed25519HDKeyPair mintAuthority,
- required int decimals,
- Ed25519HDPublicKey? freezeAuthority,
- SignatureCallback? onSigned,
- Commitment commitment = Commitment.finalized,
Create a new token owned by mintAuthority with number of decimals.
Optionally, you can specify a freezeAuthority. By default the
freezeAuthority is not set.
Finally, you can also send the transaction with optional commitment.
Implementation
Future<Mint> initializeMint({
required Ed25519HDKeyPair mintAuthority,
required int decimals,
Ed25519HDPublicKey? freezeAuthority,
SignatureCallback? onSigned,
Commitment commitment = Commitment.finalized,
}) async {
final mint = await Ed25519HDKeyPair.random();
const space = TokenProgram.neededMintAccountSpace;
final rent = await rpcClient.getMinimumBalanceForRentExemption(
space,
commitment: commitment,
);
final instructions = TokenInstruction.createAccountAndInitializeMint(
mint: mint.publicKey,
mintAuthority: mintAuthority.publicKey,
freezeAuthority: freezeAuthority,
rent: rent,
space: space,
decimals: decimals,
);
final message = Message(instructions: instructions);
await sendAndConfirmTransaction(
message: message,
signers: [mintAuthority, mint],
onSigned: onSigned ?? ignoreOnSigned,
commitment: commitment,
);
return getMint(address: mint.publicKey, commitment: commitment);
}