Uniswap:如何使用 API 读取代币价格

Tio*_*and 5 php blockchain ethereum erc20

在我的 PHP 代码(或 Javascript)中,我想从 Uniswap 读取 erc20(以太坊)代币价格 - 它在那里进行交易。我找不到任何 API 调用来返回价格。

我正在寻找此代币的价格:VIRGIN TOKEN:0x1381F369D9D5df87a1A04Ed856C9dbc90f5DB2fA

我该怎么做?

Eug*_*Loy 9

您可以使用GraphQLThe Graph上查询Uniswap 数据

token一种方法是直接查询:

{
  token(id: "0x1381f369d9d5df87a1a04ed856c9dbc90f5db2fa") {
    derivedETH
  }
}
Run Code Online (Sandbox Code Playgroud)

... derivedETHETH 价格在哪里。

另一种是查询对(按对id或在本例中使用 token id):

{
  pairs(where: { token0: "0x1381f369d9d5df87a1a04ed856c9dbc90f5db2fa" token1: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" }) {
    token0Price
    token1Price
  }
}
Run Code Online (Sandbox Code Playgroud)

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

您可以在沙箱中使用这些,或者您可能需要客户端

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

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

... 要得到:

{"data":{"token":{"derivedETH":"0.0004465905539042863338157407540331524"}}}
Run Code Online (Sandbox Code Playgroud)