1

我正在尝试使用 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 };
};
4

0 回答 0