Home

Awesome

logo

:globe_with_meridians: English / Español / Português Brasileiro :globe_with_meridians:

WTF Solidity

我最近在重新学solidity,巩固一下细节,也写一个“WTF Solidity极简入门”,供小白们使用(编程大佬可以另找教程),每周更新1-3讲。

路线图根据本仓库star数量来定:

入门

第1讲:三行代码HelloWeb3代码 | 文章

第2讲:值类型代码 | 文章

第3讲:函数 (external/internal/public/private, pure/view, payable)代码 | 文章

第4讲:函数输出(returns/return)代码 | 文章

第5讲:变量作用域和数据存储 (storage/memory/calldata)代码 | 文章

第6讲:数组(array)和结构体(struct)代码 | 文章

第7讲:映射(mapping)代码 | 文章

第8讲:变量初始值代码 | 文章

第9讲:常量(constant/immutable)代码 | 文章

第10讲:控制流和插入排序代码 | 文章

第11讲:构造函数(constructor)和修饰器(modifier)代码 | 文章

第12讲:事件(events)代码 | 文章

第13讲:继承代码 | 文章

第14讲:抽象合约(abstract)和接口(interface)代码 | 文章

第15讲:异常(errors)代码 | 文章

进阶

第16讲:函数重载代码 | 文章

第17讲:库合约(library)代码 | 文章

第18讲:Import代码 | 文章

第19讲:接收ETH(fallback/receive)代码 | 文章

第20讲:发送ETH(transfer/send/call)代码 | 文章

第21讲:调用其他合约代码 | 文章

第22讲:Call代码 | 文章

第23讲:Delegatecall代码 | 文章

第24讲:在合约中创建新合约代码 | 文章

第25讲:Create2代码 | 文章

第26讲:删除合约代码 | 文章

第27讲:ABI编码解码代码 | 文章

第28讲:Hash代码 | 文章

第29讲:函数选择器(selector)代码 | 文章

第30讲:Try-Catch代码 | 文章

应用

第31讲:ERC20代码 | 文章

第32讲:代币水龙头代码 | 文章

第33讲:空投合约代码 | 文章

第34讲:ERC721代码 | 文章

第35讲:荷兰拍卖代码 | 文章

第36讲:Merkle Tree代码 | 文章

第37讲:数字签名代码 | 文章

第38讲:NFT交易所代码 | 文章

第39讲:随机数代码 | 文章

第40讲:ERC1155代码 | 文章

第41讲:WETH代码 | 文章

第42讲:分账代码 | 文章

第43讲:线性释放代码 | 文章

第44讲:代币锁代码 | 文章

第45讲:时间锁代码 | 文章

Degen

第46讲:代理合约代码 | 文章

第47讲:可升级合约代码 | 文章

第48讲:透明代理代码 | 文章

第49讲:通用可升级代理UUPS代码 | 文章

第50讲:多签钱包代码 | 文章

第51讲:ERC4626 代币化金库代码 | 文章

第52讲:EIP712 类型化数据签名代码 | 文章

第53讲:ERC2612 ERC20Permit代码 | 文章

第54讲:跨链桥代码 | 文章

第55讲:多重调用代码 | 文章

第56讲:去中心化交易所代码 | 文章

第57讲:闪电贷代码 | 文章

合约安全

S01:重入攻击代码 | 文章

S02:选择器碰撞代码 | 文章

S03:中心化代码 | 文章

S04:权限管理代码 | 文章

S05:整型溢出代码 | 文章

S06:签名重放代码 | 文章

S07:坏随机数代码 | 文章

S08:绕过合约检查代码 | 文章

S09:拒绝服务漏洞代码 | 文章

S10:貔貅 Honeypot代码 | 文章

S11:抢先交易代码 | 文章

S12:tx.origin钓鱼代码 | 文章

S13:未检查的低级调用代码 | 文章

S14:操纵区块时间代码 | 文章

S15:操纵预言机代码 | 文章

S16:NFT重入攻击代码 | 文章

S17:“跨服”重入攻击文章

EVM 操作码

OP01:Hello Opcodes代码 | 文章

OP02:Opcodes分类代码 | 文章

OP03:堆栈指令代码 | 文章

OP04:算数指令代码 | 文章

OP05:比较指令代码 | 文章

OP06:位级指令代码 | 文章

OP07:内存指令代码 | 文章

OP08:存储指令代码 | 文章

OP09:控制流指令代码 | 文章

OP10:区块信息指令代码 | 文章

OP11:堆栈指令2代码 | 文章

OP12:SHA3指令代码 | 文章

OP13:账户指令代码 | 文章

OP14:交易指令代码 | 文章

OP15:Log指令代码 | 文章

OP16:Return指令代码 | 文章

OP17:Revert指令代码 | 文章

OP18:Call指令代码 | 文章

OP19:Delegatecall指令代码 | 文章

OP20:Staticcall指令代码 | 文章

OP21:Create指令代码 | 文章

OP22:Create2指令代码 | 文章

OP23:Selfdestruct指令代码 | 文章

OP24:Gas指令代码 | 文章

OP25:优化最小代理合约 EIP-7511代码 | 文章

Solidity 内部规则

SI01:基础存储布局代码 | 文章

SI02:映射和动态数组的存储布局代码 | 文章

SI03:字节数组和字符串的存储布局代码 | 文章

SI04:内存布局代码 | 文章

SI05:ABI编码基础代码 | 文章

SI06:动态类型的ABI编码代码 | 文章

SI07:ABI编码公式代码 | 文章

SI08:calldata/returndata的ABI编码代码 | 文章

SI09:事件的ABI编码代码 | 文章

SI10:Error的ABI编码代码 | 文章

主题

开发工具

第1讲:Remix, 最易用的Solidity IDE 文章

第2讲:Infura, 连接链下与链上的桥梁 文章

第3讲:Ganache,搭建本地测试网络 文章

第4讲:Alchemy, 区块链API和节点基础设施 文章

第5讲:Dune,使用Dune可视化区块链数据 文章

第6讲:Hardhat,以太坊开发环境 文章

第7讲:Foundry,以Solidity为中心的开发工具包 代码 | 文章

第8讲:ZAN,节点服务和合约审计等Web3技术服务 文章

链上威胁分析

第1讲:工具篇 文章 | 英文文章

第2讲:热身篇 文章 | 英文文章

第3讲:漏洞概念验证-上篇 文章 | 英文文章

第4讲:漏洞概念验证-中篇 文章 | 英文文章

第5讲:漏洞概念验证-下篇 文章 | 英文文章

第6讲:Rugpull 分析 文章 | 英文文章

第7讲:Nomad 跨链桥事件分析 文章| 英文文章

NFT

第1讲:ERC721库:Address, Strings, Context 代码 | 文章

第2讲:ERC721相关接口 代码 | 文章

第3讲:ERC721主合约 代码 | 文章

第4讲:BAYC主合约和严重漏洞 代码 | 文章

第5讲:Loot 代码 | 文章

翻译

第1讲:Metamask项目方给Solidity程序员的16个安全建议 文章

第2讲:深入EVM 文章

WTF贡献者

<div align="center"> <h4 align="center"> 贡献者是WTF学院的基石 </h4> <a href="https://github.com/AmazingAng/WTF-Solidity/graphs/contributors"> <img src="https://contrib.rocks/image?repo=AmazingAng/WTFSolidity" /> </a> </div>

捐赠

参考