合约已经部署,测试totalSupply是可以成功的,测试transfer也是ok的,但是我自己添加的mint函数就报错 Usdt token = Usdt(0x353AAE696e61DD1523D8209fC348B37AD4B589cA); 这样就能成功, 改一下合约名字成Token就提示找不到 Token token = Token(0x353AAE...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 Ownable2Step.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/access/Ownable2Step.sol Ownable2Step库是Ownable库的拓展版本。其提供的访问权限机制同Ownable完全...
## Michael.W基于Foundry精读Openzeppelin第54期——ERC20PresetMinterPauser.sol ### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 ERC20PresetMinterPauser.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/presets/...
### 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库提供了双向队列的数据结构及对应操作库函...
智能合约代码: ``` function mintWhitelist() external { uint256 totalMinted = totalSupply(); require(totalMinted < MAX, "All minted"); uint256 whitelistAmount = whitelistNumber[msg.sender]; require(whitelistAmount > 0, "Not in whitelist"); ... } ...
### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 ERC1820Implementer.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/introspection/ERC1820Implementer.sol ERC1820Implementer合约是对IERC1820Implementer interface的实...
> 一旦你按照[这里](https://learnblockchain.cn/article/21770)所学,设置好你的本地 Foundry 环境,是时候深入了解以太坊交易的内部机制,看看当 EVM 执行你的代码时实际发生了什么。 > > 从 calldata 解码到存储写入的每一个操作,都可以使...
## 目录架构 我们先看看安装了foundry后各个目录的作用,下面是一张图片,我们挨个讲解  ### lib/forge-std 我们安装的库都会在这里...
> * 原文链接: https://patrickalphac.medium.com/fuzz-invariant-tests-the-new-bare-minimum-for-smart-contract-security-87ebe150e88c > * 译文出自:[登链翻译计划](https://github.com/lbc-team/Pioneer) > * 译者:[翻译小组](https://learnblockchain.cn/people/412) 校对:[Tiny ...
### 0. 版本 [forge-std]:v1.5.6 ### 1. 关于内联汇编staticcall 内联汇编中,Instruction `staticcall`的功能及使用方法与Instruction `call`类似。唯一不同的是在staticcall中不允许发生storage的修改。 staticcall的使用方法如下: ```solidity a...