自动生成 - OpenZeppelin 文档

本文介绍了如何使用@amxx/graphprotocol-utils包中的graph-compile工具,为应用程序自动生成定制的 schema 和 manifest 文件。文章通过一个配置示例,演示了如何索引以太坊主网上的多个合约,并使用 OpenZeppelin Subgraphs 提供的模块来简化开发流程,最后介绍了如何使用graph-cli工具部署 subgraph。

自动生成

graph-compile 工具作为 @amxx/graphprotocol-utils 包的一部分提供,可用于自动生成为你量身定制的 schema 和 manifest。作为 OpenZeppelin Subgraphs 一部分实现的模块与此兼容。

描述你的应用程序

为了生成 schema 和 manifest,你必须提供要索引的合约的描述。

这是一个配置文件示例,它在主网上索引了 6 个合约:

{
  "output": "generated/sample.",
  "chain": "mainnet",
  "datasources": [\
    { "address": "0xA3B26327482312f70E077aAba62336f7643e41E1", "startBlock": 11633151, "module": [ "erc20",    "accesscontrol" ] },\
    { "address": "0xB1C52075b276f87b1834919167312221d50c9D16", "startBlock":  9917641, "module": [ "erc721",   "ownable"       ] },\
    { "address": "0x799DAa22654128d0C64d5b79eac9283008158730", "startBlock":  9917642, "module": [ "erc721",   "ownable"       ] },\
    { "address": "0xC76A18c78B7e530A165c5683CB1aB134E21938B4", "startBlock":  9917639, "module": [ "erc721",   "ownable"       ] },\
    { "address": "0x001d1cd0bcf2e9021056c6fe4428ce15d977cfe0", "startBlock": 11127634, "module": [ "erc1155",  "ownable"       ] },\
    { "address": "0x3d85004fa4723de6563909fabbcafee509ee6a52", "startBlock": 12322496, "module": [ "timelock", "accesscontrol" ] }\
  ]
}

每个合约都表示为一个 datasource,具有一个地址、一个(可选)起始区块和一个特性列表。

生成 schema 和 manifest

可以使用以下命令编译此配置文件

npx graph-compiler \
  --config sample.json \
  --include node_modules/@openzeppelin/subgraphs/src/datasources \
  --export-schema \
  --export-subgraph

请注意,在我们的示例中,OpenZeppelin Subgraphs 包是使用 NPM 安装的,这意味着模块描述位于 @openzeppelin/subgraphs/src/datasources 中。必须使用 --include 命令添加此路径,以便编译器可以找到它们。

这将生成两个文件,遵循配置文件中提供的 output 参数:

  • generated/sample.schema.graphql 包含一个为你量身定制的 schema,其中仅包含索引模块所需的实体。

  • generated/sample.subgraph.yaml 包含 subgraph manifest。

部署你的 subgraph

为了将你的 subgraph 部署到托管服务或任何其他 graphnode,你必须首先创建它。此操作记录在此处here。 完成后,你可以使用 graph-cli 工具编译和部署生成的 subgraph:

npx graph-cli codegen generated/sample.subgraph.yaml
npx graph-cli build generated/sample.subgraph.yaml
npx graph-cli deploy                      \
  --ipfs https://api.thegraph.com/ipfs/   \
  --node https://api.thegraph.com/deploy/ \
  username/subgraphname                   \
  generated/sample.subgraph.yaml

← 概述

Subgraph 示例 →

  • 原文链接: docs.openzeppelin.com/su...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
OpenZeppelin
OpenZeppelin
江湖只有他的大名,没有他的介绍。