API3 链条
API3项目中链条相关信息的单一真相来源
* 安装
npm install @api3/chains --save
yarn add @api3/chains
pnpm add @api3/chains
• API
从此软件包导出以下变量/功能
中国
支持链列表的单一真相来源 .
静态数组 Chain 对象.
import { CHAINS } from '@api3/chains';
console.log(CHAINS);
/*
[
{
name: 'Arbitrum Sepolia testnet',
alias: 'arbitrum-sepolia-testnet',
id: '421614',
...
},
...
]
*/
硬汉网络
返回一个对象,其中密钥是每个链子的别名,而值是可以作为对象的对象 networks 领域 hardhat.config.js。 。 。 .
默认 url 值可以被链式特定环境变量所压倒. 这些环境变量的形式是: HARDHAT_HTTP_RPC_URL_${toUpperSnakeCase(chain.alias)}例如. HARDHAT_HTTP_RPC_URL_ARBITRUM_SEPOLIA_TESTNET。 。 。 .
import { hardhatConfig } from '@api3/chains';
console.log(hardhatConfig.networks());
/*
{
"arbitrum-sepolia-testnet": {
accounts: { mnemonic: '' },
chainId: '421614',
url: 'https://...',
},
...
}
*/
硬汉 Config.etherscan ()
返回一个对象,其中密钥是每个链子的别名,而值是可以作为对象的对象 etherscan 领域 hardhat.config.js (要求 hardhat-etherscan 插件) (中文(简体) ).
注: 硬叶鞋 需要我们使用假的 API 密钥 与 Blockscout 屏蔽探索者 API 。 我们用"DUMMY VALUE",但有可能是别的.
import { hardhatConfig } from '@api3/chains';
console.log(hardhatConfig.etherscan());
/*
{
apiKey: {
'arbitrumSepolia': { ... }
},
customChains: [
...
]
}
*/
硬汉 Config. get Envariable Names ()
返回有勘探者所需的 API 密钥的链条的预期环境变量名称。 阵列还包括一个单 MNEMONIC 用于配置所有网络的变量.
注:每个 ETHERSCAN_API_KEY_ 财务报告和审定财务报表 HARDHAT_HTTP_RPC_URL_ 环境变量将链的别名作为后缀,其中别名被转换为上蛇案.
import { hardhatConfig } from '@api3/chains';
console.log(hardhatConfig.getEnvVariableNames());
/*
[
'MNEMONIC',
'ETHERSCAN_API_KEY_ARBITRUM_SEPOLIA_TESTNET',
...
'HARDHAT_HTTP_RPC_URL_ARBITRUM_SEPOLIA_TESTNET',
...
]
*/
双链链( )
返回格式中的链条数组 维埃姆 期待着 每个链对象都可以用来 创建 Viem 公共客户端。 。 。 .
额外 rpcUrls 通过使用环境变量可以(可选择)添加数值。 这些环境变量的形式是: API3_CHAINS_HTTP_RPC_URL_${toUpperSnakeCase(chain.alias)}。如果检测到某一链的匹配环境变量,则该变量将被添加到 http 数组 rpcUrls.environment 对象。 如果没有检测到匹配的环境变量, 那么 http 数组为空.
import { viemConfig } from '@api3/chains';
console.log(viemConfig.chains());
/*
[
{
id: 421613,
name: 'arbitrum-sepolia-testnet',
network: 'arbitrum-sepolia-testnet',
rpcUrls: { default: ..., public: ..., environment: ... }
...
},
...
]
*/
类型
类型也导出,可见于 src/types.ts。 。 。 .
类型来自 佐德语 计划.
这些计划也被用来验证每个链.
脚本
下列工具脚本可供使用
生成:链条
生成最新的 CHAINS 矩阵和输出文件到 src/generated/chains.ts
pnpm generate:chains
提供者: 正在
通过链条列表进行迭接,以检查链条的配置是否正确并具有响应性.
pnpm providers:ping
发展
最常见的变化类型是增加或更新一个链条。 可以通过创建或编辑 chains/ 目录.
如果对链作任何改变,你将需要"再生"链. 这将把所有的 JSON 文件汇编成一个单一的 TypeScript 文件, 以便导入项目 。 可用下列命令完成此任务
pnpm generate:chains
TypeScript链的列表也针对所有JSON文件列表进行验证,以确保所有文件同步.
注:如果不重新生成 TypeScript 链, 您将无法将更改推向链条 .
验证
验证可以通过下列命令运行.
# Validate each chain JSON file conforms to the zod schemas
pnpm validate:chains
# Run all validations
pnpm validate
· 释出
自动处理新版本 变化。在合并前,拉动请求应当包括更改器文件.
这些可以通过运行生成 pnpm changeset 并遵循指示。 一旦新版本准备发布, 只需合并 main 输入 production
树枝。 更改集文件将合并为一个新版本,该版本将发布到npm.
更多信息载于本报告 API3 准则。 。 。 .