本文是一个针对初学者的指导,详细介绍了如何使用 JavaScript 在 Solana 上创建和发送交易。通过逐步的说明和示例代码,读者可以轻松理解与 Solana 区块链交互的基础流程。
5 分钟阅读
2023 年 6 月 19 日
GM!在这篇博客中,我们将学习如何在 Solana 上使用 Javascript 创建和发送交易,这是 Solana Dev 101 系列的一部分。这是一个适合初学者的指南,所以即使你对 Solana 或区块链技术不熟悉,也不用担心。
如果你有任何问题,欢迎加入 Helius Discord 或者在 Twitter 上标记 Helius 来获取帮助。
要开始,我们需要在机器上安装 Node.js 和 npm。如果需要,你可以在 这里 下载它们。
我们还需要安装 Solana web3.js 库,这是一个用于与 Solana 区块链交互的 Javascript 工具和库套件。
你可以通过在终端中运行以下代码来使用 npm 安装它:
代码
npm install @solana/web3.js
首先,让我们创建一个连接到 Solana 集群的连接。我们将使用 Helius 连接到 devnet 集群。你需要创建一个 Helius 账户和 API 密钥,你可以通过在 这里 注册获得免费的 API 密钥。
代码
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);
现在我们需要一个钱包来发送交易。钱包只是一个公共和私钥的配对,这可以很容易地创建。公共密钥就是你的钱包地址,然后你的私钥用于签名交易。你可以在 这里 阅读更多关于公钥加密的内容。
我们可以创建一个新的文件系统钱包,此钱包的密钥对将存储在你的本地机器上。如果你已经安装了 Solana CLI 工具,你可以在终端中运行以下命令来获取新钱包。
代码
solana-keygen new
如果你没有安装,你将需要安装 Solana CLI 工具套件。你可以在 Solana 文档中获取更多信息,了解如何执行此操作: https://docs.solana.com/cli/install-solana-cli-tools
你绝对不应该与任何人分享你的私钥。
然后我们可以将这个钱包引入到我们的代码中:
代码
const sender=solanaWeb3.Keypair.fromSecretKey(new Uint8Array([61,23,....,60,49]));
你可以从上一步中创建的 JSON 文件系统钱包中复制你的私钥并使用它。
要发送交易,我们需要在我们的钱包中拥有一些 SOL。在 Solana 上,每笔交易都需要支付少量费用才能处理。
为了测试,我们将使用 Solana 的水龙头 为我们的钱包充值。前往 solfaucet.com 输入你刚刚创建的钱包的公共密钥并请求一些 SOL。
现在我们已经有了充值的钱包,我们可以创建一个交易。在这个例子中,我们将创建交易并向该交易添加转账指令。我们将使用这个指令将 0.1 SOL 转移到我们选择的钱包中。
交易可以根据你给出的指令执行许多操作,在这个例子中,我们将使用转账指令发送 SOL。
代码
// 设置发送地址
const receiver = new solanaWeb3.PublicKey("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY");
// 创建交易
const transaction = new solanaWeb3.Transaction().add(solanaWeb3.SystemProgram.transfer({
fromPubkey: sender.publicKey,toPubkey: receiver,
lamports: solanaWeb3.LAMPORTS_PER_SOL * 0.01,}),);
在上面的代码中,我们创建了一个新的 PublicKey 对象,使用了我们选择的钱包。创建交易时需要 PublicKey 对象,而不仅仅是地址。转账指令还需要三个参数:
fromPubkey
:发送者账户的公共密钥。toPubkey
:接收者账户的公共密钥。lamports
:要转移的 lamports(在 Solana 中的最小货币单位)的数量。solanaWeb3.LAMPORTS_PER_SOL
表示 1 SOL。一旦交易创建完成,我们需要对其签名并将其发送到网络。
Solana Web3 库有一个名为 sendAndConfirmTransaction()
的功能,可以让我们轻松完成所有操作。
sendAndConfirmTransaction
方法将交易发送到网络,等待确认,并返回交易的签名。
代码
// 签名并确认交易
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);
console.log('交易: ', signature);
sendAndConfirmTransaction
方法接受三个参数:
connection
:这是我们使用 Helius RPC 连接建立的 Solana 网络连接对象。该参数指定将通过哪个连接发送和确认交易。transaction
:这是我们刚刚创建的包含转账指令的交易对象。[sender]
:这是一个包含所有交易签名账户的数组。在这种情况下,它仅包含一个元素 sender
,表示签署和授权交易的账户。就是这样!
我们刚刚在 Solana 上使用 JavaScript 创建并发送了一笔交易。
你可以使用 node sendTransaction.js 来运行该脚本。
使用 JavaScript 在 Solana 上创建和发送交易是一个简单的过程,这要归功于 Solana 的全面 JavaScript 库。只需几行代码,我们就能够与 Solana 区块链进行交互,这为我们打开了无限的可能性。
这是一个基本示例,突出了创建和发送交易的结构和流程,真实应用可能涉及更复杂的交易并需要额外的安全措施。
我希望这份指南对你有所帮助。祝你编码愉快!
你可以在 这里 找到完整的代码。
- 原文链接: helius.dev/blog/how-to-c...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!