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

如何使用 RPC 节点获取代币价格

admin 加密百科 56

什么是 RPC 方法?

RPC 是“远程过程调用”的缩写,是指允许一个软件系统调用和请求其他设备上的软件服务的通信协议。在区块链领域,RPC 协议使 dapp 能够与以太坊、Optimism 和 Base 等区块链网络进行交互。

文本:“什么是 RPC 方法?”

有多种标准化的 RPC 协议,其中 JSON-RPC 就是一个突出的例子。它具有许多预定义的 RPC 方法,例如eth_getProof,可简化区块链交互。这些 RPC 方法使无缝读取和写入链上数据成为可能。

以下是一些突出的方法:

  • eth_getTransactionByHash通过哈希返回有关交易的数据。

  • eth_getChainId返回当前链ID。

  • eth_gasPrice返回当前的 gas 价格。

  • eth_getBalance返回地址的余额。

  • eth_getBlockNumber返回最近的区块编号。

然而,虽然标准 RPC 方法简化了区块链交互,但它们也有一些你应该考虑的重大限制。例如,它们不能直接提供代币价格。要获取这些数据,你需要发出多个请求,甚至需要第三方提供商的参与。

为了解决这个问题并提供更加无缝的开发人员体验,我们推出了下一代 RPC 节点!

介绍 Moralis 的下一代 RPC 节点 – 获取代币价格的最简单方法

Moralis 是一家知名的 RPC 节点提供商,为您提供下一代节点,以简化您的开发人员体验。借助我们直观的点击界面,您可以轻松地为所有主要链设置 RPC 节点,包括以太坊、Optimism、Base、Polygon、BNB 智能链 (BSC) 等。 

Moralis 的 RPC 节点。

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

  • 速度:我们设定了行业速度基准,响应时间为 70 毫秒。 

  • 可靠性: Moralis 的节点拥有令人印象深刻的 99.9% 的正常运行时间,确保您毫无困难地获得所需的所有数据。 

  • 扩展的 RPC 方法:使用我们的扩展 RPC 方法,您可以通过 RPC 样式的请求轻松查询解码的、人类可读的数据。 

体验具有闪电般快速的响应时间、无与伦比的可靠性和强大的扩展 RPC 方法的下一代 RPC 节点! 

扩展的 RPC 方法

借助 Moralis 的扩展 RPC 方法,您现在可以通过 RPC 样式的请求无缝获取已解码的、人类可读的数据。只需一次调用,您就可以获取 NFT 余额、ERC-20 余额、已解码的钱包历史记录、元数据、代币价格等等。因此,使用 Moralis 时,您可以简化开发人员体验并更快、更高效地构建 dapp。 

Moralis 的扩展 RPC 方法。

以下是所有可用的方法: 

  • eth_getTokenPrice获取任何 ERC-20 代币的价格。

  • eth_getNFTBalances获取钱包的 NFT 余额。

  • eth_getNFTCollections获取钱包持有的所有收藏品。

  • eth_getTransactions查询钱包的原生交易。 

  • eth_getDecodedTransactions获取钱包的完整交易历史记录。

  • eth_getTokenBalances查询钱包的ERC-20余额。

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

总之,上述方法让您可以通过 RPC 风格的请求无缝访问已解码的、人类可读的数据。 

eth_getTokenPrice– 通过一次 RPC 调用获取代币价格

使用我们的eth_getTokenPrice方法,您现在可以轻松无缝地获取代币价格。您只需一个 RPC 请求,即可收到以链的原生加密货币和美元计价的任何代币的价格。因此,使用 RPC 节点获取代币价格从未像与 Moralis 合作时那样容易。 

带有代币价格图表的以太坊徽标。

但是该方法如何eth_getTokenPrice工作?响应究竟是什么样的?如果您正在寻找这些问题的答案,请继续阅读,我们将指导您完成一个全面的教程,了解如何通过三个简单的步骤使用 RPC 节点获取代币价格! 

三步教程:如何使用 RPC 节点获取代币价格

现在我们将向您展示如何使用 RPC 节点获取代币价格。得益于我们扩展的 RPC 方法的可访问性,您可以通过三个简单的步骤获取这些数据:

  1. 注册 Moralis 并设置节点

  2. 编写脚本调用eth_getTokenPrice

  3. 运行代码

然而,在继续之前,您需要满足一些先决条件! 

先决条件

如果尚未准备好,请确保在继续之前已准备好以下内容: 

  • Node.js v14+

  • npm/yarn

步骤 1:注册 Moralis 并设置节点

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

指向右上角“免费开始”的箭头。

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

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

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

节点配置。

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

红色箭头指向以太坊节点 URL 的复制按钮。

第 2 步:编写脚本调用eth_getTokenPrice

在您喜欢的 IDE 中设置一个新文件夹,并使用以下终端命令初始化一个项目: 

npm init

通过在终端中运行以下命令来安装所需的依赖项: 

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

添加”type”: ”module”到您的”package.json”文件: 

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

新建”index.js”文件并添加以下代码:

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

替换YOUR_NODE_URL为初始步骤中复制的 URL,并调整address参数以适合您的查询: 

代码配置。

步骤 3:运行代码

在项目的根文件夹中运行下面的终端命令来执行脚本: 

节点索引.js

作为回报,您将获得以链的本币和美元计价的指定代币的价格。此外,响应还包含代币徽标、符号、价格随时间的变化等内容。以下是它可能的样子: 

{
 jsonrpc ' 2.0 '
 ID 1
 结果{
   tokenName : 'USD Coin' ,
   代币符号: 'USDC' ,
   令牌标志'https : //logo.moralis.io/0x1_0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48_032b6f94fd2bd5af6c065def140109e9'
   标记小数点后的数字' 6 '
   本地价格{
     值' 399015837290761 '
     小数18
     名称'Ether'
     符号'ETH'
     地址'0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
   }
   美元价格0.9998033934658264
   美元价格格式' 0.999803393465826414 '
   ‘24 小时百分比变化’ -0.023636130935194257
   交易所名称: 'Uniswap v3' ,
   交易所地址'0x1F98431c8aD98523631AE4a59f267346ea31F984'
   令牌地址'0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
   价格最后更改时间' 20669844 '
   可能的垃圾邮件false
   已验证合同true
   对地址'0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'
   对总流动性美元' 165658281.27 '
 }
}

就是这样;您现在知道如何使用 RPC 节点获取代币价格! 

代币价格的使用案例

代币价格在各种 dapp 中都有使用。以下是三个突出的例子:

  • Web3 钱包:Web3 钱包通常允许用户买卖加密货币。因此,为了提供无缝体验,这些平台需要访问并显示准确的代币价格。

  • 投资组合追踪器:投资组合追踪器为用户提供其数字资产的概览。为了准确呈现业绩,他们需要了解当前的加密货币价格。

  • 税务平台:税务平台需要了解历史和当前的代币价格才能生成准确的税务报告。

代币价格用例。

这些只是几个例子。代币价格数据对于构建去中心化交易所 (DEX)、代币分析平台等也至关重要。

除了如何使用 RPC 节点获取代币价格之外,还深入研究其他扩展的 RPC 方法

现在您已经知道如何使用节点获取代币价格,让我们来探索其他一些扩展 RPC 方法。更具体地说,我们将仔细研究以下三个方法: 

  1. eth_getTransactions

  2. eth_getTokenBalances

  3. eth_getNFTBalances

eth_getTransactions

借助,您现在可以使用 RPC 节点eth_getTransactions无缝获取钱包交易。事实上,您只需一个 RPC 请求即可获取指定钱包的完整原生交易历史记录。以下是它可能的样子: 

从‘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 ) ) ;

运行上述代码后,您将获得指定钱包过去原生交易的列表。此外,每笔交易都包含地址标签、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 '
     }
     //...
   ]
 }
}

eth_getTokenBalances

使用我们的eth_getTokenBalances端点,您可以使用 RPC 节点轻松获取 ERC-20 代币余额。您只需一次调用即可。以下示例向您展示了此方法在实践中的工作原理: 

从‘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 ) ) ;

作为调用上述端点的回报,您将获得指定钱包的 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_getNFTBalances

使用该方法,您只需一次 RPC 调用eth_getNFTBalances即可轻松获取 NFT 余额。轻松获取并将 NFT 余额集成到您的 dapp 中。以下是展示其工作原理的示例脚本: 

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

作为调用端点的回报eth_getNFTBalances,您将获得指定钱包的 NFT 余额。此外,响应还包含地址、收集数据、元数据等: 

{
 jsonrpc ' 2.0 '
 ID 1
 结果{
   //...
   结果[
         {
     数量' 1 '
     token_id ' 1919 '
     令牌地址'0xbd3531da5cf5857e7cfaa92426877b022e612cf8'
     合约类型'ERC721'
     所有者'0xdc597929101c2de50c97d43c8ea3a372bf55fdc0'
     last_metadata_sync ' 2024-08-25T23 35 51.384 Z '
     last_token_uri_sync ' 2024-08-25T23 35 50.893 Z '
     元数据' { “属性”:[ { “trait_type”:“背景” “value”:“薄荷” } { “trait_type”:“皮肤” “value”:“橄榄绿” } { “trait_type”:“身体” “value”:“高领粉色” } { “trait_type”:“脸” “value”:“眼罩” } { “trait_type”:“头部” “value”:“巫师帽” } ] “description”:“8888 只可爱的胖乎乎的企鹅在冰冻的 ETH 区块链上滑动。” , "image": "ipfs://QmNf1UsmdGaMbpatQ6toXSkzDpizaGmC9zfunCyoz1enD5/penguin/1919.png" , "name": "Pudgy Penguin #1919" } ' ,
     区块编号' 19754671 '
     区块数量null
     名称'PudgyPenguins'
     符号'PPG'
     token_hash : 'cbd8bd0901f422afb88e76615e3d2a1a'
     token_uri 'https : //ipfs.moralis.io : 2053 /ipfs/bafybeibc5sgo2plmjkq2tzmhrn54bk3crhnc23zd2msg4ea7a4pxrkgfna/ 1919 '
     minter_address :
     已验证的集合true
     可能的垃圾邮件false
     collection_logo 'https //i.seadn.io/gae/yNi-XdGxsgQCPpqSio4o31ygAV6wURdIdInWRcFIl46UjUQ1eV7BEndGe8L661OoG-clRi7EgInLX4LPu9Jfw4fq0bnVYHqg7RFi ?w = 500 &auto = format'
     collection_banner_image 'https //i.seadn.io/gcs/files/8a26e3de0f309089cbb1e5ab969fc0bc.png ?w= 500 &auto=format'
     }
     //...
   ]
 }
}

探索 Moralis 的 Web3 API 套件

除了我们的扩展 RPC 方法之外,我们还提供了一套全面的 Web3 API。一些突出的示例包括 Wallet API、Token API、Streams API、NFT API 等等。这些 API 提供了更深入和丰富的数据,让您可以更轻松地构建从 Web3 钱包到游戏的一切!

但是为什么要使用我们的 API?

  • 全面:我们的 API 可通过更少的调用为您提供更多数据。只需一次请求即可获取钱包的完整历史记录、代币余额和价格、最新的 NFT 元数据等。

  • 跨链: Moralis 的 API 完全跨链,可让您在所有主要网络上使用全部功能。其中包括以太坊、Polygon、Optimism、BSC、Base 等。

  • 安全可靠:我们自豪地获得了 SOC 2 Type 2 认证,这突显了我们致力于维护企业级安全性和可靠性的决心。

现在,让我们更具体地探讨并详细探索我们的一些 API!

Web3 API

我们的 Web3 API 套件包含许多特定于用例的接口。以下是三个突出的例子: 

  • 钱包 API:仅需几行代码即可获取任何钱包的完整交易历史记录、代币余额、净值、盈利能力、代币批准等。 

  • 代币 API:只需一个请求即可获取代币价格、元数据、交易、余额等。 

  • NFT API:只需一个 API 调用即可查询 NFT 余额、最新元数据、价格等。 

作者:GTokenTool一键发币平台

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

同类推荐