前提条件

  • 拥有预先铸造代币的 Spark 钱包
  • 接收者的 Spark 地址

获取您的代币标识符

Bech32m 代币标识符是您代币在 Spark 上用户友好的身份标识。它提供了更好的跨网络安全性,比原始公钥更易读。这些标识符遵循 btkn1... 格式,可从 SDK 中的多个方法获取。 您可以从您的发行者钱包中检索它:
const tokenIdentifier = await issuerWallet.getIssuerTokenIdentifier();
console.log(tokenIdentifier); // 示例:btkn1qwerty...
或者,您可以从余额调用中获取它:
const balance = await issuerWallet.getBalance();
// tokenBalances 映射现在包含每个代币的 bech32mTokenIdentifier
for (const [publicKey, tokenData] of balance.tokenBalances) {
  console.log(`代币标识符: ${tokenData.bech32mTokenIdentifier}`);
}

转移代币

一旦您有了接收者的 Spark 地址(例如从用户输入)和代币标识符,您就可以转移代币。 目前,您每次交易只能发送一种代币 — 不支持在单次转账中发送多种不同的代币(例如 token_atoken_btoken_c)。
const transactionId = await wallet.transferTokens({
    tokenIdentifier: "btkn1qwertyuiopasdfghjklzxcvbnm1234567890abcdef",
    tokenAmount: 100000n,
    receiverSparkAddress: "sprt1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu",
  });

console.log("Spark 交易 ID:", transactionId);

接收代币

在 Spark 上接收代币不需要任何操作 — 如果有人向您的 Spark 地址发送代币,它们将自动出现。 您可以随时使用以下方法检查您钱包的余额:
const balance = await wallet.getBalance();
console.log(`代币余额:`, balance.tokenBalances);
这将返回您的聪余额和代币余额映射,包括用于轻松识别的 Bech32m 代币标识符。

下一步

您现在已经可以在 Spark 上铸造、发送和接收代币。如果您想进一步了解,可以: