Defi数据引擎The Graph的调用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联是专业的大祥网站建设公司,大祥接单;提供网站设计制作、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行大祥网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
当你尝试访问以太坊智能合约以及DApp产生的区块链数据时,可能会发现很难将数据转换为一种可读的格式。 The Graph提供了一种用于查询以太坊和IPFS网络数据的索引协议,任何人都可以基于其提供的开放API创建并发布索引数据,即subgraph,这使得区块链数据更容易访问。我们将学习如何使用The Graph来查询Aave协议数据,使用的技术栈包括Graphql、JavaScript和Nodejs。
教程的第一步是访问The Graph网站并查看目前已经支持的协议,例如Uniswap、ERC20、Aave、Compound等等。如果找到了你要提取数据的协议,例如Aave,那么点击该协议进入:
你要做的第一件事就是记下来页面上的地址(1),后面要用这个地址来查询。在我们的示例中,这个地址就是: https://api.thegraph.com/subgraphs/name/aave/protocol
。
左边的区域(2)给出了一个查询示例,你可以点击【play】按钮来执行。也可以修改查询示例进行其他测试。
右边的区域(3)给出了这个subgraph所包含的实体的描述。点击其中任何一个实体都会给出该实体更详细的说明信息,包括它的字段以及与其他实体的关系。
在下面的示例中,我们将构造一个简单的查询语句,来列出Aave平台上最新的闪电贷。The Graph的查询使用GraphQL,如果你还不熟悉GrapQL,可以查看这个教程。
在开始写GraphQL查询语句之前,我们还需要先了解下闪电贷在graph中是如何定义的。为此我们可以在左边搜索FlashLoan实体,查看它包含了哪些内容:
我们的查询语句将查找最新的10条闪电贷记录:
{ flashLoans(first: 10, orderBy: timestamp, orderDirection: desc) { id reserve { name symbol } amount, target, timestamp } }
注意闪电贷对象指向另一个实体reserve,即储备库。
The Graph的用户界面为测试和开发自己的查询提供了一个非常好的办法。现在是时候用JavaScript(或你选择的其他语言)来实现查询了。这个过程很简单,我们只需要将查询语句通过HTTP POST请求提交给The Graph提供的https访问端节点。
我们使用axios来处理请求:
npm install axios --save
整个代码看起来是这样:
const axios = require('axios') axios.post('https://api.thegraph.com/subgraphs/name/aave/protocol', { query: ` { flashLoans(first: 10, orderBy: timestamp, orderDirection: desc) { id reserve { name symbol } amount, target, timestamp } } ` }) .then((res) => { for (const flashsloan of res.data.data.flashLoans) { console.log(flashsloan) } }) .catch((error) => { console.error(error) })
执行结果类似下图:
使用The Graph索引过的数据可以让你避免监听区块链事件、解码事件参数或者处理token小数点问题,开发效率和系统稳定性都会得到很大提高。
看完上述内容,你们掌握Defi数据引擎The Graph的调用方法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
网页题目:Defi数据引擎TheGraph的调用方法是什么
本文来源:https://www.cdcxhl.com/article6/pjjgig.html
成都网站建设公司_创新互联,为您提供做网站、微信公众号、商城网站、手机网站建设、自适应网站、网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联