Uniswap:如何使用API​​读取令牌价格

问题描述

在我的PHP代码(或Javascript)中,我想从Uniswap中读取erc20(以太坊)令牌的价格-它正在那里交易。我找不到任何API调用来退还我的价格。

我正在寻找该令牌的价格: 原始代币:0x1381F369D9D5df87a1A04Ed856C9dbc90f5DB2fA

我该怎么办?

解决方法

您可以使用 Uniswap dataThe Graph 上查询 GraphQL

一种方法是直接查询token

{
  token(id: "0x1381f369d9d5df87a1a04ed856c9dbc90f5db2fa") {
    derivedETH
  }
}

...其中 derivedETH 是 ETH 价格。

另一种是查询对(按对 id 或,在本例中,使用令牌 id 的):

{
  pairs(where: { token0: "0x1381f369d9d5df87a1a04ed856c9dbc90f5db2fa" token1: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" }) {
    token0Price
    token1Price
  }
}

... 其中 token0Pricetoken1Price 是代币相对于彼此的价格 (VRGN\WETH)。

您可以在 sandbox 中使用这些,或者您可能需要一个 client

或者,为了简单起见,您可以直接进行请求,如下所示:

curl -X POST -H "Content-Type: application/json" -d '{"query": "{ token(id: \"0x1381f369d9d5df87a1a04ed856c9dbc90f5db2fa\") { derivedETH } }"}' https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2

...得到:

{"data":{"token":{"derivedETH":"0.0004465905539042863338157407540331524"}}}
,

您看过https://uniswap.org/docs/v2/API/queries/#pair-data吗?

他们的API文档似乎显示了如何做到这一点