是一个快速、可复制的模块化工具包,适用于 Rust 语言编写的以太坊应用程序的开发。
先决条件
开始之前,需要安装以下工具:
安装 foundryup
Foundryup 是 Foundry 工具链的官方安装程序。
复制 curl -L https://foundry.paradigm.xyz
按照屏幕上的说明操作,安装 Foundryup,接下来便可以在本地 CLI 中使用 foundryup
命令。
安装 forge
、cast
、anvil
和 chisel
文件
创建 Foundry 示例项目
运行以下命令,使用 foundry-monad
模板,创建一个新的 foundry 项目:
复制 forge init --template monad-developers/foundry-monad [project_name]
或者,可以运行以下命令,创建默认的 foundry 项目:
复制 forge init [project_name]
修改 Foundry 配置
更新 foundry.toml
文件以添加 Monad 配置:
复制 [profile.default]
src = "src"
out = "out"
libs = ["lib"]
# Monad Configuration
# TODO: Add RPC URL and Chain ID
eth-rpc-url="MONAD_RPC_URL"
chain_id = "MONAD_CHAIN_ID"
# TODO: Add Explorer URL and Chain ID
[etherscan]
monadDevnet = { key = "DUMMY_VALUE", url = "EXPLORER_URL", chain = MONAD_CHAIN_ID }
编写智能合约
你可以在 src
文件夹下编写智能合约。此项目中已有一个 Counter
合约,位于 src/Counter.sol
。
复制 // SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
contract Counter {
uint256 public number;
function setNumber(uint256 newNumber) public {
number = newNumber;
}
function increment() public {
number++;
}
}
编译智能合约
编译结果输出在新创建的 out
目录下,其中包括 Contract ABI 和 bytecode。
部署智能合约
获取测试代币
部署智能合约需要测试网测试代币,可通过测试网水龙头领取。
部署智能合约
使用 Keystore(推荐) 直接使用钱包私钥
Keystore 是 Foundry 项目中使用私钥的一种更安全的方式,因为 keystore 会加密私钥,且可以在任何需要私钥的命令中引用。
运行以下命令,创建新的钱包密钥库:
复制 cast wallet import <keystore_name> --interactive
出现提示时,输入钱包私钥,并设置密码进行加密。
运行以下命令,部署智能合约:
复制 forge create src/Counter.sol:Counter --account <keystore_name>
结果输出如下示例,表示合约成功部署:
复制 Deployer: 0xB1aB62fdFC104512F594fCa0EF6ddd93FcEAF67b
Deployed to: 0x67329e4dc233512f06c16cF362EC3D44Cdc800e0
Transaction hash: 0xa0a40c299170c9077d321a93ec20c71e91b8aff54dd9fa33f08d6b61f8953ee0
运行以下命令,直接在终端中粘贴私钥,并部署智能合约。
复制 forge create --private-key <your_private_key> src/Counter.sol:Counter
结果输出如下示例,表示合约成功部署:
复制 Deployer: 0xB1aB62fdFC104512F594fCa0EF6ddd93FcEAF67b
Deployed to: 0x67329e4dc233512f06c16cF362EC3D44Cdc800e0
Transaction hash: 0xa0a40c299170c9077d321a93ec20c71e91b8aff54dd9fa33f08d6b61f8953ee0
后续步骤