Typescript
SPL Token avec Web3.js

SPL Token avec Web3.js

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.

Depuis Token2022, il est possible de fermer un compte de Mint qui a une offre de 0

Avant de pouvoir fermer un compte de jetons, nous devons déjà avoir :

  • Initialisé un compte de Mint
  • Initialisé un compte de Token ou Associated 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`)
Blueshift © 2025Commit: 6d01265