我正在尝试使用 javascript Metaplex SDK 在 Solana 网络上刻录一个令牌(肯定是铸造的并且存在)。
他们的代币销毁功能(写在底部)接受这个接口的一个对象作为参数:
interface IBurnTokenParams {
connection: Connection;
wallet: Wallet;
token: PublicKey;
mint: PublicKey;
amount: number | u64;
owner?: PublicKey;
// close token account after
close?: boolean;
}
但是他们的文档中没有任何地方准确解释“薄荷”字段代表什么。我已经尝试过代币的公共地址(我认为这是“代币”字段的用途)、铸币局地址和更新地址,但它们似乎都不起作用。
这是功能:
export const burnToken = async ({
connection,
wallet,
token,
mint,
amount,
owner,
close = true,
}: IBurnTokenParams): Promise<IBurnTokenResponse> => {
const tx = new Transaction({ feePayer: wallet.publicKey }).add(
Token.createBurnInstruction(
TOKEN_PROGRAM_ID,
mint,
token,
owner ?? wallet.publicKey,
[],
amount,
),
);
if (close) {
tx.add(
Token.createCloseAccountInstruction(
TOKEN_PROGRAM_ID,
token,
wallet.publicKey,
owner ?? wallet.publicKey,
[],
),
);
}
const txId = await sendTransaction({ connection, wallet, txs: [tx] });
return { txId };
};