createTokenAccount method
Future<Account>
createTokenAccount({
- required Ed25519HDPublicKey mint,
- required Wallet account,
- required Wallet creator,
- SignatureCallback? onSigned,
- Commitment commitment = Commitment.finalized,
Create an account for account
.
Implementation
Future<Account> createTokenAccount({
required Ed25519HDPublicKey mint,
required Wallet account,
required Wallet creator,
SignatureCallback? onSigned,
Commitment commitment = Commitment.finalized,
}) async {
const space = TokenProgram.neededAccountSpace;
final rent = await rpcClient.getMinimumBalanceForRentExemption(space);
final instructions = TokenInstruction.createAndInitializeAccount(
address: account.publicKey,
owner: creator.publicKey,
mint: mint,
rent: rent,
space: space,
);
await sendAndConfirmTransaction(
message: Message(instructions: instructions),
signers: [creator, account],
onSigned: onSigned ?? ignoreOnSigned,
commitment: commitment,
);
// TODO(IA): need to check if it is executable and grab the rentEpoch
return Account(
owner: account.address,
lamports: 0,
executable: false,
rentEpoch: BigInt.zero,
data: null,
);
}