首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用node.js在Solana中保存键盘和发送令牌?

如何使用node.js在Solana中保存键盘和发送令牌?
EN

Stack Overflow用户
提问于 2021-09-28 23:42:01
回答 1查看 1.1K关注 0票数 1

我正在尝试使用Solana来解决特定的问题。

我使用NPM来攻击Solana的API,所使用的包是@solana/web3.js@solana/spl-token。我已经能够创建一个成功的连接和生成键盘。我希望能够保存生成的键盘,但我面临的问题是它被编码了,第二个要突出显示的问题是我何时使用.toString();它可以很好地解码它,但不能在空投中使用。

代码语言:javascript
运行
复制
const solanaWeb3 = require("@solana/web3.js"),
const solanatoken = require("@solana/spl-token");

(async () => {
  // Connect to cluster
  var connection = new solanaWeb3.Connection(
    solanaWeb3.clusterApiUrl("devnet"),
    "confirmed"
  );

  // Generate a new wallet keypair and airdrop SOL
  var wallet = solanaWeb3.Keypair.generate();
  console.log("public key...", wallet.publicKey)
  // The stringPK is an example of what wallet.publicKey returns. When taking wallet.publicKey and using .toString(); it returns the decoded publicKey but that can't be used in an airdrop.
  const stringPK = `_bn: <BN: e8a4421b46f76fdeac76819ab21708cc4a4b9c9c7fc2a22e373443539cee1a81>`;
  console.log("private key...", JSON.stringify(wallet.secretKey.toString()));
  console.log(solanaWeb3.PublicKey.decode(wallet.publicKey));
  var airdropSignature = await connection.requestAirdrop(
    stringPK,
    solanaWeb3.LAMPORTS_PER_SOL
  );

  //wait for airdrop confirmation
  await connection.confirmTransaction(airdropSignature);

  let account = await connection.getAccountInfo(wallet.publicKey);
  console.log(account);
})();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-29 09:57:51

要在JS中保存生成的键区,最好的方法是在keypair对象1上使用secretKey,将其写入文件。要重新加载它,您将读取该文件,然后使用fromSecretKey返回您的Keypair 2

至于您的另一个问题,requestAirdrop需要一个PublicKey,所以您应该这样做:

代码语言:javascript
运行
复制
var airdropSignature = await connection.requestAirdrop(
    wallet.publicKey,
    solanaWeb3.LAMPORTS_PER_SOL
  );

1

2

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

https://stackoverflow.com/questions/69369516

复制
相关文章

相似问题

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