网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

如何在 web3 项目中实现 JSON-RPC API [eth_sendTransaction]?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

本文主要探讨了如何在 web3 项目中实现 JSON-RPC API [eth_sendTransaction]。具体做法是创建一个示例项目文件,该文件中包含两个按钮:一个是“连接到 MetaMask”,另一个是“发送 ETH”按钮,通过这两个按钮可以执行交易操作。

先决条件:对以太坊、JSON-RPC以及API的基本了解。

接近方式:

步骤1:请安装 Ganache 和 Metamask。

请访问此处,了解如何安装 Ganache 和 Metamask。同时,请确保已经在 MetaMask 中添加了 Ganache 本地链,如下图所示。随着文章的继续阅读,后续的操作步骤也会变得清晰起来。

Ganache本地连锁店

步骤2:使用 Metamask 来设置 Ganache

A.打开Ganache软件后,您将被重定向到如下图所示的界面。

甘纳奇界面

B.接下来,请打开您的MetaMask。现在,我们将学习如何将Ganache中的账户导入到Metamask中,然后还会学习如何通过API来连接这些账户。

C.请点击下图中的第一个账户密钥。

点击“按键”图标

D.你会看到自己的私钥以及账户地址。请复制该私钥,然后前往你的MetaMask应用程序中进行操作。

私钥

E.打开 Metamask 后,点击“导入账户”选项卡。此时,你会被重定向到需要输入特定账户的私钥的页面。你需要输入你想要导入的该账户的私钥。

进口账户粘贴私钥

F.请将复制好的私钥粘贴到[在这里输入您的私钥字符串]这一栏中,然后点击“导入”。这样,您的账户就会像图中所示那样被导入进来。(账户1已成功导入)

账户1:已导入的账户

G.同样地,试着导入另一个账户吧。

已经导入了两个账户。

H.通过这种方式,我们已经在 MetaMask 中导入了来自 Ganache 的两个账户。接下来,我们将使用这两个账户来完成我们的任务。

I.接下来,让我们进入编码部分。在这里,所有这些功能的实际实现工作将会进行。简而言之,可以说,这就是你在 Web3 项目中需要使用的部分。

步骤3:编码/实现部分。

在这里,我为了演示的目的而实现了一个简单的代码。这个代码是以HTML格式编写的。

HTML
<!DOCTYPE html><HTML =“en”><头部>    <元数据/元数据 字符集=“UTF-8”>    < http-equiv=“X-UA-兼容” 内容=“IE=edge”>    < 名称=“视口” 内容=“宽度=device宽度,初始缩放比例=1.0”>    <!--WEB3-CONNECT-->    <脚本/程序 类型/种类=“文本/JavaScript” src=https://cdnjs.cloudflare.com/ajax/libs/web3/1.2.7-rc.0/web3.min.js></脚本/程序>    <!--标题-->    <标题>JSON-RPC-API-TUTORIAL</标题></头部><身体 风格/样式=背景颜色:白色>            <除法 类别/等级=“donatebtn” 风格/样式=“margin-left:14cm; margin-top:5cm”>            <按钮 类别/等级=“按钮-27” onclick=“connectMetamask()” 角色/职责=“按钮”>CONNECT TO METAMASK</按钮>            <p id=“accountArea”></p>        </除法>        <除法 =“交易” 风格/样式=“margin-left:15cm; margin-top:1cm”>            <!--<input style="background-color:white; margin-left:13.8cm; margin-top:1cm" placeholder="输入金额" type="text" id="amount">-->            <按钮 onclick=“sendTransaction()” 风格/样式=“margin-top:1cm” id=“eth” 类别/类型=“button-86” 角色/作用=“按钮”>SEND ETH</按钮>        </除法>        <!--METAMASK连接-->        <脚本/程序>//连接MetaMask让/允许账户;常量连接 Metamask=异步()=>{if(窗口.以太坊!==“未定义”){const账户=等待以太坊.请求/要求({方法/方式:“eth_requestAccounts”});账户=账户[0];文件/文档.通过ID获取元素(“accountArea”).innerHTML=账户;}}</脚本/程序>        <!--JSON-RPC API [eth_sendTransaction] 连接-->        <脚本/程序>异步功能/作用发送交易信息{参数=[{“来自”:0x5ac5b8D9Efb99b49176eBfcB1A78f8F85FcB0967,“为了”:0xFb30D953a3fE1298df870C390Cf75A506091C607,“气体”:数字(21000).转换为字符串(16),“gasPrice”:数字(2500000).转换为字符串(16),“价值”:数字(1000000000000000000).转换为字符串(16),}]结果=等待窗口.以太坊.请求/要求({方法/方式:“eth_sendTransaction”,参数}).捕捉((错误/失误)=>{控制台.日志/记录(错误/失误)})}</脚本/程序>             </身体></HTML>


以下是来自示例项目代码中的一些重要参数:

连接Web3:请确保您已经将这段脚本放在了头部标签之间。

<!--WEB3-CONNECT-->

<script type="text/javascript"> { src: "https://cdnjs.cloudflare.com/ajax/libs/web3/1.2.7-rc.0/web3.min.js";}</script>

MetaMask连接:使用此脚本,可以将您的 MetaMask 账户与特定的网页账户连接起来。

<!--METAMASK连接-->

<script>

//连接Metamask

请考虑一下吧。

const connectMetamask = async function() => {

如果 window.ethereum 不等于 “undefined”,那么……

const accounts = await ethereum.request({ method: "eth_requestAccounts" });

account = accounts[0];

document.getElementById("accountArea").innerHTML = account;

                }

            }

</script>

JSON-RPC API [eth_sendTransaction] 的连接状态:这部分就是我们将在 Web3 项目中实现 JSON-RPC API [eth_sendTransaction] 的接口部分。这是最重要的部分。只需将下面提供的脚本粘贴到这里即可。

在下面的代码中,有两个函数:“from”和“to”。请输入这两个账户的地址,这些账户已经被导入到我们的MetaMask中。让我们看看如何实现这一点。

  1. 请按照图中所示的方式复制地址。 (复制地址) 然后将其粘贴到代码中,就像图中所示那样。 (粘贴地址)
  2. 同样地,另一个账户的情况也显示在图中(请复制第2个账户的代码)。
复制地址粘贴地址将代码粘贴到第二个账户中。

<!--JSON-RPC API [eth_sendTransaction] 连接-->

<script>

异步函数 sendTransaction(){}

让 params = [

                {

“from”: “0x5ac5b8D9Efb99b49176eBfcB1A78f8F85FcB0967”

“to”: “0xFb30D953a3fE1298df870C390Cf75A506091C607”

“gas”:Number(21000).toString(16),

“gasPrice”:Number(2500000).toString(16)

“value”:Number(1000000000000000000).toString(16)。

                }

              ]

let result = await window.ethereum.request({method: "eth_sendTransaction", params}).catch((err) => {

console.log(err)

               })

            }

</script>

这些都是一些重要的参数,如果你希望在web3项目中实现JSON-RPC API [eth_sendTransaction],那么就必须将这些参数包含在你的项目文件中。

我们示例项目的完整代码已经如上所示实现。该代码的输出结果如下所示。

输出结果:

1.点击“连接到MetaMask”按钮后,我们的ETH账户就会与用于进行所有交易的网页连接在一起。当您点击“连接到MetaMask”按钮时,会弹出一个MetaMask的窗口。

2.现在,请选择您想要连接的账户。在这里,选择了PERSON 1的账户。之后,点击“下一步”继续操作。请参见图示。

3.点击“连接”按钮。

4. 一旦您点击“连接”按钮,您的账户就会与特定的网页相连,此时,您的账户地址就会像图中所示那样被显示出来。

5. 点击“SEND ETH”按钮,即可发送您的ETH货币。此时,又会弹出一个与MetaMask相关的窗口,您可以在其中查看从“PERSON 1”到“PERSON 2”之间的交易详细信息。确认输入的信息是否正确后,再点击“确认”按钮即可。

交易1

6.该交易已成功在区块链网络上得到确认。

交易已确认

7. 可以看出,ETH金额已经从PERSON 1的账户中扣除,然后被反映到了PERSON 2的账户中。

8. 请查看PERSON 1的账户交易记录,了解所进行的交易的详细证据。

9. 此外,您还可以在GANACHE上查看相关的交易记录与详细信息。具体操作步骤如下:

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料