ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

WTF-Solidity 67 讲 Solidity 入门教程导读:快速上手的完整指南

WTF-Solidity 67 讲 Solidity 入门教程导读:快速上手的完整指南 WTF-Solidity 67 讲 Solidity 入门教程导读快速上手的完整指南【免费下载链接】WTF-SolidityWTF Solidity 极简入门教程供小白们使用。Now supports English! 官网: https://wtf.academy项目地址: https://gitcode.com/GitHub_Trending/wt/WTF-Solidity这是一份 WTF-Solidity 英文 67 讲 Solidity 教程导读。先跑通一份合约再按目标选线路逐讲通关。⚡ 两分钟跑通第一份合约Remix 与 Foundry 双通道这一步做完你才算真正上手。两条通道都给你。Remix 通道。教程主线全在 Remix 上演示。它是以太坊官方的浏览器端 Solidity IDE免安装。把某一讲的.sol源码粘进去编译、部署、查询三步完成。每讲目录结构固定readme.md讲原理.sol给源码img/放截图。英文版目录名带_en后缀例如Languages/en/01_HelloWeb3_en。跟着第 1 讲操作一遍你就有了一份可以链上读数据的合约。Foundry 通道。仓库自带 Foundry 测试配置。foundry.toml 指定solc 0.8.34两条 remappings 分别指向lib/forge-std与lib/openzeppelin-contracts。拿到仓库后在根目录执行forge test --match-contract RootTest # 只跑根目录测试 ./scripts/run-forge-tests.sh # 全仓库逐章回归并汇总第一条命令适合单点验证。第二条脚本会遍历有测试的章节目录逐个执行forge test最后给出通过/失败计数。注意第 18 讲Import与第 39 讲Random依赖 URL / Chainlink 外部服务不在这条批量线路里。这两讲想验证得单独准备环境。67 讲能力地图每个阶段通关后你会什么先看见整条线再决定走哪一段。你不需要背下 67 个讲次。入门篇第 115 讲学完你能独立读懂任意合约的骨架。变量、函数、存储、数组、映射、继承、事件、异常一次配齐。进阶篇第 1630 讲学完你能让合约互相调用、收发 ETH。call、delegatecall、Create2、ABI 编码、Hash、Try-CatchEVM 交互的原理在这里拆开。应用篇第 3145 讲学完你能独立写 ERC20、ERC721、分账、线性释放、时间锁这类标准与业务合约。Degen 篇第 4651 讲学完你能用代理部署并可升级合约多签钱包、ERC4626 代币化金库也能接得住。安全篇第 S1S16 讲学完你能看懂重入、签名重放、预言机操纵等攻击面并给出防御方案。另外说一句Languages/en目录下还有第 5257 讲EIP712、ERC20Permit、CrossChainBridge、MultiCall、DEX、Flashloan暂未列入英文主目录。主线走完可以直接去那里加餐。 按目标选线路三条最短路径67 讲不必人人全读。按你的目标选一条最短线路。纯新手。走入门线第 115 讲按序通关再往第 1623 讲延伸。第 5 讲数据位置与第 11 讲modifier不要跳后面大半误区都从这两讲漏出来。想做 DeFi 合约。最短线是第 31 讲ERC20→ 第 41 讲WETH→ 第 56 讲DEX。要管资金再加第 4245 讲分账、释放、锁仓、时间锁与第 51 讲ERC4626。主攻安全。先补第 20 讲SendETH、第 23 讲Delegatecall、第 37 讲签名三块前置再按序清完 S1S16。每一讲都是原理、利用、防御三段读完就能对照自己写的合约做体检。 精读三讲数据位置、发 ETH 与操纵预言机挑三讲拆开看比泛读十讲更值。每讲一段代码三句话说清它证明了什么。第 5 讲 DataStorage同一条赋值三种下场。function fStorage() public { uint[] storage xStorage x; // 指向 storage改它改 x xStorage[0] 100; } function fMemory() public view { uint[] memory xMemory x; // 读取即复制 xMemory[0] 100; uint[] memory xMemory2 x; // 再读一次仍是新副本 xMemory2[0] 300; }storage是引用不是拷贝。改xStorage状态变量x当场被改写。memory每次读取都是独立副本。xMemory与xMemory2互不影响更碰不到x。顺带纠正一个误区fCalldata能标pure正是因为 calldata 参数只读。存储位置会反过来约束 view / pure 的判定。第 20 讲 SendETH2300 gas 决定你的选择。// transfer: 2300 gas, revert // send: 2300 gas, return bool // call: all gas, return (bool, data) function callETH(address payable _to, uint256 amount) external payable { (bool success, ) _to.call{value: amount}(); if (!success) { revert CallFailed(); } }transfer与send都只带 2300 gas。接收方合约的receive()一旦要做事件、写存储直接 revert。call转发全部 gas但成败要你自己判断。所以代码里显式处理!success并 revert。接收方是合约时默认选 call 系。2300 这个 stipend 是历史遗留不是安全特性。S15 讲 操纵预言机价格变成谁调用谁说了算。function getPrice() public view returns (uint256 price) { (uint112 reserve0, uint112 reserve1, ) pair.getReserves(); // 瞬时价格一次大单即可拉偏 price reserve0 / reserve1; } function swap() external payable returns (uint256 amount) { uint price getPrice(); amount price * msg.value; _mint(msg.sender, amount); // 按被操纵的价格铸造 }getPrice取 Uniswap V2 交易对的瞬时储备。一笔大 swap 就能把价格拉到任意一边。swap按这个瞬时价格计算并铸造 oUSD。攻击者先拉价、再 swap低成本印出代币。防御方向不是读个更准的价格而是换用 TWAP、Chainlink 这类抗瞬时操纵的预言机。 版本与文档避坑清单5 处已知瑕疵开工前勾一遍中途少踩坑。英文版整体是 preliminary 状态仍在社区审阅。译法不顺时对照根目录中文版 README它是最全最新的课程清单。英文目录里第 9 讲教程链接少了_en后缀。实际目录是Languages/en/09_Constant_en按路径进别按链接进。英文目录把空投误标成 Chapter 32。它其实是第 33 讲和第 32 讲水龙头不重号。教程示例写过pragma ^0.8.21。仓库已统一为0.8.34以 foundry.toml 为准。两个版本都能编译不用慌。第 18 讲Import与第 39 讲Random不在 scripts/run-forge-tests.sh 的批量测试里。前者拉远程 URL后者依赖 Chainlink。验证这两讲单独搭环境。多语言版本怎么选以哪个为准先定主版本再谈对照。来回切换最耗时间。以根目录中文版为基准。课程清单最全目录结构也是其他语言的模板。英文版Languages/en当术语对照用。覆盖最全但标注 preliminary措辞还在迭代。西语、葡语、日语各有取舍pt-br 是四个语言目录中体量最大的适合找更多对照样本。一个实用习惯英文读卡壳时切同编号讲次的葡语或西语版。目录编号一致来回跳不迷路。 学完之后去哪5 个下一步动作67 讲给你骨架。下面 5 个动作把肌肉长出来。过一遍 Solidity 官方文档。教程没展开的语法坑比如 custom error、内联汇编趁热补齐。在 Foundry 沙盒里手写一份 ERC20。别照抄第 31 讲的 31_ERC20/ERC20.sol从空文件开始写完再对照。读 OpenZeppelin Contracts 与 solmate。同一套标准两种实现比 gas比设计取舍读库比读教程涨得快。把安全篇逐个重演。S1S16 的利用代码都在本地跑一遍再对照 Chainlink 文档、Safe 多签文档理解防御侧的工程细节。跟踪 DeFi Hack Labs 与 rekt news。每出一个新事件就映射回某一讲。你的案例库比任何书单都新。线路选定就从第 1 讲出发。走完 S16你就完成了一次从读语法到读穿攻击的完整循环。官网 wtf.academy 可查课程更新问题去 Discord 问社区每周都在加新讲。【免费下载链接】WTF-SolidityWTF Solidity 极简入门教程供小白们使用。Now supports English! 官网: https://wtf.academy项目地址: https://gitcode.com/GitHub_Trending/wt/WTF-Solidity创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表