使用前端SDK燃烧代币
前面一篇中,详细介绍了如何铸造代币,这篇介绍燃烧代币。
该操作无需anchor程序,在前端完成即可。
创建燃烧代币指令
在tests/legacy_token.ts
中添加以下测试代码,完成燃烧,将50
个代币从user1
的token account中燃烧掉。
it("burn tokens", async () => {
// Get user1's token account (ATA)
const tokenAccount = await getAssociatedTokenAddress(mintAccount, user1Account.publicKey, false, TOKEN_PROGRAM_ID);
// Amount to burn: 50 tokens (considering 9 decimals)
const burnAmount = 50 * Math.pow(10, 9);
// Get initial balance
const initialBalance = await provider.connection.getTokenAccountBalance(tokenAccount);
console.log("Initial balance:", initialBalance.value.uiAmount);
// Create burn instruction
const burnIx = createBurnInstruction(
tokenAccount,
mintAccount,
user1Account.publicKey,
burnAmount
);
// Send transaction
const tx = new anchor.web3.Transaction().add(burnIx);
const signature = await provider.sendAndConfirm(tx, [user1Account]);
console.log("Burn transaction signature:", signature);
// Get final balance
const finalBalance = await provider.connection.getTokenAccountBalance(tokenAccount);
console.log("Final balance after burn:", finalBalance.value.uiAmount);
})
执行后,检查交易hash,确认燃烧代币的交易是否成功: