66 lines
1.6 KiB
Markdown
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', // 事件处理器
|
|
},
|
|
]
|
|
```
|