【发布时间】:2021-12-14 23:01:40
【问题描述】:
我想用密码从我的钱包转账到另一个钱包,我使用web3js,我该怎么做,我做了一个solana转账,但我不知道如何进行nft转账,我会如果您能提供帮助,将不胜感激 翻译的对不起))
【问题讨论】:
标签: solana
我想用密码从我的钱包转账到另一个钱包,我使用web3js,我该怎么做,我做了一个solana转账,但我不知道如何进行nft转账,我会如果您能提供帮助,将不胜感激 翻译的对不起))
【问题讨论】:
标签: solana
Solana 上的 NFT 表示为 SPL 代币,可以使用 npm 上的“@solana/spl-token”包在 JS 中传输:https://www.npmjs.com/package/@solana/spl-token
https://github.com/solana-labs/solana-program-library/blob/master/token/js/examples/create_mint_and_transfer_tokens.js 和 repo 测试中有一个如何使用它的示例。
您可以在https://spl.solana.com/token找到有关 SPL 令牌的更多信息
【讨论】:
NFT 转账与普通 spl-token 转账相同。 在转移 NFT 之前,您需要知道它的 Token Mint 地址或您的关联 Token 账户。 还需要知道 NFT Mint Token Account 的接收方的 Associated Token Account。 如果接收者没有关联的令牌帐户,您或他需要先创建它。 如果您对账户类型不熟悉,请阅读我在 medium 上的文章。 https://medium.com/@blockchainlover2019/how-to-verify-ownership-of-metaplex-nft-programmatically-at-on-chain-1059418c3c6
使用web3传输token很简单,不需要knowhow知识。 这是我来自 Solana 程序(智能合约)的代码,它将 nft 从一个转移到另一个。
let transfer_ix = spl_token::instruction::transfer(
token_program.key,
nft_account_to_send.key,
nft_account_to_receive.key,
&pda,
&[],
1
)?;
invoke_signed(
&transfer_ix,
&[
nft_account_to_send.clone(),
nft_account_to_receive.clone(),
pda_account.clone(),
token_program.clone(),
],
&[&[&b"nft_transfer_is_easy"[..], &[_nonce]]]
)?;
我会为你添加另一个代码,它在 web3 上运行。
【讨论】:
invoke_signed有详细解释)。谢谢。