0

我希望用户来我的网站上铸造代币。我关注了 Solana 文档,并在 Javascript 客户端部分遇到了以下代码。

var web3Connection = new web3.Connection(
    web3.clusterApiUrl("devnet"),
    'confirmed',
);
// Generate a new wallet keypair and airdrop SOL
var fromWallet = web3.Keypair.generate();
var fromAirdropSignature = await web3Connection.requestAirdrop(
    fromWallet.publicKey,
    web3.LAMPORTS_PER_SOL,
);

//wait for airdrop confirmation
await web3Connection.confirmTransaction(fromAirdropSignature);

//create new token mint
let mint = await splToken.Token.createMint(
    web3Connection,
    fromWallet,
    fromWallet.publicKey,
    null,
    9,
    splToken.TOKEN_PROGRAM_ID,
);

如有错误请指正。我认为理想情况下,我应该从 CLI 创建钱包和密钥对,然后通过 env 变量或代码中的一些安全配置使用它们来铸造、转移。等等

如果上述内容正确,我如何使用现有的 publicKey 和 secret 值创建 web3.Keypair 对象,而不是生成随机值?

4

1 回答 1

2

您可以使用并传入密钥对文件中的字节数组创建Keypair实例: https ://solana-labs.github.io/solana-web3.js/classes/Keypair.html#fromSecretKeyfromSecretKey

有一个很好的例子就是这样做的:https ://github.com/solana-labs/solana/blob/b16f2da44414be6f211352ed336812131622bae7/docs/src/developing/clients/javascript-reference.md#example-usage-2

于 2021-09-22T14:45:37.623 回答