新消息:Helius 收购 Light Protocol
如何创建 Solana 交易
博客/开发

Solana 开发入门 101:如何创建 Solana 交易

开发者体验工程师X 上的 Owen VenterLinkedIn 上的 Owen Venter
阅读需 5 分钟

简介

GM!在 Solana 开发入门 101 系列的这篇博客中,我们将介绍如何在 Solana 上使用 JavaScript 创建并发送交易。本指南对新手友好,即使你刚接触 Solana 或区块链技术也不用担心。

如果你有任何问题,欢迎加入 Helius Discord,或在 X 上提及 Helius 寻求帮助。‍

前置条件

开始之前,需要在计算机上安装 Node.js 和 npm。如有需要,可在此处下载。

我们还需要安装 Solana web3.js 库。这是一套用于与 Solana 区块链交互的 JavaScript 工具和库。

你可以在终端中使用 npm 运行以下代码进行安装:

代码
npm install @solana/web3.js

‍第 1 步:设置连接

首先,创建一个与 Solana 集群的连接。我们将使用 Helius 连接到 Devnet 集群。你需要创建 Helius 账户和 API key,这两项都可以在控制面板中免费完成。

代码
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);

第 2 步:创建新钱包

现在,我们需要一个用于发送交易的钱包。钱包就是一对公钥和私钥,很容易创建。公钥就是你的钱包地址,私钥则用于签署交易。你可以在此进一步了解公钥密码学。

我们可以创建一个新的文件系统钱包,其密钥对会存储在你的本地计算机上。如果你已经安装 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 文件系统钱包中复制私钥并使用它。

第 3 步:为钱包充值

要发送交易,钱包中需要有一些 SOL。Solana 上的每笔交易都需要支付少量处理费。

为了进行测试,我们将使用 Devnet 水龙头为钱包充值。你可以使用控制面板中的 Helius 水龙头,也可以按照说明通过 CLI 请求 Devnet SOL。输入刚刚创建的钱包的公钥,然后请求一些 SOL。

第 4 步:创建交易

钱包中有资金后,就可以创建交易了。在这个示例中,我们将创建一笔交易,并为其添加转账指令。我们将使用它向任意指定的钱包转账 0.1 SOL。

根据所提供的指令,一笔交易可以执行多种操作。在这个示例中,我们将使用转账指令发送 SOL。

代码
// Set up the address to send to
const receiver = new solanaWeb3.PublicKey("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY");

// Create a transaction    
const transaction = new solanaWeb3.Transaction().add(solanaWeb3.SystemProgram.transfer({
fromPubkey: sender.publicKey,toPubkey: receiver,
lamports: solanaWeb3.LAMPORTS_PER_SOL * 0.01,}),);

‍在上面的代码中,我们使用指定的钱包创建了一个新的 PublicKey 对象。创建交易时需要使用 PublicKey 对象,而不能只使用地址。转账指令还接收 3 个参数:

  1. fromPubkey:发送方账户的公钥。
  2. toPubkey:接收方账户的公钥。
  3. lamports:要转账的 lamports 数量,lamport 是 Solana 的最小货币单位。solanaWeb3.LAMPORTS_PER_SOL 表示 1 SOL。

第 5 步:签署并发送交易

创建交易后,我们需要签署该交易并将其发送到网络。

Solana Web3 库提供了一个名为 sendAndConfirmTransaction() 的函数,让我们可以轻松完成这些操作。

sendAndConfirmTransaction 方法会将交易发送到网络、等待确认,然后返回该交易的签名。

代码
// Sign and confirm the transaction      
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);      
console.log('Transaction: ', signature);

sendAndConfrimTransaction 方法接收三个参数:

  1. connection:这是我们通过 Helius RPC 连接创建的 Solana 网络连接对象。此参数指定用于发送和确认交易的连接。
  2. transaction:这是我们刚刚创建的交易对象,其中包含转账指令。
  3. [sender]:这是一个包含该交易所有签名账户的数组。在本例中,它只包含一个元素 sender,表示签署并授权该交易的账户。

大功告成!

我们刚刚使用 JavaScript 在 Solana 上创建并发送了一笔交易。

你可以使用 node sendTransaction.js 运行脚本。

总结

得益于 Solana 完善的 JavaScript 库,使用 JavaScript 在 Solana 上创建并发送交易非常简单。只需几行代码,我们就能与 Solana 区块链交互,从而开启无限可能。

这是一个基础示例,重点展示了创建和发送交易的结构与流程。实际应用可能涉及更复杂的交易,并需要采取额外的安全措施。

希望本指南对你有所帮助。祝编码愉快!

你可以在此处查看完整代码。

资源

‍

订阅 Helius

及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新