将合同清单上载到注册表

您可以使用区块链应用程序构建器来验证部署元数据,并将其从选定的 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
如果项目将部署记录存储在其他位置,请调整路径。
  1. 打开开发人员工具,然后选择上载合同清单。
  2. 选择 Hardhat 项目和 Oracle Blockchain Platform Besu 环境。
  3. 选择上载模式。
  4. 输入所需的注册表端点 URL 或 URL:
    • 可升级记录的 ERC-7201 清单上载注册表端点
    • 不可变记录的 SOLC 清单上载注册表端点
    .
  5. 确认 OpenZeppelin 和已部署的合同文件路径。(可选)设置超时和详细输出。
  6. 选择验证。插件运行,不发布注册表数据。
  7. 验证成功后,清除验证并选择上载。

故障排除

条件 解决方法
无可用环境 创建保存的 Oracle Blockchain Platform Besu 环境。EVM 和 Hardhat 本地节点不是用于上载清单的有效环境。
注册表端点无效 为所选模式所需的每个端点输入完整的 HTTP 或 HTTPS 注册表 URL。
未找到所需文件 编译和部署相关合同或更正已部署合同的项目相关清单和文件路径。
缺少插件或配置 安装或导入 hardhat-upload-contract-artefacts 并添加 uploadContractManifest 配置,该配置显示在工具的预检指南中。
试运行成功后上载失败 查看注册表服务验证、可用性、端点策略和完整插件输出。模拟运行验证本地输入,但不保证注册表接受。