Burn Tokens
async function main() {
// Generate random seed for account creation
const seed = KeetaNet.lib.Account.generateRandomSeed({ asString: true });
console.log("seed =", seed);
// Create account and user client
const account = KeetaNet.lib.Account.fromSeed(seed, 0);
const userClient = KeetaNet.UserClient.fromNetwork("test", account);
// Create and mint new token
const builderMint = userClient.initBuilder();
const pendingTokenAccount = builderMint.generateIdentifier(KeetaNet.lib.Account.AccountKeyAlgorithm.TOKEN);
await builderMint.computeBlocks();
const tokenAccount = pendingTokenAccount.account;
builderMint.setInfo(
{
name: '',
description: '',
metadata: '',
defaultPermission: new KeetaNet.lib.Permissions(['ACCESS']),
},
{ account: tokenAccount }
);
builderMint.modifyTokenSupply(10_000n, { account: tokenAccount });
await builderMint.publish();
console.log("Token account created and minted.");
console.log("Balances after minting:", await userClient.allBalances());
// Burn some tokens
const builderBurn = userClient.initBuilder();
builderBurn.modifyTokenSupply(-2_500n, { account: tokenAccount });
await builderBurn.publish();
console.log("2,500 tokens burned from account", tokenAccount.publicKeyString.toString());
console.log("Balances after burning:", await userClient.allBalances());
}
main()
.then(() => {
console.log("Done");
process.exit(0);
})
.catch((err) => {
console.error("Error:", err);
process.exit(1);
});
Last updated