如何创建 Solana 交易
在本博客中,作为 Solana Dev 101 系列的一部分,我们将研究如何在 Solana 上使用 Javascript 创建和发送交易。这是一本适合初学者的指南,因此如果您是 Solana 或区块链技术的新手,请不要担心。

介绍
GM!在本博客中,作为 Solana Dev 101 系列的一部分,我们将研究如何在 Solana 上使用 Javascript 创建和发送交易。这是一本适合初学者的指南,因此如果您是 Solana 或区块链技术的新手,请不要担心。
如果您有任何疑问,请随时加入 Helius Discord或在 Twitter 上标记 Helius 寻求帮助。
先决条件
首先,我们需要在我们的机器上安装 Node.js 和 npm。如果需要,您可以在这里下载它们。
我们还需要安装 Solana web3.js 库,它是一套 JavaScript 工具和库,旨在与 Solana 区块链交互。您可以通过使用终端运行以下代码来使用 npm 安装它:
npm install @solana/web3.js
第 1 步:设置连接
首先,我们创建与 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',);
第 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 文件系统钱包中复制密钥并使用它。
第三步:为钱包注入资金
要发送交易,我们的钱包中需要有一些 SOL。 Solana 上的每笔交易都需要支付少量费用才能处理。出于测试目的,我们将使用Solana 的水龙头为我们的钱包提供资金。前往solfaucet.com并输入您刚刚创建的钱包中的公钥并请求一些 SOL。
第四步:创建交易
现在我们有了一个充值的钱包,我们可以创建交易了。在本例中,我们将创建交易并将转账指令添加到该交易中。我们将用它来将 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(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 区块链进行交互,这开启了一个充满可能性的世界。
这是一个基本示例,重点介绍了创建和发送交易的结构和流程,实际应用程序可能涉及更复杂的交易并需要额外的安全措施。
本文由SlerfTools翻译,转载请注明出处。
SlerfTools是专为Solana设计的工具箱,致力于简化区块链操作,提供无编程全可视化界面,使发币、管理流动性和无代码创建Dapp等复杂过程变得安全简单。