
Solana 开发入门 101:如何创建 Solana 交易
简介
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 个参数:
fromPubkey:发送方账户的公钥。toPubkey:接收方账户的公钥。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 方法接收三个参数:
connection:这是我们通过 Helius RPC 连接创建的 Solana 网络连接对象。此参数指定用于发送和确认交易的连接。transaction:这是我们刚刚创建的交易对象,其中包含转账指令。[sender]:这是一个包含该交易所有签名账户的数组。在本例中,它只包含一个元素sender,表示签署并授权该交易的账户。
大功告成!
我们刚刚使用 JavaScript 在 Solana 上创建并发送了一笔交易。
你可以使用 node sendTransaction.js 运行脚本。
总结
得益于 Solana 完善的 JavaScript 库,使用 JavaScript 在 Solana 上创建并发送交易非常简单。只需几行代码,我们就能与 Solana 区块链交互,从而开启无限可能。
这是一个基础示例,重点展示了创建和发送交易的结构与流程。实际应用可能涉及更复杂的交易,并需要采取额外的安全措施。
希望本指南对你有所帮助。祝编码愉快!
你可以在此处查看完整代码。
资源
相关文章
订阅 Helius
及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新


