跳到主要内容

Hyperlane 注册表

概述

Hyperlane 可以被任何人部署到任何地方。但要使这些部署发挥作用,它们的详细信息必须是众所周知的。注册表是用于与 Hyperlane 合约和工具交互的链元数据、合约地址和其他有用信息的集合。Hyperlane 核心团队维护着一个规范注册表命令行工具浏览器和其他工具都可以使用注册表数据。

规范注册表

Hyperlane 核心团队完成的部署的元数据和工件可在此处获得: https://github.com/hyperlane-xyz/hyperlane-registry

然而,我们鼓励社区成员将他们自己的部署添加到这个规范注册表中。贡献步骤如下:

  1. Fork 并克隆注册表仓库
  2. 使用命令行工具并将 --registry 标志设置为克隆仓库的本地路径
  3. 按需执行你的命令
  4. 将更改推送到你的 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();