# Challenge #1 - Unstoppable [Unstoppable](https://www.damnvulnerabledefi.xyz/challenges/unstoppable/) > 为了系统的学习solidity和foundry,我基于foundry测试框架重新编写damnvulnerable-defi的题解,欢迎交流和共建~🎉 > > > https://github.com/zach030/damnvulne...
> 📚 作者:Henry > 🧱 系列:《深入理解区块链 Gas 机制》 · 第 8 篇 > 👨💻 受众:Web3 开发者 / Solidity 工程师 / 区块链学习者 ## 一、执行前:Gas 估算与模拟工具 ### 🧪 `estimateGas()`(RPC 方法) * 基础模拟机制; * ...
合约里的数值通常非常大, 肉眼阅读非常费劲,solpretty 可以让对数字进行漂亮的格式化。 solpretty 在 [Foundry](https://learnblockchain.cn/docs/foundry/i18n/zh/) 工程下使用: 使用 Foundry install 安装 solpretty: ```bash forge install devtooligan/so...
 想象一下你的合约可能面临的每一个随机调用。现在测试它们全部。不变性测试就像打了兴奋剂的fuzzing,非常适合发现你从未想过的错误。深入了解! ## 简介 我...
学习如何使用 Foundry 框架编写 Solidity 智能合约模糊测试(fuzzing)。编写测试、使用恶作剧地址并通过 forge 执行它们。 本文将教你如何编写 Solidity 智能合约模糊测试(fuzzing),以帮助你编写更安全的协议并发掘代码中的问题...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 DoubleEndedQueue.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/structs/DoubleEndedQueue.sol DoubleEndedQueue库提供了双向队列的数据结构及对应操作库函...
 Advanced Foundry Cheatcodes Series: Part 2 - Cheatcode vm.prank, 模拟调用 想要掌握 Solidity 测试吗?我们的 Foundry Cheatcodes 系列的第 2 部分揭示了 vm.prank 如何让你模拟任何地址,这对于快...
 Web3 生态系统不断演变,开发者工具在不断进步,以满足区块链开发的需求。尽管像 Truffle 这样的工具在过去被广泛使用,开发者们越来越转向 Hardhat,因为它具备更强的...
 当我刚开始学习区块链开发时,我以为像Foundry、Hardhat,甚至MetaMask这样的工具,不知何故能够“直接”访问以太坊。写一些代码,运行一个命令,然后砰——它就在区...
## Foundry 高级测试第一部分 —— Fuzz 测试  ## 1. 简介 在智能合约的开发中,安全性和稳定性至关重要。一旦智能合约部署到区块链上,其代码就变得不可更改,这使得在...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 ERC20Burnable.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/extensions/ERC20Burnable.sol ERC20Burnable库是ERC20的拓展。该库允许用户销毁自己和给...
# cast命令初步使用 cast 与 forge 不同,是用于与以太坊合约进行交互的工具。 而 forge 侧重于合约的开发和测试,两者配合使用。 ## 常用钱包命令 + `cast wallet -h` 查看帮助 + `cast wallet new/new-mnemonic` 生成一个私钥或助记词 + `ca...
## 什么是foundry? foundry是一个solidity智能合约开发工具。可以帮你管理依赖包,编译项目,运行测试脚本,还可以让你通过命令行工具或者script脚本和链上合约进行交互。和hardhat不同的地方是,hardhat我们还是主要用来开发大型的...
使用 vm.roll 和 vm.warp 在 Solidity 测试中控制区块时间戳和编号。无需等待即可测试截止日期、归属和基于时间的逻辑。  Foundry [Foundry rol...