Web3:在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境

发布于:2025-08-01 ⋅ 阅读:(24) ⋅ 点赞:(0)
相关文章推荐 链接
Web3专栏 https://blog.csdn.net/qq_42392981/category_13016259.html

引言

作为 Solidity 初学者或中级开发者,你可能希望在本地环境中快速开发和测试智能合约。Foundry 是一个高效的以太坊开发工具链,支持 Solidity 合约的编写、测试和部署,而 VSCode 则提供优秀的代码编辑支持。本教程将指导你在 Windows 系统下搭建环境、创建项目、编写合约、进行单元测试,并使用本地网络进行部署和调试。所有步骤均针对 Windows 环境,确保易于复现。

前提条件

  • Windows 10 或更高版本。
  • 基本命令行操作知识(Git bash)。
  • 安装 Git(如果未安装,可从 Git 官网 下载)。

1. 开发环境准备(Windows)

1.1 安装 VSCode

  1. 访问 VSCode 官网 下载 Windows 安装包。
  2. 双击安装包,按照提示完成安装(选择默认选项即可)。
  3. 启动 VSCode,确认界面正常。

**建议截图位置**:VSCode 启动后的欢迎界面。

1.2 安装推荐插件

在 VSCode 中打开扩展面板(Ctrl + Shift + X),搜索并安装以下插件:

  • Solidity(由 Juan Blanco 开发):提供 Solidity 语法高亮、自动补全和 linting。
  • Prettier - Code formatter:自动格式化代码,确保一致性。
  • Solidity Visual Developer:增强 Solidity 可视化,如函数调用图和审计工具。

安装后,重启 VSCode 以生效。

**建议截图位置**:扩展面板显示已安装插件列表。

1.3 安装 Foundry

可以参考我的另外一篇详细安装Foundry的文章Foundry安装和使用指南

Foundry 通过 foundryup 安装脚本进行安装。在 Windows 上,使用 Git bash 执行以下步骤:

  1. 打开 Git bash。

  2. 执行以下命令下载并安装 Foundry:

    curl -L https://foundry.paradigm.xyz | Invoke-Expression
    

    这将安装 foundryup,然后运行 foundryup 更新到最新版本。

    注意:如果 curl 未安装,确保你的 Windows 已启用(或通过 Git Bash 使用)。

**建议截图位置**:PowerShell 中运行  后的成功输出。

1.4 验证 Forge 和 Anvil 安装成功

在 Git Bash 中运行以下命令验证:

forge --version
anvil --version

输出类似 forge Version 0.x.xanvil Version 0.x.x 表示安装成功。

**建议截图位置**:验证命令的输出结果。


2. 创建 Solidity 项目(使用 Foundry)

2.1 使用 Forge Init 创建项目

  1. 在 Git Bash 中导航到你想要的目录(例如:cd C:\Projects)。

  2. 创建并初始化项目:

    forge init my-solidity-project
    cd my-solidity-project
    

    这将生成一个模板项目。

**建议截图位置**:项目初始化后的终端输出。

2.2 项目目录结构解析

初始化后,项目结构如下:

  • src/:存放智能合约源代码(例如 Counter.sol)。
  • test/:存放单元测试文件(例如 Counter.t.sol)。
  • script/:存放部署和交互脚本(例如 Deploy.s.sol)。
  • lib/:存放依赖库(如 Forge-Std)。
  • foundry.toml:配置文件。
  • .git/:Git 版本控制目录。
    在这里插入图片描述

2.3 配置文件 foundry.toml 的作用说明

foundry.toml 是 Foundry 的配置文件,用于自定义构建、测试和部署行为。默认内容包括:

[profile.default]
src = 'src'
out = 'out'
libs = ['lib']
  • src:源代码目录。
  • out:编译输出目录。
  • libs:依赖库目录。

可以查看详细配置foundry.toml详细配置


3. 编写智能合约与单元测试

3.1 编写简单合约示例(Counter.sol)

在 VSCode 中打开项目,编辑 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++;
    }
}

保存文件,插件会自动高亮语法。

3.2 编写测试用例(使用 Forge 测试框架)

编辑 test/Counter.t.sol

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import {Test, console} from "forge-std/Test.sol";
import {Counter} from "../src/Counter.sol";

contract CounterTest is Test {
    Counter public counter;

    function setUp() public {
        counter = new Counter();
        counter.setNumber(0);
    }

    function test_Increment() public {
        counter.increment();
        assertEq(counter.number(), 1);
    }

    function testFuzz_SetNumber(uint256 x) public {
        counter.setNumber(x);
        assertEq(counter.number(), x);
    }
}

在这里插入图片描述

3.3 运行本地测试命令

在 Git Bash中运行:

forge build
forge test
  • forge build:编译合约。
  • forge test:运行测试用例。

**建议截图位置**: 运行后的成功输出(显示通过的测试)


4. 使用 Foundry 搭建本地测试网络

4.1 启动本地节点 Anvil

Anvil 是 Foundry 的本地以太坊模拟器。在新建的 Git Bash窗口中运行:

anvil --accounts 10 --balance 100
  • --accounts 10:生成 10 个测试账户。
  • --balance 100:每个账户初始余额 100 ETH。

Anvil 会输出 RPC URL(如 http://127.0.0.1:8545)和测试账户私钥。

在这里插入图片描述

4.2 使用 Anvil 模拟本地区块链环境

Anvil 模拟完整的以太坊环境,支持合约部署和交易模拟。保持 Anvil 窗口打开,作为本地链。

4.3 在本地部署合约(使用 Forge Script)

使用脚本部署到 Anvil(详见下一节)。


5. 脚本部署与调试演示

5.1 编写部署脚本(script/Deploy.s.sol)

创建或编辑 script/Counter.s.sol
注意:如果是初始化的,则已经存在了这个文件

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import {Script, console} from "forge-std/Script.sol";
import {Counter} from "../src/Counter.sol";

contract CounterScript is Script {
    Counter public counter;

    function setUp() public {}

    function run() public {
        vm.startBroadcast();

        counter = new Counter();

        vm.stopBroadcast();
    }
}

5.2 运行部署脚本连接 Anvil

在另一个 PowerShell 窗口(项目目录下)运行:

forge script script/Counter.s.sol --rpc-url http://127.0.0.1:8545 --broadcast --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
  • --rpc-url:Anvil 的 URL。
  • --broadcast:实际广播交易。
  • --private-key:从 Anvil 输出中复制一个私钥。

5.3 在终端查看交易过程和输出

部署后,终端会显示交易哈希和合约地址。Anvil 窗口会日志交易细节,用于调试。

**建议截图位置**:部署脚本运行输出和 Anvil 的交易日志。
根据这个输出的结果可以得到:

项目 说明
脚本 script/Counter.s.sol
运行环境 本地 Anvil 节点(localhost:8545)
合约部署成功 ✅ 是
合约地址 0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0
交易哈希 0x9ab869...
Gas 花费 156,801
支付 ETH ~0.00012 ETH
保存位置 broadcast/cache/ 文件夹

使用 Foundry 框架 编写的 Solidity 脚本,用于在本地或测试网络中部署一个名为 Counter 的智能合约。这个脚本文件遵循 Foundry 的标准结构,通常保存在 script/ 目录下,并配合命令 forge script 使用。


结语

通过本教程,你已在 Windows 上使用 VSCode 和 Foundry 完成了 Solidity 合约的开发、测试和本地部署。实践这些步骤,能显著提升你的开发效率。如果遇到问题,检查命令是否正确或参考官方文档。

参考链接

相关文章推荐 链接
Web3专栏 https://blog.csdn.net/qq_42392981/category_13016259.html

网站公告

今日签到

点亮在社区的每一天
去签到