VS Code中运行Foundry部署Solidity合约脚本报错求解决
Foundry部署SimpleStorage合约路径错误解决方法
核心问题分析
你遇到的错误本质是部署脚本路径错误+forge-std库安装方式不符合Foundry规范,手动创建大写Lib文件夹并放入forge-std的操作违反了Foundry的默认路径约定。
正确操作步骤
1. 规范安装forge-std库
回到项目根目录~/src,执行官方标准安装命令,Foundry会自动创建符合要求的小写lib目录并拉取依赖:
forge install foundry-rs/forge-std
不要手动创建
Lib文件夹,Foundry默认识别小写lib目录作为依赖库存放位置。
2. 调整文件目录结构(遵循Foundry标准)
将文件放到以下标准路径:
~/src/ ├── contracts/ # 存放业务合约 │ └── SimpleStorage.sol ├── script/ # 存放部署脚本 │ └── DeploySimpleStorage.s.sol └── lib/ └── forge-std/ # 由forge install自动生成的依赖库
绝对不要把部署脚本放到
lib/forge-std目录下,这是依赖库的专属目录。
3. 修正部署脚本的合约引用
打开script/DeploySimpleStorage.s.sol,确保合约引用的相对路径正确:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; import "forge-std/Script.sol"; import "../contracts/SimpleStorage.sol"; // 从script目录指向contracts目录的相对路径 contract DeploySimpleStorage is Script { function run() external { vm.startBroadcast(); SimpleStorage ss = new SimpleStorage(); vm.stopBroadcast(); } }
4. 执行正确的部署命令
在项目根目录执行以下命令(根据需求添加链上参数):
# 本地测试部署 forge script script/DeploySimpleStorage.s.sol # 广播到测试链/主链(需替换RPC地址和私钥) forge script script/DeploySimpleStorage.s.sol --rpc-url YOUR_RPC_URL --private-key YOUR_PRIVATE_KEY --broadcast
内容的提问来源于stack exchange,提问作者DefyNow
相关产品推荐
相关产品推荐

