xExchange GraphQL API查询LP代币价格返回0值问题求助
问题:调用xExchange GraphQL API查询LP代币价格返回0值
我调用xExchange的GraphQL API查询LP(流动性池)代币价格时,返回的price字段值为0,不符合实际情况。
我的查询语句:
query { pairs(firstTokenID: "BUSD-40b57e") { liquidityPoolToken { identifier, price } } }
返回结果:
{ "data": { "pairs": [ { "liquidityPoolToken": { "identifier": "BUSDWEGLD-c3b2f6", "price": "0" } } ] } }
解决方案
xExchange API中liquidityPoolToken的price字段大概率未直接维护实时市价,需要通过查询核心字段自行计算LP代币价格,步骤如下:
修改查询语句,获取计算所需字段
需要查询交易对的储备量、LP代币总供应量,以及两种基础代币的市价,示例查询如下:query { pairs(firstTokenID: "BUSD-40b57e") { liquidityPoolToken { identifier, totalSupply } reserves { firstTokenAmount, secondTokenAmount } firstToken { price } secondToken { price } } }计算LP代币价格
按照以下公式计算单个LP代币的价格:- 第一步:计算流动性池的总价值
总价值 = (第一种代币储备量 × 第一种代币价格) + (第二种代币储备量 × 第二种代币价格) - 第二步:计算单个LP代币价格
LP代币价格 = 总价值 ÷ LP代币总供应量
注意:确保所有数值的单位统一(比如均为美元计价),若存在单位差异需先转换。
- 第一步:计算流动性池的总价值
备选检查
可以查看xExchange GraphQL API的文档,确认是否存在专门返回LP代币实时价格的字段(比如部分交易所API会提供lpTokenPrice这类直接字段),若有则直接调用该字段即可。
内容的提问来源于stack exchange,提问作者Quentin
相关产品推荐
相关产品推荐

