如何通过Elrond REST从Maiar Exchange获得农场的当前收益?例如,对于LKMEX农场,我想确定在MEX和/或USDT中的当前收益(我挣到的MEX),因为最近的努力或‘再投资’。谢谢!
发布于 2022-08-23 08:47:08
你在这里有两个选择:
直接从合同中通过VM查询
简单和低级的方法是通过vm查询向calculateRewardsForGivenPosition视图函数询问所需的农场契约。这可以通过POST请求通过https://gateway.elrond.com/vm-values/query完成。
查看https://docs.elrond.com/sdk-and-tools/rest-api/virtual-machine/ for vm-通过REST详细信息查询,并查看上述视图函数的预期参数的https://github.com/ElrondNetwork/sc-dex-rs/blob/main/dex/farm/src/lib.rs#L372。
基本上,您只需使用“农场令牌数量”和“农场令牌”的“属性”字段,就可以向农场合同索取最新的奖励,您可以使用https://api.elrond.com/nfts/[token]路由找到它们。
这个案例的一个具体例子是:
带有锁定奖励的erd1qqqqqqqqqqqqqpgq7qhsw8kffad85jtt79t9ym0a4ycvan9a2jps0zkpen
2863539312887406729205021282获取农场令牌MEXFARML-28d646-360d8b的供应和属性(我们必须将其从十进制转换为十六进制);属性AAAABYENv6kdAAAAAAAAAg8AAAAAAAAC8QAAAAwGP0dX61aTZ298cosAAAAMAwFisUg/gGvN0gfWAAAADAlAqgkzlhPTPU56Yg== (我们必须将其从base64转换为十六进制);对于转换,您可以使用这个漂亮的工具:http://207.244.241.38/elrond-converters/得到的VMQuery请求如下所示:
POST https://gateway.elrond.com/vm-values/query HTTP/1.1
Content-Type: application/json
{
"scAddress": "erd1qqqqqqqqqqqqqpgq7qhsw8kffad85jtt79t9ym0a4ycvan9a2jps0zkpen",
"funcName": "calculateRewardsForGivenPosition",
"args": ["0940aa09339613d33d4e7a62", "00000005810dbfa91d000000000000020f00000000000002f10000000c063f4757eb5693676f7c728b0000000c030162b1483f806bcdd207d60000000c0940aa09339613d33d4e7a62"]
}然后,您必须将响应从base64转换为十进制,以获得奖励金额。
通过GraphQL Maiar DEX服务进行黑客攻击
GraphQL Maiar DEX服务请求:由于服务回购不是公开的,因此您必须弄脏您的手,所以您必须用反向工程的方式来计算您必须提出的请求,并希望所需的路线没有经过身份验证。从理论上讲,这可能更容易使用,但正如我刚才所说,这需要事先进行一些调查工作。其中一种方法就是打开Maiar,通过浏览器的开发者控制台调查站点所做的网络请求。
https://stackoverflow.com/questions/73306131
复制相似问题