GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> 加密百科 >> 如何使用 RPC 节点获取钱包交易

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

admin 加密百科 53

介绍 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 '
 }
}

    作者:GTokenTool一键发币平台

    交流群:https://t.me/+Kz4u3xoDpFo3ZWY1

    同类推荐