Anchor
使用 Anchor 的 SPL 代币

使用 Anchor 的 SPL 代币

转账指令

将代币从一个账户转移到另一个账户。这是用户之间发送代币的基本操作。

在我们可以转移任何代币之前,我们需要已经具备以下条件:

  • 已初始化一个 Mint 账户。
  • 一个源 Token 账户或 Associated Token 账户,并且该账户中至少有我们想要转移的数量。
  • 一个目标 Token 账户或 Associated Token 账户,用于接收来自源 Token 账户的代币。

我们转移的代币数量是根据小数位数进行“标准化”的。这意味着如果我们想要转移一个有 6 位小数的代币,我们实际上需要将 1_000_000 作为数量。

以下是 CPI 到 transfer() 指令的样子:

transfer(
    CpiContext::new(
        ctx.accounts.token_program.to_account_info(),
        Transfer {
            from: ctx.accounts.from_token_account.to_account_info(),
            to: ctx.accounts.to_token_account.to_account_info(),
            authority: ctx.accounts.authority.to_account_info(),
        },
    ),
    &1_000_000,
)?;
Blueshift © 2025Commit: fd080b2