 Solidity 原生测试、更快的迭代和内置模糊测试是顶级开发者从 Hardhat 切换到 Foundry 的原因。以下是 Foundry 成为更好选择的原因。 Foundry 是一个基于 Rust 的...
使用Foundry为银行合约的 DepositETH 方法编写单元测试 Foundry的安装使用,请参考官网的官方文档:https://getfoundry.sh 创建项目初始化项目 ``` forge init DepositETH ```  > 为了系统的学习solidity和foundry,我基于foundry测试框架重新编写damnvulnerable-defi的题解,欢迎交流和共建~🎉 > > https://github.com/zach030/damn...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 ERC20Capped.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/extensions/ERC20Capped.sol ERC20Capped库是ERC20的拓展。该库设置了ERC20发行量的上限。 ...
 >感谢【 ⽆特权⻆⾊、坚持中本聪精神的全链互操作基础设施 MAP Protocol 】对本次活动的支持! ## 分享主题:SLOADS 给Foundry增加存储相关的作弊码 1. EVM 存储布局 ...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 ERC20PresetFixedSupply.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol ERC20PresetFixedSupply库是一种带预铸造功能的ERC2...
## 介绍 [Foundry](https://learnblockchain.cn/docs/foundry/i18n/zh/) 是一个新出的rust写的合约开发框架 rust一直在改变编程界的格局,btc C语言开发,eth go主导,也有 rust 的eth 波卡链 直接rust,兴起跨链的生态。 不少web开发工具,打包...
## 高级 Foundry 作弊码系列:第 4 部分 - 作弊码 vm.roll & vm.warp: 使用 vm.roll 和 vm.warp 控制 Solidity 测试中的区块时间戳和编号。在无需等待的情况下测试截止日期、归属和基于时间的逻辑。  环境中使用 OpenZeppelin 安全创建和验证 ECDSA 签名的最小示例(可以直接复制粘贴)。 ## 合约:Verifier.sol ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/...
## Foundry 高级作弊码系列:第 6 部分 - 使用 Forge 进行高级 Fuzz 测试 使用 Foundry 的 fuzzing 和 fork 功能来发现 Solidity 测试中的极端情况。学习 vm.assume、bound()、createFork,以及如何针对主网状态进行测试。 ![Foundry 高级作弊码系列:...
Foundry 是基于 Rust 的以太坊开发工具包,主要用于 Solidity 智能合约的测试、部署和调试。它内置了一个交互式调试器(通过 Forge),支持在测试环境中设置断点、逐步执行代码,并检查 EVM 状态(如栈、内存、调用等)。断点主...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 Multicall.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/Multicall.sol Multicall库提供了一个`multicall(bytes[] calldata data)`方法,通过该方法可以由调...
## Foundry 高级作弊码系列:第 7 部分:Foundry 中的不变性测试 超越模糊测试。 了解 Forge 的不变性测试如何检查随机调用序列下的核心协议假设。 在黑客入侵你的代码之前打破它。 ![Foundry 高级作弊码系列:第 7 部分:Foundry 中...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 BitMaps.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/structs/BitMaps.sol BitMaps库开发了一种存储更紧凑且高效的mapping(uint256=>bool)。传统的mapping(u...