TokenInstruction.closeAccount constructor

TokenInstruction.closeAccount({
  1. required Ed25519HDPublicKey accountToClose,
  2. required Ed25519HDPublicKey destination,
  3. required Ed25519HDPublicKey owner,
  4. List<Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
})

Close an account by transferring all its SOL to the destination account.

Non-native accounts may only be closed if its token amount is zero.

Implementation

factory TokenInstruction.closeAccount({
  required Ed25519HDPublicKey accountToClose,
  required Ed25519HDPublicKey destination,
  required Ed25519HDPublicKey owner,
  List<Ed25519HDPublicKey> signers = const <Ed25519HDPublicKey>[],
}) =>
    TokenInstruction._(
      accounts: [
        AccountMeta.writeable(pubKey: accountToClose, isSigner: false),
        AccountMeta.writeable(pubKey: destination, isSigner: false),
        AccountMeta.writeable(
          pubKey: owner,
          isSigner: signers.isEmpty,
        ),
        ...signers.map(
          (pubKey) => AccountMeta.readonly(pubKey: pubKey, isSigner: true),
        ),
      ],
      data: TokenProgram.closeAccountInstructionIndex,
    );