首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rust传送SPL令牌

使用Rust传送SPL令牌
EN

Stack Overflow用户
提问于 2022-04-04 00:15:05
回答 2查看 778关注 0票数 0

是否有办法将SPL令牌从钱包中转移到另一个。我已经做了一些研究,我发现我必须先初始化帐户,使用创建关联帐户,然后使用令牌传输?

是否有任何代码示例可以传输令牌或帮助创建帐户/令牌传输的库。等

EN

回答 2

Stack Overflow用户

发布于 2022-04-05 10:12:33

您可以直接对令牌程序使用的指令和类型使用spl-token机箱:令牌/

如果需要创建关联的令牌帐户,可以使用spl-associated-token-account机箱:帐户/index.html

如果您在链上,您可以创建一个transfer指令,并将它与所需的帐户一起传递进来,即:

代码语言:javascript
复制
        let ix = spl_token::instruction::transfer(
            token_program.key,
            source.key,
            destination.key,
            authority.key,
            &[],
            amount,
        )?;
        invoke(
            &ix,
            &[source, destination, authority, token_program],
        )

这是根据token-swap传输代码:https://github.com/solana-labs/solana-program-library/blob/b2fad8a0781bddd90c8e9b768184f55306265cef/token-swap/program/src/processor.rs#L138改编的。

您需要首先创建sourcedestination帐户,这是正确的,并且这些帐户是关联的令牌帐户是首选的。可以使用以下方法在链上创建它们:

代码语言:javascript
复制
let ix = spl_associated_token_account::instruction::create_associated_token_account(
    payer.key,
    wallet.key,
    token_mint.key,
    token_program.key,
);
invoke(
    &ix,
    &[payer, associated_token_account, wallet, token_mint, system_program, token_program, associated_token_account_program],
)

请注意,为了执行跨程序调用,必须将所有这些帐户发送到您的程序。

票数 2
EN

Stack Overflow用户

发布于 2022-04-04 14:24:05

Afaik没有库,但令牌传输只从一个帐户转到另一个帐户,在锚内有一个传输函数,您必须调用和传递帐户信息,您也可以直接传输到一个地址,因为您也需要接收者的帐户信息,您可以从一个公共密钥获得,但可以通过托管,这是我编写的程序,发送到PDA和接收者接受它从PDA。

Github链接到托管程序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71730814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档