您现在的位置是:首页 > 编程 > 

Foundry之部署合约本地网络

2025-07-29 11:33:34
Foundry之部署合约本地网络 在之前的文章里,我们介绍了如何使用Foundry来对我们的合约进行测试。现在合约测试完成后,我们需要将合约部署到本地网络上,以便其他用户可以调用。准备工作与测试合约类似,Foundry支持通过脚本的方式来部署合约到本地网络。首先,需要我们在之前的项目下新建script目录,并新建deploy.s.sol文件,内容如下: 代码语言:solidity复制// SPD

Foundry之部署合约本地网络

在之前的文章里,我们介绍了如何使用Foundry来对我们的合约进行测试。现在合约测试完成后,我们需要将合约部署到本地网络上,以便其他用户可以调用。

准备工作

与测试合约类似,Foundry支持通过脚本的方式来部署合约到本地网络。首先,需要我们在之前的项目下新建script目录,并新建deploy.s.sol文件,内容如下:

代码语言:solidity复制
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../src/String.sol"; // 需要部署的合约
import "forge-std/Script.sol";

contract DeployString is Script{
    function run() public{
        uint256 deployerPrivateKey = ("RAW_PRIVATE_KEY");
        vm.startBroadcast(deployerPrivateKey);

        SimpleStorage ss = new SimpleStorage();

        vm.stopBroadcast();

        cole.log("SimpleStorage address: ",address(ss));
    }
}

在上面的脚本中,我们使用了环境变量RAW_PRIVATE_KEY来获取部署者的私钥,并使用vm.startBroadcast方法开启广播模式,然后使用new关键字创建了一个SimpleStorage合约的实例,并使用vm.stopBroadcast方法停止广播模式。最后,我们使用cole.log方法输出了SimpleStorage合约的地址。

部署合约

在开始部署合约之前,我们还需要配置两个环境变量:

  • RAW_PRIVATE_KEY,存储部署者的私钥,格式为十六进制字符串。
  • ETH_RPC_URL,本地测试网络的RPC URL。

环境变量配置完成后,我们可以运行forge script命令来部署合约:

代码语言:bash复制
$ forge script script/deployString.s.sol --broadcast --legacy
[⠢] Compiling...
o files changed, compilation skipped
Script ran successfully.

== Logs ==
  SimpleStorage address:  0xb9f4084fFef8e747dC607879dc87cdF4f0D7041C

## Setting up 1 EVM.

==========================

Chain 4295854

Estimated gas price: 0.000000001 gwei

Estimated total gas used for script: 2722

Estimated amount required: 0.0000000000002722 ETH

==========================

##### 4295854
✅  [Success] Hash: 0x46d8f9576fb621fab64ce51f6216ca0f98184e0ffd8a45ffbcd08e548d9
Contract Address: 0xb9f4084fFef8e747dC607879dc87cdF4f0D7041C
Block: 26
Paid: 0.00000000000025594 ETH (255940 gas * 0.000000001 gwei)

✅ Sequence #1 on 4295854 | Total Paid: 0.00000000000025594 ETH (255940 gas * avg 0.000000001 gwei)


==========================

OCHAI EXECUTIO COMPLETE & SUCCESSFUL.

Transacti saved to: /root/vscode/contract/broadcast/deployString.s.sol/4295854/run-latest.json

Sensitive values saved to: /root/vscode/contract/cache/deployString.s.sol/4295854/run-latest.json

部署成功后,我们可以看到SimpleStorage合约的地址。

因为我本地的测试网络不支持 EIP1559,所以使用--legacy参数

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1172094.html

相关标签:无
上传时间: 2025-07-21 10:03:24
留言与评论(共有 16 条评论)
本站网友 肖鹰
3分钟前 发表
我们介绍了如何使用Foundry来对我们的合约进行测试
本站网友 神经外科
21分钟前 发表
因为我本地的测试网络不支持 EIP1559
本站网友 金钱草功效
8分钟前 发表
我们介绍了如何使用Foundry来对我们的合约进行测试
本站网友 母基金
6分钟前 发表
Foundry之部署合约本地网络 在之前的文章里
本站网友 厦门98投洽会
30分钟前 发表
/root/vscode/contract/cache/deployString.s.sol/4295854/run-latest.json部署成功后
本站网友 如何减去双下巴
6分钟前 发表
格式为十六进制字符串
本站网友 双核处理器
26分钟前 发表
address(ss)); } }在上面的脚本中
本站网友 天印花园
27分钟前 发表
以便其他用户可以调用
本站网友 路由器那个牌子好
8分钟前 发表
address(ss)); } }在上面的脚本中
本站网友 郑州富士康厂址
8分钟前 发表
格式为十六进制字符串
本站网友 雷尼替丁片
22分钟前 发表
compilation skipped Script ran successfully. == Logs == SimpleStorage address
本站网友 相互保
4分钟前 发表
26 Paid
本站网友 国家法律数据库
22分钟前 发表
0xb9f4084fFef8e747dC607879dc87cdF4f0D7041C Block
本站网友 老乡鸡菜单
18分钟前 发表
0.000000001 gwei Estimated total gas used for script
本站网友 太原商铺转让
2分钟前 发表
内容如下: 代码语言:solidity复制// SPDX-License-Identifier