TokenInstruction.burn constructor

TokenInstruction.burn({
  1. required int amount,
  2. required Ed25519HDPublicKey accountToBurnFrom,
  3. required Ed25519HDPublicKey mint,
  4. required Ed25519HDPublicKey owner,
  5. List<Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
})

Burns tokens by removing them from an account.

Burn does not support accounts associated with the native mint, use CloseAccount instead.

Implementation

factory TokenInstruction.burn({
  required int amount,
  required Ed25519HDPublicKey accountToBurnFrom,
  required Ed25519HDPublicKey mint,
  required Ed25519HDPublicKey owner,
  List<Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
}) =>
    TokenInstruction._(
      accounts: [
        AccountMeta.writeable(pubKey: accountToBurnFrom, isSigner: false),
        AccountMeta.writeable(pubKey: mint, isSigner: false),
        AccountMeta.writeable(
          pubKey: owner,
          isSigner: signers.isEmpty,
        ),
        ...signers.map(
          (pubKey) => AccountMeta.readonly(pubKey: pubKey, isSigner: true),
        ),
      ],
      data: ByteArray.merge([
        TokenProgram.burnInstructionIndex,
        ByteArray.u64(amount),
      ]),
    );