### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 Math.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/math/Math.sol Math库为合约开发提供了solidity内置的uint256运算以外的其他整形运算方法。solidit...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 ERC165Checker.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/introspection/ERC165Checker.sol ERC165Checker库是用来查询已实现IERC165的目标合约自身实现了...
在foundry中用Solidity编写一个质押挖矿的项目,实现如下功能: 1. 用户随时可以质押项目方代币 RNT(自定义的ERC20+ERC2612) ,开始赚取项目方Token(esRNT); 2. 可随时解押提取已质押的 RNT; 3. 可随时领取esRNT奖励,每质押1个RNT每天...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 MerkleProof.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/cryptography/MerkleProof.sol MerkleProof库提供了用于验证merkle树proof的工具函数。在生成merkle...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 SafeERC20.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol SafeERC20库封装了ERC20的操作,使各操作执行失败时触发revert。因为...
昨天写一篇,蜜罐的分析,我发现感兴趣的朋友还挺多,我也就多了解了一下这方面的知识,我发现重入攻击大家都是翻译的一个老外的文章,连代码都是提供的图片,我觉得有必要自己写代码来一遍。 重入就是利用solidity虚...
[Halmos v0.3.0](https://github.com/a16z/halmos) 发布啦! Halmos 是 EVM 智能合约的符号测试工具,它使用符号执行来帮助查找错误和验证合约行为。自 v0.2.0 以来,我们一直专注于使 halmos 在实际错误查找方面更有效,而不仅仅是形式验证...
## 如何使用 Halmos 编写符号测试 符号测试看起来与模糊测试相似,但有一些需要理解的差异。本指南将引导你完成编写符号测试的过程,重点介绍与模糊测试相比的差异。它适用于那些已经熟悉 [Dapptools]-/[Foundry]-风格的模糊测...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 TransparentUpgradeableProxy.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/proxy/transparent/TransparentUpgradeableProxy.sol TransparentUpgradeableProxy库是一个透明代理...
今天这篇是[Ethernaut 题库闯关](https://learnblockchain.cn/article/4578)连载的第3篇,难度等级:中等。 ## 挑战:投掷硬币 今天需要 Hack 一个投掷硬币(CoinFlip)的游戏合约,要求连续10次猜出投掷硬币正确的结果。 以下是投掷硬...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 UUPSUpgradeable.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/proxy/utils/UUPSUpgradeable.sol UUPSUpgradeable库是专为UUPS代理设计的一种合约升级机制的实现...
在以太坊上使用 Solidity 和 Foundry 结合 Flashbots 实现交易捆绑,可以通过以下步骤来完成。这里我们假设你已经在 Sepolia 测试网上部署了 OpenspaceNFT 合约,并且想要使用 Flashbots 捆绑开启预售和参与预售的交易。以下是实现这一目...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 Initializable.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/proxy/utils/Initializable.sol Initializable库用于开发可升级合约或代理合约背后的逻辑合约。由...
视频 AI 总结: 该视频是 Curve-V2 Cryptoswap AMM 的课程介绍,面向有 Foundry 经验的高级 Solidity 开发者。课程核心内容是讲解 Curve-V2 的数学原理和算法,Curve-V2 是一种自动集中流动性的 AMM,它使用内部价格来跟踪代币的指数移动平...
>当我阅读 UniswapV3 项目并了解其实现方式时,我想通过测试来进一步学习。然而,我发现大多数在线部署指南都使用 Hardhat 进行部署。因此,我打算撰写一篇使用 Foundry 部署的文档,后续会继续更新和完善。[on my Github](https://gith...