WTF Solidity 极简入门教程,供小白们使用。Now supports English! 官网: https://wtf.academy
Find a file
Alan Xu bea5409167
Some checks failed
Codespell / codespell (push) Has been cancelled
Merge pull request #890 from fly-1-1/airdrop-fix
fix:airdrop.sol check conditions
2025-11-20 15:29:26 +08:00
.github Update bug-report.yml (#847) 2024-11-25 21:06:46 +08:00
01_HelloWeb3 feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
02_ValueTypes fix some wordings 2024-06-25 12:29:12 +08:00
03_Function 修复错别字 (#870) 2025-07-03 17:18:14 +08:00
04_Return Update 04_Return readme.md 2024-09-28 22:03:12 +08:00
05_DataStorage Merge pull request #789 from jes16jupyter/main 2024-10-19 19:26:04 +08:00
06_ArrayAndStruct doc: 错别字勘误 (#872) 2025-07-04 11:34:27 +08:00
07_Mapping docs(07_mapping): supplement KeyType (#867) 2025-03-23 03:26:30 +08:00
08_InitialValue feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
09_Constant docs: fix typo 2025-10-30 22:40:18 +08:00
10_InsertionSort fix some wordings 2024-06-25 12:29:12 +08:00
11_Modifier feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
12_Event "add information for index can lead to data loss" 2024-09-26 10:26:07 +08:00
13_Inheritance fix some wordings 2024-06-25 12:29:12 +08:00
14_Interface update interface 2025-07-07 15:57:59 +08:00
15_Errors feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
16_Overloading feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
17_Library docs: update library (#874) 2025-07-09 09:41:46 +08:00
18_Import feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
19_Fallback feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
20_SendETH feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
21_CallContract feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
22_Call Update Call.sol 2024-09-28 13:37:21 +08:00
23_Delegatecall doc: 调整 DelegateCall 课程中代理合约相关描述 2024-08-10 22:53:11 +08:00
24_Create Merge branch 'main' into main 2024-10-19 19:01:23 +08:00
25_Create2 feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
26_DeleteContract Update readme.md 2024-10-06 00:32:20 +08:00
27_ABIEncode Merge pull request #789 from jes16jupyter/main 2024-10-19 19:26:04 +08:00
28_Hash feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
29_Selector feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
30_TryCatch fix: 图片缺失 2025-07-07 02:37:00 +08:00
31_ERC20 feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
32_Faucet Revise BTC price and value in readme 2025-10-28 16:00:54 +08:00
33_Airdrop fix:airdrop.sol check conditions 2025-11-20 11:23:47 +08:00
34_ERC721 fix typos 2025-08-18 20:02:04 +08:00
35_DutchAuction fix typos 2024-07-02 23:52:35 +08:00
36_MerkleTree Update 36_MerkleTree readme.md and imgs 2024-09-28 21:38:14 +08:00
37_Signature Update readme.md 2024-10-19 19:24:58 +08:00
38_NFTSwap update NFTSwap 2025-08-01 10:54:32 +08:00
39_Random feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
40_ERC1155 Merge pull request #817 from eddiehsu66/40_ERC1155 2025-07-06 20:45:31 +08:00
41_WETH feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
42_PaymentSplit feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
43_TokenVesting feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
44_TokenLocker Fix typo: rename ToeknLocker to TokenLocker (#869) 2025-06-30 11:22:55 +08:00
45_Timelock feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
46_ProxyContract fix typos 2024-07-02 23:52:35 +08:00
47_Upgrade docs(47): update doc (#833) 2024-11-04 21:18:41 +08:00
48_TransparentProxy fix typos 2024-07-02 23:52:35 +08:00
49_UUPS fix typos 2024-07-02 23:52:35 +08:00
50_MultisigWallet Update MultisigWallet.sol (#842) 2024-11-24 22:57:55 +08:00
51_ERC4626 Merge pull request #789 from jes16jupyter/main 2024-10-19 19:26:04 +08:00
52_EIP712 Update readme.md 2024-11-08 12:25:35 +08:00
53_ERC20Permit fix owner typo (#858) 2025-02-03 16:26:51 +08:00
54_CrossChainBridge fix: correct comments(#759) (#820) 2024-11-01 13:41:36 +08:00
55_MultiCall feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
56_DEX docs(56): Add WTF-Dapp link 2024-11-19 12:28:53 +08:00
57_Flashloan feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
img fix format 2022-07-27 16:25:08 +08:00
Languages fix title 2025-10-26 20:47:41 +08:00
S01_ReentrancyAttack Add more cases to Reentrancy 2024-09-26 10:57:17 +08:00
S02_SelectorClash 示例代码与solidity不一致的问题 2024-06-20 12:31:47 +08:00
S03_Centralization feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S04_AccessControlExploit feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S05_Overflow 解决Safemath 库连接失效问题 2024-06-20 02:23:21 +08:00
S06_SignatureReplay add signature length check 2024-09-26 19:21:42 +08:00
S07_BadRandomness feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S08_ContractCheck docs(s08): fix markdown warnings (#836) 2024-11-06 00:31:09 +08:00
S09_DoS fix typos 2024-07-02 23:52:35 +08:00
S10_Honeypot fix typos 2024-07-02 23:52:35 +08:00
S11_Frontrun feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S12_TxOrigin feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S13_UncheckedCall fix typos 2024-07-02 23:52:35 +08:00
S14_TimeManipulation feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S15_OracleManipulation fix typos 2024-07-02 23:52:35 +08:00
S16_NFTReentrancy feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
S17_CrossReentrancy feat(repo): fix repo name 2024-06-12 10:28:47 +08:00
Topics feat(erc721-03): erc721-03 (#856) 2025-01-09 15:31:15 +08:00
.codespellignore feat(codespell): fix code spell 2024-06-14 22:18:36 +08:00
.gitignore 方便 mirror 之类的平台分发,主要是图片格式 (#840) 2024-11-26 10:27:59 +08:00
funding.json Create funding.json 2025-02-20 15:26:37 +08:00
LICENSE Update LICENSE 2023-07-26 15:16:18 +08:00
mirror_gen.js 方便 mirror 之类的平台分发,主要是图片格式 (#840) 2024-11-26 10:27:59 +08:00
README.md Update README.md (#866) 2025-03-20 15:36:50 +08:00

logo

🌐 English / Español / Português Brasileiro 🌐

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讲接收ETHfallback/receive代码 | 文章

第20讲发送ETHtransfer/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抢先交易代码 | 文章

S12tx.origin钓鱼代码 | 文章

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

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

S15操纵预言机代码 | 文章

S16NFT重入攻击代码 | 文章

S17“跨服”重入攻击文章

EVM 操作码

OP01Hello Opcodes代码 | 文章

OP02Opcodes分类代码 | 文章

OP03堆栈指令代码 | 文章

OP04算数指令代码 | 文章

OP05比较指令代码 | 文章

OP06位级指令代码 | 文章

OP07内存指令代码 | 文章

OP08存储指令代码 | 文章

OP09控制流指令代码 | 文章

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

OP11堆栈指令2代码 | 文章

OP12SHA3指令代码 | 文章

OP13账户指令代码 | 文章

OP14交易指令代码 | 文章

OP15Log指令代码 | 文章

OP16Return指令代码 | 文章

OP17Revert指令代码 | 文章

OP18Call指令代码 | 文章

OP19Delegatecall指令代码 | 文章

OP20Staticcall指令代码 | 文章

OP21Create指令代码 | 文章

OP22Create2指令代码 | 文章

OP23Selfdestruct指令代码 | 文章

OP24Gas指令代码 | 文章

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

Solidity 内部规则

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

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

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

SI04内存布局代码 | 文章

SI05ABI编码基础代码 | 文章

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

SI07ABI编码公式代码 | 文章

SI08calldata/returndata的ABI编码代码 | 文章

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

SI10Error的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贡献者

贡献者是WTF学院的基石

捐赠

  • 学院国库地址 Ethereum/Optimism/zkSync/Scroll/BSC/evm兼容链地址: 0x25df6da2f4e5c178ddff45038378c0b08e0bce54
  • Mirror

参考