diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index f997eac7e..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: Bug report(程序Bug报告) -about: Report a bug in the WTF-Solidity(报告WTF-Solidity中的程序Bug) - ---- - - - -**💻 Environment(环境)** - - - -**📝 Details(细节)** - - - -**🔢 Code to reproduce bug(复现程序Bug的代码)** - - - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 96aff2298..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Feature request(功能请求) -about: Suggest an idea for the WTF-Solidity(给WTF-Solidity提一个想法) - ---- - -**🧐 Motivation(动机)** - - - -**📝 Details(细节)** - - - - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/improvement.md b/.github/ISSUE_TEMPLATE/improvement.md deleted file mode 100644 index 43ff705f2..000000000 --- a/.github/ISSUE_TEMPLATE/improvement.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Improvement request(提升请求) -about: Suggest an improvement for the WTF-Solidity(给WTF-Solidity提一个改进提升的请求) - ---- - -**🧐 Motivation(动机)** - - - -**📝 Details(细节)** - - - - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/typo_report.md b/.github/ISSUE_TEMPLATE/typo_report.md deleted file mode 100644 index 8fc8ccaac..000000000 --- a/.github/ISSUE_TEMPLATE/typo_report.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Typo report(勘误报告) -about: Report a typo in the WTF-Solidity(报告WTF-Solidity中的勘误) - ---- - -**📝 Details(细节)** - - - -**🔢 Reference(参考)** - - - - \ No newline at end of file diff --git a/01_HelloWeb3/readme.md b/01_HelloWeb3/readme.md index 86bb627aa..af0f32eb5 100644 --- a/01_HelloWeb3/readme.md +++ b/01_HelloWeb3/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/02_ValueTypes/readme.md b/02_ValueTypes/readme.md index f8d902bc8..7abfc5698 100644 --- a/02_ValueTypes/readme.md +++ b/02_ValueTypes/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/03_Function/readme.md b/03_Function/readme.md index 1135e086b..100aa9a27 100644 --- a/03_Function/readme.md +++ b/03_Function/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/04_Return/readme.md b/04_Return/readme.md index 09f078d80..4f4ef7a84 100644 --- a/04_Return/readme.md +++ b/04_Return/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/05_DataStorage/readme.md b/05_DataStorage/readme.md index fa7bce69f..c09414cd9 100644 --- a/05_DataStorage/readme.md +++ b/05_DataStorage/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/06_ArrayAndStruct/readme.md b/06_ArrayAndStruct/readme.md index d115340f7..12449234d 100644 --- a/06_ArrayAndStruct/readme.md +++ b/06_ArrayAndStruct/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- 这一讲,我们将介绍`Solidity`中的两个重要变量类型:数组(`array`)和结构体(`struct`)。 diff --git a/07_Mapping/readme.md b/07_Mapping/readme.md index cb61eabe6..ee45fa496 100644 --- a/07_Mapping/readme.md +++ b/07_Mapping/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/08_InitialValue/readme.md b/08_InitialValue/readme.md index 16a57135d..1458d1af3 100644 --- a/08_InitialValue/readme.md +++ b/08_InitialValue/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/09_Constant/readme.md b/09_Constant/readme.md index 3ecc688c6..ea92cec36 100644 --- a/09_Constant/readme.md +++ b/09_Constant/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- 这一讲,我们介绍Solidity中和常量相关的两个关键字,`constant`(常量)和`immutable`(不变量)。状态变量声明这两个关键字之后,不能在初始化后更改数值。这样做的好处是提升合约的安全性并节省`gas`。 diff --git a/10_InsertionSort/readme.md b/10_InsertionSort/readme.md index 2a2a79a54..b5c56333e 100644 --- a/10_InsertionSort/readme.md +++ b/10_InsertionSort/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- 这一讲,我们将介绍`Solidity`中的控制流,然后讲如何用`Solidity`实现插入排序(`InsertionSort`),一个看起来简单,但实际上很容易写出`bug`的程序。 diff --git a/11_Modifier/readme.md b/11_Modifier/readme.md index 46c872967..2db39c0d9 100644 --- a/11_Modifier/readme.md +++ b/11_Modifier/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/12_Event/readme.md b/12_Event/readme.md index 5316c8729..39761e2fa 100644 --- a/12_Event/readme.md +++ b/12_Event/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/13_Inheritance/readme.md b/13_Inheritance/readme.md index 6229f0140..b6981f4fe 100644 --- a/13_Inheritance/readme.md +++ b/13_Inheritance/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- 这一讲,我们介绍`Solidity`中的继承(`inheritance`),包括简单继承,多重继承,以及修饰器(`Modifier`)和构造函数(`Constructor`)的继承。 diff --git a/14_Interface/readme.md b/14_Interface/readme.md index 6c7f72ce2..82a480466 100644 --- a/14_Interface/readme.md +++ b/14_Interface/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -24,7 +24,7 @@ tags: ## 抽象合约 -如果一个智能合约里至少有一个未实现的函数,即某个函数缺少主体`{}`中的内容,则必须将该合约标为`abstract`,不然编译会报错;另外,未实现的函数需要加`virtual`,以便子合约重写。拿我们之前的[插入排序合约](https://github.com/AmazingAng/WTFSolidity/tree/main/10_InsertionSort)为例,如果我们还没想好具体怎么实现插入排序函数,那么可以把合约标为`abstract`,之后让别人补写上。 +如果一个智能合约里至少有一个未实现的函数,即某个函数缺少主体`{}`中的内容,则必须将该合约标为`abstract`,不然编译会报错;另外,未实现的函数需要加`virtual`,以便子合约重写。拿我们之前的[插入排序合约](https://github.com/AmazingAng/WTF-Solidity/tree/main/10_InsertionSort)为例,如果我们还没想好具体怎么实现插入排序函数,那么可以把合约标为`abstract`,之后让别人补写上。 ```solidity abstract contract InsertionSort{ diff --git a/15_Errors/readme.md b/15_Errors/readme.md index 08aa59312..3d9808529 100644 --- a/15_Errors/readme.md +++ b/15_Errors/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/16_Overloading/readme.md b/16_Overloading/readme.md index 02b302f88..555725dd6 100644 --- a/16_Overloading/readme.md +++ b/16_Overloading/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -37,7 +37,7 @@ function saySomething(string memory something) public pure returns(string memory } ``` -最终重载函数在经过编译器编译后,由于不同的参数类型,都变成了不同的函数选择器(selector)。关于函数选择器的具体内容可参考[WTF Solidity极简入门: 29. 函数选择器Selector](https://github.com/AmazingAng/WTFSolidity/tree/main/29_Selector)。 +最终重载函数在经过编译器编译后,由于不同的参数类型,都变成了不同的函数选择器(selector)。关于函数选择器的具体内容可参考[WTF Solidity极简入门: 29. 函数选择器Selector](https://github.com/AmazingAng/WTF-Solidity/tree/main/29_Selector)。 以 `Overloading.sol` 合约为例,在 Remix 上编译部署后,分别调用重载函数 `saySomething()` 和 `saySomething(string memory something)`,可以看到他们返回了不同的结果,被区分为不同的函数。 diff --git a/17_Library/readme.md b/17_Library/readme.md index 3abdb4d7b..c1e5267e1 100644 --- a/17_Library/readme.md +++ b/17_Library/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- 这一讲,我们用`ERC721`的引用的库合约`Strings`为例介绍`Solidity`中的库合约(`Library`),并总结了常用的库合约。 diff --git a/18_Import/readme.md b/18_Import/readme.md index 004cd1937..29e1cbb75 100644 --- a/18_Import/readme.md +++ b/18_Import/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/19_Fallback/readme.md b/19_Fallback/readme.md index d7a96ac09..87a42084a 100644 --- a/19_Fallback/readme.md +++ b/19_Fallback/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/20_SendETH/readme.md b/20_SendETH/readme.md index 5f9157354..9c073b959 100644 --- a/20_SendETH/readme.md +++ b/20_SendETH/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- `Solidity`有三种方法向其他合约发送`ETH`,他们是:`transfer()`,`send()`和`call()`,其中`call()`是被鼓励的用法。 diff --git a/21_CallContract/readme.md b/21_CallContract/readme.md index 6eaeecf36..7d6f49385 100644 --- a/21_CallContract/readme.md +++ b/21_CallContract/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/22_Call/readme.md b/22_Call/readme.md index e7f18a252..5dba80d1e 100644 --- a/22_Call/readme.md +++ b/22_Call/readme.md @@ -16,18 +16,18 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- -我们曾在[第20讲:发送ETH](https://github.com/AmazingAng/WTFSolidity/tree/main/20_SendETH)那一讲介绍过利用`call`来发送`ETH`,这一讲我们将介绍如何利用它调用合约。 +我们曾在[第20讲:发送ETH](https://github.com/AmazingAng/WTF-Solidity/tree/main/20_SendETH)那一讲介绍过利用`call`来发送`ETH`,这一讲我们将介绍如何利用它调用合约。 ## Call `call` 是`address`类型的低级成员函数,它用来与其他合约交互。它的返回值为`(bool, bytes memory)`,分别对应`call`是否成功以及目标函数的返回值。 - `call`是`Solidity`官方推荐的通过触发`fallback`或`receive`函数发送`ETH`的方法。 -- 不推荐用`call`来调用另一个合约,因为当你调用不安全合约的函数时,你就把主动权交给了它。推荐的方法仍是声明合约变量后调用函数,见[第21讲:调用其他合约](https://github.com/AmazingAng/WTFSolidity/tree/main/21_CallContract) +- 不推荐用`call`来调用另一个合约,因为当你调用不安全合约的函数时,你就把主动权交给了它。推荐的方法仍是声明合约变量后调用函数,见[第21讲:调用其他合约](https://github.com/AmazingAng/WTF-Solidity/tree/main/21_CallContract) - 当我们不知道对方合约的源代码或`ABI`,就没法生成合约变量;这时,我们仍可以通过`call`调用对方合约的函数。 ### `call`的使用规则 diff --git a/23_Delegatecall/readme.md b/23_Delegatecall/readme.md index 33b64787f..f72361183 100644 --- a/23_Delegatecall/readme.md +++ b/23_Delegatecall/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/24_Create/readme.md b/24_Create/readme.md index 006de979b..2bcaceec9 100644 --- a/24_Create/readme.md +++ b/24_Create/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/25_Create2/readme.md b/25_Create2/readme.md index 60ec00882..1ffd0e515 100644 --- a/25_Create2/readme.md +++ b/25_Create2/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/26_DeleteContract/readme.md b/26_DeleteContract/readme.md index d66e15824..038d3f5f6 100644 --- a/26_DeleteContract/readme.md +++ b/26_DeleteContract/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/27_ABIEncode/readme.md b/27_ABIEncode/readme.md index c927e056b..18d995799 100644 --- a/27_ABIEncode/readme.md +++ b/27_ABIEncode/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/28_Hash/readme.md b/28_Hash/readme.md index bbd7f77d0..854c13435 100644 --- a/28_Hash/readme.md +++ b/28_Hash/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/29_Selector/readme.md b/29_Selector/readme.md index bb5d0b941..d88618265 100644 --- a/29_Selector/readme.md +++ b/29_Selector/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/30_TryCatch/readme.md b/30_TryCatch/readme.md index 20b5fee8a..ccbc2a65b 100644 --- a/30_TryCatch/readme.md +++ b/30_TryCatch/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/31_ERC20/readme.md b/31_ERC20/readme.md index ec4adcdaf..1737af246 100644 --- a/31_ERC20/readme.md +++ b/31_ERC20/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/32_Faucet/readme.md b/32_Faucet/readme.md index c13a0838d..6f1eeeeeb 100644 --- a/32_Faucet/readme.md +++ b/32_Faucet/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/33_Airdrop/readme.md b/33_Airdrop/readme.md index be278b629..a68e622b8 100644 --- a/33_Airdrop/readme.md +++ b/33_Airdrop/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/34_ERC721/readme.md b/34_ERC721/readme.md index 1eb080c0a..7edb8e14d 100644 --- a/34_ERC721/readme.md +++ b/34_ERC721/readme.md @@ -17,7 +17,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/35_DutchAuction/readme.md b/35_DutchAuction/readme.md index ad776700f..d563d7e94 100644 --- a/35_DutchAuction/readme.md +++ b/35_DutchAuction/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -45,7 +45,7 @@ tags: pragma solidity ^0.8.21; import "@openzeppelin/contracts/access/Ownable.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/ERC721.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/ERC721.sol"; contract DutchAuction is Ownable, ERC721 { ``` diff --git a/36_MerkleTree/readme.md b/36_MerkleTree/readme.md index 7f10a9e6a..1cf2d5b42 100644 --- a/36_MerkleTree/readme.md +++ b/36_MerkleTree/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/37_Signature/readme.md b/37_Signature/readme.md index 9a460e22c..4f6fa1bd3 100644 --- a/37_Signature/readme.md +++ b/37_Signature/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/38_NFTSwap/readme.md b/38_NFTSwap/readme.md index 922b4264a..f578561c2 100644 --- a/38_NFTSwap/readme.md +++ b/38_NFTSwap/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -164,7 +164,7 @@ contract NFTSwap is IERC721Receiver{ ## `Remix`实现 ### 1. 部署NFT合约 -参考 [ERC721](https://github.com/AmazingAng/WTFSolidity/tree/main/34_ERC721) 教程了解NFT,并部署`WTFApe` NFT合约。 +参考 [ERC721](https://github.com/AmazingAng/WTF-Solidity/tree/main/34_ERC721) 教程了解NFT,并部署`WTFApe` NFT合约。 ![部署NFT合约](./img/38-1.png) diff --git a/39_Random/Random.sol b/39_Random/Random.sol index 872de8e84..4112a553a 100644 --- a/39_Random/Random.sol +++ b/39_Random/Random.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/ERC721.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/ERC721.sol"; import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol"; import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol"; diff --git a/39_Random/readme.md b/39_Random/readme.md index b262f6982..e2dd12cca 100644 --- a/39_Random/readme.md +++ b/39_Random/readme.md @@ -17,7 +17,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -133,7 +133,7 @@ contract RandomNumberConsumer is VRFConsumerBaseV2{ } ``` -**3. `Chainlink`节点链下生成随机数和[数字签名](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature/readme.md),并发送给`VRF`合约** +**3. `Chainlink`节点链下生成随机数和[数字签名](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature/readme.md),并发送给`VRF`合约** **4. `VRF`合约验证签名有效性** @@ -161,7 +161,7 @@ contract RandomNumberConsumer is VRFConsumerBaseV2{ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/ERC721.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/ERC721.sol"; import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol"; import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol"; diff --git a/40_ERC1155/readme.md b/40_ERC1155/readme.md index a569481c9..9797787c0 100644 --- a/40_ERC1155/readme.md +++ b/40_ERC1155/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -24,7 +24,7 @@ tags: ## `EIP1155` 不论是`ERC20`还是`ERC721`标准,每个合约都对应一个独立的代币。假设我们要在以太坊上打造一个类似《魔兽世界》的大型游戏,这需要我们对每个装备都部署一个合约。上千种装备就要部署和管理上千个合约,这非常麻烦。因此,[以太坊EIP1155](https://eips.ethereum.org/EIPS/eip-1155)提出了一个多代币标准`ERC1155`,允许一个合约包含多个同质化和非同质化代币。`ERC1155`在GameFi应用最多,Decentraland、Sandbox等知名链游都使用它。 -简单来说,`ERC1155`与之前介绍的非同质化代币标准[ERC721](https://github.com/AmazingAng/WTFSolidity/tree/main/34_ERC721)类似:在`ERC721`中,每个代币都有一个`tokenId`作为唯一标识,每个`tokenId`只对应一个代币;而在`ERC1155`中,每一种代币都有一个`id`作为唯一标识,每个`id`对应一种代币。这样,代币种类就可以非同质的在同一个合约里管理了,并且每种代币都有一个网址`uri`来存储它的元数据,类似`ERC721`的`tokenURI`。下面是`ERC1155`的元数据接口合约`IERC1155MetadataURI`: +简单来说,`ERC1155`与之前介绍的非同质化代币标准[ERC721](https://github.com/AmazingAng/WTF-Solidity/tree/main/34_ERC721)类似:在`ERC721`中,每个代币都有一个`tokenId`作为唯一标识,每个`tokenId`只对应一个代币;而在`ERC1155`中,每一种代币都有一个`id`作为唯一标识,每个`id`对应一种代币。这样,代币种类就可以非同质的在同一个合约里管理了,并且每种代币都有一个网址`uri`来存储它的元数据,类似`ERC721`的`tokenURI`。下面是`ERC1155`的元数据接口合约`IERC1155MetadataURI`: ```solidity /** @@ -47,7 +47,7 @@ interface IERC1155MetadataURI is IERC1155 { // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/IERC165.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/IERC165.sol"; /** * @dev ERC1155标准的接口合约,实现了EIP1155的功能 @@ -167,7 +167,7 @@ interface IERC1155 is IERC165 { // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/IERC165.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/IERC165.sol"; /** * @dev ERC1155接收合约,要接受ERC1155的安全转账,需要实现这个合约 @@ -240,9 +240,9 @@ pragma solidity ^0.8.0; import "./IERC1155.sol"; import "./IERC1155Receiver.sol"; import "./IERC1155MetadataURI.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/Address.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/String.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/IERC165.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/Address.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/String.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/IERC165.sol"; /** * @dev ERC1155多代币标准 diff --git a/41_WETH/readme.md b/41_WETH/readme.md index 3d37c2979..62887a8f4 100644 --- a/41_WETH/readme.md +++ b/41_WETH/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -27,7 +27,7 @@ tags: `WETH` (Wrapped ETH)是`ETH`的带包装版本。我们常见的`WETH`,`WBTC`,`WBNB`,都是带包装的原生代币。那么我们为什么要包装它们? -在2015年,[ERC20](https://github.com/AmazingAng/WTFSolidity/blob/main/20_SendETH/readme.md)标准出现,该代币标准旨在为以太坊上的代币制定一套标准化的规则,从而简化了新代币的发布,并使区块链上的所有代币相互可比。不幸的是,以太币本身并不符合`ERC20`标准。`WETH`的开发是为了提高区块链之间的互操作性 ,并使`ETH`可用于去中心化应用程序(dApps)。它就像是给原生代币穿了一件智能合约做的衣服:穿上衣服的时候,就变成了`WETH`,符合`ERC20`同质化代币标准,可以跨链,可以用于`dApp`;脱下衣服,它可1:1兑换`ETH`。 +在2015年,[ERC20](https://github.com/AmazingAng/WTF-Solidity/blob/main/20_SendETH/readme.md)标准出现,该代币标准旨在为以太坊上的代币制定一套标准化的规则,从而简化了新代币的发布,并使区块链上的所有代币相互可比。不幸的是,以太币本身并不符合`ERC20`标准。`WETH`的开发是为了提高区块链之间的互操作性 ,并使`ETH`可用于去中心化应用程序(dApps)。它就像是给原生代币穿了一件智能合约做的衣服:穿上衣服的时候,就变成了`WETH`,符合`ERC20`同质化代币标准,可以跨链,可以用于`dApp`;脱下衣服,它可1:1兑换`ETH`。 ## `WETH`合约 diff --git a/42_PaymentSplit/readme.md b/42_PaymentSplit/readme.md index 7dabadc9e..b6bd41f35 100644 --- a/42_PaymentSplit/readme.md +++ b/42_PaymentSplit/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/43_TokenVesting/readme.md b/43_TokenVesting/readme.md index af2d01347..474e84326 100644 --- a/43_TokenVesting/readme.md +++ b/43_TokenVesting/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/44_TokenLocker/readme.md b/44_TokenLocker/readme.md index f7a3efe77..b4404b025 100644 --- a/44_TokenLocker/readme.md +++ b/44_TokenLocker/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/45_Timelock/readme.md b/45_Timelock/readme.md index f95dd6514..5af6eb833 100644 --- a/45_Timelock/readme.md +++ b/45_Timelock/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -108,7 +108,7 @@ tags: - `executeTime`:交易执行的区块链时间戳。 调用这个函数时,要保证交易预计执行时间`executeTime`大于当前区块链时间戳+锁定时间`delay`。交易的唯一标识符为所有参数的哈希值,利用`getTxHash()`函数计算。进入队列的交易会更新在`queuedTransactions`变量中,并释放`QueueTransaction`事件。 -- `executeTransaction()`:执行交易。它的参数与`queueTransaction()`相同。要求被执行的交易在时间锁队列中,达到交易的执行时间,且没有过期。执行交易时用到了`solidity`的低级成员函数`call`,在[第22讲](https://github.com/AmazingAng/WTFSolidity/blob/main/22_Call/readme.md)中有介绍。 +- `executeTransaction()`:执行交易。它的参数与`queueTransaction()`相同。要求被执行的交易在时间锁队列中,达到交易的执行时间,且没有过期。执行交易时用到了`solidity`的低级成员函数`call`,在[第22讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/22_Call/readme.md)中有介绍。 - `cancelTransaction()`:取消交易。它的参数与`queueTransaction()`相同。它要求被取消的交易在队列中,会更新`queuedTransactions`并释放`CancelTransaction`事件。 - `changeAdmin()`:修改管理员地址,只能被`Timelock`合约调用。 - `getBlockTimestamp()`:获取当前区块链时间戳。 @@ -242,7 +242,7 @@ address target, uint256 value, string memory signature, bytes memory data, uint2 - `target`:因为调用的是`Timelock`自己的函数,填入合约地址。 - `value`:不用转入ETH,这里填`0`。 - `signature`:`changeAdmin()`的函数签名为:`"changeAdmin(address)"`。 -- `data`:这里填要传入的参数,也就是新管理员的地址。但是要把地址填充为32字节的数据,以满足[以太坊ABI编码标准](https://github.com/AmazingAng/WTFSolidity/blob/main/27_ABIEncode/readme.md)。可以使用[hashex](https://abi.hashex.org/)网站进行参数的ABI编码。例子: +- `data`:这里填要传入的参数,也就是新管理员的地址。但是要把地址填充为32字节的数据,以满足[以太坊ABI编码标准](https://github.com/AmazingAng/WTF-Solidity/blob/main/27_ABIEncode/readme.md)。可以使用[hashex](https://abi.hashex.org/)网站进行参数的ABI编码。例子: ```solidity 编码前地址:0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2 编码后地址:0x000000000000000000000000ab8483f64d9c6d1ecf9b849ae677dd3315835cb2 diff --git a/46_ProxyContract/readme.md b/46_ProxyContract/readme.md index 5fff25ed3..e5415c7c4 100644 --- a/46_ProxyContract/readme.md +++ b/46_ProxyContract/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -37,7 +37,7 @@ tags: 1. 可升级:当我们需要升级合约的逻辑时,只需要将代理合约指向新的逻辑合约。 2. 省gas:如果多个合约复用一套逻辑,我们只需部署一个逻辑合约,然后再部署多个只保存数据的代理合约,指向逻辑合约。 -**提示**:对`delegatecall`不熟悉的朋友可以看下本教程[第23讲Delegatecall](https://github.com/AmazingAng/WTFSolidity/tree/main/23_Delegatecall)。 +**提示**:对`delegatecall`不熟悉的朋友可以看下本教程[第23讲Delegatecall](https://github.com/AmazingAng/WTF-Solidity/tree/main/23_Delegatecall)。 ## 代理合约 @@ -137,7 +137,7 @@ contract Logic { ### 调用者合约`Caller` -`Caller`合约会演示如何调用一个代理合约,它也非常简单。但是要理解它,你需要先学习本教程的[第22讲 Call](https://github.com/AmazingAng/WTFSolidity/tree/main/22_Call/readme.md)和[第27讲 ABI编码](https://github.com/AmazingAng/WTFSolidity/tree/main/27_ABIEncode/readme.md)。 +`Caller`合约会演示如何调用一个代理合约,它也非常简单。但是要理解它,你需要先学习本教程的[第22讲 Call](https://github.com/AmazingAng/WTF-Solidity/tree/main/22_Call/readme.md)和[第27讲 ABI编码](https://github.com/AmazingAng/WTF-Solidity/tree/main/27_ABIEncode/readme.md)。 它有`1`个变量,`2`个函数: - `proxy`:状态变量,记录代理合约地址。 diff --git a/47_Upgrade/readme.md b/47_Upgrade/readme.md index f8f7dfc0a..970b91c5e 100644 --- a/47_Upgrade/readme.md +++ b/47_Upgrade/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -33,7 +33,7 @@ tags: ### 代理合约 -这个代理合约比[第46讲](https://github.com/AmazingAng/WTFSolidity/blob/main/46_ProxyContract/readme.md)中的简单。我们没有在它的`fallback()`函数中使用`内联汇编`,而仅仅用了`implementation.delegatecall(msg.data);`。因此,回调函数没有返回值,但足够教学使用了。 +这个代理合约比[第46讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/46_ProxyContract/readme.md)中的简单。我们没有在它的`fallback()`函数中使用`内联汇编`,而仅仅用了`implementation.delegatecall(msg.data);`。因此,回调函数没有返回值,但足够教学使用了。 它包含`3`个变量: - `implementation`:逻辑合约地址。 diff --git a/48_TransparentProxy/readme.md b/48_TransparentProxy/readme.md index 4dbf50d4e..3c059ec29 100644 --- a/48_TransparentProxy/readme.md +++ b/48_TransparentProxy/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -23,7 +23,7 @@ tags: ## 选择器冲突 -智能合约中,函数选择器(selector)是函数签名的哈希的前4个字节。例如`mint(address account)`的选择器为`bytes4(keccak256("mint(address)"))`,也就是`0x6a627842`。更多关于选择器的内容见[WTF Solidity极简教程第29讲:函数选择器](https://github.com/AmazingAng/WTFSolidity/blob/main/29_Selector/readme.md) +智能合约中,函数选择器(selector)是函数签名的哈希的前4个字节。例如`mint(address account)`的选择器为`bytes4(keccak256("mint(address)"))`,也就是`0x6a627842`。更多关于选择器的内容见[WTF Solidity极简教程第29讲:函数选择器](https://github.com/AmazingAng/WTF-Solidity/blob/main/29_Selector/readme.md) 由于函数选择器仅有4个字节,范围很小,因此两个不同的函数可能会有相同的选择器,例如下面两个函数: @@ -52,7 +52,7 @@ contract Foo { ### 代理合约 -这里的代理合约和[第47讲](https://github.com/AmazingAng/WTFSolidity/blob/main/47_Upgrade/readme.md)的非常相近,只是`fallback()`函数限制了管理员地址的调用。 +这里的代理合约和[第47讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/47_Upgrade/readme.md)的非常相近,只是`fallback()`函数限制了管理员地址的调用。 它包含`3`个变量: - `implementation`:逻辑合约地址。 @@ -95,7 +95,7 @@ contract TransparentProxy { ### 逻辑合约 -这里的新、旧逻辑合约与[第47讲](https://github.com/AmazingAng/WTFSolidity/blob/main/47_Upgrade/readme.md)一样。逻辑合约包含`3`个状态变量,与保持代理合约一致,防止插槽冲突;包含一个函数`foo()`,旧逻辑合约会将`words`的值改为`"old"`,新的会改为`"new"`。 +这里的新、旧逻辑合约与[第47讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/47_Upgrade/readme.md)一样。逻辑合约包含`3`个状态变量,与保持代理合约一致,防止插槽冲突;包含一个函数`foo()`,旧逻辑合约会将`words`的值改为`"old"`,新的会改为`"new"`。 ```solidity // 旧逻辑合约 diff --git a/49_UUPS/readme.md b/49_UUPS/readme.md index 98338cf5a..14fa0408a 100644 --- a/49_UUPS/readme.md +++ b/49_UUPS/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -23,7 +23,7 @@ tags: ## UUPS -我们在[上一讲](https://github.com/AmazingAng/WTFSolidity/blob/main/48_TransparentProxy/readme.md)已经学习了"选择器冲突"(Selector Clash),即合约存在两个选择器相同的函数,可能会造成严重后果。作为透明代理的替代方案,UUPS也能解决这一问题。 +我们在[上一讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/48_TransparentProxy/readme.md)已经学习了"选择器冲突"(Selector Clash),即合约存在两个选择器相同的函数,可能会造成严重后果。作为透明代理的替代方案,UUPS也能解决这一问题。 UUPS(universal upgradeable proxy standard,通用可升级代理)将升级函数放在逻辑合约中。这样一来,如果有其它函数与升级函数存在“选择器冲突”,编译时就会报错。 @@ -33,7 +33,7 @@ UUPS(universal upgradeable proxy standard,通用可升级代理)将升级 ## UUPS合约 -首先我们要复习一下[WTF Solidity极简教程第23讲:Delegatecall](https://github.com/AmazingAng/WTFSolidity/blob/main/23_Delegatecall/readme.md)。如果用户A通过合约B(代理合约)去`delegatecall`合约C(逻辑合约),上下文仍是合约B的上下文,`msg.sender`仍是用户A而不是合约B。因此,UUPS合约可以将升级函数放在逻辑合约中,并检查调用者是否为管理员。 +首先我们要复习一下[WTF Solidity极简教程第23讲:Delegatecall](https://github.com/AmazingAng/WTF-Solidity/blob/main/23_Delegatecall/readme.md)。如果用户A通过合约B(代理合约)去`delegatecall`合约C(逻辑合约),上下文仍是合约B的上下文,`msg.sender`仍是用户A而不是合约B。因此,UUPS合约可以将升级函数放在逻辑合约中,并检查调用者是否为管理员。 ![delegatecall](./img/49-2.png) @@ -70,7 +70,7 @@ contract UUPSProxy { ### UUPS的逻辑合约 -UUPS的逻辑合约与[第47讲](https://github.com/AmazingAng/WTFSolidity/blob/main/47_Upgrade/readme.md)中的不同是多了个升级函数。UUPS逻辑合约包含`3`个状态变量,与保持代理合约一致,防止插槽冲突。它包含`2`个 +UUPS的逻辑合约与[第47讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/47_Upgrade/readme.md)中的不同是多了个升级函数。UUPS逻辑合约包含`3`个状态变量,与保持代理合约一致,防止插槽冲突。它包含`2`个 - `upgrade()`:升级函数,将改变逻辑合约地址`implementation`,只能由`admin`调用。 - `foo()`:旧UUPS逻辑合约会将`words`的值改为`"old"`,新的会改为`"new"`。 diff --git a/50_MultisigWallet/readme.md b/50_MultisigWallet/readme.md index d208a3db4..ba4eaf5d0 100644 --- a/50_MultisigWallet/readme.md +++ b/50_MultisigWallet/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -43,7 +43,7 @@ Gnosis Safe多签钱包是以太坊最流行的多签钱包,管理近400亿美 - `nonce`:初始为`0`,随着多签合约每笔成功执行的交易递增的值,可以防止签名重放攻击。 - `chainid`:链id,防止不同链的签名重放攻击。 -3. 收集多签签名(链下):将上一步的交易ABI编码并计算哈希,得到交易哈希,然后让多签人签名,并拼接到一起的到打包签名。对ABI编码和哈希不了解的,可以看WTF Solidity极简教程[第27讲](https://github.com/AmazingAng/WTFSolidity/blob/main/27_ABIEncode/readme.md)和[第28讲](https://github.com/AmazingAng/WTFSolidity/blob/main/28_Hash/readme.md)。 +3. 收集多签签名(链下):将上一步的交易ABI编码并计算哈希,得到交易哈希,然后让多签人签名,并拼接到一起的到打包签名。对ABI编码和哈希不了解的,可以看WTF Solidity极简教程[第27讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/27_ABIEncode/readme.md)和[第28讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/28_Hash/readme.md)。 ```solidity 交易哈希: 0xc1b055cf8e78338db21407b425114a2e258b0318879327945b661bfdea570e66 @@ -56,7 +56,7 @@ Gnosis Safe多签钱包是以太坊最流行的多签钱包,管理近400亿美 0x014db45aa753fefeca3f99c2cb38435977ebb954f779c2b6af6f6365ba4188df542031ace9bdc53c655ad2d4794667ec2495196da94204c56b1293d0fbfacbb11cbe2e0e6de5574b7f65cad1b7062be95e7d73fe37dd8e888cef5eb12e964ddc597395fa48df1219e7f74f48d86957f545d0fbce4eee1adfbaff6c267046ade0d81c ``` -4. 调用多签合约的执行函数,验证签名并执行交易(链上)。对验证签名和执行交易不了解的,可以看WTF Solidity极简教程[第22讲](https://github.com/AmazingAng/WTFSolidity/blob/main/22_Call/readme.md)和[第37讲](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature/readme.md)。 +4. 调用多签合约的执行函数,验证签名并执行交易(链上)。对验证签名和执行交易不了解的,可以看WTF Solidity极简教程[第22讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/22_Call/readme.md)和[第37讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature/readme.md)。 ### 事件 diff --git a/51_ERC4626/readme.md b/51_ERC4626/readme.md index 56d8842d0..90062a314 100644 --- a/51_ERC4626/readme.md +++ b/51_ERC4626/readme.md @@ -17,7 +17,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/52_EIP712/readme.md b/52_EIP712/readme.md index bceafa2cb..a6249560f 100644 --- a/52_EIP712/readme.md +++ b/52_EIP712/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -23,7 +23,7 @@ tags: ## EIP712 -之前我们介绍了 [EIP191 签名标准(personal sign)](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature/readme.md) ,它可以给一段消息签名。但是它过于简单,当签名数据比较复杂时,用户只能看到一串十六进制字符串(数据的哈希),无法核实签名内容是否与预期相符。 +之前我们介绍了 [EIP191 签名标准(personal sign)](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature/readme.md) ,它可以给一段消息签名。但是它过于简单,当签名数据比较复杂时,用户只能看到一串十六进制字符串(数据的哈希),无法核实签名内容是否与预期相符。 ![](./img/52-1.png) diff --git a/53_ERC20Permit/readme.md b/53_ERC20Permit/readme.md index 901975a98..f2eec7607 100644 --- a/53_ERC20Permit/readme.md +++ b/53_ERC20Permit/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/54_CrossChainBridge/readme.md b/54_CrossChainBridge/readme.md index 7b9731628..c3ded8fd9 100644 --- a/54_CrossChainBridge/readme.md +++ b/54_CrossChainBridge/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/55_MultiCall/readme.md b/55_MultiCall/readme.md index d753055cf..ddff30918 100644 --- a/55_MultiCall/readme.md +++ b/55_MultiCall/readme.md @@ -13,7 +13,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/56_DEX/readme.md b/56_DEX/readme.md index 554e31c00..5c1b1a292 100644 --- a/56_DEX/readme.md +++ b/56_DEX/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/57_Flashloan/readme.md b/57_Flashloan/readme.md index 39926cbc1..ee6eb22b6 100644 --- a/57_Flashloan/readme.md +++ b/57_Flashloan/readme.md @@ -16,7 +16,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/en/01_HelloWeb3_en/readme.md b/Languages/en/01_HelloWeb3_en/readme.md index ca1c2db9d..ca40963cb 100644 --- a/Languages/en/01_HelloWeb3_en/readme.md +++ b/Languages/en/01_HelloWeb3_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/02_ValueTypes_en/readme.md b/Languages/en/02_ValueTypes_en/readme.md index 2a7d38b15..1be98e2f6 100644 --- a/Languages/en/02_ValueTypes_en/readme.md +++ b/Languages/en/02_ValueTypes_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/03_Function_en/readme.md b/Languages/en/03_Function_en/readme.md index 167f4c514..c51ef88d4 100644 --- a/Languages/en/03_Function_en/readme.md +++ b/Languages/en/03_Function_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/en/04_Return_en/readme.md b/Languages/en/04_Return_en/readme.md index e4e8717ca..531afa1ed 100644 --- a/Languages/en/04_Return_en/readme.md +++ b/Languages/en/04_Return_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/05_DataStorage_en/readme.md b/Languages/en/05_DataStorage_en/readme.md index 7f9dadc86..bb72dde42 100644 --- a/Languages/en/05_DataStorage_en/readme.md +++ b/Languages/en/05_DataStorage_en/readme.md @@ -6,7 +6,7 @@ Everyone is welcome to follow my Twitter: [@0xAA_Science](https://twitter.com/0x WTF Academy Discord: [Link](https://discord.gg/5akcruXrsk) -All codebase and tutorial notes are open source and available on GitHub (At 1024 repo stars, course certification is unlocked. At 2048 repo stars, community NFT is unlocked.): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity)\ +All codebase and tutorial notes are open source and available on GitHub (At 1024 repo stars, course certification is unlocked. At 2048 repo stars, community NFT is unlocked.): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity)\ ----- diff --git a/Languages/en/06_ArrayAndStruct_en/readme.md b/Languages/en/06_ArrayAndStruct_en/readme.md index 98226b0c2..65d2b840c 100644 --- a/Languages/en/06_ArrayAndStruct_en/readme.md +++ b/Languages/en/06_ArrayAndStruct_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/07_Mapping_en/readme.md b/Languages/en/07_Mapping_en/readme.md index ce6bfbe3d..ed2fdbc67 100644 --- a/Languages/en/07_Mapping_en/readme.md +++ b/Languages/en/07_Mapping_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/08_InitialValue_en/readme.md b/Languages/en/08_InitialValue_en/readme.md index 5679b6ed6..16f7a44bc 100644 --- a/Languages/en/08_InitialValue_en/readme.md +++ b/Languages/en/08_InitialValue_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/09_Constant_en/readme.md b/Languages/en/09_Constant_en/readme.md index 27a42d073..eb8cfc3aa 100644 --- a/Languages/en/09_Constant_en/readme.md +++ b/Languages/en/09_Constant_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/10_InsertionSort_en/readme.md b/Languages/en/10_InsertionSort_en/readme.md index 02d20cbfe..aaf8e677f 100644 --- a/Languages/en/10_InsertionSort_en/readme.md +++ b/Languages/en/10_InsertionSort_en/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/11_Modifier_en/readme.md b/Languages/en/11_Modifier_en/readme.md index 5b255b660..ab9b05f20 100644 --- a/Languages/en/11_Modifier_en/readme.md +++ b/Languages/en/11_Modifier_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/12_Event_en/readme.md b/Languages/en/12_Event_en/readme.md index 89d60dee9..fb33a6d6d 100644 --- a/Languages/en/12_Event_en/readme.md +++ b/Languages/en/12_Event_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/13_Inheritance_en/readme.md b/Languages/en/13_Inheritance_en/readme.md index 264d98542..4b25654fd 100644 --- a/Languages/en/13_Inheritance_en/readme.md +++ b/Languages/en/13_Inheritance_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/14_Interface_en/readme.md b/Languages/en/14_Interface_en/readme.md index 6dfe0fac5..525029ca6 100644 --- a/Languages/en/14_Interface_en/readme.md +++ b/Languages/en/14_Interface_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -25,7 +25,7 @@ In this section, we will introduce the `abstract` and `interface` contracts in S ## Abstract contract If a contract contains at least one unimplemented function (no contents in the function body `{}`), it must be labelled as `abstract`; Otherwise it will not compile. Moreover, the unimplemented function needs to be labelled as `virtual`. -Take our previous [Insertion Sort Contract](https://github.com/AmazingAng/WTFSolidity/tree/main/07_InsertionSort) as an example, +Take our previous [Insertion Sort Contract](https://github.com/AmazingAng/WTF-Solidity/tree/main/07_InsertionSort) as an example, if we haven't figured out how to implement the insertion sort function, we can mark the contract as `abstract`, and let others overwrite it in the future. ```solidity diff --git a/Languages/en/15_Errors_en/readme.md b/Languages/en/15_Errors_en/readme.md index fd654c3ba..00bfc8a9e 100644 --- a/Languages/en/15_Errors_en/readme.md +++ b/Languages/en/15_Errors_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/16_Overloading_en/readme.md b/Languages/en/16_Overloading_en/readme.md index a527fcaa0..78447f2f5 100644 --- a/Languages/en/16_Overloading_en/readme.md +++ b/Languages/en/16_Overloading_en/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -38,7 +38,7 @@ function saySomething(string memory something) public pure returns(string memory ``` After compiling, all overloading functions become different function selectors due to different parameter types. -For the specific content of the function selector, please refer to [WTF Solidity Tutorial: 29. Function Selector](https://github.com/AmazingAng/WTFSolidity/tree/main/29_Selector). +For the specific content of the function selector, please refer to [WTF Solidity Tutorial: 29. Function Selector](https://github.com/AmazingAng/WTF-Solidity/tree/main/29_Selector). Take the `Overloading.sol` contract as an example, after compiling and deploying on Remix. After calling the overloading functions `saySomething()` and `saySomething(string memory something)` respectively, diff --git a/Languages/en/17_Library_en/readme.md b/Languages/en/17_Library_en/readme.md index b2da431c6..176668e88 100644 --- a/Languages/en/17_Library_en/readme.md +++ b/Languages/en/17_Library_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/18_Import_en/readme.md b/Languages/en/18_Import_en/readme.md index ef504cbed..ecc319312 100644 --- a/Languages/en/18_Import_en/readme.md +++ b/Languages/en/18_Import_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/19_Fallback_en/readme.md b/Languages/en/19_Fallback_en/readme.md index f04bee9af..bb7e52183 100644 --- a/Languages/en/19_Fallback_en/readme.md +++ b/Languages/en/19_Fallback_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/20_SendETH_en/readme.md b/Languages/en/20_SendETH_en/readme.md index 113190cd0..0d1a99788 100644 --- a/Languages/en/20_SendETH_en/readme.md +++ b/Languages/en/20_SendETH_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- There are three ways of sending `ETH` in `Solidity`: `transfer()`, `send()` and `call()`, in which `call()` is recommended. diff --git a/Languages/en/21_CallContract_en/readme.md b/Languages/en/21_CallContract_en/readme.md index ff587adf5..8531f99b0 100644 --- a/Languages/en/21_CallContract_en/readme.md +++ b/Languages/en/21_CallContract_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/22_Call_en/readme.md b/Languages/en/22_Call_en/readme.md index 90d7e5b80..3b9451742 100644 --- a/Languages/en/22_Call_en/readme.md +++ b/Languages/en/22_Call_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/23_Delegatecall_en/readme.md b/Languages/en/23_Delegatecall_en/readme.md index d7be7d896..4e683cb88 100644 --- a/Languages/en/23_Delegatecall_en/readme.md +++ b/Languages/en/23_Delegatecall_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- ## `delegatecall` diff --git a/Languages/en/24_Create_en/readme.md b/Languages/en/24_Create_en/readme.md index d183eb8c4..1beb8fb1e 100644 --- a/Languages/en/24_Create_en/readme.md +++ b/Languages/en/24_Create_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- On Ethereum, the user (Externally-owned account, `EOA`) can create smart contracts, and a smart contract can also create new smart contracts. The decentralized exchange `Uniswap` creates an infinite number of `Pair` contracts with its `Factory` contract. In this lecture, I will explain how to create new smart contracts in an existed smart contract by using a simplified version of `Uniswap`. diff --git a/Languages/en/25_Create2_en/readme.md b/Languages/en/25_Create2_en/readme.md index 13a7b6934..ec59e98cd 100644 --- a/Languages/en/25_Create2_en/readme.md +++ b/Languages/en/25_Create2_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/26_DeleteContract_en/readme.md b/Languages/en/26_DeleteContract_en/readme.md index 251231021..17a0ce789 100644 --- a/Languages/en/26_DeleteContract_en/readme.md +++ b/Languages/en/26_DeleteContract_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- ## `selfdestruct` diff --git a/Languages/en/27_ABIEncode_en/readme.md b/Languages/en/27_ABIEncode_en/readme.md index f5f75d9c3..a2a20584b 100644 --- a/Languages/en/27_ABIEncode_en/readme.md +++ b/Languages/en/27_ABIEncode_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/28_Hash_en/readme.md b/Languages/en/28_Hash_en/readme.md index 19777b419..55f83664e 100644 --- a/Languages/en/28_Hash_en/readme.md +++ b/Languages/en/28_Hash_en/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/en/29_Selector_en/readme.md b/Languages/en/29_Selector_en/readme.md index dc8e7af11..3be9ddf06 100644 --- a/Languages/en/29_Selector_en/readme.md +++ b/Languages/en/29_Selector_en/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- ## `selector` diff --git a/Languages/en/30_TryCatch_en/readme.md b/Languages/en/30_TryCatch_en/readme.md index 25dc06fe9..ef6df3051 100644 --- a/Languages/en/30_TryCatch_en/readme.md +++ b/Languages/en/30_TryCatch_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/31_ERC20_en/readme.md b/Languages/en/31_ERC20_en/readme.md index af5c2bd95..17120750d 100644 --- a/Languages/en/31_ERC20_en/readme.md +++ b/Languages/en/31_ERC20_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/32_Faucet_en/readme.md b/Languages/en/32_Faucet_en/readme.md index f243c6a23..e957bb9cc 100644 --- a/Languages/en/32_Faucet_en/readme.md +++ b/Languages/en/32_Faucet_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/33_Airdrop_en/readme.md b/Languages/en/33_Airdrop_en/readme.md index 44272051a..259b3953e 100644 --- a/Languages/en/33_Airdrop_en/readme.md +++ b/Languages/en/33_Airdrop_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/34_ERC721_en/readme.md b/Languages/en/34_ERC721_en/readme.md index abc31e0e9..c38b668f7 100644 --- a/Languages/en/34_ERC721_en/readme.md +++ b/Languages/en/34_ERC721_en/readme.md @@ -17,7 +17,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/35_DutchAuction_en/readme.md b/Languages/en/35_DutchAuction_en/readme.md index 3baa0274a..7d3e70157 100644 --- a/Languages/en/35_DutchAuction_en/readme.md +++ b/Languages/en/35_DutchAuction_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Community: [Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Codes and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ---- @@ -45,7 +45,7 @@ The code is simplified based on the [code](https://etherscan.io/address/0xed5af3 pragma solidity ^0.8.21; import "@openzeppelin/contracts/access/Ownable.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/ERC721.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/ERC721.sol"; contract DutchAuction is Ownable, ERC721 { ``` diff --git a/Languages/en/36_MerkleTree_en/readme.md b/Languages/en/36_MerkleTree_en/readme.md index ffff90007..3437562d4 100644 --- a/Languages/en/36_MerkleTree_en/readme.md +++ b/Languages/en/36_MerkleTree_en/readme.md @@ -16,7 +16,7 @@ Welcome to follow me on Twitter: [@0xAA_Science](https://twitter.com/0xAA_Scienc Welcome to the WTF Scientist community, which includes methods for adding WeChat groups: [link](https://discord.gg/5akcruXrsk) -All code and tutorials are open source on GitHub (1024 stars will issue course certification, 2048 stars will issue community NFTs): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub (1024 stars will issue course certification, 2048 stars will issue community NFTs): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/37_Signature_en/readme.md b/Languages/en/37_Signature_en/readme.md index d07fc7c0b..a2f0b8952 100644 --- a/Languages/en/37_Signature_en/readme.md +++ b/Languages/en/37_Signature_en/readme.md @@ -16,7 +16,7 @@ Welcome to follow my Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Welcome to join the WTF Scientist community, where you can find instructions to join our WeChat group: [link](https://discord.gg/5akcruXrsk) -All code and tutorials are open-sourced on GitHub (course certification with 1024 stars, community NFT with 2048 stars): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open-sourced on GitHub (course certification with 1024 stars, community NFT with 2048 stars): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/38_NFTSwap_en/readme.md b/Languages/en/38_NFTSwap_en/readme.md index 183363b5f..f6fab5365 100644 --- a/Languages/en/38_NFTSwap_en/readme.md +++ b/Languages/en/38_NFTSwap_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -All code and tutorials are open source on Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -164,7 +164,7 @@ function revoke(address _nftAddr, uint256 _tokenId) public { ## Implementation in `Remix` ### 1. Deploy the NFT contract -Refer to the [ERC721](https://github.com/AmazingAng/WTFSolidity/tree/main/34_ERC721) tutorial to learn about NFTs and deploy the `WTFApe` NFT contract. +Refer to the [ERC721](https://github.com/AmazingAng/WTF-Solidity/tree/main/34_ERC721) tutorial to learn about NFTs and deploy the `WTFApe` NFT contract. ![Deploy the NFT contract](./img/38-1.png) diff --git a/Languages/en/39_Random_en/readme.md b/Languages/en/39_Random_en/readme.md index 556f651e1..c10680832 100644 --- a/Languages/en/39_Random_en/readme.md +++ b/Languages/en/39_Random_en/readme.md @@ -17,7 +17,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) Many Ethereum applications require the use of random numbers, such as NFT random tokenId selection, blind box drawing, and randomly determining the winner in gamefi battles. However, since all data on Ethereum is public and deterministic, it cannot provide developers with a method of generating random numbers like other programming languages. In this tutorial, we will introduce two methods of on-chain (hash function) and off-chain (Chainlink oracle) random number generation, and use them to create a tokenId random minting NFT. @@ -138,7 +138,7 @@ In this section, we will use on-chain and off-chain random numbers to create a ` // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/ERC721.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/ERC721.sol"; import "@chainlink/contracts/src/v0.8/VRFConsumerBase.sol"; contract Random is ERC721, VRFConsumerBase{ diff --git a/Languages/en/40_ERC1155_en/readme.md b/Languages/en/40_ERC1155_en/readme.md index a0efc8c65..1d20b4a3d 100644 --- a/Languages/en/40_ERC1155_en/readme.md +++ b/Languages/en/40_ERC1155_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -All code and tutorials are open source on Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -24,7 +24,7 @@ In this lecture, we will learn about the `ERC1155` standard, which allows a cont ## `EIP1155` Both the `ERC20` and `ERC721` standards correspond to a single token contract. For example, if we wanted to create a large game similar to World of Warcraft on Ethereum, we would need to deploy a contract for each piece of equipment. Deploying and managing thousands of contracts is very cumbersome. Therefore, the [Ethereum EIP1155](https://eips.ethereum.org/EIPS/eip-1155) proposes a multi-token standard called `ERC1155`, which allows a contract to contain multiple homogeneous and heterogeneous tokens. `ERC1155` is widely used in GameFi applications, and well-known blockchain games such as Decentraland and Sandbox use it. -In simple terms, `ERC1155` is similar to the previously introduced non-fungible token standard [ERC721](https://github.com/AmazingAng/WTFSolidity/tree/main/34_ERC721): In `ERC721`, each token has a `tokenId` as a unique identifier, and each `tokenId` corresponds to only one token; in `ERC1155`, each type of token has an `id` as a unique identifier, and each `id` corresponds to one type of token. This way, the types of tokens can be managed heterogeneously in the same contract, and each type of token has a URL `uri` to store its metadata, similar to `tokenURI` in `ERC721`. The following is the metadata interface contract `IERC1155MetadataURI` for `ERC1155`: +In simple terms, `ERC1155` is similar to the previously introduced non-fungible token standard [ERC721](https://github.com/AmazingAng/WTF-Solidity/tree/main/34_ERC721): In `ERC721`, each token has a `tokenId` as a unique identifier, and each `tokenId` corresponds to only one token; in `ERC1155`, each type of token has an `id` as a unique identifier, and each `id` corresponds to one type of token. This way, the types of tokens can be managed heterogeneously in the same contract, and each type of token has a URL `uri` to store its metadata, similar to `tokenURI` in `ERC721`. The following is the metadata interface contract `IERC1155MetadataURI` for `ERC1155`: ```solidity /** diff --git a/Languages/en/41_WETH_en/readme.md b/Languages/en/41_WETH_en/readme.md index 1a7506e86..20a21a474 100644 --- a/Languages/en/41_WETH_en/readme.md +++ b/Languages/en/41_WETH_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -All code and tutorials are open-sourced on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open-sourced on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -27,7 +27,7 @@ In this lecture, we will learn about `WETH` - the wrapped version of `ETH`. `WETH` (Wrapped ETH) is a wrapped version of `ETH`. The commonly seen `WETH`, `WBTC`, and `WBNB` are all wrapped native tokens. Why do we need to wrap them? -In 2015, the [ERC20](https://github.com/AmazingAng/WTFSolidity/blob/main/20_SendETH/readme.md) standard was introduced, which aimed to establish a set of standard rules for tokens on Ethereum, simplifying the release of new tokens and making all tokens on the blockchain comparable to each other. Unfortunately, Ether itself does not adhere to the `ERC20` standard. The development of `WETH` is to improve interoperability between blockchains and allow the use of `ETH` in decentralized applications (dApps). It is like putting a smart contract's clothing on the native token: when the clothing is put on, it becomes `WETH`, complying with the `ERC20` standard for fungible tokens, and can be used for dApps and cross-chain transfer. When the clothing is taken off, it can be exchanged 1:1 for `ETH`. +In 2015, the [ERC20](https://github.com/AmazingAng/WTF-Solidity/blob/main/20_SendETH/readme.md) standard was introduced, which aimed to establish a set of standard rules for tokens on Ethereum, simplifying the release of new tokens and making all tokens on the blockchain comparable to each other. Unfortunately, Ether itself does not adhere to the `ERC20` standard. The development of `WETH` is to improve interoperability between blockchains and allow the use of `ETH` in decentralized applications (dApps). It is like putting a smart contract's clothing on the native token: when the clothing is put on, it becomes `WETH`, complying with the `ERC20` standard for fungible tokens, and can be used for dApps and cross-chain transfer. When the clothing is taken off, it can be exchanged 1:1 for `ETH`. ## The `WETH` Contract diff --git a/Languages/en/42_PaymentSplit_en/readme.md b/Languages/en/42_PaymentSplit_en/readme.md index a3362d58a..a08d50c8c 100644 --- a/Languages/en/42_PaymentSplit_en/readme.md +++ b/Languages/en/42_PaymentSplit_en/readme.md @@ -13,7 +13,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -All codes and tutorials are open-sourced on Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open-sourced on Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/en/43_TokenVesting_en/readme.md b/Languages/en/43_TokenVesting_en/readme.md index 3cd2f3a8a..0d0601dba 100644 --- a/Languages/en/43_TokenVesting_en/readme.md +++ b/Languages/en/43_TokenVesting_en/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[wtf.academy](https://wtf.academy) -All code and tutorials are open-sourced on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open-sourced on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/en/44_TokenLocker_en/readme.md b/Languages/en/44_TokenLocker_en/readme.md index f3f37f84c..a910345f0 100644 --- a/Languages/en/44_TokenLocker_en/readme.md +++ b/Languages/en/44_TokenLocker_en/readme.md @@ -13,7 +13,7 @@ Feel free to follow me on Twitter: [@0xAA_Science](https://twitter.com/0xAA_Scie You are also welcome to join the WTF Scientists community and find information on how to join the WeChat group: [link](https://discord.gg/5akcruXrsk) -All of the code and tutorials are open source and can be found on GitHub (I will provide a course certification for 1024 stars and a community NFT for 2048 stars): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All of the code and tutorials are open source and can be found on GitHub (I will provide a course certification for 1024 stars and a community NFT for 2048 stars): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/en/45_Timelock_en/readme.md b/Languages/en/45_Timelock_en/readme.md index f19324184..9e184c80f 100644 --- a/Languages/en/45_Timelock_en/readme.md +++ b/Languages/en/45_Timelock_en/readme.md @@ -13,7 +13,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://wechat.wtf.academy)|[wtf.academy](https://wtf.academy) -All code and tutorials are open-sourced on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open-sourced on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -135,7 +135,7 @@ There are a total of 7 functions in the `Timelock` contract. - `data`: the call data of the transaction - `executeTime`: the blockchain timestamp when the transaction will be executed. When calling this function, it is necessary to ensure that the expected execution time `executeTime` is greater than the current blockchain timestamp + the lock time `delay`. The unique identifier for the transaction is the hash value of all the parameters, calculated using the `getTxHash()` function. Transactions that enter the queue will update the `queuedTransactions` variable and release a `QueueTransaction` event. -- `executeTransaction()`: Executes a transaction. Its parameters are the same as `queueTransaction()`. The transaction to be executed must be in the time lock queue, reach its execution time, and not be expired. The `call` member function of `solidity` is used to execute the transaction, which was introduced in [Lesson 22](https://github.com/AmazingAng/WTFSolidity/blob/main/22_Call/readme.md). +- `executeTransaction()`: Executes a transaction. Its parameters are the same as `queueTransaction()`. The transaction to be executed must be in the time lock queue, reach its execution time, and not be expired. The `call` member function of `solidity` is used to execute the transaction, which was introduced in [Lesson 22](https://github.com/AmazingAng/WTF-Solidity/blob/main/22_Call/readme.md). - `cancelTransaction()`: Cancels a transaction. Its parameters are the same as `queueTransaction()`. The transaction to be cancelled must be in the queue. The `queuedTransactions` will be updated and a `CancelTransaction` event will be released. - `changeAdmin()`: Changes the administrator address and can only be called by the `Timelock` contract. - `getBlockTimestamp()`: Gets the current blockchain timestamp. @@ -334,7 +334,7 @@ address target, uint256 value, string memory signature, bytes memory data, uint2 - `target`: Since we are calling a function of `Timelock`, we fill in the contract address. - `value`: No need to transfer ETH, fill in `0` here. - `signature`: The function signature of `changeAdmin()` is: `"changeAdmin(address)"`. -- `data`: Fill in the parameter to be passed, which is the address of the new administrator. But the address needs to be padded to 32 bytes of data to meet the [Ethereum ABI Encoding Standard](https://github.com/AmazingAng/WTFSolidity/blob/main/27_ABIEncode/readme.md). You can use the [hashex](https://abi.hashex.org/) website to encode the parameters to ABI. Example: +- `data`: Fill in the parameter to be passed, which is the address of the new administrator. But the address needs to be padded to 32 bytes of data to meet the [Ethereum ABI Encoding Standard](https://github.com/AmazingAng/WTF-Solidity/blob/main/27_ABIEncode/readme.md). You can use the [hashex](https://abi.hashex.org/) website to encode the parameters to ABI. Example: ```solidity Address before encoding:0xd9145CCE52D386f254917e481eB44e9943F39138 diff --git a/Languages/en/46_ProxyContract_en/readme.md b/Languages/en/46_ProxyContract_en/readme.md index 2459c9d44..d45cf4fe5 100644 --- a/Languages/en/46_ProxyContract_en/readme.md +++ b/Languages/en/46_ProxyContract_en/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk) | [WeChat group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Official website wtf.academy](https://wtf.academy) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -37,7 +37,7 @@ The proxy pattern has two main benefits: 1. Upgradeable: When we need to upgrade the logic of the contract, we only need to point the proxy contract to a new logic contract. 2. Gas saving: If multiple contracts reuse a set of logic, we only need to deploy one logic contract, and then deploy multiple proxy contracts that only save data and point to the logic contract. -**Tip**: If you are not familiar with `delegatecall`, you can refer to this tutorial [Lesson 23 Delegatecall](https://github.com/AmazingAng/WTFSolidity/tree/main/Languages/en/23_Delegatecall_en). +**Tip**: If you are not familiar with `delegatecall`, you can refer to this tutorial [Lesson 23 Delegatecall](https://github.com/AmazingAng/WTF-Solidity/tree/main/Languages/en/23_Delegatecall_en). ## Proxy Contract @@ -140,7 +140,7 @@ contract Logic { ### Caller contract -The `Caller` contract demonstrates how to call a proxy contract, it's very simple. However, to understand it, you need to first learn about [Lesson 22: Call](https://github.com/AmazingAng/WTFSolidity/tree/main/Languages/en/22_Call_en/readme.md) and [Lesson 27: ABI encoding](https://github.com/AmazingAng/WTFSolidity/tree/main/Languages/en/27_ABIEncode_en/readme.md) in this tutorial. +The `Caller` contract demonstrates how to call a proxy contract, it's very simple. However, to understand it, you need to first learn about [Lesson 22: Call](https://github.com/AmazingAng/WTF-Solidity/tree/main/Languages/en/22_Call_en/readme.md) and [Lesson 27: ABI encoding](https://github.com/AmazingAng/WTF-Solidity/tree/main/Languages/en/27_ABIEncode_en/readme.md) in this tutorial. There are 1 variable and 2 functions: - `proxy`: a state variable that records the proxy contract address. diff --git a/Languages/en/47_Upgrade_en/readme.md b/Languages/en/47_Upgrade_en/readme.md index a94aec9ac..a1856e9aa 100644 --- a/Languages/en/47_Upgrade_en/readme.md +++ b/Languages/en/47_Upgrade_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Official website wtf.academy](https://wtf.academy) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -33,7 +33,7 @@ Below we implement a simple upgradeable contract that includes 3 contracts: the ### Proxy Contract -This proxy contract is simpler than that in [Lecture 46](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/46_ProxyContract_en/readme.md). We didn't use inline assembly in its `fallback()` function, but only used `implementation.delegatecall(msg.data);`. Therefore, the callback function does not return a value, but it is sufficient for teaching purposes. +This proxy contract is simpler than that in [Lecture 46](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/46_ProxyContract_en/readme.md). We didn't use inline assembly in its `fallback()` function, but only used `implementation.delegatecall(msg.data);`. Therefore, the callback function does not return a value, but it is sufficient for teaching purposes. It contains 3 variables: - `implementation`: The logic contract address. diff --git a/Languages/en/48_TransparentProxy_en/readme.md b/Languages/en/48_TransparentProxy_en/readme.md index 4559e387d..15d37d9e2 100644 --- a/Languages/en/48_TransparentProxy_en/readme.md +++ b/Languages/en/48_TransparentProxy_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk) | [WeChat group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Official website wtf.academy](https://wtf.academy) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -23,7 +23,7 @@ In this lesson, we will introduce the selector clash issue in proxy contracts, a ## Selector Clash -In smart contracts, a function selector is the hash of a function signature's first 4 bytes. For example, the selector of function `mint(address account)` is `bytes4(keccak256("mint(address)"))`, which is `0x6a627842`. For more about function selectors see [WTF Solidity Tutorial #29: Function Selectors](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/29_Selector_en/readme.md). +In smart contracts, a function selector is the hash of a function signature's first 4 bytes. For example, the selector of function `mint(address account)` is `bytes4(keccak256("mint(address)"))`, which is `0x6a627842`. For more about function selectors see [WTF Solidity Tutorial #29: Function Selectors](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/29_Selector_en/readme.md). Because a function selector has only 4 bytes, its range is very small. Therefore, two different functions may have the same selector, such as the following two functions: @@ -50,7 +50,7 @@ The logic of the transparent proxy is very simple: admin may mistakenly call the ### Proxy Contract -The proxy contract here is very similar to the one in [Lecture 47](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/47_Upgrade_en/readme.md), except that the `fallback()` function restricts the call by the admin address. +The proxy contract here is very similar to the one in [Lecture 47](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/47_Upgrade_en/readme.md), except that the `fallback()` function restricts the call by the admin address. It contains three variables: @@ -97,7 +97,7 @@ contract TransparentProxy { ### Logic Contract -The new and old logic contracts here are the same as in [Lecture 47](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/47_Upgrade_en/readme.md). The logic contracts contain `3` state variables, consistent with the proxy contract to prevent slot conflicts. It also contains a function `foo()`, where the old logic contract will change the value of `words` to `"old"`, and the new one will change it to `"new"`. +The new and old logic contracts here are the same as in [Lecture 47](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/47_Upgrade_en/readme.md). The logic contracts contain `3` state variables, consistent with the proxy contract to prevent slot conflicts. It also contains a function `foo()`, where the old logic contract will change the value of `words` to `"old"`, and the new one will change it to `"new"`. ```solidity // old logic contract diff --git a/Languages/en/49_UUPS_en/readme.md b/Languages/en/49_UUPS_en/readme.md index 0c579cc2b..a55707393 100644 --- a/Languages/en/49_UUPS_en/readme.md +++ b/Languages/en/49_UUPS_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Official website wtf.academy](https://wtf.academy) -All code and tutorials are open source on Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -33,7 +33,7 @@ The following table summarizes the differences between regular upgradeable contr ## UUPS contract -First, let's review [WTF Solidity Minimalist Tutorial Lesson 23: Delegatecall](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/23_Delegatecall_en/readme.md). If user A `delegatecall`s contract C (logic contract) through contract B (proxy contract), the context is still the context of contract B, and `msg.sender` is still user A rather than contract B. Therefore, the UUPS contract can place the upgrade function in the logical contract and check whether the caller is an admin. +First, let's review [WTF Solidity Minimalist Tutorial Lesson 23: Delegatecall](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/23_Delegatecall_en/readme.md). If user A `delegatecall`s contract C (logic contract) through contract B (proxy contract), the context is still the context of contract B, and `msg.sender` is still user A rather than contract B. Therefore, the UUPS contract can place the upgrade function in the logical contract and check whether the caller is an admin. ![delegatecall](./img/49-2.png) @@ -73,7 +73,7 @@ contract UUPSProxy { ### UUPS Logic Contract -The UUPS logic contract is different from the one in [Lesson 47](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/47_Upgrade_en/readme.md) in that it includes an upgrade function. The UUPS logic contract contains `3` state variables to be consistent with the proxy contract and prevent slot conflicts. It includes `2` functions: +The UUPS logic contract is different from the one in [Lesson 47](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/47_Upgrade_en/readme.md) in that it includes an upgrade function. The UUPS logic contract contains `3` state variables to be consistent with the proxy contract and prevent slot conflicts. It includes `2` functions: - `upgrade()`: an upgrade function that changes the logic contract address `implementation`, which can only be called by the `admin`. - `foo()`: The old UUPS logic contract will change the value of `words` to `"old"`, and the new one will change it to `"new"`. diff --git a/Languages/en/50_MultisigWallet_en/readme.md b/Languages/en/50_MultisigWallet_en/readme.md index ae84c79c0..db76bf5dc 100644 --- a/Languages/en/50_MultisigWallet_en/readme.md +++ b/Languages/en/50_MultisigWallet_en/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Official website wtf.academy](https://wtf.academy) -All code and tutorials are open source on Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -43,7 +43,7 @@ A multisig wallet on Ethereum is actually a smart contract, and it is a contract - `nonce`: Initially set to `0`, the value of the nonce increases with each successfully executed transaction of the multisig contract, which can prevent replay attacks. - `chainid`: The chain id helps prevent replay attacks across different chains. -3. Collect multisig signatures (off-chain): The previous transaction is encoded using ABI and hashed to obtain the transaction hash. Then, the multisig individuals sign it and concatenate the signatures together to obtain the final signed transaction. For those who are not familiar with ABI encoding and hashing, you can refer to the WTF Solidity Tutorial [Lesson 27](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/27_ABIEncode_en/readme.md) and [Lesson 28](https://github.com/AmazingAng/WTFSolidity/blob/main/Languages/en/28_Hash_en/readme.md). +3. Collect multisig signatures (off-chain): The previous transaction is encoded using ABI and hashed to obtain the transaction hash. Then, the multisig individuals sign it and concatenate the signatures together to obtain the final signed transaction. For those who are not familiar with ABI encoding and hashing, you can refer to the WTF Solidity Tutorial [Lesson 27](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/27_ABIEncode_en/readme.md) and [Lesson 28](https://github.com/AmazingAng/WTF-Solidity/blob/main/Languages/en/28_Hash_en/readme.md). ```solidity Transaction hash: 0xc1b055cf8e78338db21407b425114a2e258b0318879327945b661bfdea570e66 diff --git a/Languages/en/51_ERC4626_en/readme.md b/Languages/en/51_ERC4626_en/readme.md index 2b16049ff..4b94ae0e7 100644 --- a/Languages/en/51_ERC4626_en/readme.md +++ b/Languages/en/51_ERC4626_en/readme.md @@ -17,7 +17,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Official website wtf.academy](https://wtf.academy) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/52_EIP712_en/readme.md b/Languages/en/52_EIP712_en/readme.md index bea8e523f..8bf7e0239 100644 --- a/Languages/en/52_EIP712_en/readme.md +++ b/Languages/en/52_EIP712_en/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) |[Official website wtf.academy](https://wtf.academy) -All codes and tutorials are open source on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open source on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -23,7 +23,7 @@ In this lecture, we introduce a more advanced and secure signature method, EIP71 ## EIP712 -Previously we introduced [EIP191 signature standard (personal sign)](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature/readme.md), which can sign a message. But it is too simple. When the signature data is complex, the user can only see a string of hexadecimal strings (the hash of the data) and cannot verify whether the signature content is as expected. +Previously we introduced [EIP191 signature standard (personal sign)](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature/readme.md), which can sign a message. But it is too simple. When the signature data is complex, the user can only see a string of hexadecimal strings (the hash of the data) and cannot verify whether the signature content is as expected. ![](./img/52-1.png) diff --git a/Languages/en/53_ERC20Permit/readme.md b/Languages/en/53_ERC20Permit/readme.md index 9fcbabd52..69d70d9cf 100644 --- a/Languages/en/53_ERC20Permit/readme.md +++ b/Languages/en/53_ERC20Permit/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) |[Official website wtf.academy](https://wtf.academy) -All codes and tutorials are open source on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open source on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/54_CrossChainBridge/readme.md b/Languages/en/54_CrossChainBridge/readme.md index fb22b36a6..e02702a8a 100644 --- a/Languages/en/54_CrossChainBridge/readme.md +++ b/Languages/en/54_CrossChainBridge/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) |[Official website wtf.academy](https://wtf.academy) -All codes and tutorials are open source on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open source on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- In this lecture, we introduce cross-chain bridges, infrastructure that can transfer assets from one blockchain to another, and implement a simple cross-chain bridge. diff --git a/Languages/en/55_MultiCall/readme.md b/Languages/en/55_MultiCall/readme.md index fd23e04c7..ecac104ed 100644 --- a/Languages/en/55_MultiCall/readme.md +++ b/Languages/en/55_MultiCall/readme.md @@ -13,7 +13,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) |[Official website wtf.academy](https://wtf.academy) -All codes and tutorials are open source on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open source on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/56_DEX/readme.md b/Languages/en/56_DEX/readme.md index 427451b3c..ed30ddd3d 100644 --- a/Languages/en/56_DEX/readme.md +++ b/Languages/en/56_DEX/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) |[Official website wtf.academy](https://wtf.academy) -All codes and tutorials are open source on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open source on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- In this lecture, we will introduce the Constant Product Automated Market Maker (CPAMM), which is the core mechanism of decentralized exchanges and is used by a series of DEXs such as Uniswap and PancakeSwap. The teaching contract is simplified from the [Uniswap-v2](https://github.com/Uniswap/v2-core) contract and includes the core functions of CPAMM. diff --git a/Languages/en/57_Flashloan/readme.md b/Languages/en/57_Flashloan/readme.md index 97cbfe499..789746296 100644 --- a/Languages/en/57_Flashloan/readme.md +++ b/Languages/en/57_Flashloan/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Community: [Discord](https://discord.gg/5akcruXrsk)|[WeChat Group](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) |[Official website wtf.academy](https://wtf.academy) -All codes and tutorials are open source on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All codes and tutorials are open source on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/en/README.md b/Languages/en/README.md index 985f1e48c..fa04abb57 100644 --- a/Languages/en/README.md +++ b/Languages/en/README.md @@ -10,7 +10,7 @@ Twitter: [@WTFAcademy\_](https://twitter.com/WTFAcademy_) | [@0xAA_Science](http Community: [Discord](https://discord.gg/5akcruXrsk) | [Website: wtf.academy](https://wtf.academy) -Tutorials and codes are open-sourced on github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Tutorials and codes are open-sourced on github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) **NOTE: the English Version of WTF Solidity is preliminary and requires further community review.** @@ -164,7 +164,7 @@ Tutorials and codes are open-sourced on github: [github.com/AmazingAng/WTFSolidi

Contributors are the basis of WTF Academy

- + diff --git a/Languages/es/01_HolaWeb3_es/readme.md b/Languages/es/01_HolaWeb3_es/readme.md index c43ea6c6a..bce59feaf 100644 --- a/Languages/es/01_HolaWeb3_es/readme.md +++ b/Languages/es/01_HolaWeb3_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Jonathan Díaz con el objetivo Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/02_TiposDeValor_es/readme.md b/Languages/es/02_TiposDeValor_es/readme.md index c06d4947a..bd775ed4f 100644 --- a/Languages/es/02_TiposDeValor_es/readme.md +++ b/Languages/es/02_TiposDeValor_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Jonathan Díaz con el objetivo Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/03_Funcion_es/readme.md b/Languages/es/03_Funcion_es/readme.md index e4218876e..599ec6083 100644 --- a/Languages/es/03_Funcion_es/readme.md +++ b/Languages/es/03_Funcion_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Sebas G con el objetivo de hace Twitter: [@scguaquetam](https://twitter.com/scguaquetam) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/es/04_Retorno_es/readme.md b/Languages/es/04_Retorno_es/readme.md index 0f7478498..7f377276e 100644 --- a/Languages/es/04_Retorno_es/readme.md +++ b/Languages/es/04_Retorno_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Angela Ocando con el objetivo d Twitter: [@ocandocrypto](https://twitter.com/ocandocrypto) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/05_AlmacenamientoInformacion_es/readme.md b/Languages/es/05_AlmacenamientoInformacion_es/readme.md index ac130e579..2817521cb 100644 --- a/Languages/es/05_AlmacenamientoInformacion_es/readme.md +++ b/Languages/es/05_AlmacenamientoInformacion_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Angela Ocando con el objetivo d Twitter: [@ocandocrypto](https://twitter.com/ocandocrypto) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/06_ArreglosyEstructuras_es/readme.md b/Languages/es/06_ArreglosyEstructuras_es/readme.md index 8377e33b1..0423a27ff 100644 --- a/Languages/es/06_ArreglosyEstructuras_es/readme.md +++ b/Languages/es/06_ArreglosyEstructuras_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Angela Ocando con el objetivo d Twitter: [@ocandocrypto](https://twitter.com/ocandocrypto) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/07_Mapeo_es/readme.md b/Languages/es/07_Mapeo_es/readme.md index 89f78b3b5..3cc7b45bc 100644 --- a/Languages/es/07_Mapeo_es/readme.md +++ b/Languages/es/07_Mapeo_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Angela Ocando con el objetivo d Twitter: [@ocandocrypto](https://twitter.com/ocandocrypto) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/08_ValorInicial_es/readme.md b/Languages/es/08_ValorInicial_es/readme.md index 4a04298b4..3089e577c 100644 --- a/Languages/es/08_ValorInicial_es/readme.md +++ b/Languages/es/08_ValorInicial_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Sebas G con el objetivo de hace Twitter: [@scguaquetam](https://twitter.com/scguaquetam) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/09_Constante_es/readme.md b/Languages/es/09_Constante_es/readme.md index 5f24be137..254a1336a 100644 --- a/Languages/es/09_Constante_es/readme.md +++ b/Languages/es/09_Constante_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Sebas G con el objetivo de hace Twitter: [@scguaquetam](https://twitter.com/scguaquetam) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/10_OrdenamientoInsercion_es/readme.md b/Languages/es/10_OrdenamientoInsercion_es/readme.md index d56305210..e44141d35 100644 --- a/Languages/es/10_OrdenamientoInsercion_es/readme.md +++ b/Languages/es/10_OrdenamientoInsercion_es/readme.md @@ -10,7 +10,7 @@ La traducción al español ha sido realizada por Sebas G con el objetivo de hace Twitter: [@scguaquetam](https://twitter.com/scguaquetam) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/11_Modificador_es/readme.md b/Languages/es/11_Modificador_es/readme.md index e1523374d..c02b7b606 100644 --- a/Languages/es/11_Modificador_es/readme.md +++ b/Languages/es/11_Modificador_es/readme.md @@ -21,7 +21,7 @@ La traducción al español ha sido realizada por Sebas G con el objetivo de hace Twitter: [@scguaquetam](https://twitter.com/scguaquetam) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/12_Eventos_es/readme.md b/Languages/es/12_Eventos_es/readme.md index 4f807eacd..9a03dcd6f 100644 --- a/Languages/es/12_Eventos_es/readme.md +++ b/Languages/es/12_Eventos_es/readme.md @@ -19,7 +19,7 @@ La traducción al español ha sido realizada por Jonathan Díaz con el objetivo Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/13_Herencia_es/readme.md b/Languages/es/13_Herencia_es/readme.md index 686dabed1..66542ec0e 100644 --- a/Languages/es/13_Herencia_es/readme.md +++ b/Languages/es/13_Herencia_es/readme.md @@ -19,7 +19,7 @@ La traducción al español ha sido realizada por Jonathan Díaz con el objetivo Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/14_Interfaces_es/readme.md b/Languages/es/14_Interfaces_es/readme.md index c14a917b9..a8b185788 100644 --- a/Languages/es/14_Interfaces_es/readme.md +++ b/Languages/es/14_Interfaces_es/readme.md @@ -20,7 +20,7 @@ La traducción al español ha sido realizada por Jonathan Díaz con el objetivo Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -29,7 +29,7 @@ En esta sección, se introducirá los contratos `abstract` y `interface` en Soli ## Contrato Abstracto Si un contrato contiene al menos una función no implementada (sin contenido en el cuerpo de la función, `{}`) debe ser marcado con la palabra clave `abstract`; de lo contrario, no se compilará. Además, la función no implementada necesita usar la palabra clave `virtual`. -Se toma el contrato [Contrato de Ordenación por Inserción](https://github.com/AmazingAng/WTFSolidity/tree/main/07_InsertionSort) anterior como ejemplo, +Se toma el contrato [Contrato de Ordenación por Inserción](https://github.com/AmazingAng/WTF-Solidity/tree/main/07_InsertionSort) anterior como ejemplo, si no se ha averiguado cómo implementar la función de ordenación por inserción, se puede marcar el contrato como `abstract` y permitir que otros lo sobrescriban en el futuro. diff --git a/Languages/es/15_Errores_es/readme.md b/Languages/es/15_Errores_es/readme.md index 49ca179f5..c62313286 100644 --- a/Languages/es/15_Errores_es/readme.md +++ b/Languages/es/15_Errores_es/readme.md @@ -20,7 +20,7 @@ La traducción al español ha sido realizada por Jonathan Díaz con el objetivo Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/es/README.md b/Languages/es/README.md index e480e0057..8dc96f5cb 100644 --- a/Languages/es/README.md +++ b/Languages/es/README.md @@ -14,7 +14,7 @@ La traducción al español ha sido realizada por Jonathan Díaz, Angela Ocando y Twitter: [@jonthdiaz](https://twitter.com/jonthdiaz) [@ocandocrypto](https://twitter.com/ocandocrypto) [@scguaquetam](https://twitter.com/scguaquetam) -Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Los códigos y tutoriales están como código abierto en GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ## Intro @@ -55,7 +55,7 @@ Los códigos y tutoriales están como código abierto en GitHub: [github.com/Ama

Contributors are the basis of WTF Academy

- + diff --git a/Languages/ja/16_Overloading_ja/readme.md b/Languages/ja/16_Overloading_ja/readme.md index 2e611fdf7..7832094aa 100644 --- a/Languages/ja/16_Overloading_ja/readme.md +++ b/Languages/ja/16_Overloading_ja/readme.md @@ -15,7 +15,7 @@ tags: コミュニティ:[Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[公式サイト wtf.academy](https://wtf.academy) -すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -37,7 +37,7 @@ function saySomething(string memory something) public pure returns(string memory } ``` -最終的に、オーバーロード関数はコンパイラによって異なる関数セレクタ(selector)に変換されます。関数セレクタについての詳細は[WTF Solidity 超シンプル入門: 29. 関数セレクタ Selector](https://github.com/AmazingAng/WTFSolidity/tree/main/29_Selector)を参照してほしいです。 +最終的に、オーバーロード関数はコンパイラによって異なる関数セレクタ(selector)に変換されます。関数セレクタについての詳細は[WTF Solidity 超シンプル入門: 29. 関数セレクタ Selector](https://github.com/AmazingAng/WTF-Solidity/tree/main/29_Selector)を参照してほしいです。 `Overloading.sol`コントラクトを例に取り、Remix でコンパイルしてデプロイした後、オーバーロード関数 `saySomething()` と `saySomething(string memory something)` をそれぞれ呼び出すと、異なる結果が返され、異なる関数として区別されることがわかります。 diff --git a/Languages/ja/17_Library_ja/readme.md b/Languages/ja/17_Library_ja/readme.md index 2e6982a0e..fa7ac146e 100644 --- a/Languages/ja/17_Library_ja/readme.md +++ b/Languages/ja/17_Library_ja/readme.md @@ -16,7 +16,7 @@ tags: コミュニティ:[Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[公式サイト wtf.academy](https://wtf.academy) -すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/ja/18_Import_ja/readme.md b/Languages/ja/18_Import_ja/readme.md index 278ed0696..0cc5dd056 100644 --- a/Languages/ja/18_Import_ja/readme.md +++ b/Languages/ja/18_Import_ja/readme.md @@ -15,7 +15,7 @@ tags: コミュニティ:[Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[公式サイト wtf.academy](https://wtf.academy) -すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/ja/19_Fallback_ja/readme.md b/Languages/ja/19_Fallback_ja/readme.md index ce5215025..d7754cb9e 100644 --- a/Languages/ja/19_Fallback_ja/readme.md +++ b/Languages/ja/19_Fallback_ja/readme.md @@ -16,7 +16,7 @@ tags: コミュニティ:[Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[公式サイト wtf.academy](https://wtf.academy) -すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/ja/20_SendETH_ja/readme.md b/Languages/ja/20_SendETH_ja/readme.md index 09cccb5df..4bde7f40a 100644 --- a/Languages/ja/20_SendETH_ja/readme.md +++ b/Languages/ja/20_SendETH_ja/readme.md @@ -15,7 +15,7 @@ tags: コミュニティ:[Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[公式サイト wtf.academy](https://wtf.academy) -すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +すべてのソースコードやレッスンは github にて公開: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/01_HelloWeb3/readme.md b/Languages/pt-br/01_HelloWeb3/readme.md index 1f56f164e..318564a5e 100644 --- a/Languages/pt-br/01_HelloWeb3/readme.md +++ b/Languages/pt-br/01_HelloWeb3/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/02_ValueTypes/readme.md b/Languages/pt-br/02_ValueTypes/readme.md index 886ea7ce4..cee5790e5 100644 --- a/Languages/pt-br/02_ValueTypes/readme.md +++ b/Languages/pt-br/02_ValueTypes/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/03_Function/readme.md b/Languages/pt-br/03_Function/readme.md index 63d484b50..99fd008b9 100644 --- a/Languages/pt-br/03_Function/readme.md +++ b/Languages/pt-br/03_Function/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/04_Return/readme.md b/Languages/pt-br/04_Return/readme.md index 5ec4acb81..1fe815855 100644 --- a/Languages/pt-br/04_Return/readme.md +++ b/Languages/pt-br/04_Return/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/05_DataStorage/readme.md b/Languages/pt-br/05_DataStorage/readme.md index 4cb46ceaf..eef1ebe66 100644 --- a/Languages/pt-br/05_DataStorage/readme.md +++ b/Languages/pt-br/05_DataStorage/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/06_ArrayAndStruct/readme.md b/Languages/pt-br/06_ArrayAndStruct/readme.md index 0c45a8354..42353b65c 100644 --- a/Languages/pt-br/06_ArrayAndStruct/readme.md +++ b/Languages/pt-br/06_ArrayAndStruct/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são open source no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são open source no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/07_Mapping/readme.md b/Languages/pt-br/07_Mapping/readme.md index def37d65b..a095486d7 100644 --- a/Languages/pt-br/07_Mapping/readme.md +++ b/Languages/pt-br/07_Mapping/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidades: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/08_InitialValue/readme.md b/Languages/pt-br/08_InitialValue/readme.md index c469a3a10..7373d330e 100644 --- a/Languages/pt-br/08_InitialValue/readme.md +++ b/Languages/pt-br/08_InitialValue/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/09_Constant/readme.md b/Languages/pt-br/09_Constant/readme.md index 2ce6135a6..66bf5b5d2 100644 --- a/Languages/pt-br/09_Constant/readme.md +++ b/Languages/pt-br/09_Constant/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/10_InsertionSort/readme.md b/Languages/pt-br/10_InsertionSort/readme.md index c8603c5a1..14d258897 100644 --- a/Languages/pt-br/10_InsertionSort/readme.md +++ b/Languages/pt-br/10_InsertionSort/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- Nesta lição, vamos discutir o fluxo de controle em Solidity e depois explicar como implementar a ordenação por inserção (Insertion Sort) em Solidity, um algoritmo que parece simples, mas é fácil introduzir erros. diff --git a/Languages/pt-br/11_Modifier/readme.md b/Languages/pt-br/11_Modifier/readme.md index 21bedd175..8b234631b 100644 --- a/Languages/pt-br/11_Modifier/readme.md +++ b/Languages/pt-br/11_Modifier/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/12_Event/readme.md b/Languages/pt-br/12_Event/readme.md index 3027a776e..c7467387e 100644 --- a/Languages/pt-br/12_Event/readme.md +++ b/Languages/pt-br/12_Event/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website WTF.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/13_Inheritance/readme.md b/Languages/pt-br/13_Inheritance/readme.md index 41aad15cf..94a8f68c8 100644 --- a/Languages/pt-br/13_Inheritance/readme.md +++ b/Languages/pt-br/13_Inheritance/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- Nesta aula, vamos falar sobre herança no Solidity, incluindo herança simples, herança múltipla e herança de modificadores e construtores. diff --git a/Languages/pt-br/14_Interface/readme.md b/Languages/pt-br/14_Interface/readme.md index 68ff0e9c1..3dd6e3e0f 100644 --- a/Languages/pt-br/14_Interface/readme.md +++ b/Languages/pt-br/14_Interface/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/15_Errors/readme.md b/Languages/pt-br/15_Errors/readme.md index 6b206f07e..ef4c2fe7f 100644 --- a/Languages/pt-br/15_Errors/readme.md +++ b/Languages/pt-br/15_Errors/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site da WTF Academy](https://wtf.academy) -Todo código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/16_Overloading/readme.md b/Languages/pt-br/16_Overloading/readme.md index 12708acdb..ff7f1dc58 100644 --- a/Languages/pt-br/16_Overloading/readme.md +++ b/Languages/pt-br/16_Overloading/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/17_Library/readme.md b/Languages/pt-br/17_Library/readme.md index ff52411b8..f67d84e5c 100644 --- a/Languages/pt-br/17_Library/readme.md +++ b/Languages/pt-br/17_Library/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- Nesta aula, vamos usar o contrato de biblioteca `String` referenciado pelo `ERC721` para explicar os contratos de biblioteca (`Library`) no Solidity e resumir as bibliotecas mais comumente usadas. diff --git a/Languages/pt-br/18_Import/readme.md b/Languages/pt-br/18_Import/readme.md index b1a9167f6..99f819282 100644 --- a/Languages/pt-br/18_Import/readme.md +++ b/Languages/pt-br/18_Import/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/19_Fallback/readme.md b/Languages/pt-br/19_Fallback/readme.md index 8a55f8dcf..2f643b25f 100644 --- a/Languages/pt-br/19_Fallback/readme.md +++ b/Languages/pt-br/19_Fallback/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website WTF.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/20_SendETH/readme.md b/Languages/pt-br/20_SendETH/readme.md index 4d7722a1b..d57596b10 100644 --- a/Languages/pt-br/20_SendETH/readme.md +++ b/Languages/pt-br/20_SendETH/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/21_CallContract/readme.md b/Languages/pt-br/21_CallContract/readme.md index 3051176da..3dbf0a112 100644 --- a/Languages/pt-br/21_CallContract/readme.md +++ b/Languages/pt-br/21_CallContract/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/22_Call/readme.md b/Languages/pt-br/22_Call/readme.md index 6c164352c..44e128af2 100644 --- a/Languages/pt-br/22_Call/readme.md +++ b/Languages/pt-br/22_Call/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo código e tutorial estão disponíveis no github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo código e tutorial estão disponíveis no github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/23_Delegatecall/readme.md b/Languages/pt-br/23_Delegatecall/readme.md index c06fa2409..ea07a0aba 100644 --- a/Languages/pt-br/23_Delegatecall/readme.md +++ b/Languages/pt-br/23_Delegatecall/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/24_Create/readme.md b/Languages/pt-br/24_Create/readme.md index 903eda3cc..51c859037 100644 --- a/Languages/pt-br/24_Create/readme.md +++ b/Languages/pt-br/24_Create/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site Oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/25_Create2/readme.md b/Languages/pt-br/25_Create2/readme.md index 108b361fe..147a31d64 100644 --- a/Languages/pt-br/25_Create2/readme.md +++ b/Languages/pt-br/25_Create2/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site wtf.academy](https://wtf.academy) -Todo código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/26_DeleteContract/readme.md b/Languages/pt-br/26_DeleteContract/readme.md index e837bcba4..644d0dba5 100644 --- a/Languages/pt-br/26_DeleteContract/readme.md +++ b/Languages/pt-br/26_DeleteContract/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/27_ABIEncode/readme.md b/Languages/pt-br/27_ABIEncode/readme.md index 6d0cd4134..d99094a0e 100644 --- a/Languages/pt-br/27_ABIEncode/readme.md +++ b/Languages/pt-br/27_ABIEncode/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/28_Hash/readme.md b/Languages/pt-br/28_Hash/readme.md index 8d65a5e96..3b6517667 100644 --- a/Languages/pt-br/28_Hash/readme.md +++ b/Languages/pt-br/28_Hash/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/29_Selector/readme.md b/Languages/pt-br/29_Selector/readme.md index 86be3ce03..93f358ab7 100644 --- a/Languages/pt-br/29_Selector/readme.md +++ b/Languages/pt-br/29_Selector/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/30_TryCatch/readme.md b/Languages/pt-br/30_TryCatch/readme.md index dab558286..4b8d136aa 100644 --- a/Languages/pt-br/30_TryCatch/readme.md +++ b/Languages/pt-br/30_TryCatch/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/31_ERC20/readme.md b/Languages/pt-br/31_ERC20/readme.md index 9d749e0df..dc6274eac 100644 --- a/Languages/pt-br/31_ERC20/readme.md +++ b/Languages/pt-br/31_ERC20/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade de cientistas da WTF, onde você pode encontrar o método para se juntar ao grupo no Discord: [link](https://discord.gg/5akcruXrsk) -Todo código e tutorial estão disponíveis no meu GitHub (1024 stars para obter a certificação do curso, 2048 stars para receber o NFT do grupo): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo código e tutorial estão disponíveis no meu GitHub (1024 stars para obter a certificação do curso, 2048 stars para receber o NFT do grupo): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/32_Faucet/readme.md b/Languages/pt-br/32_Faucet/readme.md index 1d50c7ac1..84c386598 100644 --- a/Languages/pt-br/32_Faucet/readme.md +++ b/Languages/pt-br/32_Faucet/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade WTF Scientists, onde você pode encontrar informações sobre como entrar no nosso grupo do Discord: [Link](https://discord.gg/5akcruXrsk) -Todo o código e tutorial estão disponíveis no meu GitHub (obteremos um certificado de curso com 1024 estrelas e um NFT comunitário com 2048 estrelas): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no meu GitHub (obteremos um certificado de curso com 1024 estrelas e um NFT comunitário com 2048 estrelas): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/33_Airdrop/readme.md b/Languages/pt-br/33_Airdrop/readme.md index 6646efeb3..ff857e7cd 100644 --- a/Languages/pt-br/33_Airdrop/readme.md +++ b/Languages/pt-br/33_Airdrop/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade de Cientistas do WTF, com métodos para ingressar no grupo do WhatsApp: [Link](https://discord.gg/5akcruXrsk) -Todo o código e tutorial estão disponíveis no Github (Certificação do curso com 1024 estrelas, Comunidade NFT com 2048 estrelas): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no Github (Certificação do curso com 1024 estrelas, Comunidade NFT com 2048 estrelas): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/34_ERC721/readme.md b/Languages/pt-br/34_ERC721/readme.md index f5be4d88d..4989b4425 100644 --- a/Languages/pt-br/34_ERC721/readme.md +++ b/Languages/pt-br/34_ERC721/readme.md @@ -17,7 +17,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade WTF Scientists, há um método para entrar no grupo do WeChat: [link](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub (1024 estrelas para obter certificação do curso, 2048 estrelas para obter um NFT da comunidade): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub (1024 estrelas para obter certificação do curso, 2048 estrelas para obter um NFT da comunidade): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/35_DutchAuction/readme.md b/Languages/pt-br/35_DutchAuction/readme.md index 19caea202..10aa969fc 100644 --- a/Languages/pt-br/35_DutchAuction/readme.md +++ b/Languages/pt-br/35_DutchAuction/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade WTF Scientist para obter informações sobre como entrar no grupo do WhatsApp: [Link](https://discord.gg/5akcruXrsk) -Todo o código e tutorial estão disponíveis no Github (Cursos certificados após 1024 estrelas, comunidade NFT após 2048 estrelas): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial estão disponíveis no Github (Cursos certificados após 1024 estrelas, comunidade NFT após 2048 estrelas): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/36_MerkleTree/readme.md b/Languages/pt-br/36_MerkleTree/readme.md index 67c905380..172f5c62a 100644 --- a/Languages/pt-br/36_MerkleTree/readme.md +++ b/Languages/pt-br/36_MerkleTree/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade de cientistas do WTF, com instruções para acessar o grupo do Discord [aqui](https://discord.gg/5akcruXrsk). -Todo o código e tutoriais estão disponíveis no GitHub (Certificado de Curso após 1024 stars, NFT do grupo após 2048 stars): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub (Certificado de Curso após 1024 stars, NFT do grupo após 2048 stars): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/37_Signature/readme.md b/Languages/pt-br/37_Signature/readme.md index eb47aa3e2..96eff4319 100644 --- a/Languages/pt-br/37_Signature/readme.md +++ b/Languages/pt-br/37_Signature/readme.md @@ -16,7 +16,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Junte-se à comunidade WTF Academy, temos um grupo no WeChat: [link](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub (curso certificado com 1024 estrelas, comunidade NFT com 2048 estrelas): [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub (curso certificado com 1024 estrelas, comunidade NFT com 2048 estrelas): [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/38_NFTSwap/readme.md b/Languages/pt-br/38_NFTSwap/readme.md index c975cf25f..1efbc66e5 100644 --- a/Languages/pt-br/38_NFTSwap/readme.md +++ b/Languages/pt-br/38_NFTSwap/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/39_Random/Random.sol b/Languages/pt-br/39_Random/Random.sol index 69fef1cf2..0d56f9510 100644 --- a/Languages/pt-br/39_Random/Random.sol +++ b/Languages/pt-br/39_Random/Random.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; -//github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/ERC721.sol"; +//github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/ERC721.sol"; import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol"; import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol"; diff --git a/Languages/pt-br/39_Random/readme.md b/Languages/pt-br/39_Random/readme.md index 8a66a7e7b..99dca5413 100644 --- a/Languages/pt-br/39_Random/readme.md +++ b/Languages/pt-br/39_Random/readme.md @@ -17,7 +17,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/40_ERC1155/readme.md b/Languages/pt-br/40_ERC1155/readme.md index 31af11756..b358bc270 100644 --- a/Languages/pt-br/40_ERC1155/readme.md +++ b/Languages/pt-br/40_ERC1155/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -47,7 +47,7 @@ A interface `IERC1155` abstrai as funcionalidades que o `EIP1155` requer que sej // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/IERC165.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/IERC165.sol"; /** * @dev Interface padrão do ERC1155 que implementa as funcionalidades do EIP1155 @@ -169,7 +169,7 @@ Assim como o padrão `ERC721`, para evitar que os tokens sejam transferidos para // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/IERC165.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/IERC165.sol"; /** * @dev Contrato de recebimento do ERC1155, deve ser implementado para receber transferências seguras do ERC1155 @@ -242,9 +242,9 @@ pragma solidity ^0.8.0; import "./IERC1155.sol"; import "./IERC1155Receiver.sol"; import "./IERC1155MetadataURI.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/Address.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/String.sol"; -import "https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/IERC165.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/Address.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/String.sol"; +import "https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/IERC165.sol"; /** * @dev Padrão ERC1155 para múltiplos tipos de tokens diff --git a/Languages/pt-br/41_WETH/readme.md b/Languages/pt-br/41_WETH/readme.md index 5182015b6..07a3bac68 100644 --- a/Languages/pt-br/41_WETH/readme.md +++ b/Languages/pt-br/41_WETH/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/42_PaymentSplit/readme.md b/Languages/pt-br/42_PaymentSplit/readme.md index 73ca4b85b..6b96abc70 100644 --- a/Languages/pt-br/42_PaymentSplit/readme.md +++ b/Languages/pt-br/42_PaymentSplit/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Discord: [WTF Academy](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/43_TokenVesting/readme.md b/Languages/pt-br/43_TokenVesting/readme.md index 77880ab6f..5671f5722 100644 --- a/Languages/pt-br/43_TokenVesting/readme.md +++ b/Languages/pt-br/43_TokenVesting/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e os tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e os tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/44_TokenLocker/readme.md b/Languages/pt-br/44_TokenLocker/readme.md index 88782867a..44bbd5edf 100644 --- a/Languages/pt-br/44_TokenLocker/readme.md +++ b/Languages/pt-br/44_TokenLocker/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/45_Timelock/readme.md b/Languages/pt-br/45_Timelock/readme.md index 734454f5d..607e88790 100644 --- a/Languages/pt-br/45_Timelock/readme.md +++ b/Languages/pt-br/45_Timelock/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo WeChat](https://wechat.wtf.academy)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/46_ProxyContract/readme.md b/Languages/pt-br/46_ProxyContract/readme.md index c757d95af..d1593ce83 100644 --- a/Languages/pt-br/46_ProxyContract/readme.md +++ b/Languages/pt-br/46_ProxyContract/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site Oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/47_Upgrade/readme.md b/Languages/pt-br/47_Upgrade/readme.md index 0413d59e1..7b62b90f9 100644 --- a/Languages/pt-br/47_Upgrade/readme.md +++ b/Languages/pt-br/47_Upgrade/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são disponibilizados no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são disponibilizados no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/48_TransparentProxy/readme.md b/Languages/pt-br/48_TransparentProxy/readme.md index 0e1f8b106..fc69c1b65 100644 --- a/Languages/pt-br/48_TransparentProxy/readme.md +++ b/Languages/pt-br/48_TransparentProxy/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/49_UUPS/readme.md b/Languages/pt-br/49_UUPS/readme.md index 5638a41e3..1498f611e 100644 --- a/Languages/pt-br/49_UUPS/readme.md +++ b/Languages/pt-br/49_UUPS/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/50_MultisigWallet/readme.md b/Languages/pt-br/50_MultisigWallet/readme.md index 1f543f308..f50d5f56d 100644 --- a/Languages/pt-br/50_MultisigWallet/readme.md +++ b/Languages/pt-br/50_MultisigWallet/readme.md @@ -16,7 +16,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/51_ERC4626/readme.md b/Languages/pt-br/51_ERC4626/readme.md index 749b60ca5..3e70cd770 100644 --- a/Languages/pt-br/51_ERC4626/readme.md +++ b/Languages/pt-br/51_ERC4626/readme.md @@ -17,7 +17,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/52_EIP712/readme.md b/Languages/pt-br/52_EIP712/readme.md index 6b7101003..5d7127f6c 100644 --- a/Languages/pt-br/52_EIP712/readme.md +++ b/Languages/pt-br/52_EIP712/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/53_ERC20Permit/readme.md b/Languages/pt-br/53_ERC20Permit/readme.md index 865ddcdb7..346abfdc9 100644 --- a/Languages/pt-br/53_ERC20Permit/readme.md +++ b/Languages/pt-br/53_ERC20Permit/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/54_CrossChainBridge/readme.md b/Languages/pt-br/54_CrossChainBridge/readme.md index 4c60d618a..ac1b810a8 100644 --- a/Languages/pt-br/54_CrossChainBridge/readme.md +++ b/Languages/pt-br/54_CrossChainBridge/readme.md @@ -15,7 +15,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/55_MultiCall/readme.md b/Languages/pt-br/55_MultiCall/readme.md index 7ac55f7b5..aea9b7afe 100644 --- a/Languages/pt-br/55_MultiCall/readme.md +++ b/Languages/pt-br/55_MultiCall/readme.md @@ -13,7 +13,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/56_DEX/readme.md b/Languages/pt-br/56_DEX/readme.md index 5f0440f27..500eb6406 100644 --- a/Languages/pt-br/56_DEX/readme.md +++ b/Languages/pt-br/56_DEX/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/57_Flashloan/readme.md b/Languages/pt-br/57_Flashloan/readme.md index 3831e2028..a8c4f1a92 100644 --- a/Languages/pt-br/57_Flashloan/readme.md +++ b/Languages/pt-br/57_Flashloan/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Todo o código e tutoriais são open source no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são open source no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/README.md b/Languages/pt-br/README.md index 6db3ac118..79dea9db4 100644 --- a/Languages/pt-br/README.md +++ b/Languages/pt-br/README.md @@ -306,7 +306,7 @@ O roteiro será definido com base no número de estrelas deste repositório:

Os contribuidores são a base da Academia WTF

- + diff --git a/Languages/pt-br/S01_ReentrancyAttack/readme.md b/Languages/pt-br/S01_ReentrancyAttack/readme.md index 72e8165f4..601067519 100644 --- a/Languages/pt-br/S01_ReentrancyAttack/readme.md +++ b/Languages/pt-br/S01_ReentrancyAttack/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S02_SelectorClash/readme.md b/Languages/pt-br/S02_SelectorClash/readme.md index 8699c08bb..55077b763 100644 --- a/Languages/pt-br/S02_SelectorClash/readme.md +++ b/Languages/pt-br/S02_SelectorClash/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/S03_Centralization/readme.md b/Languages/pt-br/S03_Centralization/readme.md index dbbdebbde..50d477575 100644 --- a/Languages/pt-br/S03_Centralization/readme.md +++ b/Languages/pt-br/S03_Centralization/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy\_](htt Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutorial são de código aberto no github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutorial são de código aberto no github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S04_AccessControlExploit/readme.md b/Languages/pt-br/S04_AccessControlExploit/readme.md index 41d740b92..a3b12e801 100644 --- a/Languages/pt-br/S04_AccessControlExploit/readme.md +++ b/Languages/pt-br/S04_AccessControlExploit/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S05_Overflow/readme.md b/Languages/pt-br/S05_Overflow/readme.md index e5745545c..47695df88 100644 --- a/Languages/pt-br/S05_Overflow/readme.md +++ b/Languages/pt-br/S05_Overflow/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no Github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/S06_SignatureReplay/readme.md b/Languages/pt-br/S06_SignatureReplay/readme.md index 901368a01..e3cb3091f 100644 --- a/Languages/pt-br/S06_SignatureReplay/readme.md +++ b/Languages/pt-br/S06_SignatureReplay/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science)|[@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/S07_BadRandomness/readme.md b/Languages/pt-br/S07_BadRandomness/readme.md index 9e32bf3ca..02c9c01a0 100644 --- a/Languages/pt-br/S07_BadRandomness/readme.md +++ b/Languages/pt-br/S07_BadRandomness/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site Oficial da wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S08_ContractCheck/readme.md b/Languages/pt-br/S08_ContractCheck/readme.md index 08a8bf50d..fba8cc807 100644 --- a/Languages/pt-br/S08_ContractCheck/readme.md +++ b/Languages/pt-br/S08_ContractCheck/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S09_DoS/readme.md b/Languages/pt-br/S09_DoS/readme.md index fea541860..f44b47bc2 100644 --- a/Languages/pt-br/S09_DoS/readme.md +++ b/Languages/pt-br/S09_DoS/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science)|[@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Website wtf.academy](https://wtf.academy) -Todo o código e os tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e os tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S12_TxOrigin/readme.md b/Languages/pt-br/S12_TxOrigin/readme.md index 8c2b3f10e..5b051ca27 100644 --- a/Languages/pt-br/S12_TxOrigin/readme.md +++ b/Languages/pt-br/S12_TxOrigin/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site Oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S13_UncheckedCall/readme.md b/Languages/pt-br/S13_UncheckedCall/readme.md index 354ba2237..e975e0a89 100644 --- a/Languages/pt-br/S13_UncheckedCall/readme.md +++ b/Languages/pt-br/S13_UncheckedCall/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/S14_TimeManipulation/readme.md b/Languages/pt-br/S14_TimeManipulation/readme.md index bfa917b43..04285d8f8 100644 --- a/Languages/pt-br/S14_TimeManipulation/readme.md +++ b/Languages/pt-br/S14_TimeManipulation/readme.md @@ -14,7 +14,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science)|[@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo do WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/S15_OracleManipulation/readme.md b/Languages/pt-br/S15_OracleManipulation/readme.md index eb45fa6d7..634b8a50f 100644 --- a/Languages/pt-br/S15_OracleManipulation/readme.md +++ b/Languages/pt-br/S15_OracleManipulation/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) | [@WTFAcademy_](http Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo no WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Languages/pt-br/S16_NFTReentrancy/readme.md b/Languages/pt-br/S16_NFTReentrancy/readme.md index 3d41952b1..d7058b17b 100644 --- a/Languages/pt-br/S16_NFTReentrancy/readme.md +++ b/Languages/pt-br/S16_NFTReentrancy/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo do WhatsApp](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/Topics/ERC721/5_Loot/readme.md b/Languages/pt-br/Topics/ERC721/5_Loot/readme.md index 59cf8267d..7fc5c0d5c 100644 --- a/Languages/pt-br/Topics/ERC721/5_Loot/readme.md +++ b/Languages/pt-br/Topics/ERC721/5_Loot/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk) | [Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link) | [Site oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git "a/Languages/pt-br/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" "b/Languages/pt-br/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" index a78ec0d2b..0c94f49ea 100644 --- "a/Languages/pt-br/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" +++ "b/Languages/pt-br/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" @@ -10,7 +10,7 @@ Componentes principais do contrato ERC721: Este texto foi baseado no artigo de aprendizado de Solidity de A e foi aprimorado por membros da comunidade, com exemplos específicos após cada ponto de conhecimento, com 1.9K⭐ no Github. Ainda está em constante aprimoramento, então sinta-se à vontade para contribuir. Link do repositório do artigo: -https://github.com/AmazingAng/WTFSolidity +https://github.com/AmazingAng/WTF-Solidity Também foi consultado o recurso de ensino de Solidity do mestre @崔棉, link do Bilibili: diff --git a/Languages/pt-br/Topics/Tools/TOOL01_Remix/readme.md b/Languages/pt-br/Topics/Tools/TOOL01_Remix/readme.md index 14807f8e5..2ea490949 100644 --- a/Languages/pt-br/Topics/Tools/TOOL01_Remix/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL01_Remix/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade técnica do WTF no Discord, com informações sobre como entrar no grupo do WeChat: [link](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/Topics/Tools/TOOL02_Infura/readme.md b/Languages/pt-br/Topics/Tools/TOOL02_Infura/readme.md index 1ea94bda2..712441c15 100644 --- a/Languages/pt-br/Topics/Tools/TOOL02_Infura/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL02_Infura/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade técnica WTF no Discord, com informações sobre como entrar no grupo do WeChat: [link](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- `Infura` é uma infraestrutura de blockchain desenvolvida pela Consensys (empresa-mãe da carteira MetaMask) que ajuda os usuários/desenvolvedores a interagirem melhor com a blockchain Ethereum. diff --git a/Languages/pt-br/Topics/Tools/TOOL03_Ganache/readme.md b/Languages/pt-br/Topics/Tools/TOOL03_Ganache/readme.md index e88b1d394..2f2def91b 100644 --- a/Languages/pt-br/Topics/Tools/TOOL03_Ganache/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL03_Ganache/readme.md @@ -6,7 +6,7 @@ Feel free to follow me on Twitter: [@0xAA_Science](https://twitter.com/0xAA_Scie Join the WTF Tech Community Discord for information on joining the WeChat group: [Link](https://discord.gg/5akcruXrsk) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/Topics/Tools/TOOL04_Alchemy/readme.md b/Languages/pt-br/Topics/Tools/TOOL04_Alchemy/readme.md index c0ef57dbc..5da0ea8cd 100644 --- a/Languages/pt-br/Topics/Tools/TOOL04_Alchemy/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL04_Alchemy/readme.md @@ -6,7 +6,7 @@ Feel free to follow me on Twitter: [@0xAA_Science](https://twitter.com/0xAA_Scie Join the WTF Tech Community Discord, where you can find instructions on how to join the WeChat group: [link](https://discord.gg/5akcruXrsk) -All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- ## What is Alchemy diff --git a/Languages/pt-br/Topics/Tools/TOOL05_Dune/readme.md b/Languages/pt-br/Topics/Tools/TOOL05_Dune/readme.md index 8e299fa3f..f4aa60a35 100644 --- a/Languages/pt-br/Topics/Tools/TOOL05_Dune/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL05_Dune/readme.md @@ -6,7 +6,7 @@ Feel free to follow me on Twitter: [@0xAA_Science](https://twitter.com/0xAA_Scie Join the WTF Tech Community Discord, where you can find instructions to join the WeChat group: [Link](https://discord.gg/5akcruXrsk) -All the code and tutorials are open source on GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +All the code and tutorials are open source on GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- ## What is Dune? diff --git a/Languages/pt-br/Topics/Tools/TOOL06_Hardhat/readme.md b/Languages/pt-br/Topics/Tools/TOOL06_Hardhat/readme.md index ec67dd676..33042ae96 100644 --- a/Languages/pt-br/Topics/Tools/TOOL06_Hardhat/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL06_Hardhat/readme.md @@ -6,7 +6,7 @@ Siga-me no Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade técnica do WTF no Discord, com informações sobre como entrar no grupo do WeChat: [link](https://discord.gg/5akcruXrsk) -Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais estão disponíveis no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/Topics/Tools/TOOL07_Foundry/readme.md b/Languages/pt-br/Topics/Tools/TOOL07_Foundry/readme.md index 326c38322..1c0b04c44 100644 --- a/Languages/pt-br/Topics/Tools/TOOL07_Foundry/readme.md +++ b/Languages/pt-br/Topics/Tools/TOOL07_Foundry/readme.md @@ -6,7 +6,7 @@ Twitter: [@0xAA_Science](https://twitter.com/0xAA_Science) Comunidade: [Discord](https://discord.gg/5akcruXrsk)|[Grupo WeChat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[Site Oficial wtf.academy](https://wtf.academy) -Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +Todo o código e tutoriais são de código aberto no GitHub: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Languages/pt-br/Topics/Translation/Consensys2020/readme.md b/Languages/pt-br/Topics/Translation/Consensys2020/readme.md index 551c56c1f..1b5958646 100644 --- a/Languages/pt-br/Topics/Translation/Consensys2020/readme.md +++ b/Languages/pt-br/Topics/Translation/Consensys2020/readme.md @@ -6,7 +6,7 @@ **Tradução**: [0xAA](https://twitter.com/0xAA_Science) -**Github**: [WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +**Github**: [WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) > Introdução: diff --git a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md index 5b3f83d52..864dcc24b 100644 --- a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md +++ b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md @@ -20,7 +20,7 @@ sstore(0x0, 0x1) - A EVM armazena o valor `0x1` na posição de armazenamento `0x0` - Cada posição de armazenamento pode armazenar 32 bytes (ou 256 bits) -> Se isso parece estranho, recomendo ler: [Diving Into The Ethereum VM Part1 — Assembly and Bytecode](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md). +> Se isso parece estranho, recomendo ler: [Diving Into The Ethereum VM Part1 — Assembly and Bytecode](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md). Neste artigo, começaremos a explorar como o Solidity representa tipos de dados de comprimento fixo em blocos de 32 bytes, como estruturas e arrays. Também entenderemos como otimizar o armazenamento e como a otimização pode falhar. diff --git a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md index f3748f51d..fed60e7c2 100644 --- a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md +++ b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md @@ -16,7 +16,7 @@ Na parte anterior desta série, vimos como tipos simples de tamanho fixo são re Variáveis de armazenamento de tamanho fixo são colocadas uma após a outra no armazenamento, empacotadas o mais próximo possível em blocos de 32 bytes. -(Se esta parte parece não familiar, por favor, leia [Aprofundando na Máquina Virtual Ethereum Parte 2 — A Representação de Tipos de Dados de Comprimento Fixo](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md)) +(Se esta parte parece não familiar, por favor, leia [Aprofundando na Máquina Virtual Ethereum Parte 2 — A Representação de Tipos de Dados de Comprimento Fixo](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md)) Neste artigo, vamos explorar como o Solidity suporta estruturas de dados mais complexas. Arrays e mapeamentos no Solidity podem parecer familiares na superfície, mas a maneira como são implementados lhes confere características de desempenho completamente diferentes. diff --git a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md index 9fecf9de8..c022f5bb8 100644 --- a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md +++ b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md @@ -14,9 +14,9 @@ Uma transação para um contrato inteligente é como uma solicitação HTTP para Se você não está familiarizado com a montagem EVM e a representação de dados da Solidity, consulte os artigos anteriores desta série para mais informações: -* [Aprofundando na Máquina Virtual Ethereum Parte 1 — Montagem e Bytecode](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) -* [Aprofundando na Máquina Virtual Ethereum Parte 2 — Representação de Tipos de Dados de Comprimento Fixo](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) -* [Aprofundando na Máquina Virtual Ethereum Parte 3 — Representação de Tipos de Dados Dinâmicos](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 1 — Montagem e Bytecode](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 2 — Representação de Tipos de Dados de Comprimento Fixo](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 3 — Representação de Tipos de Dados Dinâmicos](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) ## Transação de Contrato diff --git a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md index 0e1707861..f9cf47270 100644 --- a/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md +++ b/Languages/pt-br/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md @@ -16,11 +16,11 @@ Ao entender como os eventos são implementados usando instruções de nível mai Se você não está familiarizado com o conteúdo anterior, por favor, leia os artigos anteriores: -* [Aprofundando na Máquina Virtual Ethereum Parte 1 - Assembly e Bytecode](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) -* [Aprofundando na Máquina Virtual Ethereum Parte 2 - Representação de Tipos de Dados de Comprimento Fixo](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) -* [Aprofundando na Máquina Virtual Ethereum Parte 3 - Representação de Tipos de Dados Dinâmicos](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) -* [Aprofundando na Máquina Virtual Ethereum Parte 4 - Chamadas Externas de Métodos de Contratos Inteligentes](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md) -* [Aprofundando na Máquina Virtual Ethereum Parte 5 - Processo de Criação de Contratos Inteligentes](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 1 - Assembly e Bytecode](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 2 - Representação de Tipos de Dados de Comprimento Fixo](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 3 - Representação de Tipos de Dados Dinâmicos](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 4 - Chamadas Externas de Métodos de Contratos Inteligentes](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md) +* [Aprofundando na Máquina Virtual Ethereum Parte 5 - Processo de Criação de Contratos Inteligentes](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md) ## Eventos Solidity diff --git a/README.md b/README.md index 46ff9d74f..e2d0269c0 100644 --- a/README.md +++ b/README.md @@ -21,164 +21,164 @@ ## 入门 -**第1讲:三行代码HelloWeb3**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/01_HelloWeb3) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/01_HelloWeb3/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/WfM30QbSWB2_-9t98g05unTmb_2ZXucOAZMPDa7MX48) +**第1讲:三行代码HelloWeb3**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/01_HelloWeb3) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/01_HelloWeb3/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/WfM30QbSWB2_-9t98g05unTmb_2ZXucOAZMPDa7MX48) -**第2讲:值类型**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/02_ValueTypes) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/02_ValueTypes/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/XHZVpWe8_sHBHgg6kkrNH2nAWYmQgoB7fKW8hoXnoyI) +**第2讲:值类型**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/02_ValueTypes) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/02_ValueTypes/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/XHZVpWe8_sHBHgg6kkrNH2nAWYmQgoB7fKW8hoXnoyI) -**第3讲:函数 (external/internal/public/private, pure/view, payable)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/03_Function) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/03_Function/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/FWI887JBea4VpNiMlJ2ICyJ5aWUREReGo9Bz0X8iEVc) +**第3讲:函数 (external/internal/public/private, pure/view, payable)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/03_Function) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/03_Function/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/FWI887JBea4VpNiMlJ2ICyJ5aWUREReGo9Bz0X8iEVc) -**第4讲:函数输出(returns/return)**:[代码](https://github.com/AmazingAng/WTFSolidity/tree/main/04_Return) | [文章](https://github.com/AmazingAng/WTFSolidity/tree/main/04_Return/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/FIGf9tF7wiBlLnQGXfEjVkJ0efzKBNltJS1fRxPKYTk) +**第4讲:函数输出(returns/return)**:[代码](https://github.com/AmazingAng/WTF-Solidity/tree/main/04_Return) | [文章](https://github.com/AmazingAng/WTF-Solidity/tree/main/04_Return/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/FIGf9tF7wiBlLnQGXfEjVkJ0efzKBNltJS1fRxPKYTk) -**第5讲:变量作用域和数据存储 (storage/memory/calldata)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/05_DataStorage) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/05_DataStorage/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/w5zJWGwElN2ei4tgtuJbTTpKwrGhb-igPY7wTVKRCgY) +**第5讲:变量作用域和数据存储 (storage/memory/calldata)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/05_DataStorage) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/05_DataStorage/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/w5zJWGwElN2ei4tgtuJbTTpKwrGhb-igPY7wTVKRCgY) -**第6讲:数组(array)和结构体(struct)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/06_ArrayAndStruct) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/06_ArrayAndStruct/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/zNxhHPjK8kjx_bSaauDUcEr9rX3hroalEzvYDatshvw) +**第6讲:数组(array)和结构体(struct)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/06_ArrayAndStruct) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/06_ArrayAndStruct/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/zNxhHPjK8kjx_bSaauDUcEr9rX3hroalEzvYDatshvw) -**第7讲:映射(mapping)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/07_Mapping) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/07_Mapping/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/iHYV1C-KUBn8JoJRirhgMmcSNgmpaL4cv4trdOoZJB0) +**第7讲:映射(mapping)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/07_Mapping) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/07_Mapping/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/iHYV1C-KUBn8JoJRirhgMmcSNgmpaL4cv4trdOoZJB0) -**第8讲:变量初始值**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/08_InitialValue) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/08_InitialValue/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/WoWQ8s66meku9zPFsHGsXs4m7T6PauZPmfSak76qDkI) +**第8讲:变量初始值**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/08_InitialValue) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/08_InitialValue/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/WoWQ8s66meku9zPFsHGsXs4m7T6PauZPmfSak76qDkI) -**第9讲:常量(constant/immutable)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/09_Constant) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/09_Constant/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/p9xMZTxCBLSKBqqP2dlyxHceev1V7Blmo5Wf-OY3R48) +**第9讲:常量(constant/immutable)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/09_Constant) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/09_Constant/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/p9xMZTxCBLSKBqqP2dlyxHceev1V7Blmo5Wf-OY3R48) -**第10讲:控制流和插入排序**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/10_InsertionSort) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/10_InsertionSort/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/8Q0vr-dyHfiIXS9KnivaQDxpM9cIQTNWoC68TNvCZ9c) +**第10讲:控制流和插入排序**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/10_InsertionSort) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/10_InsertionSort/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/8Q0vr-dyHfiIXS9KnivaQDxpM9cIQTNWoC68TNvCZ9c) -**第11讲:构造函数(constructor)和修饰器(modifier)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/11_Modifier) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/11_Modifier/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/X8HHTaD8hqkfshhugHHp7ho3EaLjuviya_g1l3MsF_U) +**第11讲:构造函数(constructor)和修饰器(modifier)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/11_Modifier) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/11_Modifier/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/X8HHTaD8hqkfshhugHHp7ho3EaLjuviya_g1l3MsF_U) -**第12讲:事件(events)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/12_Event) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/12_Event/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/nGSCuFbPHMo8mL1ErZMUwOZG_OUECzIWEsGhX0a5eOw) +**第12讲:事件(events)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/12_Event) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/12_Event/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/nGSCuFbPHMo8mL1ErZMUwOZG_OUECzIWEsGhX0a5eOw) -**第13讲:继承**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/13_Inheritance) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/13_Inheritance/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/HTCOqhsxTXs42NNv3wfzNRQMN6qGHGYY9iaTJhhKBb4) +**第13讲:继承**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/13_Inheritance) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/13_Inheritance/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/HTCOqhsxTXs42NNv3wfzNRQMN6qGHGYY9iaTJhhKBb4) -**第14讲:抽象合约(abstract)和接口(interface)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/14_Interface) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/14_Interface/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/KKnoJJfHG69Pg3GQda_B454z_nJ1tesyBd4uOvh1WNM) +**第14讲:抽象合约(abstract)和接口(interface)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/14_Interface) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/14_Interface/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/KKnoJJfHG69Pg3GQda_B454z_nJ1tesyBd4uOvh1WNM) -**第15讲:异常(errors)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/15_Errors) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/15_Errors/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/XhhLu7PV1cAhOp9_m-dk9OoTj7offC7DkYYgsV3e31I) +**第15讲:异常(errors)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/15_Errors) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/15_Errors/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/XhhLu7PV1cAhOp9_m-dk9OoTj7offC7DkYYgsV3e31I) ## 进阶 -**第16讲:函数重载**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/16_Overloading) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/16_Overloading/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/ADt6g13gwqt42-9_nBxMunSkVHeft6-yb1mp0XH-4f8) +**第16讲:函数重载**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/16_Overloading) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/16_Overloading/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/ADt6g13gwqt42-9_nBxMunSkVHeft6-yb1mp0XH-4f8) -**第17讲:库合约(library)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/17_Library) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/17_Library/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/5nhKjOI40nCT0nCk6iO2TXry3xi09F1Ts4e5lMBlZ1w) +**第17讲:库合约(library)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/17_Library) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/17_Library/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/5nhKjOI40nCT0nCk6iO2TXry3xi09F1Ts4e5lMBlZ1w) -**第18讲:Import**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/18_Import) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/18_Import/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/f43II54h19ucfkNDarEdDFGts0lBkJCyrZ57U5Njk3A) +**第18讲:Import**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/18_Import) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/18_Import/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/f43II54h19ucfkNDarEdDFGts0lBkJCyrZ57U5Njk3A) -**第19讲:接收ETH(fallback/receive)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/19_Fallback) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/19_Fallback/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/EroVZqHW1lfJFai3umiu4tb9r1ZbDVPOYC-puaZklAw) +**第19讲:接收ETH(fallback/receive)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/19_Fallback) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/19_Fallback/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/EroVZqHW1lfJFai3umiu4tb9r1ZbDVPOYC-puaZklAw) -**第20讲:发送ETH(transfer/send/call)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/20_SendETH) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/20_SendETH/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/NTNHraVAn2OWUKXpr0byphlxl8ytj7fRUAaOaLYfEtA) +**第20讲:发送ETH(transfer/send/call)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/20_SendETH) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/20_SendETH/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/NTNHraVAn2OWUKXpr0byphlxl8ytj7fRUAaOaLYfEtA) -**第21讲:调用其他合约**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/21_CallContract) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/21_CallContract/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/fI48BkuT7wWzRaVKkn1VWxnfLpkUEvIZIJcO5iOIzbk) +**第21讲:调用其他合约**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/21_CallContract) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/21_CallContract/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/fI48BkuT7wWzRaVKkn1VWxnfLpkUEvIZIJcO5iOIzbk) -**第22讲:Call**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/22_Call) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/22_Call/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/vMJ0AHl3b_A5Lyey5lLdFhzkGT9wJ-D6vJpZpH0vlls) +**第22讲:Call**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/22_Call) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/22_Call/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/vMJ0AHl3b_A5Lyey5lLdFhzkGT9wJ-D6vJpZpH0vlls) -**第23讲:Delegatecall**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/23_Delegatecall) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/23_Delegatecall/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/hW9iLCOUUqsRCCZbzGS3x5m0wXfJBhlYQWLq93rplcU) +**第23讲:Delegatecall**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/23_Delegatecall) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/23_Delegatecall/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/hW9iLCOUUqsRCCZbzGS3x5m0wXfJBhlYQWLq93rplcU) -**第24讲:在合约中创建新合约**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/24_Create) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/24_Create/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/kojopp2CgDK3ehHxXc_2fkZe87uM0O5OmsEU6y83eJs) +**第24讲:在合约中创建新合约**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/24_Create) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/24_Create/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/kojopp2CgDK3ehHxXc_2fkZe87uM0O5OmsEU6y83eJs) -**第25讲:Create2**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/25_Create2) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/25_Create2/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/Dz7kd6-RrcNvdHnptWKzsW9AcIOSA8PoVsMsQh8nlEM) +**第25讲:Create2**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/25_Create2) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/25_Create2/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/Dz7kd6-RrcNvdHnptWKzsW9AcIOSA8PoVsMsQh8nlEM) -**第26讲:删除合约**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/26_DeleteContract) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/26_DeleteContract/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/080JeNq8X_HfciftWa-ed0S6Wb5YFuIb5GPVISu1gIc) +**第26讲:删除合约**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/26_DeleteContract) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/26_DeleteContract/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/080JeNq8X_HfciftWa-ed0S6Wb5YFuIb5GPVISu1gIc) -**第27讲:ABI编码解码**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/27_ABIEncode) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/27_ABIEncode/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/jXJnvwkoQzvJaqVIxagxneSZim6Qxm-StuNNxLuKuw8) +**第27讲:ABI编码解码**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/27_ABIEncode) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/27_ABIEncode/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/jXJnvwkoQzvJaqVIxagxneSZim6Qxm-StuNNxLuKuw8) -**第28讲:Hash**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/28_Hash) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/28_Hash/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/csiRSVEpEwj7f0OOtSpm1KdGHRqD4fNogmiahHx60nE) +**第28讲:Hash**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/28_Hash) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/28_Hash/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/csiRSVEpEwj7f0OOtSpm1KdGHRqD4fNogmiahHx60nE) -**第29讲:函数选择器(selector)**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/29_Selector) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/29_Selector/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/_Q-N_VGUV8F4QZbggR8Swv16LStBdfkeQb8qwSfoNTw) +**第29讲:函数选择器(selector)**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/29_Selector) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/29_Selector/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/_Q-N_VGUV8F4QZbggR8Swv16LStBdfkeQb8qwSfoNTw) -**第30讲:Try-Catch**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/30_TryCatch) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/30_TryCatch/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/asj1-eKf6YdIoI9oMSLI3VECwqCzRHwaqIS01ALQ7qo) +**第30讲:Try-Catch**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/30_TryCatch) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/30_TryCatch/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/asj1-eKf6YdIoI9oMSLI3VECwqCzRHwaqIS01ALQ7qo) ## 应用 -**第31讲:ERC20**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/31_ERC20) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/31_ERC20/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/-LNwtaA4Eb0e1GZEsaZEXs09Nm9l57HVvoeRUfxVZNg) +**第31讲:ERC20**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/31_ERC20) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/31_ERC20/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/-LNwtaA4Eb0e1GZEsaZEXs09Nm9l57HVvoeRUfxVZNg) -**第32讲:代币水龙头**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/32_Faucet) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/32_Faucet/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/tr1pm32UYMO96gOsgQsU5beAAcD3rkHtaBYg9MBzCz0) +**第32讲:代币水龙头**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/32_Faucet) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/32_Faucet/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/tr1pm32UYMO96gOsgQsU5beAAcD3rkHtaBYg9MBzCz0) -**第33讲:空投合约**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/33_Airdrop) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/33_Airdrop/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/pRoRGe7V4djkWX-_ZkkrdzKE8RSO5ivoDktCacE-4R8) +**第33讲:空投合约**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/33_Airdrop) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/33_Airdrop/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/pRoRGe7V4djkWX-_ZkkrdzKE8RSO5ivoDktCacE-4R8) -**第34讲:ERC721**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/7BbjaN4Zz1ycAlfvKARlijMusL0RV3SOAltSx0nJed4) +**第34讲:ERC721**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/7BbjaN4Zz1ycAlfvKARlijMusL0RV3SOAltSx0nJed4) -**第35讲:荷兰拍卖**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/35_DutchAuction) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/35_DutchAuction/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/6v7-GIVSQIG5mNUIMP8VhXt6AS1Iq24kMt2DOh196Fc) +**第35讲:荷兰拍卖**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/35_DutchAuction) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/35_DutchAuction/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/6v7-GIVSQIG5mNUIMP8VhXt6AS1Iq24kMt2DOh196Fc) -**第36讲:Merkle Tree**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/36_MerkleTree) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/36_MerkleTree/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/kPBE6QzZeplo72UvGeJOcCEpZZMu9qVMmEu4KDZHzsM) +**第36讲:Merkle Tree**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/36_MerkleTree) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/36_MerkleTree/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/kPBE6QzZeplo72UvGeJOcCEpZZMu9qVMmEu4KDZHzsM) -**第37讲:数字签名**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/pVjNv3xzVoOB1AtsXNsZ01b6FZy-iVbdNZsv0qVQ7Qo) +**第37讲:数字签名**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/pVjNv3xzVoOB1AtsXNsZ01b6FZy-iVbdNZsv0qVQ7Qo) -**第38讲:NFT交易所**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/38_NFTSwap) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/38_NFTSwap/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/lHIwfCzjKYUN_1V7PQCo1FPY-t_WzbV6i7cQjge1ANc) +**第38讲:NFT交易所**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/38_NFTSwap) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/38_NFTSwap/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/lHIwfCzjKYUN_1V7PQCo1FPY-t_WzbV6i7cQjge1ANc) -**第39讲:随机数**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/39_Random) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/39_Random/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/JYXCXDLhHp8wxXPfClQKqW_5g1QhgVp44HFk9WtC6tk) +**第39讲:随机数**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/39_Random) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/39_Random/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/JYXCXDLhHp8wxXPfClQKqW_5g1QhgVp44HFk9WtC6tk) -**第40讲:ERC1155**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/40_ERC1155) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/40_ERC1155/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/dGmLVDYjGXCKR5kPvQspMj6f0qYnJbCUshy9hlzld0c) +**第40讲:ERC1155**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/40_ERC1155) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/40_ERC1155/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/dGmLVDYjGXCKR5kPvQspMj6f0qYnJbCUshy9hlzld0c) -**第41讲:WETH**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/41_WETH) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/41_WETH/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/2Ma5ZRoAy54_aJXZw52xkItKykmQPpqsdFjVqEqB89k) +**第41讲:WETH**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/41_WETH) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/41_WETH/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/2Ma5ZRoAy54_aJXZw52xkItKykmQPpqsdFjVqEqB89k) -**第42讲:分账**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/42_PaymentSplit) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/42_PaymentSplit/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/j373uOA3btcD9xRWT_qaww4CSR-iaoqU6EClv1nXWsM) +**第42讲:分账**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/42_PaymentSplit) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/42_PaymentSplit/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/j373uOA3btcD9xRWT_qaww4CSR-iaoqU6EClv1nXWsM) -**第43讲:线性释放**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/43_TokenVesting) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/43_TokenVesting/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/j-so8JO_lcYye4N9S03v_VIljQ9rg8nGbmZrSbzak8A) +**第43讲:线性释放**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/43_TokenVesting) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/43_TokenVesting/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/j-so8JO_lcYye4N9S03v_VIljQ9rg8nGbmZrSbzak8A) -**第44讲:代币锁**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/44_TokenLocker) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/44_TokenLocker/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/WJCju6bbg-r1Cf97f1abYdNUiO4ArthIAGqs1zZZHi0) +**第44讲:代币锁**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/44_TokenLocker) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/44_TokenLocker/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/WJCju6bbg-r1Cf97f1abYdNUiO4ArthIAGqs1zZZHi0) -**第45讲:时间锁**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/45_Timelock) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/45_Timelock/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/o8nvAnljLf7l4AGNRSdec17Knp3PsKTWyTXVSx1olM4) +**第45讲:时间锁**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/45_Timelock) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/45_Timelock/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/o8nvAnljLf7l4AGNRSdec17Knp3PsKTWyTXVSx1olM4) ## Degen -**第46讲:代理合约**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/46_ProxyContract) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/46_ProxyContract/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/v4ov2J0xjtMnVflsLpbbh7S55fiyPljttbDh3Xhiqis) +**第46讲:代理合约**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/46_ProxyContract) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/46_ProxyContract/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/v4ov2J0xjtMnVflsLpbbh7S55fiyPljttbDh3Xhiqis) -**第47讲:可升级合约**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/47_Upgrade) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/47_Upgrade/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/p1WBSV9yQ5Zfcui8kaWEoVq71rirv7-I4VqLFAhz4J0) +**第47讲:可升级合约**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/47_Upgrade) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/47_Upgrade/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/p1WBSV9yQ5Zfcui8kaWEoVq71rirv7-I4VqLFAhz4J0) -**第48讲:透明代理**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/48_TransparentProxy) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/48_TransparentProxy/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/DmqC4Nyfyo2-pF5x5w9SFYqBr2DHo43AH6IfnePXcH8) +**第48讲:透明代理**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/48_TransparentProxy) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/48_TransparentProxy/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/DmqC4Nyfyo2-pF5x5w9SFYqBr2DHo43AH6IfnePXcH8) -**第49讲:通用可升级代理UUPS**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/49_UUPS) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/49_UUPS/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/KPwXlRDdL2XfBWi7Z9uk8eccbWKG3hffC-RjTgiTLi8) +**第49讲:通用可升级代理UUPS**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/49_UUPS) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/49_UUPS/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/KPwXlRDdL2XfBWi7Z9uk8eccbWKG3hffC-RjTgiTLi8) -**第50讲:多签钱包**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/50_MultisigWallet) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/50_MultisigWallet/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/DeediQG7FbXhCK68f2iPUoQkpN-gLdiuKhDV99gHpgg) +**第50讲:多签钱包**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/50_MultisigWallet) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/50_MultisigWallet/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/DeediQG7FbXhCK68f2iPUoQkpN-gLdiuKhDV99gHpgg) -**第51讲:ERC4626 代币化金库**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/51_ERC4626) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/51_ERC4626/readme.md) +**第51讲:ERC4626 代币化金库**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/51_ERC4626) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/51_ERC4626/readme.md) -**第52讲:EIP712 类型化数据签名**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/52_EIP712) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/52_EIP712/readme.md) +**第52讲:EIP712 类型化数据签名**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/52_EIP712) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/52_EIP712/readme.md) -**第53讲:ERC2612 ERC20Permit**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/53_ERC20Permit) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/53_ERC20Permit/readme.md) +**第53讲:ERC2612 ERC20Permit**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/53_ERC20Permit) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/53_ERC20Permit/readme.md) -**第54讲:跨链桥**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/54_CrossChainBridge) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/54_CrossChainBridge/readme.md) +**第54讲:跨链桥**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/54_CrossChainBridge) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/54_CrossChainBridge/readme.md) -**第55讲:多重调用**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/55_MultiCall) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/55_MultiCall/readme.md) +**第55讲:多重调用**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/55_MultiCall) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/55_MultiCall/readme.md) -**第56讲:去中心化交易所**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/56_DEX) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/56_DEX/readme.md) +**第56讲:去中心化交易所**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/56_DEX) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/56_DEX/readme.md) -**第57讲:闪电贷**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/57_Flashloan) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/57_Flashloan/readme.md) +**第57讲:闪电贷**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/57_Flashloan) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/57_Flashloan/readme.md) ## 合约安全 -**S01:重入攻击**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S01_ReentrancyAttack) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S01_ReentrancyAttack/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/SrNu6LLzwH7qlTVKbJY6lkTpmadGqUXw0L8iUMzfMxo) +**S01:重入攻击**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S01_ReentrancyAttack) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S01_ReentrancyAttack/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/SrNu6LLzwH7qlTVKbJY6lkTpmadGqUXw0L8iUMzfMxo) -**S02:选择器碰撞**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S02_SelectorClash) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S02_SelectorClash/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/5rwcsBZzphdlKZj4MoIpn8aqwQ1MzQ8qy50ZEGNU_HU) +**S02:选择器碰撞**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S02_SelectorClash) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S02_SelectorClash/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/5rwcsBZzphdlKZj4MoIpn8aqwQ1MzQ8qy50ZEGNU_HU) -**S03:中心化**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S03_Centralization) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S03_Centralization/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/0MlTKdaSGD9-A9WIbgbtrDlAazg-8DLpTJv7l8vsq3c) +**S03:中心化**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S03_Centralization) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S03_Centralization/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/0MlTKdaSGD9-A9WIbgbtrDlAazg-8DLpTJv7l8vsq3c) -**S04:权限管理**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S04_AccessControlExploit) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S04_AccessControlExploit/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/lWnJZJYygZtqe0GFwH6bJg80t2NaSCfdRXCh0EDHxqs) +**S04:权限管理**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S04_AccessControlExploit) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S04_AccessControlExploit/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/lWnJZJYygZtqe0GFwH6bJg80t2NaSCfdRXCh0EDHxqs) -**S05:整型溢出**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S05_Overflow) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S05_Overflow/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/FCRPHFa5JkCuRVSIrQQubuDPwrAfZctZnjWTaqZpcRU) +**S05:整型溢出**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S05_Overflow) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S05_Overflow/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/FCRPHFa5JkCuRVSIrQQubuDPwrAfZctZnjWTaqZpcRU) -**S06:签名重放**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S06_SignatureReplay) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S06_SignatureReplay/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/hHQO1EGe0vapiejyIrP8bcuPm50Djlse2MareeHLDwE) +**S06:签名重放**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S06_SignatureReplay) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S06_SignatureReplay/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/hHQO1EGe0vapiejyIrP8bcuPm50Djlse2MareeHLDwE) -**S07:坏随机数**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S07_BadRandomness) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S07_BadRandomness/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/5NQbE-url7o8OV5UtpTPEkMEVwTZqdDIRYDMiG1bECw) +**S07:坏随机数**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S07_BadRandomness) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S07_BadRandomness/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/5NQbE-url7o8OV5UtpTPEkMEVwTZqdDIRYDMiG1bECw) -**S08:绕过合约检查**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S08_ContractCheck) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S08_ContractCheck/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/EbA6ZmPleFPtMgdVqRf65Ib8Hab_gIgt5Q3c0INy9mg) +**S08:绕过合约检查**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S08_ContractCheck) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S08_ContractCheck/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/EbA6ZmPleFPtMgdVqRf65Ib8Hab_gIgt5Q3c0INy9mg) -**S09:拒绝服务漏洞**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S09_DoS) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S09_DoS/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/tiae-8Z9YQurL4RzCbcGgBonIGqIDp_KR0uKVy5101U) +**S09:拒绝服务漏洞**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S09_DoS) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S09_DoS/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/tiae-8Z9YQurL4RzCbcGgBonIGqIDp_KR0uKVy5101U) -**S10:貔貅 Honeypot**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S10_Honeypot) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S10_Honeypot/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/tJmYTJbHlYX0Ah0k6m9gd4NpbKpBxsoU8fstLz3PqJY) +**S10:貔貅 Honeypot**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S10_Honeypot) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S10_Honeypot/readme.md) | [Mirror](https://mirror.xyz/wtfacademy.eth/tJmYTJbHlYX0Ah0k6m9gd4NpbKpBxsoU8fstLz3PqJY) -**S11:抢先交易**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S11_Frontrun) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S11_Frontrun/readme.md) +**S11:抢先交易**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S11_Frontrun) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S11_Frontrun/readme.md) -**S12:tx.origin钓鱼**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S12_TxOrigin) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S12_TxOrigin/readme.md) +**S12:tx.origin钓鱼**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S12_TxOrigin) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S12_TxOrigin/readme.md) -**S13:未检查的低级调用**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S13_UncheckedCall) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S13_UncheckedCall/readme.md) +**S13:未检查的低级调用**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S13_UncheckedCall) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S13_UncheckedCall/readme.md) -**S14:操纵区块时间**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S14_TimeManipulation) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S14_TimeManipulation/readme.md) +**S14:操纵区块时间**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S14_TimeManipulation) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S14_TimeManipulation/readme.md) -**S15:操纵预言机**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S15_OracleManipulation) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S15_OracleManipulation/readme.md) +**S15:操纵预言机**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S15_OracleManipulation) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S15_OracleManipulation/readme.md) -**S16:NFT重入攻击**:[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/S16_NFTReentrancy) | [文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S16_NFTReentrancy/readme.md) +**S16:NFT重入攻击**:[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/S16_NFTReentrancy) | [文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S16_NFTReentrancy/readme.md) -**S17:“跨服”重入攻击**:[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/S17_CrossReentrancy/readme.md) +**S17:“跨服”重入攻击**:[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/S17_CrossReentrancy/readme.md) ## EVM 操作码 @@ -257,19 +257,19 @@ ## 主题 ### 开发工具 -**第1讲:Remix, 最易用的Solidity IDE** 【[代码](https://github.com/AmazingAng/WTFSolidity/tree/main/Topics/Tools/TOOL01_Remix)】 【[文章](https://mirror.xyz/wtfacademy.eth/dSYXG9zF_Vclw58Bgcvsv6HSA0SU6pmBoYLFwLAgVbU)】 +**第1讲:Remix, 最易用的Solidity IDE** 【[代码](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Tools/TOOL01_Remix)】 【[文章](https://mirror.xyz/wtfacademy.eth/dSYXG9zF_Vclw58Bgcvsv6HSA0SU6pmBoYLFwLAgVbU)】 -**第2讲:Infura, 连接链下与链上的桥梁** 【[文章](https://github.com/AmazingAng/WTFSolidity/tree/main/Topics/Tools/TOOL02_Infura/readme.md)】 +**第2讲:Infura, 连接链下与链上的桥梁** 【[文章](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Tools/TOOL02_Infura/readme.md)】 -**第3讲:Ganache,搭建本地测试网络** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL03_Ganache/readme.md)】 +**第3讲:Ganache,搭建本地测试网络** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL03_Ganache/readme.md)】 -**第4讲:Alchemy, 区块链API和节点基础设施** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL04_Alchemy/readme.md)】 +**第4讲:Alchemy, 区块链API和节点基础设施** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL04_Alchemy/readme.md)】 -**第5讲:Dune,使用Dune可视化区块链数据** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL05_Dune/readme.md)】 +**第5讲:Dune,使用Dune可视化区块链数据** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL05_Dune/readme.md)】 -**第6讲:Hardhat,以太坊开发环境** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL06_Hardhat/readme.md)】 +**第6讲:Hardhat,以太坊开发环境** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL06_Hardhat/readme.md)】 -**第7讲:Foundry,以Solidity为中心的开发工具包** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL07_Foundry)】【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL07_Foundry/readme.md)】 +**第7讲:Foundry,以Solidity为中心的开发工具包** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL07_Foundry)】【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL07_Foundry/readme.md)】 ### 链上威胁分析 @@ -289,28 +289,28 @@ ### NFT -**第1讲:ERC721库:Address, Strings, Context** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/PAsIFLAmEoMufZsXlX0NWsVF8DHpHz3OrYlooosy9Ho)】 +**第1讲:ERC721库:Address, Strings, Context** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/PAsIFLAmEoMufZsXlX0NWsVF8DHpHz3OrYlooosy9Ho)】 -**第2讲:ERC721相关接口** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/4mPkMgHViRjx8OM7TAI-M-2oMfRle36ULzqlpC6S7IQ)】 +**第2讲:ERC721相关接口** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/4mPkMgHViRjx8OM7TAI-M-2oMfRle36ULzqlpC6S7IQ)】 -**第3讲:ERC721主合约** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721/ERC721.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-evZa3S--yw9vVcXfhn9I3UiNRaqWOTLG0eZFFgbcT0)】 +**第3讲:ERC721主合约** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721/ERC721.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-evZa3S--yw9vVcXfhn9I3UiNRaqWOTLG0eZFFgbcT0)】 -**第4讲:BAYC主合约和严重漏洞**【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721/BAYC.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/_buBOQflWtHDpLbg18Fp8zLe8AmLiPka2y-UhppK_u0)】 +**第4讲:BAYC主合约和严重漏洞**【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721/BAYC.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/_buBOQflWtHDpLbg18Fp8zLe8AmLiPka2y-UhppK_u0)】 -**第5讲:Loot**【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721/5_Loot/Loot.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-Bc_vjP9EX-wg6chtUFAz0zm5v-jaIekMlOlqHJ_IhE)】 +**第5讲:Loot**【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721/5_Loot/Loot.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-Bc_vjP9EX-wg6chtUFAz0zm5v-jaIekMlOlqHJ_IhE)】 ### 翻译 -**第1讲:Metamask项目方给Solidity程序员的16个安全建议**【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/Consensys2020)】 【[Mirror](https://mirror.xyz/wtfacademy.eth/ygaDE0QQwn3lfI-AVaw0ZMqHQtWCdzo-XV450j2camc)】 +**第1讲:Metamask项目方给Solidity程序员的16个安全建议**【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/Consensys2020)】 【[Mirror](https://mirror.xyz/wtfacademy.eth/ygaDE0QQwn3lfI-AVaw0ZMqHQtWCdzo-XV450j2camc)】 -**第2讲:深入EVM**【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017)】 +**第2讲:深入EVM**【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017)】 ## WTF贡献者

贡献者是WTF学院的基石

- +
diff --git a/S01_ReentrancyAttack/readme.md b/S01_ReentrancyAttack/readme.md index fbe375655..3f688cbc7 100644 --- a/S01_ReentrancyAttack/readme.md +++ b/S01_ReentrancyAttack/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -99,7 +99,7 @@ contract Bank { ### 攻击合约 -重入攻击的一个攻击点就是合约转账`ETH`的地方:转账`ETH`的目标地址如果是合约,会触发对方合约的`fallback`(回退)函数,从而造成循环调用的可能。如果你不了解回退函数,可以阅读[WTF Solidity 极简教程第 19 讲:接收 ETH](https://github.com/AmazingAng/WTFSolidity/blob/main/19_Fallback/readme.md)。`Bank`合约在`withdraw()`函数中存在`ETH`转账: +重入攻击的一个攻击点就是合约转账`ETH`的地方:转账`ETH`的目标地址如果是合约,会触发对方合约的`fallback`(回退)函数,从而造成循环调用的可能。如果你不了解回退函数,可以阅读[WTF Solidity 极简教程第 19 讲:接收 ETH](https://github.com/AmazingAng/WTF-Solidity/blob/main/19_Fallback/readme.md)。`Bank`合约在`withdraw()`函数中存在`ETH`转账: ``` (bool success, ) = msg.sender.call{value: balance}(""); @@ -180,7 +180,7 @@ function withdraw() external { ### 重入锁 -重入锁是一种防止重入函数的修饰器(modifier),它包含一个默认为`0`的状态变量`_status`。被`nonReentrant`重入锁修饰的函数,在第一次调用时会检查`_status`是否为`0`,紧接着将`_status`的值改为`1`,调用结束后才会再改为`0`。这样,当攻击合约在调用结束前第二次的调用就会报错,重入攻击失败。如果你不了解修饰器,可以阅读[WTF Solidity 极简教程第 11 讲:修饰器](https://github.com/AmazingAng/WTFSolidity/blob/main/11_Modifier/readme.md)。 +重入锁是一种防止重入函数的修饰器(modifier),它包含一个默认为`0`的状态变量`_status`。被`nonReentrant`重入锁修饰的函数,在第一次调用时会检查`_status`是否为`0`,紧接着将`_status`的值改为`1`,调用结束后才会再改为`0`。这样,当攻击合约在调用结束前第二次的调用就会报错,重入攻击失败。如果你不了解修饰器,可以阅读[WTF Solidity 极简教程第 11 讲:修饰器](https://github.com/AmazingAng/WTF-Solidity/blob/main/11_Modifier/readme.md)。 ```solidity uint256 private _status; // 重入锁 diff --git a/S02_SelectorClash/readme.md b/S02_SelectorClash/readme.md index d8d9e0f2f..d4ae3db8b 100644 --- a/S02_SelectorClash/readme.md +++ b/S02_SelectorClash/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -23,7 +23,7 @@ tags: ## 选择器碰撞 -以太坊智能合约中,函数选择器是函数签名 `"()"` 的哈希值的前`4`个字节(`8`位十六进制)。当用户调用合约的函数时,`calldata`的前`4`字节就是目标函数的选择器,决定了调用哪个函数。如果你不了解它,可以阅读[WTF Solidity极简教程第29讲:函数选择器](https://github.com/AmazingAng/WTFSolidity/blob/main/29_Selector/readme.md)。 +以太坊智能合约中,函数选择器是函数签名 `"()"` 的哈希值的前`4`个字节(`8`位十六进制)。当用户调用合约的函数时,`calldata`的前`4`字节就是目标函数的选择器,决定了调用哪个函数。如果你不了解它,可以阅读[WTF Solidity极简教程第29讲:函数选择器](https://github.com/AmazingAng/WTF-Solidity/blob/main/29_Selector/readme.md)。 由于函数选择器只有`4`字节,非常短,很容易被碰撞出来:即我们很容易找到两个不同的函数,但是他们有着相同的函数选择器。比如`transferFrom(address,address,uint256)`和`gasprice_bit_ether(int128)`有着相同的选择器:`0x23b872dd`。当然你也可以写个脚本暴力破解。 diff --git a/S03_Centralization/readme.md b/S03_Centralization/readme.md index c0f27a25b..bef88ee8e 100644 --- a/S03_Centralization/readme.md +++ b/S03_Centralization/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -65,11 +65,11 @@ contract Centralization is ERC20, Ownable { ## 如何减少中心化/伪去中心化风险? -1. 使用多签钱包管理国库和控制合约参数。为了兼顾效率和去中心化,可以选择 4/7 或 6/9 多签。如果你不了解多签钱包,可以阅读[WTF Solidity 第 50 讲:多签钱包](https://github.com/AmazingAng/WTFSolidity/blob/main/50_MultisigWallet/readme.md)。 +1. 使用多签钱包管理国库和控制合约参数。为了兼顾效率和去中心化,可以选择 4/7 或 6/9 多签。如果你不了解多签钱包,可以阅读[WTF Solidity 第 50 讲:多签钱包](https://github.com/AmazingAng/WTF-Solidity/blob/main/50_MultisigWallet/readme.md)。 2. 多签的持有人要多样化,分散在创始团队、投资人、社区领袖之间,并且不要相互授权签名。 -3. 使用时间锁控制合约,在黑客或项目内鬼修改合约参数/盗取资产时,项目方和社区有一些时间来应对,将损失最小化。如果你不了解时间锁合约,可以阅读[WTF Solidity 第 45 讲:时间锁](https://github.com/AmazingAng/WTFSolidity/blob/main/45_Timelock/readme.md)。 +3. 使用时间锁控制合约,在黑客或项目内鬼修改合约参数/盗取资产时,项目方和社区有一些时间来应对,将损失最小化。如果你不了解时间锁合约,可以阅读[WTF Solidity 第 45 讲:时间锁](https://github.com/AmazingAng/WTF-Solidity/blob/main/45_Timelock/readme.md)。 ## 总结 diff --git a/S04_AccessControlExploit/readme.md b/S04_AccessControlExploit/readme.md index 0dcb2aafd..da5906dc1 100644 --- a/S04_AccessControlExploit/readme.md +++ b/S04_AccessControlExploit/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S05_Overflow/readme.md b/S05_Overflow/readme.md index 77effeb5f..134ad2398 100644 --- a/S05_Overflow/readme.md +++ b/S05_Overflow/readme.md @@ -13,7 +13,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S06_SignatureReplay/readme.md b/S06_SignatureReplay/readme.md index d22646d77..e1fc0d77e 100644 --- a/S06_SignatureReplay/readme.md +++ b/S06_SignatureReplay/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -24,7 +24,7 @@ tags: 上学的时候,老师经常会让家长签字,有时候家长很忙,我就会很“贴心”照着以前的签字抄一遍。某种意义上来说,这就是签名重放。 -在区块链中,数字签名可以用于识别数据签名者和验证数据完整性。发送交易时,用户使用私钥签名交易,使得其他人可以验证交易是由相应账户发出的。智能合约也能利用 `ECDSA` 算法验证用户将在链下创建的签名,然后执行铸造或转账等逻辑。更多关于数字签名的介绍请见[WTF Solidity第37讲:数字签名](https://github.com/AmazingAng/WTFSolidity/blob/main/37_Signature/readme.md)。 +在区块链中,数字签名可以用于识别数据签名者和验证数据完整性。发送交易时,用户使用私钥签名交易,使得其他人可以验证交易是由相应账户发出的。智能合约也能利用 `ECDSA` 算法验证用户将在链下创建的签名,然后执行铸造或转账等逻辑。更多关于数字签名的介绍请见[WTF Solidity第37讲:数字签名](https://github.com/AmazingAng/WTF-Solidity/blob/main/37_Signature/readme.md)。 数字签名一般有两种常见的重放攻击: diff --git a/S07_BadRandomness/readme.md b/S07_BadRandomness/readme.md index 4d8725920..fcb16c9ad 100644 --- a/S07_BadRandomness/readme.md +++ b/S07_BadRandomness/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S08_ContractCheck/readme.md b/S08_ContractCheck/readme.md index 9b802b996..93aba60e3 100644 --- a/S08_ContractCheck/readme.md +++ b/S08_ContractCheck/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S09_DoS/readme.md b/S09_DoS/readme.md index 81b33fadc..f0308bb13 100644 --- a/S09_DoS/readme.md +++ b/S09_DoS/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S10_Honeypot/readme.md b/S10_Honeypot/readme.md index c6e16e6ca..e53eaa6bf 100644 --- a/S10_Honeypot/readme.md +++ b/S10_Honeypot/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -41,7 +41,7 @@ tags: `Pixiu` 有一个状态变量`pair`,用于记录`uniswap`中 `Pixiu-ETH LP`的币对地址。它主要有三个函数: -1. 构造函数:初始化代币的名称和代号,并根据 `uniswap` 和 `create2` 的原理计算`LP`合约地址,具体内容可以参考 [WTF Solidity 第25讲: Create2](https://github.com/AmazingAng/WTFSolidity/blob/main/25_Create2/readme.md)。这个地址会在 `_update()` 函数中用到。 +1. 构造函数:初始化代币的名称和代号,并根据 `uniswap` 和 `create2` 的原理计算`LP`合约地址,具体内容可以参考 [WTF Solidity 第25讲: Create2](https://github.com/AmazingAng/WTF-Solidity/blob/main/25_Create2/readme.md)。这个地址会在 `_update()` 函数中用到。 2. `mint()`:铸造函数,仅 `owner` 地址可以调用,用于铸造 `Pixiu` 代币。 3. `_update()`:`ERC20`代币在被转账前会调用的函数。在其中,我们限制了当转账的目标地址 `to` 为 `LP` 的时候,也就是韭菜卖出的时候,交易会 `revert`;只有调用者为`owner`的时候能够成功。这也是貔貅合约的核心。 diff --git a/S11_Frontrun/readme.md b/S11_Frontrun/readme.md index 2ada723c3..2b138892a 100644 --- a/S11_Frontrun/readme.md +++ b/S11_Frontrun/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S12_TxOrigin/readme.md b/S12_TxOrigin/readme.md index 4db14265e..c4dab5269 100644 --- a/S12_TxOrigin/readme.md +++ b/S12_TxOrigin/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S13_UncheckedCall/readme.md b/S13_UncheckedCall/readme.md index 9baf8dad7..c9f3de97a 100644 --- a/S13_UncheckedCall/readme.md +++ b/S13_UncheckedCall/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/S14_TimeManipulation/readme.md b/S14_TimeManipulation/readme.md index 9e32613e9..750068ee4 100644 --- a/S14_TimeManipulation/readme.md +++ b/S14_TimeManipulation/readme.md @@ -14,7 +14,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -52,7 +52,7 @@ contract TimeManipulation is ERC721 { ## Foundry复现攻击 -攻击者只需操纵区块时间,将它设为能被 170 整除的数字,就可以成功铸造 NFT。我们选择 Foundry 来复现这个攻击,因为它提供了修改区块时间的作弊码(cheatcodes)。如果你不了解 Foundry/作弊码,可以阅读 [Foundry教程](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL07_Foundry/readme.md) 和 [Foundry Book](https://book.getfoundry.sh/forge/cheatcodes)。 +攻击者只需操纵区块时间,将它设为能被 170 整除的数字,就可以成功铸造 NFT。我们选择 Foundry 来复现这个攻击,因为它提供了修改区块时间的作弊码(cheatcodes)。如果你不了解 Foundry/作弊码,可以阅读 [Foundry教程](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL07_Foundry/readme.md) 和 [Foundry Book](https://book.getfoundry.sh/forge/cheatcodes)。 代码大致逻辑 diff --git a/S15_OracleManipulation/readme.md b/S15_OracleManipulation/readme.md index aa8803a24..fc5161ff6 100644 --- a/S15_OracleManipulation/readme.md +++ b/S15_OracleManipulation/readme.md @@ -15,7 +15,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -113,7 +113,7 @@ contract oUSD is ERC20{ ### Foundry 复现 -我们选用 Foundry 进行操纵预言机攻击的复现,因为它很快,并且可以创建主网的本地分叉,方便测试。如果你不了解 Foundry,可以阅读 [WTF Solidity工具篇 T07: Foundry](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL07_Foundry/readme.md)。 +我们选用 Foundry 进行操纵预言机攻击的复现,因为它很快,并且可以创建主网的本地分叉,方便测试。如果你不了解 Foundry,可以阅读 [WTF Solidity工具篇 T07: Foundry](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL07_Foundry/readme.md)。 1. 在安装好 Foundry 之后,在命令行输入下列命令启动新项目,并安装 openzeppelin 库。 ```shell diff --git a/S16_NFTReentrancy/readme.md b/S16_NFTReentrancy/readme.md index 335f9253f..2463866af 100644 --- a/S16_NFTReentrancy/readme.md +++ b/S16_NFTReentrancy/readme.md @@ -17,7 +17,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- @@ -25,9 +25,9 @@ tags: ## NFT重入风险 -我们在[S01 重入攻击](https://github.com/AmazingAng/WTFSolidity/blob/main/S01_ReentrancyAttack/readme.md)中讲过,重入攻击是智能合约中最常见的一种攻击,攻击者通过合约漏洞(例如`fallback`函数)循环调用合约,将合约中资产转走或铸造大量代币。转账NFT时并不会触发合约的`fallback`或`receive`函数,为什么会有重入风险呢? +我们在[S01 重入攻击](https://github.com/AmazingAng/WTF-Solidity/blob/main/S01_ReentrancyAttack/readme.md)中讲过,重入攻击是智能合约中最常见的一种攻击,攻击者通过合约漏洞(例如`fallback`函数)循环调用合约,将合约中资产转走或铸造大量代币。转账NFT时并不会触发合约的`fallback`或`receive`函数,为什么会有重入风险呢? -这是因为NFT标准([ERC721](https://github.com/AmazingAng/WTFSolidity/blob/main/34_ERC721/readme.md)/[ERC1155](https://github.com/AmazingAng/WTFSolidity/blob/main/40_ERC1155/readme.md))为了防止用户误把资产转入黑洞而加入了安全转账:如果转入地址为合约,则会调用该地址相应的检查函数,确保它已准备好接收NFT资产。例如 `ERC721` 的 `safeTransferFrom()` 函数会调用目标地址的 `onERC721Received()` 函数,而黑客可以把恶意代码嵌入其中进行攻击。 +这是因为NFT标准([ERC721](https://github.com/AmazingAng/WTF-Solidity/blob/main/34_ERC721/readme.md)/[ERC1155](https://github.com/AmazingAng/WTF-Solidity/blob/main/40_ERC1155/readme.md))为了防止用户误把资产转入黑洞而加入了安全转账:如果转入地址为合约,则会调用该地址相应的检查函数,确保它已准备好接收NFT资产。例如 `ERC721` 的 `safeTransferFrom()` 函数会调用目标地址的 `onERC721Received()` 函数,而黑客可以把恶意代码嵌入其中进行攻击。 我们总结了 `ERC721` 和 `ERC1155` 有潜在重入风险的函数: diff --git a/S17_CrossReentrancy/readme.md b/S17_CrossReentrancy/readme.md index e4879a609..34c5a5312 100644 --- a/S17_CrossReentrancy/readme.md +++ b/S17_CrossReentrancy/readme.md @@ -17,7 +17,7 @@ tags: 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) --- diff --git a/Topics/ERC721/5_Loot/readme.md b/Topics/ERC721/5_Loot/readme.md index 3757934a5..701a30393 100644 --- a/Topics/ERC721/5_Loot/readme.md +++ b/Topics/ERC721/5_Loot/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git "a/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" "b/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" index 104f2547f..526ec2dcb 100644 --- "a/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" +++ "b/Topics/StudyNotes/Notes_34_ERC721_ShuxunOo/ERC721\345\256\236\344\276\213\345\210\206\346\236\220\346\200\273\347\273\223_ShuxunOo/ERC721 \347\273\274\350\277\260.md" @@ -10,7 +10,7 @@ ERC721合约的主要构成 本文内容参照了A大关于Solidity的学习笔记文章,教程内容由社区成员创作完善而成,每个知识点后面都结合具体的例子,Github1.9K⭐︎。目前还在不断完善中,欢迎大家一起完善。文章仓库链接: -https://github.com/AmazingAng/WTFSolidity +https://github.com/AmazingAng/WTF-Solidity 同时也参照了@崔棉大师关于Solidity的教学资源,B站链接: diff --git a/Topics/Tools/TOOL01_Remix/readme.md b/Topics/Tools/TOOL01_Remix/readme.md index 05d287e26..5c6acca98 100644 --- a/Topics/Tools/TOOL01_Remix/readme.md +++ b/Topics/Tools/TOOL01_Remix/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Topics/Tools/TOOL02_Infura/readme.md b/Topics/Tools/TOOL02_Infura/readme.md index 4b3155a7e..e96efa494 100644 --- a/Topics/Tools/TOOL02_Infura/readme.md +++ b/Topics/Tools/TOOL02_Infura/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- `Infura`是Consensys(小狐狸钱包母公司)开发的区块链基础设施,帮助用户/开发者更好的与以太坊区块链交互。 diff --git a/Topics/Tools/TOOL03_Ganache/readme.md b/Topics/Tools/TOOL03_Ganache/readme.md index 8a65a6bcc..9ce7fa936 100644 --- a/Topics/Tools/TOOL03_Ganache/readme.md +++ b/Topics/Tools/TOOL03_Ganache/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -166,7 +166,7 @@ curl -H 'Content-Type: application/json' --data' {"jsonrpc": "2.0", "id": 1, "me 这里的地址填入你alchemy的的主网地址即可 -没有的话申请一个 [Alchemy - Blockchain APIs and Node Infrastructure](https://alchemy.com/?r=7ad384cba6732c9d) 或者参考 [Infura, 连接链下与链上的桥梁](https://github.com/AmazingAng/WTFSolidity/tree/main/Topics/Tools/TOOL02_Infura/readme.md) 申请一个infura的链接。 +没有的话申请一个 [Alchemy - Blockchain APIs and Node Infrastructure](https://alchemy.com/?r=7ad384cba6732c9d) 或者参考 [Infura, 连接链下与链上的桥梁](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Tools/TOOL02_Infura/readme.md) 申请一个infura的链接。 在chain forking下面的`ENTER CUSTOM URL`里面填入你的eth mainnet地址即可 diff --git a/Topics/Tools/TOOL04_Alchemy/readme.md b/Topics/Tools/TOOL04_Alchemy/readme.md index f17ff25ba..d4071e322 100644 --- a/Topics/Tools/TOOL04_Alchemy/readme.md +++ b/Topics/Tools/TOOL04_Alchemy/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- ## Alchemy是什么 @@ -19,7 +19,7 @@ `Alchemy` 和 `Infura`在链下、链上之间搭了一座桥,让两者的交互变的简单。它为用户提供对以太坊和IPFS网络的即时、可扩展的`API`访问。开发者在`Alchemy` 和 `Infura`官网注册后,就可以免费申请的以太坊`API KEY`,就可以利用它们的节点与区块链交互。另外,小狐狸`metamask`钱包内置了`Infura`服务,方便用户访问以太坊网络。 -关于`Infura`的介绍,可以参考 [WTF Solidity极简入门-工具篇2:Infura, 连接链下与链上的桥梁](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL02_Infura/readme.md) +关于`Infura`的介绍,可以参考 [WTF Solidity极简入门-工具篇2:Infura, 连接链下与链上的桥梁](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL02_Infura/readme.md) ## Alchemy 和 Infura 的区别 diff --git a/Topics/Tools/TOOL05_Dune/readme.md b/Topics/Tools/TOOL05_Dune/readme.md index 92d631463..69f4bee5b 100644 --- a/Topics/Tools/TOOL05_Dune/readme.md +++ b/Topics/Tools/TOOL05_Dune/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- ## Dune是什么? diff --git a/Topics/Tools/TOOL06_Hardhat/readme.md b/Topics/Tools/TOOL06_Hardhat/readme.md index 93b55a530..a316b7869 100644 --- a/Topics/Tools/TOOL06_Hardhat/readme.md +++ b/Topics/Tools/TOOL06_Hardhat/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在 github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在 github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- @@ -75,7 +75,7 @@ module.exports = { 新建`contracts`合约目录,并添加第31章节的ERC20合约。 ### 编写合约 -这里的合约直接使用[WTF Solidity第31讲](https://github.com/AmazingAng/WTFSolidity/blob/main/31_ERC20/readme.md]的ERC20合约 +这里的合约直接使用[WTF Solidity第31讲](https://github.com/AmazingAng/WTF-Solidity/blob/main/31_ERC20/readme.md]的ERC20合约 ```js // SPDX-License-Identifier: MIT @@ -261,7 +261,7 @@ npx hardhat run --network hardhat scripts/deploy.js ### 前期准备 1. 申请alchemy的api key -参考【[第4讲:Alchemy, 区块链API和节点基础设施](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL04_Alchemy/readme.md)】 +参考【[第4讲:Alchemy, 区块链API和节点基础设施](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL04_Alchemy/readme.md)】 2. 申请Goerli测试代币 [点击申请](https://goerlifaucet.com/) 登录alchemy账号每天可以领取0.2个代币 3. 导出私钥 diff --git a/Topics/Tools/TOOL07_Foundry/readme.md b/Topics/Tools/TOOL07_Foundry/readme.md index 2c14ce2c6..bc11fc5b0 100644 --- a/Topics/Tools/TOOL07_Foundry/readme.md +++ b/Topics/Tools/TOOL07_Foundry/readme.md @@ -6,7 +6,7 @@ 社区:[Discord](https://discord.gg/5akcruXrsk)|[微信群](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[官网 wtf.academy](https://wtf.academy) -所有代码和教程开源在github: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +所有代码和教程开源在github: [github.com/AmazingAng/WTF-Solidity](https://github.com/AmazingAng/WTF-Solidity) ----- diff --git a/Topics/Translation/Consensys2020/readme.md b/Topics/Translation/Consensys2020/readme.md index fc93d3695..bb3d1d544 100644 --- a/Topics/Translation/Consensys2020/readme.md +++ b/Topics/Translation/Consensys2020/readme.md @@ -6,7 +6,7 @@ **翻译**:[0xAA](https://twitter.com/0xAA_Science) -**Github**: [WTFSolidity](https://github.com/AmazingAng/WTFSolidity) +**Github**: [WTFSolidity](https://github.com/AmazingAng/WTF-Solidity) > 写在前面: diff --git a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md index dbfe7f4cb..25078cb21 100644 --- a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md +++ b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md @@ -24,7 +24,7 @@ sstore(0x0, 0x1) * EVM 将值 `0x1` 存储在存储(storage)位置 `0x0`​ * 每个存储位置可以存储 32 个字节(或 256 位) -> 如果看起来不熟悉,建议阅读:[深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md)。 +> 如果看起来不熟悉,建议阅读:[深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md)。 在本文中,我们将开始研究 Solidity 如何使用 32 字节的块(chunks)来表示更复杂的数据类型,比如结构体和数组。我们还将了解如何优化存储,以及优化是如何失败的。 diff --git a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md index e5f00988a..c3c80ed0b 100644 --- a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md +++ b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md @@ -16,7 +16,7 @@ Solidity 提供了其他编程语言中常见的数据结构。除了像数字 具有固定大小的存储变量在存储中一个接一个地放置,尽可能紧密地打包成 32 字节的块。 -(如果这部分看起来不熟悉,请阅读 [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md)) +(如果这部分看起来不熟悉,请阅读 [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md)) 在本文中,我们将研究 Solidity 如何支持更复杂的数据结构。 Solidity 中的数组和映射可能表面上看起来很熟悉,但它们的实现方式赋予了它们完全不同的性能特征。 diff --git a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md index b407445a4..4bd27ccfc 100644 --- a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md +++ b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md @@ -14,9 +14,9 @@ 如果对 EVM 汇编和 Solidity 数据表示不熟悉,请参阅本系列之前的文章以了解更多信息: -* [深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) -* [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) -* [深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) +* [深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) +* [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) +* [深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) ## Contract Transaction diff --git a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md index 2d8e08972..bffb8bb3a 100644 --- a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md +++ b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md @@ -6,10 +6,10 @@ 本系列的前几篇文章(按顺序)。 -* [深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) -* [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) -* [深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) -* [深入以太坊虚拟机 Part4 — 智能合约外部方法调用](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md) +* [深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) +* [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) +* [深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) +* [深入以太坊虚拟机 Part4 — 智能合约外部方法调用](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md) 到目前为止,我们看到的 EVM 字节码很简单,只是 EVM 从上到下执行的指令,没有魔法。合约创建过程更有趣,因为它模糊了代码和数据之间的界限。 diff --git a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md index 47ec2f10e..25453882e 100644 --- a/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md +++ b/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md @@ -16,11 +16,11 @@ 如果你对前面的内容不熟悉,请阅读前面的文章: -* [深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) -* [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) -* [深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) -* [深入以太坊虚拟机 Part4 — 智能合约外部方法调用](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md) -* [深入以太坊虚拟机 Part5 — 智能合约创建过程](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md) +* [深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md) +* [深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md) +* [深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md) +* [深入以太坊虚拟机 Part4 — 智能合约外部方法调用](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md) +* [深入以太坊虚拟机 Part5 — 智能合约创建过程](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md) ## Solidity Events diff --git a/Topics/Translation/DiveEVM2017/readme.md b/Topics/Translation/DiveEVM2017/readme.md index 829eff413..4211bb1c7 100644 --- a/Topics/Translation/DiveEVM2017/readme.md +++ b/Topics/Translation/DiveEVM2017/readme.md @@ -20,14 +20,14 @@ ## 译文 -**[深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md)** +**[深入以太坊虚拟机 Part1 — 汇编与字节码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part1.md)** -**[深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md)** +**[深入以太坊虚拟机 Part2 — 固定长度数据类型的表示 ](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part2.md)** -**[深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md)** +**[深入以太坊虚拟机 Part3 — 动态数据类型的表示](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part3.md)** -**[深入以太坊虚拟机 Part4 — 智能合约外部方法调用](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md)** +**[深入以太坊虚拟机 Part4 — 智能合约外部方法调用](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part4.md)** -**[深入以太坊虚拟机 Part5 — 智能合约创建过程](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md)** +**[深入以太坊虚拟机 Part5 — 智能合约创建过程](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part5.md)** -**[深入以太坊虚拟机 Part6 — Solidity 事件实现](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md)** \ No newline at end of file +**[深入以太坊虚拟机 Part6 — Solidity 事件实现](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017/DiveEVM2017-Part6.md)** \ No newline at end of file diff --git a/Topics/readme.md b/Topics/readme.md index 7f8099581..317a50c03 100644 --- a/Topics/readme.md +++ b/Topics/readme.md @@ -1,16 +1,16 @@ ## WTF Solidity专题 ### `工具` -**第1讲:Remix, 最易用的Solidity IDE** 【[代码](https://github.com/AmazingAng/WTFSolidity/tree/main/Topics/Tools/TOOL01_Remix)】 【[文章](https://mirror.xyz/wtfacademy.eth/dSYXG9zF_Vclw58Bgcvsv6HSA0SU6pmBoYLFwLAgVbU)】 +**第1讲:Remix, 最易用的Solidity IDE** 【[代码](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Tools/TOOL01_Remix)】 【[文章](https://mirror.xyz/wtfacademy.eth/dSYXG9zF_Vclw58Bgcvsv6HSA0SU6pmBoYLFwLAgVbU)】 -**第2讲:Infura, 连接链下与链上的桥梁** 【[文章](https://github.com/AmazingAng/WTFSolidity/tree/main/Topics/Tools/TOOL02_Infura/readme.md)】 +**第2讲:Infura, 连接链下与链上的桥梁** 【[文章](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Tools/TOOL02_Infura/readme.md)】 -**第3讲:Ganache,搭建本地测试网络** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL03_Ganache/readme.md)】 +**第3讲:Ganache,搭建本地测试网络** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL03_Ganache/readme.md)】 -**第4讲:Alchemy, 区块链API和节点基础设施** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL04_Alchemy/readme.md)】 +**第4讲:Alchemy, 区块链API和节点基础设施** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL04_Alchemy/readme.md)】 -**第5讲:Dune,使用Dune可视化区块链数据** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL05_Dune/readme.md)】 +**第5讲:Dune,使用Dune可视化区块链数据** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL05_Dune/readme.md)】 -**第6讲:Hardhat,以太坊开发环境** 【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Tools/TOOL06_Hardhat/readme.md)】 +**第6讲:Hardhat,以太坊开发环境** 【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Tools/TOOL06_Hardhat/readme.md)】 **第7讲:Foundry,以Solidity为中心的开发工具包** 【[代码](./Tools/TOOL07_Foundry/readme.md)】 @@ -31,23 +31,23 @@ **第7讲:Nomad 跨链桥事件分析** 【[文章](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Onchain_debug/07_analysis_bridge/)】| 【[English](https://github.com/AmazingAng/WTF-Solidity/tree/main/Topics/Onchain_debug/07_analysis_bridge/en/)】 ### `NFT` -**第1讲:ERC721库:Address, Strings, Context** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/PAsIFLAmEoMufZsXlX0NWsVF8DHpHz3OrYlooosy9Ho)】 +**第1讲:ERC721库:Address, Strings, Context** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/PAsIFLAmEoMufZsXlX0NWsVF8DHpHz3OrYlooosy9Ho)】 -**第2讲:ERC721相关接口** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/4mPkMgHViRjx8OM7TAI-M-2oMfRle36ULzqlpC6S7IQ)】 +**第2讲:ERC721相关接口** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721)】 【[文章](https://mirror.xyz/wtfacademy.eth/4mPkMgHViRjx8OM7TAI-M-2oMfRle36ULzqlpC6S7IQ)】 -**第3讲:ERC721主合约** 【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721/ERC721.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-evZa3S--yw9vVcXfhn9I3UiNRaqWOTLG0eZFFgbcT0)】 +**第3讲:ERC721主合约** 【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721/ERC721.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-evZa3S--yw9vVcXfhn9I3UiNRaqWOTLG0eZFFgbcT0)】 -**第4讲:BAYC主合约和严重漏洞**【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721/BAYC.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/_buBOQflWtHDpLbg18Fp8zLe8AmLiPka2y-UhppK_u0)】 +**第4讲:BAYC主合约和严重漏洞**【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721/BAYC.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/_buBOQflWtHDpLbg18Fp8zLe8AmLiPka2y-UhppK_u0)】 -**第5讲:Loot**【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/ERC721/5_Loot/Loot.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-Bc_vjP9EX-wg6chtUFAz0zm5v-jaIekMlOlqHJ_IhE)】 +**第5讲:Loot**【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/ERC721/5_Loot/Loot.sol)】 【[文章](https://mirror.xyz/wtfacademy.eth/-Bc_vjP9EX-wg6chtUFAz0zm5v-jaIekMlOlqHJ_IhE)】 ### `合约安全` -**第1讲:Metamask项目方给Solidity程序员的16个安全建议**【[代码](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/Consensys2020)】 【[文章](https://mirror.xyz/wtfacademy.eth/ygaDE0QQwn3lfI-AVaw0ZMqHQtWCdzo-XV450j2camc)】 +**第1讲:Metamask项目方给Solidity程序员的16个安全建议**【[代码](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/Consensys2020)】 【[文章](https://mirror.xyz/wtfacademy.eth/ygaDE0QQwn3lfI-AVaw0ZMqHQtWCdzo-XV450j2camc)】 ### `翻译` -**第1讲:Metamask项目方给Solidity程序员的16个安全建议**【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/Consensys2020)】 【[Mirror](https://mirror.xyz/wtfacademy.eth/ygaDE0QQwn3lfI-AVaw0ZMqHQtWCdzo-XV450j2camc)】 +**第1讲:Metamask项目方给Solidity程序员的16个安全建议**【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/Consensys2020)】 【[Mirror](https://mirror.xyz/wtfacademy.eth/ygaDE0QQwn3lfI-AVaw0ZMqHQtWCdzo-XV450j2camc)】 -**第2讲:深入EVM**【[文章](https://github.com/AmazingAng/WTFSolidity/blob/main/Topics/Translation/DiveEVM2017)】 +**第2讲:深入EVM**【[文章](https://github.com/AmazingAng/WTF-Solidity/blob/main/Topics/Translation/DiveEVM2017)】