From f10e8b2922cdbcc45bac484a3540f668f63c838a Mon Sep 17 00:00:00 2001 From: Alan Xu Date: Wed, 12 Jun 2024 10:28:47 +0800 Subject: [PATCH] feat(repo): fix repo name fix repo name --- 01_HelloWeb3/readme.md | 2 +- 02_ValueTypes/readme.md | 2 +- 03_Function/readme.md | 2 +- 04_Return/readme.md | 2 +- 05_DataStorage/readme.md | 2 +- 06_ArrayAndStruct/readme.md | 2 +- 07_Mapping/readme.md | 2 +- 08_InitialValue/readme.md | 2 +- 09_Constant/readme.md | 2 +- 10_InsertionSort/readme.md | 2 +- 11_Modifier/readme.md | 2 +- 12_Event/readme.md | 2 +- 13_Inheritance/readme.md | 2 +- 14_Interface/readme.md | 4 +- 15_Errors/readme.md | 2 +- 16_Overloading/readme.md | 4 +- 17_Library/readme.md | 2 +- 18_Import/readme.md | 2 +- 19_Fallback/readme.md | 2 +- 20_SendETH/readme.md | 2 +- 21_CallContract/readme.md | 2 +- 22_Call/readme.md | 6 +- 23_Delegatecall/readme.md | 2 +- 24_Create/readme.md | 2 +- 25_Create2/readme.md | 2 +- 26_DeleteContract/readme.md | 2 +- 27_ABIEncode/readme.md | 2 +- 28_Hash/readme.md | 2 +- 29_Selector/readme.md | 2 +- 30_TryCatch/readme.md | 2 +- 31_ERC20/readme.md | 2 +- 32_Faucet/readme.md | 2 +- 33_Airdrop/readme.md | 2 +- 34_ERC721/readme.md | 2 +- 35_DutchAuction/readme.md | 4 +- 36_MerkleTree/readme.md | 2 +- 37_Signature/readme.md | 2 +- 38_NFTSwap/readme.md | 4 +- 39_Random/Random.sol | 2 +- 39_Random/readme.md | 6 +- 40_ERC1155/readme.md | 14 +- 41_WETH/readme.md | 4 +- 42_PaymentSplit/readme.md | 2 +- 43_TokenVesting/readme.md | 2 +- 44_TokenLocker/readme.md | 2 +- 45_Timelock/readme.md | 6 +- 46_ProxyContract/readme.md | 6 +- 47_Upgrade/readme.md | 4 +- 48_TransparentProxy/readme.md | 8 +- 49_UUPS/readme.md | 8 +- 50_MultisigWallet/readme.md | 6 +- 51_ERC4626/readme.md | 2 +- 52_EIP712/readme.md | 4 +- 53_ERC20Permit/readme.md | 2 +- 54_CrossChainBridge/readme.md | 2 +- 55_MultiCall/readme.md | 2 +- 56_DEX/readme.md | 2 +- 57_Flashloan/readme.md | 2 +- Languages/en/01_HelloWeb3_en/readme.md | 2 +- Languages/en/02_ValueTypes_en/readme.md | 2 +- Languages/en/03_Function_en/readme.md | 2 +- Languages/en/04_Return_en/readme.md | 2 +- Languages/en/05_DataStorage_en/readme.md | 2 +- Languages/en/06_ArrayAndStruct_en/readme.md | 2 +- Languages/en/07_Mapping_en/readme.md | 2 +- Languages/en/08_InitialValue_en/readme.md | 2 +- Languages/en/09_Constant_en/readme.md | 2 +- Languages/en/10_InsertionSort_en/readme.md | 2 +- Languages/en/11_Modifier_en/readme.md | 2 +- Languages/en/12_Event_en/readme.md | 2 +- Languages/en/13_Inheritance_en/readme.md | 2 +- Languages/en/14_Interface_en/readme.md | 4 +- Languages/en/15_Errors_en/readme.md | 2 +- Languages/en/16_Overloading_en/readme.md | 4 +- Languages/en/17_Library_en/readme.md | 2 +- Languages/en/18_Import_en/readme.md | 2 +- Languages/en/19_Fallback_en/readme.md | 2 +- Languages/en/20_SendETH_en/readme.md | 2 +- Languages/en/21_CallContract_en/readme.md | 2 +- Languages/en/22_Call_en/readme.md | 2 +- Languages/en/23_Delegatecall_en/readme.md | 2 +- Languages/en/24_Create_en/readme.md | 2 +- Languages/en/25_Create2_en/readme.md | 2 +- Languages/en/26_DeleteContract_en/readme.md | 2 +- Languages/en/27_ABIEncode_en/readme.md | 2 +- Languages/en/28_Hash_en/readme.md | 2 +- Languages/en/29_Selector_en/readme.md | 2 +- Languages/en/30_TryCatch_en/readme.md | 2 +- Languages/en/31_ERC20_en/readme.md | 2 +- Languages/en/32_Faucet_en/readme.md | 2 +- Languages/en/33_Airdrop_en/readme.md | 2 +- Languages/en/34_ERC721_en/readme.md | 2 +- Languages/en/35_DutchAuction_en/readme.md | 4 +- Languages/en/36_MerkleTree_en/readme.md | 2 +- Languages/en/37_Signature_en/readme.md | 2 +- Languages/en/38_NFTSwap_en/readme.md | 4 +- Languages/en/39_Random_en/readme.md | 4 +- Languages/en/40_ERC1155_en/readme.md | 4 +- Languages/en/41_WETH_en/readme.md | 4 +- Languages/en/42_PaymentSplit_en/readme.md | 2 +- Languages/en/43_TokenVesting_en/readme.md | 2 +- Languages/en/44_TokenLocker_en/readme.md | 2 +- Languages/en/45_Timelock_en/readme.md | 6 +- Languages/en/46_ProxyContract_en/readme.md | 6 +- Languages/en/47_Upgrade_en/readme.md | 4 +- Languages/en/48_TransparentProxy_en/readme.md | 8 +- Languages/en/49_UUPS_en/readme.md | 6 +- Languages/en/50_MultisigWallet_en/readme.md | 4 +- Languages/en/51_ERC4626_en/readme.md | 2 +- Languages/en/52_EIP712_en/readme.md | 4 +- Languages/en/53_ERC20Permit/readme.md | 2 +- Languages/en/54_CrossChainBridge/readme.md | 2 +- Languages/en/55_MultiCall/readme.md | 2 +- Languages/en/56_DEX/readme.md | 2 +- Languages/en/57_Flashloan/readme.md | 2 +- Languages/en/README.md | 4 +- Languages/es/01_HolaWeb3_es/readme.md | 2 +- Languages/es/02_TiposDeValor_es/readme.md | 2 +- Languages/es/03_Funcion_es/readme.md | 2 +- Languages/es/04_Retorno_es/readme.md | 2 +- .../05_AlmacenamientoInformacion_es/readme.md | 2 +- .../es/06_ArreglosyEstructuras_es/readme.md | 2 +- Languages/es/07_Mapeo_es/readme.md | 2 +- Languages/es/08_ValorInicial_es/readme.md | 2 +- Languages/es/09_Constante_es/readme.md | 2 +- .../es/10_OrdenamientoInsercion_es/readme.md | 2 +- Languages/es/11_Modificador_es/readme.md | 2 +- Languages/es/12_Eventos_es/readme.md | 2 +- Languages/es/13_Herencia_es/readme.md | 2 +- Languages/es/14_Interfaces_es/readme.md | 4 +- Languages/es/15_Errores_es/readme.md | 2 +- Languages/es/README.md | 4 +- Languages/ja/16_Overloading_ja/readme.md | 4 +- Languages/ja/17_Library_ja/readme.md | 2 +- Languages/ja/18_Import_ja/readme.md | 2 +- Languages/ja/19_Fallback_ja/readme.md | 2 +- Languages/ja/20_SendETH_ja/readme.md | 2 +- Languages/pt-br/01_HelloWeb3/readme.md | 2 +- Languages/pt-br/02_ValueTypes/readme.md | 2 +- Languages/pt-br/03_Function/readme.md | 2 +- Languages/pt-br/04_Return/readme.md | 2 +- Languages/pt-br/05_DataStorage/readme.md | 2 +- Languages/pt-br/06_ArrayAndStruct/readme.md | 2 +- Languages/pt-br/07_Mapping/readme.md | 2 +- Languages/pt-br/08_InitialValue/readme.md | 2 +- Languages/pt-br/09_Constant/readme.md | 2 +- Languages/pt-br/10_InsertionSort/readme.md | 2 +- Languages/pt-br/11_Modifier/readme.md | 2 +- Languages/pt-br/12_Event/readme.md | 2 +- Languages/pt-br/13_Inheritance/readme.md | 2 +- Languages/pt-br/14_Interface/readme.md | 2 +- Languages/pt-br/15_Errors/readme.md | 2 +- Languages/pt-br/16_Overloading/readme.md | 2 +- Languages/pt-br/17_Library/readme.md | 2 +- Languages/pt-br/18_Import/readme.md | 2 +- Languages/pt-br/19_Fallback/readme.md | 2 +- Languages/pt-br/20_SendETH/readme.md | 2 +- Languages/pt-br/21_CallContract/readme.md | 2 +- Languages/pt-br/22_Call/readme.md | 2 +- Languages/pt-br/23_Delegatecall/readme.md | 2 +- Languages/pt-br/24_Create/readme.md | 2 +- Languages/pt-br/25_Create2/readme.md | 2 +- Languages/pt-br/26_DeleteContract/readme.md | 2 +- Languages/pt-br/27_ABIEncode/readme.md | 2 +- Languages/pt-br/28_Hash/readme.md | 2 +- Languages/pt-br/29_Selector/readme.md | 2 +- Languages/pt-br/30_TryCatch/readme.md | 2 +- Languages/pt-br/31_ERC20/readme.md | 2 +- Languages/pt-br/32_Faucet/readme.md | 2 +- Languages/pt-br/33_Airdrop/readme.md | 2 +- Languages/pt-br/34_ERC721/readme.md | 2 +- Languages/pt-br/35_DutchAuction/readme.md | 2 +- Languages/pt-br/36_MerkleTree/readme.md | 2 +- Languages/pt-br/37_Signature/readme.md | 2 +- Languages/pt-br/38_NFTSwap/readme.md | 2 +- Languages/pt-br/39_Random/Random.sol | 2 +- Languages/pt-br/39_Random/readme.md | 2 +- Languages/pt-br/40_ERC1155/readme.md | 12 +- Languages/pt-br/41_WETH/readme.md | 2 +- Languages/pt-br/42_PaymentSplit/readme.md | 2 +- Languages/pt-br/43_TokenVesting/readme.md | 2 +- Languages/pt-br/44_TokenLocker/readme.md | 2 +- Languages/pt-br/45_Timelock/readme.md | 2 +- Languages/pt-br/46_ProxyContract/readme.md | 2 +- Languages/pt-br/47_Upgrade/readme.md | 2 +- Languages/pt-br/48_TransparentProxy/readme.md | 2 +- Languages/pt-br/49_UUPS/readme.md | 2 +- Languages/pt-br/50_MultisigWallet/readme.md | 2 +- Languages/pt-br/51_ERC4626/readme.md | 2 +- Languages/pt-br/52_EIP712/readme.md | 2 +- Languages/pt-br/53_ERC20Permit/readme.md | 2 +- Languages/pt-br/54_CrossChainBridge/readme.md | 2 +- Languages/pt-br/55_MultiCall/readme.md | 2 +- Languages/pt-br/56_DEX/readme.md | 2 +- Languages/pt-br/57_Flashloan/readme.md | 2 +- Languages/pt-br/README.md | 2 +- .../pt-br/S01_ReentrancyAttack/readme.md | 2 +- Languages/pt-br/S02_SelectorClash/readme.md | 2 +- Languages/pt-br/S03_Centralization/readme.md | 2 +- .../pt-br/S04_AccessControlExploit/readme.md | 2 +- Languages/pt-br/S05_Overflow/readme.md | 2 +- Languages/pt-br/S06_SignatureReplay/readme.md | 2 +- Languages/pt-br/S07_BadRandomness/readme.md | 2 +- Languages/pt-br/S08_ContractCheck/readme.md | 2 +- Languages/pt-br/S09_DoS/readme.md | 2 +- Languages/pt-br/S12_TxOrigin/readme.md | 2 +- Languages/pt-br/S13_UncheckedCall/readme.md | 2 +- .../pt-br/S14_TimeManipulation/readme.md | 2 +- .../pt-br/S15_OracleManipulation/readme.md | 2 +- Languages/pt-br/S16_NFTReentrancy/readme.md | 2 +- .../pt-br/Topics/ERC721/5_Loot/readme.md | 2 +- .../ERC721 \347\273\274\350\277\260.md" | 2 +- .../pt-br/Topics/Tools/TOOL01_Remix/readme.md | 2 +- .../Topics/Tools/TOOL02_Infura/readme.md | 2 +- .../Topics/Tools/TOOL03_Ganache/readme.md | 2 +- .../Topics/Tools/TOOL04_Alchemy/readme.md | 2 +- .../pt-br/Topics/Tools/TOOL05_Dune/readme.md | 2 +- .../Topics/Tools/TOOL06_Hardhat/readme.md | 2 +- .../Topics/Tools/TOOL07_Foundry/readme.md | 2 +- .../Translation/Consensys2020/readme.md | 2 +- .../DiveEVM2017/DiveEVM2017-Part2.md | 2 +- .../DiveEVM2017/DiveEVM2017-Part3.md | 2 +- .../DiveEVM2017/DiveEVM2017-Part4.md | 6 +- .../DiveEVM2017/DiveEVM2017-Part6.md | 10 +- README.md | 178 +++++++++--------- S01_ReentrancyAttack/readme.md | 6 +- S02_SelectorClash/readme.md | 4 +- S03_Centralization/readme.md | 6 +- S04_AccessControlExploit/readme.md | 2 +- S05_Overflow/readme.md | 2 +- S06_SignatureReplay/readme.md | 4 +- S07_BadRandomness/readme.md | 2 +- S08_ContractCheck/readme.md | 2 +- S09_DoS/readme.md | 2 +- S10_Honeypot/readme.md | 4 +- S11_Frontrun/readme.md | 2 +- S12_TxOrigin/readme.md | 2 +- S13_UncheckedCall/readme.md | 2 +- S14_TimeManipulation/readme.md | 4 +- S15_OracleManipulation/readme.md | 4 +- S16_NFTReentrancy/readme.md | 6 +- S17_CrossReentrancy/readme.md | 2 +- Topics/ERC721/5_Loot/readme.md | 2 +- .../ERC721 \347\273\274\350\277\260.md" | 2 +- Topics/Tools/TOOL01_Remix/readme.md | 2 +- Topics/Tools/TOOL02_Infura/readme.md | 2 +- Topics/Tools/TOOL03_Ganache/readme.md | 4 +- Topics/Tools/TOOL04_Alchemy/readme.md | 4 +- Topics/Tools/TOOL05_Dune/readme.md | 2 +- Topics/Tools/TOOL06_Hardhat/readme.md | 6 +- Topics/Tools/TOOL07_Foundry/readme.md | 2 +- Topics/Translation/Consensys2020/readme.md | 2 +- .../DiveEVM2017/DiveEVM2017-Part2.md | 2 +- .../DiveEVM2017/DiveEVM2017-Part3.md | 2 +- .../DiveEVM2017/DiveEVM2017-Part4.md | 6 +- .../DiveEVM2017/DiveEVM2017-Part5.md | 8 +- .../DiveEVM2017/DiveEVM2017-Part6.md | 10 +- Topics/Translation/DiveEVM2017/readme.md | 12 +- Topics/readme.md | 28 +-- 259 files changed, 452 insertions(+), 452 deletions(-) diff --git a/01_HelloWeb3/readme.md b/01_HelloWeb3/readme.md index 86bb627a..af0f32eb 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 f8d902bc..7abfc569 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 1135e086..100aa9a2 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 09f078d8..4f4ef7a8 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 fa7bce69..c09414cd 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 d115340f..12449234 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 cb61eabe..ee45fa49 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 16a57135..1458d1af 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 3ecc688c..ea92cec3 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 2a2a79a5..b5c56333 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 46c87296..2db39c0d 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 5316c872..39761e2f 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 6229f014..b6981f4f 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 6c7f72ce..82a48046 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 08aa5931..3d980852 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 02b302f8..555725dd 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 3abdb4d7..c1e5267e 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 004cd193..29e1cbb7 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 d7a96ac0..87a42084 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 5f915735..9c073b95 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 6eaeecf3..7d6f4938 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 e7f18a25..5dba80d1 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 33b64787..f7236118 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 006de979..2bcaceec 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 60ec0088..1ffd0e51 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 d66e1582..038d3f5f 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 c927e056..18d99579 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 bbd7f77d..854c1343 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 bb5d0b94..d8861826 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 20b5fee8..ccbc2a65 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 ec4adcda..1737af24 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 c13a0838..6f1eeeee 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 be278b62..a68e622b 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 1eb080c0..7edb8e14 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 ad776700..d563d7e9 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 7f10a9e6..1cf2d5b4 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 9a460e22..4f6fa1bd 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 922b4264..f578561c 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 872de8e8..4112a553 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 b262f698..e2dd12cc 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 a569481c..9797787c 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 3d37c297..62887a8f 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 7dabadc9..b6bd41f3 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 af2d0134..474e8432 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 f7a3efe7..b4404b02 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 f95dd651..5af6eb83 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 5fff25ed..e5415c7c 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 f8f7dfc0..970b91c5 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 4dbf50d4..3c059ec2 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 98338cf5..14fa0408 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 d208a3db..ba4eaf5d 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 56d8842d..90062a31 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 bceafa2c..a6249560 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 901975a9..f2eec760 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 7b973162..c3ded8fd 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 d753055c..ddff3091 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 554e31c0..5c1b1a29 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 39926cbc..ee6eb22b 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 ca1c2db9..ca40963c 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 2a7d38b1..1be98e2f 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 167f4c51..c51ef88d 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 e4e8717c..531afa1e 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 7f9dadc8..bb72dde4 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 98226b0c..65d2b840 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 ce6bfbe3..ed2fdbc6 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 5679b6ed..16f7a44b 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 27a42d07..eb8cfc3a 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 02d20cbf..aaf8e677 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 5b255b66..ab9b05f2 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 89d60dee..fb33a6d6 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 264d9854..4b25654f 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 6dfe0fac..525029ca 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 fd654c3b..00bfc8a9 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 a527fcaa..78447f2f 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 b2da431c..176668e8 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 ef504cbe..ecc31931 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 f04bee9a..bb7e5218 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 113190cd..0d1a9978 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 ff587adf..8531f99b 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 90d7e5b8..3b945174 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 d7be7d89..4e683cb8 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 d183eb8c..1beb8fb1 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 13a7b693..ec59e98c 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 25123102..17a0ce78 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 f5f75d9c..a2a20584 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 19777b41..55f83664 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 dc8e7af1..3be9ddf0 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 25dc06fe..ef6df305 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 af5c2bd9..17120750 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 f243c6a2..e957bb9c 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 44272051..259b3953 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 abc31e0e..c38b668f 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 3baa0274..7d3e7015 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 ffff9000..3437562d 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 d07fc7c0..a2f0b895 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 183363b5..f6fab536 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 556f651e..c1068083 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 a0efc8c6..1d20b4a3 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 1a7506e8..20a21a47 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 a3362d58..a08d50c8 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 3cd2f3a8..0d0601db 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 f3f37f84..a910345f 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 f1932418..9e184c80 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 2459c9d4..d45cf4fe 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 a94aec9a..a1856e9a 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 4559e387..15d37d9e 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 0c579cc2..a5570739 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 ae84c79c..db76bf5d 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 2b16049f..4b94ae0e 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 bea8e523..8bf7e023 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 9fcbabd5..69d70d9c 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 fb22b36a..e02702a8 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 fd23e04c..ecac104e 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 427451b3..ed30ddd3 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 97cbfe49..78974629 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 985f1e48..fa04abb5 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 c43ea6c6..bce59fea 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 c06d4947..bd775ed4 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 e4218876..599ec608 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 0f747849..7f377276 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 ac130e57..2817521c 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 8377e33b..0423a27f 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 89f78b3b..3cc7b45b 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 4a04298b..3089e577 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 5f24be13..254a1336 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 d5630521..e44141d3 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 e1523374..c02b7b60 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 4f807eac..9a03dcd6 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 686dabed..66542ec0 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 c14a917b..a8b18578 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 49ca179f..c6231328 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 e480e005..8dc96f5c 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 2e611fdf..7832094a 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 2e6982a0..fa7ac146 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 278ed069..0cc5dd05 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 ce521502..d7754cb9 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 09cccb5d..4bde7f40 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 1f56f164..318564a5 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 886ea7ce..cee5790e 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 63d484b5..99fd008b 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 5ec4acb8..1fe81585 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 4cb46cea..eef1ebe6 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 0c45a835..42353b65 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 def37d65..a095486d 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 c469a3a1..7373d330 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 2ce6135a..66bf5b5d 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 c8603c5a..14d25889 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 21bedd17..8b234631 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 3027a776..c7467387 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 41aad15c..94a8f68c 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 68ff0e9c..3dd6e3e0 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 6b206f07..ef4c2fe7 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 12708acd..ff7f1dc5 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 ff52411b..f67d84e5 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 b1a9167f..99f81928 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 8a55f8dc..2f643b25 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 4d7722a1..d57596b1 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 3051176d..3dbf0a11 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 6c164352..44e128af 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 c06fa240..ea07a0ab 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 903eda3c..51c85903 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 108b361f..147a31d6 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 e837bcba..644d0dba 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 6d0cd413..d99094a0 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 8d65a5e9..3b651766 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 86be3ce0..93f358ab 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 dab55828..4b8d136a 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 9d749e0d..dc6274ea 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 1d50c7ac..84c38659 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 6646efeb..ff857e7c 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 f5be4d88..4989b442 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 19caea20..10aa969f 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 67c90538..172f5c62 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 eb47aa3e..96eff431 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 c975cf25..1efbc66e 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 69fef1cf..0d56f951 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 8a66a7e7..99dca541 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 31af1175..b358bc27 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 5182015b..07a3bac6 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 73ca4b85..6b96abc7 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 77880ab6..5671f572 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 88782867..44bbd5ed 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 734454f5..607e8879 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 c757d95a..d1593ce8 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 0413d59e..7b62b90f 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 0e1f8b10..fc69c1b6 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 5638a41e..1498f611 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 1f543f30..f50d5f56 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 749b60ca..3e70cd77 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 6b710100..5d7127f6 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 865ddcdb..346abfdc 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 4c60d618..ac1b810a 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 7ac55f7b..aea9b7af 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 5f0440f2..500eb640 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 3831e202..a8c4f1a9 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 6db3ac11..79dea9db 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 72e8165f..60106751 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 8699c08b..55077b76 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 dbbdebbd..50d47757 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 41d740b9..a3b12e80 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 e5745545..47695df8 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 901368a0..e3cb3091 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 9e32bf3c..02c9c01a 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 08a8bf50..fba8cc80 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 fea54186..f44b47bc 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 8c2b3f10..5b051ca2 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 354ba223..e975e0a8 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 bfa917b4..04285d8f 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 eb45fa6d..634b8a50 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 3d41952b..d7058b17 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 59cf8267..7fc5c0d5 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 a78ec0d2..0c94f49e 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 14807f8e..2ea49094 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 1ea94bda..712441c1 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 e88b1d39..2f2def91 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 c0ef57db..5da0ea8c 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 8e299fa3..f4aa60a3 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 ec67dd67..33042ae9 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 326c3832..1c0b04c4 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 551c56c1..1b595864 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 5b3f83d5..864dcc24 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 f3748f51..fed60e7c 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 9fecf9de..c022f5bb 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 0e170786..f9cf4727 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 46ff9d74..e2d0269c 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 fbe37565..3f688cbc 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 d8d9e0f2..d4ae3db8 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 c0f27a25..bef88ee8 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 0dcb2aaf..da5906dc 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 77effeb5..134ad239 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 d22646d7..e1fc0d77 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 4d872592..fcb16c9a 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 9b802b99..93aba60e 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 81b33fad..f0308bb1 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 c6e16e6c..e53eaa6b 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 2ada723c..2b138892 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 4db14265..c4dab526 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 9baf8dad..c9f3de97 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 9e32613e..750068ee 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 aa8803a2..fc5161ff 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 335f9253..2463866a 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 e4879a60..34c5a531 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 3757934a..701a3039 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 104f2547..526ec2dc 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 05d287e2..5c6acca9 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 4b3155a7..e96efa49 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 8a65a6bc..9ce7fa93 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 f17ff25b..d4071e32 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 92d63146..69f4bee5 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 93b55a53..a316b786 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 2c14ce2c..bc11fc5b 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 fc93d369..bb3d1d54 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 dbfe7f4c..25078cb2 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 e5f00988..c3c80ed0 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 b407445a..4bd27ccf 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 2d8e0897..bffb8bb3 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 47ec2f10..25453882 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 829eff41..4211bb1c 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 7f809958..317a50c0 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)】