将合同清单上载到注册表
您可以使用区块链应用程序构建器来验证部署元数据,并将其从选定的 Hardhat 项目发布到合同注册表服务。
上载合同清单工具运行项目拥有的 hardhat-upload-contract-artefacts 插件,并将注册表端点作为运行时值传递;它不会修改项目的 Hardhat 变量。
清单上载仅可用于保存的 Oracle Blockchain Platform Besu 环境。
先决条件
- 选择已成功部署的已导入或组合的 Hardhat 项目。
- 确认项目在
package.json文件中包括hardhat-upload-contract-artefacts软件包,导入hardhat.config.ts或hardhat.config.js中的插件,并定义uploadContractManifest配置。 - 使用正确的链 ID 和 RPC 代理验证创建或选择 Oracle Blockchain Platform Besu 环境。
- 确保所选上载模式存在所需的本地部署记录。
支持以下上载模式。
| 上载模式 | 必需的本地记录 | 注册表目标 |
|---|---|---|
| 两者 | OpenZeppelin 清单、ERC-7201 部署合同 JSON 和 SOLC 部署合同 JSON | 两个注册表端点 |
| ERC-7201 / 可升级 | OpenZeppelin 清单和 ERC-7201 部署合同 JSON | ERC-7201 注册端点 |
| 不可变/ SOLC | SOLC 部署合同 JSON | SOLC 注册表端点 |
对于由 Blockchain App Builder 生成的预打包导入项目或数字资产合同,通常 ERC-7201 模式就足够了。
对于链 ID 1500,缺省路径如下所示。
./.openzeppelin/unknown-1500.json
./.obp-da/.erc7201/deployedContracts-1500.json
./.obp-da/.solc/deployedContracts-1500.json如果项目将部署记录存储在其他位置,请调整路径。- 打开开发人员工具,然后选择上载合同清单。
- 选择 Hardhat 项目和 Oracle Blockchain Platform Besu 环境。
- 选择上载模式。
- 输入所需的注册表端点 URL 或 URL:
- 可升级记录的 ERC-7201 清单上载注册表端点
- 不可变记录的 SOLC 清单上载注册表端点
- 确认 OpenZeppelin 和已部署的合同文件路径。(可选)设置超时和详细输出。
- 选择验证。插件运行,不发布注册表数据。
- 验证成功后,清除验证并选择上载。
故障排除
| 条件 | 解决方法 |
|---|---|
| 无可用环境 | 创建保存的 Oracle Blockchain Platform Besu 环境。EVM 和 Hardhat 本地节点不是用于上载清单的有效环境。 |
| 注册表端点无效 | 为所选模式所需的每个端点输入完整的 HTTP 或 HTTPS 注册表 URL。 |
| 未找到所需文件 | 编译和部署相关合同或更正已部署合同的项目相关清单和文件路径。 |
| 缺少插件或配置 | 安装或导入 hardhat-upload-contract-artefacts 并添加 uploadContractManifest 配置,该配置显示在工具的预检指南中。
|
| 试运行成功后上载失败 | 查看注册表服务验证、可用性、端点策略和完整插件输出。模拟运行验证本地输入,但不保证注册表接受。 |