Instruction Close Account
Ferme un compte de jeton et transfère la rente en SOL restante vers un compte de destination. Le compte de jetons doit avoir un solde nul, sauf s'il s'agit d'un compte SOL natif.
Avant de pouvoir fermer un compte de jetons, nous devons déjà avoir :
- Initialisé un compte de
Mint
- Initialisé un compte de
Token
ouAssociated Token
qui ne contient aucun jeton
Instruction Brute
En utilisant uniquement une instruction "brute" sans aucune abstraction, voici à quoi ressemble la fermeture d'un compte :
ts
// Delegate an ATA
const closeAccountInstruction = createCloseAccountInstruction(
tokenAccount // account
keypair.publickey // destination
keypair.publickey // authority
);
const transaction = new Transaction().add(closeAccountInstruction);
const signature = await sendAndConfirmTransaction(connection, transaction, [keypair]);
console.log(`Token accounts closed! Check out your TX here: https://explorer.solana.com/tx/${signature}?cluster=devnet`);
Instruction Abstraite
Voici à quoi ressemble la même instruction si elle est abstraite à l'aide de l'instruction closeAccount()
:
ts
let tx = await closeAccount(
connection,
keypair,
ata.address, // token Account
keypair.publicKey, // destination
keypair.publicKey, // authority
);
console.log(`Succesfully Closed!. Transaction Here: https://explorer.solana.com/tx/${tx}?cluster=devnet`)