Typescript
SPL токен з Web3.js

SPL токен з Web3.js

Інструкція закриття рахунку

Закриває токен-рахунок і переказує залишок орендної плати SOL на цільовий рахунок. Токен-рахунок повинен мати нульовий баланс, якщо це не нативний рахунок SOL.

Починаючи з Token2022 можливо закрити Mint рахунок, який має запас 0

Перш ніж ми зможемо закрити будь-який токен-рахунок, нам потрібно вже мати:

  • Ініціалізований Mint рахунок
  • Ініціалізований Token рахунок або Associated Token рахунок, який не містить жодних токенів.

Raw Instruction

Використовуючи лише "сиру" інструкцію без будь-якої абстракції, закриття рахунку виглядатиме так:

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`);

Abstracted 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