WTF-Solidity icon indicating copy to clipboard operation
WTF-Solidity copied to clipboard

我最近在重新学solidity,巩固一下细节,也写一个“WTF Solidity极简入门”,供小白们使用,每周更新1-3讲。Now supports English! 官网: https://wtf.academy

Results 143 WTF-Solidity issues
Sort by recently updated
recently updated
newest added

实际应为通用可升级代理,但左边列表显示为透明代理

在执行 [Remix演示](https://wtf.academy/solidity-application/S01_ReentrancyAttack/#remix%E6%BC%94%E7%A4%BA) 的第三步”调用Atack合约的attack()函数发动攻击,调用时需转账1 ETH。“时会 revert "Failed to send Ether"的错误。 经过测试,在本地Hardhat节点测试相同的代码则可以通过,初步判断应该是Remix编译器的处理代码与Hardhat有所差异导致。

使用[WTF Solidity极简入门: 32. 代币水龙头](https://github.com/AmazingAng/WTF-Solidity/tree/main/32_Faucet)来做为测试用例。当时间戳校验正确,用户才可以mint WTF代币

个人觉得算不上漏洞,伪去中心化项目,最初就这么设计的。 BUG 1 : 在设计之初就留出了升级的空间,可能是为了防止图片的丢失,可以更换URL。 BUG 2:图片的链接一共只有10000个,他增发了也没图片。 只能说存在私钥被盗了就GG了。

function transfer(address recipient, uint amount) 应为function transfer(address recipient, uint256 amount)

``` // delegatecall操作码的参数:gas, 目标合约地址,input mem起始位置,input mem长度,output area mem起始位置,output area mem长度 // output area起始位置和长度位置,所以设为0 // delegatecall成功返回1,失败返回0 let result := delegatecall(gas(), _implementation, 0, calldatasize(), 0, 0) ``` 请教下这里output area mem是delegatecall的返回值么,如果是,可以直接把output area mem的长度设置为returndata的长度吗

![image](https://user-images.githubusercontent.com/42539774/203720266-d836392e-2412-401d-85b5-f9f04e277c73.png) 正确的方式应该是这样? ``` constructor(uint256 _amount) payable { payable(address(this)).transfer(_amount); } ```

在eth goerli测试链上进行测试,使用personal_sign 签名的数据,进行验签,返回的公钥地址与签名地址不符