如何使用 phantom JS 创建关联的代币地址?

问题描述 投票:0回答:1

@solana/spl-token
有两种方法:

  • getAssociatedTokenAddress
  • getOrCreateAssociatedTokenAccount

上下文,只有公网地址可以访问幻象

如果关联的令牌已经存在,

getAssociatedTokenAddress
工作正常但
getOrCreateAssociatedTokenAccount
需要密钥。

使用 Phantom,如何通过签名机制生成该令牌地址?

具体用例:想要将 USDT 发送给没有 USDT 关联地址的公众。我希望幻影以某种方式签署行动并创建该地址

web3js solana solana-web3js
1个回答
1
投票

所以,如果这就是你想要做的:

具体用例:想要将 USDT 发送给没有 USDT 关联地址的公众。我希望幻影以某种方式签署行动并创建该地址

您无需担心直接创建帐户,因为您只需将令牌发送到钱包,并从签名者那里为帐户创建提供资金。所以一个普通的

token::transfer
应该足够IIRC.

但是要回答你的第一个问题,关于如何使用 Phantom 进行一些需要私钥的操作,一般的方法是在 JS 中创建一个

Transaction
,然后使用钱包适配器
signTransaction
对其进行签名,然后发送/确认签署的交易。 (根据您发送和确认的方式,您可能还需要在
Transaction
中添加最近的区块哈希和付款人)

这类似于

createAssociatedTokenAccount
在幕后所做的事情——https://github.com/solana-labs/solana-program-library/blob/48fbb5b7/token/js/src/actions/createAssociatedTokenAccount.ts# L30——增加了通过钱包适配器签名的功能。

© www.soinside.com 2019 - 2024. All rights reserved.