使用 Foundry 部署 ERC20 合约

circle-info

请在GitHub参阅完整的foundry-erc20arrow-up-right代码库。

本节将展示如何使用Foundryarrow-up-right创建新的Solidity合约,配置Berachain网络详细信息,将合约部署到Berachain,以及验证合约。

先决条件

开始之前,请确保你的本地设备上满足以下条件:

创建ERC20合约代码设置

首先,为ERC20合约创建一个新的文件夹:

mkdir create-erc20-contract-using-foundry;
cd create-erc20-contract-using-foundry;

然后,运行以下代码,创建由Foundry定义的初始ERC20合约模板:

# FROM: ./create-erc20-contract-using-foundry

forge init; # forge init --force; # if there is already an existing .git repository associated

# [Expected Output]:
# ...
# Resolving deltas: 100% (129/129), done.
#     Installed forge-std v1.7.1
#     Initialized forge project

如果模板创建成功,会显示以下代码结构:

现在,所有代码已设置完成,运行以下代码,安装来自OpenZeppelinarrow-up-right的ERC20合约所需的依赖项:

创建ERC20合约

开始之前,请将现有的src/Counter.sol转换为新的BingBongToken.sol,并将代码替换为以下 Solidity代码:

文件位置./src/BingBongToken.sol

运行以下代码,测试编译是否正确:

如果出现上方显示的Expected Error Output,原因是引用了一个不存在的文件。为了解决这个问题,需要将其重命名为BingBongToken.t.sol,并替换一些占位符代码:

文件位置./test/BingBongToken.t.sol

现在,运行forge compile时,应该显示以下结果:

测试ERC20合约

使用重命名的BingBongToken.t.sol文件,添加以下测试代码,该代码覆盖广泛的ERC20合约测试。

请检查每项测试,以便更加了解如何应对并成功处理各种情况。

文件位置./test/BingBongToken.t.sol

接下来,编译代码,运行测试,检查各项测试是否通过。

为Berachain合约部署Foundry

现在,代码创建和测试都已完成,接下来创建部署BingBongToken.sol文件所需的脚本。为此,需要将Course.s.sol脚本文件重命名为BingBongToken.s.sol

然后,添加以下代码以替换现有代码,用于导入钱包私钥和部署合约。

文件位置./script/BingBongToken.s.sol

为了验证合约是否能够正确执行,可以通过运行anvil在本地节点上测试。请备份并保存私钥。

终端 1:

使用上方代码中提供的私钥Private Key,替换.env 文件中的WALLET_PRIVATE_KEY

文件位置./.env

终端 2:

在另一个终端窗口中,运行以下代码,将合约部署到本地节点RPC:

显示以上结果,部署成功!最后,务必使用ctrl + c停止终端 1中的anvil服务。

部署ERC20合约

circle-info

部署之前,确保你的钱包里有足够的$BERA代币以支付部署合约所需的费用,并确认已替换.env文件中的WALLET_PRIVATE_KEY

使用本地节点配置,部署到Berachain测试网的流程均相似,但需要指定不同的RPC URL端点:

验证ERC20合约

circle-info

目前,在v0.2.0版本的forge中,合约验证存在一些问题,可能导致合约验证无法进行,尝试运行以下代码,应该有助于验证合约:

完整代码库

本节完整代码库,可在Github - Berachain Guidesarrow-up-right - foundry-erc20arrow-up-right中查看。

最后更新于