Solana 开发入门 101 - 如何创建一个 Solana 交易

  • Helius
  • 发布于 2023-06-21 11:29
  • 阅读 7

本文是一个针对初学者的指导,详细介绍了如何使用 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

步骤 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 文件系统钱包中复制你的私钥并使用它。

步骤 3:为钱包充值

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

为了测试,我们将使用 Solana 的水龙头 为我们的钱包充值。前往 solfaucet.com 输入你刚刚创建的钱包的公共密钥并请求一些 SOL。

步骤 4:创建交易

现在我们已经有了充值的钱包,我们可以创建一个交易。在这个例子中,我们将创建交易并向该交易添加转账指令。我们将使用这个指令将 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 对象,而不仅仅是地址。转账指令还需要三个参数:

  1. fromPubkey:发送者账户的公共密钥。
  2. toPubkey:接收者账户的公共密钥。
  3. lamports:要转移的 lamports(在 Solana 中的最小货币单位)的数量。solanaWeb3.LAMPORTS_PER_SOL 表示 1 SOL。

步骤 5:签名和发送交易

一旦交易创建完成,我们需要对其签名并将其发送到网络。

Solana Web3 库有一个名为 sendAndConfirmTransaction() 的功能,可以让我们轻松完成所有操作。

sendAndConfirmTransaction 方法将交易发送到网络,等待确认,并返回交易的签名。

代码

// 签名并确认交易
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);
console.log('交易: ', signature);

sendAndConfirmTransaction 方法接受三个参数:

  1. connection:这是我们使用 Helius RPC 连接建立的 Solana 网络连接对象。该参数指定将通过哪个连接发送和确认交易。
  2. transaction:这是我们刚刚创建的包含转账指令的交易对象。
  3. [sender]:这是一个包含所有交易签名账户的数组。在这种情况下,它仅包含一个元素 sender,表示签署和授权交易的账户。

就是这样!

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

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

结论

使用 JavaScript 在 Solana 上创建和发送交易是一个简单的过程,这要归功于 Solana 的全面 JavaScript 库。只需几行代码,我们就能够与 Solana 区块链进行交互,这为我们打开了无限的可能性。

这是一个基本示例,突出了创建和发送交易的结构和流程,真实应用可能涉及更复杂的交易并需要额外的安全措施。

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

你可以在 这里 找到完整的代码。

资源

  • 原文链接: helius.dev/blog/how-to-c...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Helius
Helius
https://www.helius.dev/