The Graph使用

官网创建子图

The Graph主要是用于监测链上数据的。The Graph官网

  1. 创建子图

点击创建子图

点击创建子图
2. 选择链

选择你想查询对应合约所在的链

在这里插入图片描述
3. 填写自己子图的名称

在这里插入图片描述

本地创建子图框架

在本地创建一个文件夹

在这里插入图片描述

初始化子图的名称,这里是建立一个名字为graph_5的文件夹,并配置基础的文件

在这里插入图片描述

选择你想监测的网络,这里demo选择ethereum

在这里插入图片描述

输入提示,直接回车回车,然后填写合约地址

在这里插入图片描述

这里如果失败的话,下载abi文件成json格式,放到本地,直接填写abi文件的名字(注意abi文件是放在当前目录下)
这里创建成功的话,cd进入你要部署的子图文件夹

在这里插入图片描述

这里需要重点理解!这个就是你要查询什么东西,比如你想查询一个事件的id,count,src,guy参数就可以这么写。

在这里插入图片描述

这里是标准的weth事件和函数模板

在这里插入图片描述

这个也非常重要,是配置清单。意思就是你要查合约发生的哪些事件,哪些方法,包括所有关于这个合约的所有区块信息。
eventHandlers下面是事件,分event和handler,handler是下一步要写的mapping.ts映射文件中写的方法名称,比如handleApproval要和mapping.ts中一个函数名要对应。

在这里插入图片描述

这里是建立子图,会自动帮你配置一些文件。一定必须要执行的一步。

在这里插入图片描述

这里失败很正常,因为mapping.ts没写好,但是这步也很重要,会帮你多生成了一个build文件夹,里面有自动根据这个abi.json生成的很多函数与事件。

在这里插入图片描述

这里把最下角的file换成:/src/mapping.ts

在这里插入图片描述

编写mapping.ts,映射文件,这个就是把当时你设置实例对应的,与scheme.graphql对应实例去保存。

在这里插入图片描述

再重新graph codegen && graph build
生成文件,如果没报错说明可以部署子图

在这里插入图片描述

这是成功样式

在这里插入图片描述

执行命令graph deploy --studio graph_5(这里换成你自己的文件名)
首先要选择版本,这个是自己设置的,就是为了你自己子图以后的迭代升级,可以0.0.2,也可以0.1.2。

在这里插入图片描述

这是成功的效果图

在这里插入图片描述
在这里插入图片描述

通过gql查询语句查询

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>//引入axios
async function test_graph(){
    
    

axios.post('https://api.studio.thegraph.com/query/32121/graph_4/0.0.3', {
    
    
  query: `
  {
    {
          eventApprovals(first: 5) {
            id
            from
            to
            value
          }
          eventTransfers(first: 5) {
            id
            from
            to
            value
          }
        }
  }
  `
})
.then((res) => {
    
    
//  for (const trans of res.data.data.transfers) {
    
    
    console.log(res)
//  }
})
.catch((error) => {
    
    
  console.error(error)
})
}
						制作时间匆忙,有不足请提出。

猜你喜欢

转载自blog.csdn.net/qq_42671505/article/details/126469178