You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Foundry中于Sepolia测试网运行真实付费测试?

Foundry 支持在真实测试网运行测试并消耗ETH吗?

答案是肯定的,Foundry完全支持直接在真实测试网(如Sepolia)执行测试,交易会真实上链并消耗对应测试网的ETH。

操作步骤:

  • 确保你的钱包持有足量的Sepolia ETH,并且拥有对应测试网的RPC URL(可从Alchemy、Infura等服务商获取)。
  • 使用以下命令直接连接真实测试网运行测试:
    forge test --rpc-url SEPOLIA_RPC_URL --private-key YOUR_PRIVATE_KEY
    
    注意:不要使用--fork-url参数,--fork-url会启动分叉模式,所有操作都在本地模拟;而直接用--rpc-url配合私钥,会将测试中的交易发送到真实测试网,产生实际的Gas消耗。

关于你编写的测试修饰符

你的onlyOnDeployedContracts修饰符思路正确,通过判断链ID和是否处于分叉环境,确保测试逻辑仅在真实测试网执行。不过可以做一些优化:

  1. 直接指定目标测试网的链ID(比如Sepolia的链ID是11155111),避免误匹配其他本地链:
    modifier onlyOnRealSepolia() {
        // 跳过本地链(31337)
        if (block.chainid == 31337) {
            return;
        }
        // 跳过分叉网络
        try vm.activeFork() returns (uint256) {
            return;
        } catch {
            // 仅在真实Sepolia测试网执行逻辑
            _;
        }
    }
    
  2. 如果你的Foundry版本较新,可以使用vm.isFork()函数直接判断是否处于分叉环境,代码更简洁:
    modifier onlyOnRealSepolia() {
        // 仅当链ID是Sepolia且非分叉环境时执行
        if (block.chainid != 11155111 || vm.isFork()) {
            return;
        }
        _;
    }
    

内容的提问来源于stack exchange,提问作者JohnKot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:13:16