编译合同

创建并编写数字资产项目后,将安装相关项并编译智能合同。

在生成或导入项目后安装相关项,并在项目 package.json 文件发生更改时再次安装相关项。在安装了相关项以及 Solidity、TypeScript 部署脚本或生成的项目源发生更改时编译合同。

  1. 打开 Visual Studio Code 中 Blockchain App Builder For Besu 活动栏中的 Contracts 视图。
  2. 选择生成或导入的 Hardhat 项目,然后打开该项目的部署/执行表单。如果有多个项目可用,请从表单顶部的项目列表中选择项目。
  3. 选择 Deploy(部署)选项卡,然后选择 Install Dependencies(安装相关性)。等待安装相关项。如果安装失败,请更正报告的错误,然后再次选择安装相关项。

    对于使用 compose 函数生成的项目,npm 将安装标准 Hardhat 和 OpenZeppelin 依赖项,并解析 .obp-bap/plugins/ 文件夹中本地归档的捆绑 Oracle Blockchain Platform 插件。将该文件夹保存在项目中;package.json 文件通过使用本地 file: 相关项引用插件归档文件。

  4. 成功安装相关项后,选择编译。等待编译合同。如果编译失败,请更正报告的错误,然后再次选择编译。

Hardhat 将编译的 Artifact 写入项目的 artifacts/ 目录,并使用 cache/ 目录进行编译器高速缓存数据。该扩展使用构件以及编写器生成的清单来搜索令牌和账户 ABI,以进行部署、执行、包装 API 和 RPC 代理工具。

编译合同后,您可以配置环境,然后部署并运行合同。

排除编译错误

消息或条件 解决方法
Unable to run npm install Node.js 或 npm 不可用于 Visual Studio Code。验证 Node.js 和 npm 安装,然后重新启动 Visual Studio Code。如果 Node.js 由 nvm 管理,请从终端打开 Visual Studio Code,以便它继承 shell PATH 变量。
Unable to run Hardhat 可能未安装依赖项,或者无法找到本地 Hardhat、npx 或 npm。运行 Install Dependencies 并验证 Node.js 是否可用于 Visual Studio Code。
npm 找不到本地插件归档文件 确认 .obp-bap/plugins/ 文件夹仍然存在并包含由 package.json 文件引用的捆绑 .tgz 文件。如果删除了插件文件夹,则重新生成项目。
HH1: You are not inside a Hardhat project 确保在项目选择器中选择了正确的导入或组合项目。所选根必须包含 hardhat.config.ts 文件。
缺少合同构件 从拥有合同的项目运行编译。不要使用来自其他引用项目或 SDK 标准的构件。
源更改后仍保留编译错误 运行清除,然后运行编译,以便 Hardhat 从当前源重新生成对象。