TokenInstruction.initializeMint constructor

TokenInstruction.initializeMint({
  1. required int decimals,
  2. required Ed25519HDPublicKey mint,
  3. required Ed25519HDPublicKey mintAuthority,
  4. Ed25519HDPublicKey? freezeAuthority,
})

Construct an instruction to initialize a new spl token with address mint, decimals decimal places, and mintAuthority as the mint authority.

You can use RPCClient.getMinimumBalanceForRentExemption to determine rent for the required space.

The freezeAuthority is optional and can be used to specify a the freeze authority for this token.

Implementation

factory TokenInstruction.initializeMint({
  required int decimals,
  required Ed25519HDPublicKey mint,
  required Ed25519HDPublicKey mintAuthority,
  Ed25519HDPublicKey? freezeAuthority,
}) =>
    TokenInstruction._(
      accounts: [
        AccountMeta.writeable(pubKey: mint, isSigner: false),
        AccountMeta.readonly(
          pubKey: Ed25519HDPublicKey.fromBase58(Sysvar.rent),
          isSigner: false,
        ),
      ],
      data: ByteArray.merge([
        TokenProgram.initializeMintInstructionIndex,
        ByteArray.u8(decimals),
        mintAuthority.toByteArray(),
        ByteArray.u8(freezeAuthority != null ? 1 : 0),
        if (freezeAuthority != null)
          freezeAuthority.toByteArray()
        else
          ByteArray(List<int>.filled(32, 0)),
      ]),
    );