使用 Foundry 部署智能合约
本 教程将指导您使用 Foundry 在 Status Network 测试网上部署智能合约。
前提条件
开始之前,请确保您具备以下条件:
- Foundry: 从官方 Foundry 文档安装
- 以太坊钱包: Status Network 测试网的私钥
- 测试网 ETH: 您需要 Status Network 测试网 ETH
- 从我们的水龙头获取 Status Network 测试网 ETH
- 基础知识: 熟悉 Solidity 和命令行
您将完成
- 初始化 Foundry 项目
- 编写基本的以太坊智能合约
- 配置 Foundry 以部署到 Status Network 测试网
- 部署您的智能合约
步骤
1. 初始化 Foundry 项目
首先,创建一个新的 Foundry 项目:
# 创建新项目
forge init hello_status
cd hello_status
# 创建 .env 文件存储私钥
touch .env
echo "PRIVATE_KEY=your_private_key_here" >> .env
2. 编写智能合约
将 src/Counter.sol
替换为 HelloWorld.sol
:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract HelloWorld {
string public greet = "Hello, Status Network!";
function setGreet(string memory _greet) public {
greet = _greet;
}
function getGreet() public view returns (string memory) {
return greet;
}
}
3. 为 Status Network 配置 Foundry
创建或更新 foundry.toml
:
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc = "0.8.24"
[rpc_endpoints]
status_testnet = "https://public.sepolia.rpc.status.network"
4. 部署合约
创建部署脚本 script/Deploy.s.sol
:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "forge-std/Script.sol";
import "../src/HelloWorld.sol";
contract DeployScript is Script {
function run() external {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
vm.startBroadcast(deployerPrivateKey);
HelloWorld hello = new HelloWorld();
console.log("HelloWorld deployed to:", address(hello));
vm.stopBroadcast();
}
}
使用 forge 部署:
# 加载环境变量
source .env
# 部署到 Status Network 测试网
forge script script/Deploy.s.sol:DeployScript \
--rpc-url https://public.sepolia.rpc.status.network \
--broadcast \
5. 与合约交互
创建交互脚本 script/Interact.s.sol