首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何开发网络或链无关子图?

如何开发网络或链无关子图?
EN

Ethereum用户
提问于 2022-10-19 17:16:24
回答 1查看 80关注 0票数 0

多个应用程序设置一个网络/链配置,该配置可以简化为一个对象,其中每个键都是支持的链(如chainId )的唯一ID,如下所示:

代码语言:javascript
复制
// typescript:
enum ChainIds {
  Ethereum = 1,
  BSC = 56,
  AVAX = 43114,
};

const NetworkConfig = {
  [ChainIds.Ethereum]: {
    blockTime: 15_000, // 15s/block
    gasLimit: 15_000_000 // 15m/block
  },
  [ChainIds.BSC]: {
    blockTime: 3_000, // 3s/block
    gasLimit: 100_000_000 // 100m/block
  },
  [ChainIds.AVAX]: {
    blockTime: 3_000, // 3s/block
    gasLimit: 8_000_000 // 8m/block
  },
};

const chainId = 1; // how to get the chainId in subgraph environment

const gasPerS = NetworkConfig[chainId].gasLimit/NetworkConfig[chainId].blockTime;

这是以网络不可知论的方式开发子图的一种方法,但是我找不到从图表文档中的子图中获取chainId的任何方法。是否有可能这样做,如果没有,如何/应该如何开发一个子图的方式与链无关。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-10-20 09:23:45

网络名称可以通过dataSource访问,如下所示:

代码语言:javascript
复制
import { dataSource } from "@graphprotocol/graph-ts";

const chainName = dataSource.network(); // returns network name

const chainId = ChainIds[chainName];

在图形托管服务上支持的网络列表可以找到这里

还可以使用subgraph.yaml配置配置为多个网络配置D3中列出的数据源地址,如图的文档中所示。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/137807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档