chain_graphql/README.md
CounterFire2023 9a675dd663 更新文档
2023-06-30 16:07:36 +08:00

66 lines
1.6 KiB
Markdown

# 说明
该项目包含 2 部分功能, 链上事件爬取和链上数据查询接口(GraphQL 和普通接口)
# 一. 链上数据查询
## 1. 验证地址是否是指定 NFT 的 holder
> 供 galxe.com 的任务系统使用
```
endpoint: https://chianquery.cebggame.com/graphql
网页访问: https://chianquery.cebggame.com/graphiql
```
## 2. 普通接口
### 1. 检查用户是否有已 claim NFT
1. Method: POST|GET
2. URI: /chain/query_info
3. HOST: https://chianquery.cebggame.com
> 参数, body(json, x-www-form-urlencoded) 或 querystring 都可
| 字段 | 说明 |
| --------- | --------------------- |
| \*address | 用户钱包地址 |
| contract | ClaimFactory 合约地址 |
3. Response: JSON
```json
{
"errcode": 1, // 此字段只有在出错时才会有
"errmsg": "error", // 此字段只有在出错时才会有
"id": 0
}
```
# 二. 链上事件爬取
## 说明
NFT 和 FT 的`Transfer`事件分布记录在 src/models/FtTransfer.ts 和 src/models/NftTransfer.ts 中
NFT 事件记录后, 更新 NftHolder 表, 该表记录最新的 Nft 持有情况
其他事件记录在 src/models/UniversalEvent.ts 中
## 配置
需要爬取的事件在 src/config/events.json 中配置
```js
;[
{
address: '0x3F13F83E6363D97d0353cAAfACA08B05D9BF3637', // 合约地址
chain: 42161, // 链 id
event: 'Transfer', // 事件名
abi: 'ERC721', // 合约使用的abi, 在src/abis中定义, 这里取文件名
fromBlock: 105016690, // 开始块高
eventProcesser: 'NftTransferEvent', // 事件处理器
},
]
```