Hyperlane 注册表
概述
Hyperlane 可以被任何人部署到任何地方。但要使这些部署发挥作用,它们的详细信息必须是众所周知的。注册表是用于与 Hyperlane 合约和工具交互的链元数据、合约地址和其他有用信息的集合。Hyperlane 核心团队维护着一个规范注册表。命令行工具、浏览器和其他工具都可以使用注册表数据。
规范注册表
Hyperlane 核心团队完成的部署的元数据和工件可在此处获得: https://github.com/hyperlane-xyz/hyperlane-registry
然而,我们鼓励社区成员将他们自己的部署添加到这个规范注册表中。贡献步骤如下:
- Fork 并克隆注册表仓库
- 使用命令行工具并将
--registry
标志设置为克隆仓库的本地路径 - 按需执行你的命令
- 将更改推送到你的 fork 并创建拉取请求
自定义注册表
只要注册表符合与规范注册表相同的布局和文件模式,就可以使用任何 GitHub 仓库 URL 或本地文件路径。
命令行工具有两个用于配置其使用的注册表的命令行参数:
--registry
标志设置主要注册表,如果未设置则使用默认的 GitHub 注册表--overrides
标志设置一个可选的额外路径,这对于强制覆盖默认数据很有用,例如在链的元数据中使用不同的 RPC URL。
一旦你的自定义注册表添加/更新完成并测试通过,请考虑向规范注册表提交拉取请求,以便其他人也能从你的部署中受益。
更多信息请参见命令行工具参考页面。
使用方法 (Javascript & Typescript)
安装
# 使用 npm
npm install @hyperlane-xyz/registry
# 或使用 yarn
yarn add @hyperlane-xyz/registry
获取内容
通过包(静态)
访问注册表数据最简单的方法是直接从包中导入所需部分:
// 通过基础包
import { ethereum, ethereumAddresses } from "@hyperlane-xyz/registry";
// 或通过子导出以获得更优的包大小(如果你的打包工具允许)
import { metadata, addresses } from "@hyperlane-xyz/registry/chains/ethereum";
通过工具(动态)
如果你需要确保获取最新数据,可以使用 GithubRegistry
类动态获取注册表内容。
import { GithubRegistry } from "@hyperlane-xyz/registry";
const registry = new GithubRegistry();
const chainMetadata = await registry.getMetadata();