跳转到主要内容

前置条件

合约准备

本指南将使用以下示例合约:

使用 Foundry 部署

Foundry 是一个基于 Rust 的快速 Ethereum 开发工具包。
  1. 安装 Foundry:
    你可能需要 source 你的 .bashrc.zshrc 文件
  2. 设置新的 Foundry 项目:
  3. 使用 Plasma 测试网设置更新 foundry.toml
  4. 在项目根目录创建 .env 文件:
  5. 加载环境变量:
  6. 合约代码保存为 src/SimpleStorage.sol,然后部署:
    Foundry 会输出部署交易哈希和合约地址:
  7. 使用 Foundry 的 cast 工具测试已部署的合约。先读取已存储的数据:
  8. 然后更新数据并再次读取:
    输出类似如下:

使用 Hardhat 部署

Hardhat 是一个功能齐全的开发框架,拥有丰富的插件支持。
  1. 请确保你具备以下条件:
  • Node.js 20+(现代 Hardhat 兼容性所需)
  • 熟悉 Ethereum 开发
  • 拥有测试网代币的钱包(参见测试网链上详情
Hardhat 不再支持 Node.js 18 及以下版本,并可能导致 ES module 兼容性问题。
  1. 验证 Node.js 版本:
    如果使用的是 Node.js 18 或更低版本,请升级至 Node.js 20+:
  2. 初始化一个新的 Hardhat 项目:
    如果遇到兼容性问题,请查阅 Hardhat 文档了解最新支持的版本。
    在提示时选择 Create a JavaScript project
  3. 更新 hardhat.config.js
  4. 在项目根目录创建 .env 文件:
  5. 创建 scripts 目录和部署脚本:
  6. 创建 scripts/deploy.js
  7. 合约代码保存为 contracts/SimpleStorage.sol,然后部署:
  8. 完成!

使用 Ethers.js 部署

Ethers.js 提供了简洁的、可编程的部署流程。
  1. 创建新项目:
  2. 在项目根目录创建 .env 文件:
  3. 创建 compile.js 来编译 Solidity 合约:
  4. 将你的合约保存为 SimpleStorage.sol,然后编译:
    输出如下:
  5. 创建 deploy.js
  6. 运行部署脚本:
    输出类似如下:

验证部署

使用上述任一方式部署完毕后,请验证你的合约部署

故障排查

ES Module 兼容性问题

如果遇到 Error [ERR_REQUIRE_ESM]: require() of ES Module 之类的错误,通常意味着:
  1. Node.js 版本过旧:按前置条件中所述升级到 Node.js 20+
  2. 依赖版本不匹配:如果无法升级 Node.js,可以将出问题的依赖降级:

Node.js 版本警告

如果看到不支持的 Node.js 版本警告:
请按照前置条件中的步骤升级到 Node.js 20+。

资金不足

确保钱包有足够的测试网代币。访问测试网水龙头

网络配置错误

请确认你的网络配置与测试网链上详情一致。

Gas 估算失败

在部署配置中显式设置 gas 限额: