GTokenTool全网最好的代币发行工具平台

当前位置:首页 >> 加密百科 >> 如何使用 RPC 节点获取钱包交易

如何使用 RPC 节点获取钱包交易

admin 加密百科 398

介绍 Moralis 的下一代 RPC 节点 – 获取钱包交易的最简单方法

Moralis 是业界领先的下一代 RPC 节点提供商。借助我们直观的用户界面,您只需单击一下即可访问所有主要链的节点。因此,无论您在哪个网络上构建,我们都能满足您的需求。

Moralis RPC 节点。

但是什么使得我们的节点如此独特呢?

  • 速度:我们的 RPC 节点设定了速度基准,响应时间低至 70 毫秒。

  • 可靠性:正常运行时间高达 99.9%,您可以信赖我们的节点基础设施。

  • 扩展 RPC 方法: Moralis 的扩展 RPC 方法增强了我们的节点产品,允许您通过 RPC 样式的请求查询解码的、人类可读的数据。

现在,让我们更深入地了解我们的扩展 RPC 方法,它使您能够使用 RPC 节点无缝获取钱包交易! 

扩展的 RPC 方法

Moralis 的扩展 RPC 方法使使用 RPC 节点获取解码的、人类可读的数据变得轻而易举。只需一次调用,您就可以轻松获得钱包交易、NFT、代币价格、元数据等。因此,当使用 Moralis 和我们的扩展 RPC 方法时,您可以显著简化开发人员的体验。 

文本:“扩展的 RPC 方法”

您可以使用我们的扩展 RPC 方法获取哪些数据?

  • eth_getTransactions:获取钱包的原生交易。 

  • eth_getDecodedTransactions:查询钱包的完整交易历史记录。 

  • eth_getTokenBalances:检索钱包的 ERC-20 余额。 

  • eth_getTokenMetadata:获取任意 ERC-20 代币的元数据。

  • eth_getTokenPrice:了解任何 ERC-20 代币的价格。

  • eth_getNFTBalances:获取任意钱包的 NFT 余额。

  • eth_getNFTCollections:获取钱包持有的 NFT 收藏。 

总之,通过我们的扩展 RPC 方法,您可以通过 RPC 样式的请求无缝地获取我们的 API 提供的相同解码、人类可读的数据。

eth_getTransactions– 使用 RPC 节点通过一次请求获取钱包交易

使用该eth_getTransactions方法,您现在只需一个 RPC 请求即可无缝获取任何钱包的原生交易历史记录。每笔交易还包含大量附加数据,包括时间戳、gas 价格、地址标签等。因此,使用eth_getTransactions端点时,您只需一次调用即可获得解码后的数据。 

与 RPC 节点连接的钱包。

但这是如何工作的?实际响应是什么样的?如果您正在寻找这些问题的答案,请加入我们的下一节,我们将向您展示如何通过三个简单的步骤使用 RPC 节点获取钱包交易。 

教程:如何使用 RPC 节点获取钱包交易

使用我们的扩展 RPC 方法和eth_getTransactions端点,您可以通过三个简单的步骤使用 RPC 节点获取钱包交易: 

  1. 注册 Moralis 并获取节点 URL。

  2. 编写一个调用的脚本eth_getTransactions。 

  3. 运行代码。 

但在我们深入学习本教程之前,您需要满足一些先决条件。 

先决条件

继续操作之前请确保您已准备好以下内容:

  • Node.js v14+

  • npm/yarn

步骤 1:注册 Moralis 并获取节点 URL

点击右上角的“免费开始”按钮并注册Moralis: 

指向 Moralis 网站上的“免费开始”按钮的箭头。

登录后,导航到“节点”选项卡,然后单击“+ 创建节点”: 

指向“节点”选项卡和“+ 创建节点”按钮的红色箭头

选择“以太坊”,然后选择“主网”,然后单击“创建节点”: 

突出显示以太坊节点的配置。

复制并保存其中一个节点 URL,因为下一步您将需要它: 

指向 RPC 节点的复制按钮的箭头。

第 2 步:编写脚本调用eth_getTransactions

启动你的 IDE,设置一个文件夹,打开一个新终端,并使用以下命令初始化一个项目:

npm init

使用以下命令安装所需的依赖项: 

npm 安装 node-fetch--save
npm 安装 moralis@moralisweb3/common-evm-utils

打开您的“package.json”文件并添加”type”: ”module”到列表中: 

“type”:“module”在代码编辑器中突出显示。

创建一个”index.js”文件并添加以下代码: 

从‘node-fetch’导入fetch ;
const选项 = {
方法:'POST' ,
标题:{
  接受:'application/json' ,
  ‘内容类型’ :‘应用程序/json’
} ,
主体:JSON.stringify ({
  “jsonrpc” :“2.0” ,
  “ID” :1 ,
  “方法” :“eth_getTransactions” ,
  “参数” :[
    {
      “地址” :“0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045” ,
      “限制” :100 ,
    }
  ]
} )
} ;
获取('YOUR_NODE_URL' ,选项)
.then (响应= >响应.json ())
.then (响应= >控制台.log (响应))
.catch ( err = > console . error ( err ) ) ;

接下来,您需要稍微修改代码。将其替换YOUR_NODE_URL为您在第一步中复制的节点 URL。此外,配置address参数以使其适合您的请求: 

指向 YOUR_NODE_URL 和代码编辑器中的地址的箭头。

步骤 3:运行代码

打开一个新终端并在项目的根文件夹中运行此命令: 

节点索引.js

作为回报,您将获得钱包过去原生交易的列表,其中包含时间戳、gas 价格、地址标签以及每个事件的更多数据。以下是示例响应: 

{
 //...
   结果:[
     {
       哈希:'0xd89b02f289a08ae7b2feead06031fec20777bad8b73fc8d853f9040bc423a6c7' ,
       随机数:' 0 ' ,
       交易索引:' 142 ' ,
       发件人地址:'0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f' ,
       发件人地址标签:'' ,
       收件人地址:'0xdac17f958d2ee523a2206206994597c13d831ec7' ,
       to_address_label : 'Tether USD (USDT )' ,
       值:' 0 ' ,
       气体:' 207128 ' ,
       汽油价格:' 17020913648 ' ,
       输入:'0xa9059cbb000000000000000000000000028c6c06298d514db089934071355e5743bf21d600000000000000000000000000000000000000000000000000000000017a1df1700' ,
       收据累计使用气体量:' 8270587 ' ,
       收据气体使用量:' 41309 ' ,
       收据合同地址: null ,
       收据根: null ,
       收据状态:' 1 ' ,
       block_timestamp :' 2023-01-22T15 :00 :11.000 Z ' ,
       区块编号:' 16463098 ' ,
       块哈希:'0x2439330d0a282f9a6464b0aceb9f766ac4d7b050c048b4a1322b48544c61e01d' ,
       交易费用:' 0.000703116921885232 '
     } ,
     //...
   ]
 }
}

就是这样;使用 Moralis 时,使用 RPC 节点获取钱包交易很容易! 

钱包交易数据的用例

现在您已经知道如何使用 RPC 节点无缝获取钱包交易,让我们来探索这些数据的一些主要用例。以下是三个主要示例:

  • 加密货币钱包:钱包需要访问交易以显示过去的转账,为用户提供其历史活动的清晰概览。

  • 投资组合追踪器:投资组合追踪器必须访问过去的转移,才能准确追踪用户资产的表现。

  • 税务平台:税务平台需要全面了解用户过去的交易活动,以生成准确的税务报告。

钱包周围都是代币。

请注意,这些只是几个示例——钱包交易数据对于大多数 dapp 来说都至关重要!

除了如何使用 RPC 节点获取钱包交易之外——深入了解 Moralis 的扩展 RPC 方法

现在您已经知道如何使用 RPC 节点获取钱包交易,我们将更深入地了解其他扩展 RPC 方法。更具体地说,我们将探讨以下三个: 

  • eth_getTokenBalances

  • eth_getDecodedTransactions

  • eth_getTokenPrice

那么,让我们开始吧eth_getTokenBalances! 

eth_getTokenBalances

使用我们的eth_getTokenBalances方法,您可以使用 RPC 节点无缝获取 ERC-20 代币余额。您无需发出多个 RPC 请求并自行拼凑数据,只需一次调用即可。以下是实际方法:

从‘node-fetch’导入fetch ;
const选项 = {
方法:'POST' ,
标题:{
  接受:'application/json' ,
  ‘内容类型’ :‘应用程序/json’
} ,
主体:JSON.stringify ({
  “jsonrpc” :“2.0” ,
  “ID” :1 ,
  “方法” :“eth_getTokenBalances” ,
  “参数” :[
    {
      “地址” :“0xcB1C1FdE09f811B294172696404e88E658659905” ,
    }
  ]
} )
} ;
获取('YOUR_NODE_URL' ,选项)
.then (响应= >响应.json ())
.then (响应= >控制台.log (响应))
.catch ( err = > console . error ( err ) ) ;

调用该eth_getTokenBalances方法后,您将收到指定钱包的 ERC-20 代币余额。此外,所有代币都带有徽标、小数、缩略图、垃圾邮件指示器等。以下是示例响应:

{
 //...
 结果:[
   {
     令牌地址:'0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' ,
     名称:'包裹以太' ,
     符号:'WETH' ,
     小数:18 ,
     徽标:'https ://logo.moralis.io/0x1_0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2_a578c5277503e547a072ae32517254ca' ,
     缩略图:'https ://logo.moralis.io/0x1_0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2_a578c5277503e547a072ae32517254ca' ,
     余额:' 10000000000000000 ' ,
     可能的垃圾邮件:false ,
     已验证合同:true ,
     总供应量:' 2746607222348759943423350 ' ,
     总供应量格式:' 2746607.22234875994342335 ' ,
     占总供应量的百分比:3.64085549569e-7
   } ,
   //...
 ]
}

eth_getDecodedTransactions

使用该eth_getDecodedTransactions方法,您可以毫不费力地使用 RPC 节点获取解码的钱包历史记录。无需发出多个请求、自己汇总数据或解码信息。使用 Moralis 时,只需一次调用即可获得所需的所有数据。以下是如何调用端点的示例eth_getDecodedTransactions:

从‘node-fetch’导入fetch ;
const选项 = {
方法:'POST' ,
标题:{
  接受:'application/json' ,
  ‘内容类型’ :‘应用程序/json’
} ,
主体:JSON.stringify ({
  “jsonrpc” :“2.0” ,
  “ID” :1 ,
  “方法” :“eth_getDecodedTransactions” ,
  “参数” :[
    {
      “地址” :“0xda74Ac6b69Ff4f1B6796cdDf61fBDd4A5f68525f” ,
    }
  ]
} )
} ;
获取('YOUR_NODE_URL' ,选项)
.then (响应= >响应.json ())
.then (响应= >控制台.log (响应))
.catch ( err = > console . error ( err ) ) ;

调用 后eth_getDecodedTransactions,您将收到指定钱包的完整历史记录,其中包含自动类别标签、事件摘要、地址标签等。以下是响应的示例:

{
 //...
   “结果”:[
     {
       “区块哈希”:“0x660274d577cd20b0b82c1bff5f3c5641ba6027544e005f9256d5add9c7447920” ,
       “区块编号”:“19868695” ,
       “block_timestamp”:“2024-05-14T14:00:23.000Z” ,
       “来自地址”:“0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f” ,
       “from_address_label”:null ,
       “from_address_entity”:null ,
       “from_address_entity_logo”:null ,
       “to_address”:“0xdac17f958d2ee523a2206206994597c13d831ec7” ,
       "to_address_label": "泰达币 (USDT)" ,
       “to_address_entity”:null ,
       "to_address_entity_logo": null ,
       “气体”:“55331” ,
       “gas_price”:“13623172301” ,
       “哈希”:“0xc565260238f59fc3f35b74f3011375c7d637db9b075f77d342c30d19f946272e” ,
       “随机数”:“14” ,
       “receipt_cumulative_gas_used”:“13917979” ,
       “receipt_gas_used”:“41309” ,
       "receipt_status": "1" ,
       “交易费用”:“0.000562759624582009” ,
       “交易索引”:“75” ,
       “值”:“0” ,
       “receipt_contract_address”:空,
       "nft_transfers": [ ]复制代码
       “erc20_transfers”:[
         {
           “token_name”:“Tether USD” ,
           “token_symbol”:“USDT” ,
           “token_logo”:“https://logo.moralis.io/0x1_0xdac17f958d2ee523a2206206994597c13d831ec7_3282f332c2ac2948929f01fe7d921c51” ,
           “token_decimals”:“6” ,
           “来自地址”:“0xda74ac6b69ff4f1b6796cddf61fbdd4a5f68525f” ,
           “from_address_entity”:null ,
           “from_address_entity_logo”:null ,
           “from_address_label”:null ,
           “to_address”:“0x28c6c06298d514db089934071355e5743bf21d60” ,
           "to_address_label": "币安14" ,
           "to_address_entity": "币安" ,
           “to_address_entity_logo”:“https://entities-logos.s3.us-east-1.amazonaws.com/binance.png” ,
           “地址”:“0xdac17f958d2ee523a2206206994597c13d831ec7” ,
           “日志索引”:338 ,
           “值”:“50000000000” ,
           “possible_spam”:false ,
           “verified_contract”:true ,
           “方向”:“发送” ,
           “值格式”:“50000”
         }
       ] ,
       "method_label": "转移" ,
       "native_transfers": [ ] ,
       “summary”:“已向币安14发送50,000 USDT” ,
       “possible_spam”:false ,
       “类别”:“令牌发送”
     } ,
     //...
   }
 ]
}

eth_getTokenPrice

该eth_getTokenPrice方法允许您使用 RPC 样式的请求无缝检索任何代币的价格。这样就无需在将价格数据集成到 dapp 时让第三方 API 提供商参与。以下是该方法的eth_getTokenPrice实际应用:

从‘node-fetch’导入fetch ;
const选项 = {
方法:'POST' ,
标题:{
  接受:'application/json' ,
  ‘内容类型’ :‘应用程序/json’
} ,
主体:JSON.stringify ({
  “jsonrpc” :“2.0” ,
  “ID” :1 ,
  “方法” :“eth_getTokenPrice” ,
  “参数” :[
    {
      “地址” :“0xdAC17F958D2ee523a2206206994597C13D831ec7” ,
      “包括” :“百分比变化”
    }
  ]
} )
} ;
获取('YOUR_NODE_URL',选项)
.then (响应= >响应.json ())
.then (响应= >控制台.log (响应))
.catch ( err = > console . error ( err ) ) ;

运行上述脚本后,您将收到指定代币的美元和原生价格。此外,响应还包含代币徽标、价格随时间的变化、垃圾邮件指标等。它可能如下所示:

{
 //...
 结果:{
   代币名称: 'Tether USD' ,
   代币符号: 'USDT' ,
   令牌标志:'https : //logo.moralis.io/0x1_0xdac17f958d2ee523a2206206994597c13d831ec7_3282f332c2ac2948929f01fe7d921c51' ,
   标记小数点后的数字:' 6 ' ,
   本地价格:{
     值:' 375760131462618 ' ,
     小数:18 ,
     名称:'Ether' ,
     符号:'ETH' ,
     地址:'0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
   } ,
   美元价格:1.0000402502911871 ,
   美元价格格式:' 1.000040250291187229 ' ,
   ‘24 小时百分比变化’ :‘ -0.04543241491797881 ’ ,
   交易所名称: 'Uniswap v3' ,
   交易所地址:'0x1F98431c8aD98523631AE4a59f267346ea31F984' ,
   令牌地址:'0xdac17f958d2ee523a2206206994597c13d831ec7' ,
   价格最后更改时间:' 20534105 ' ,
   可能的垃圾邮件:false ,
   已验证合同:true ,
   对地址:'0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b' ,
   对总流动性美元:' 7148031.13 '
 }
}

    如有不明白或者不清楚的地方,请加入官方电报群:https://t.me/gtokentool
    协助本站SEO优化一下,谢谢!
    关键词不能为空
    同类推荐
    请先 登录 再评论,若不是会员请先 注册!