WTF Solidity智能合約教程(入門篇)
0xAA
- 出版商: 科學出版
- 出版日期: 2023-08-01
- 定價: $408
- 售價: 8.5 折 $347
- 語言: 簡體中文
- 頁數: 175
- ISBN: 7030758889
- ISBN-13: 9787030758880
-
相關分類:
區塊鏈 Blockchain、程式語言
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$2,880$2,736 -
$403PostgreSQL 9 Administration Cookbook, 2/e (中文版)
-
$560$476 -
$294$279 -
$407精通 Elastic Stack (Mastering Elastic Stack)
-
$650$507 -
$650$507 -
$828$787
相關主題
商品描述
本書內容源自GitHub上發布的“WTF Solidity教程”,豐富且實用,用通俗易懂的語言描述Solidity的基礎知識,通過實例和代碼示例,深入淺出地介紹Solidity編程的關鍵概念,以及智能合約的優化、安全等高級主題,讓讀者能夠編寫出更安全、更高效的智能合約。
目錄大綱
目錄
第1講從HelloWeb3開始
1.1Solidity簡述1
1.2開發工具:remix1
1.3第一個Solidity程序2
1.4編譯並部署代碼3
1.5總結4
第2講值類型
2.1布爾型5
2.2整型7
2.3地址8
2.4字節數組9
2.5枚舉9
2.6總結10
第3講函數
3.1Solidity中的函數11
3.2到底什麽是pure和view?12
3.3代碼實現13
3.4測試payable關鍵字聲明的函數15
3.5總結17
第4講函數輸出
4.1返回值關鍵字return和returns18
4.2命名式返回19
4.3解構式賦值19
4.4總結20
第5講變量的數據存儲和作用域
5.1Solidity中的引用類型21
5.2數據位置21
5.3變量的作用域24
5.4變量的單位和換算26
5.5總結30
第6講數組和結構體
6.1數組31
6.2結構體34
6.3總結37
第7講映射類型
7.1映射的聲明38
7.2映射的規則38
7.3映射的底層機制40
7.4總結40
第8講變量的初始值
8.1值類型的初始值41
8.2引用類型的初始值43
8.3delete操作符43
8.4總結44
第9講常量和不變量
9.1constant關鍵字45
9.2immutable關鍵字46
9.3總結47
第10講控制流及其實踐
10.1控制流48
10.2實例:用Solidity實現插入排序50
10.3總結53
第11講構造函數和修飾器
11.1構造函數54
11.2修飾器55
11.3onlyOwner修飾器的演示56
11.4總結57
第12講事件
12.1事件58
12.2EVM日誌59
12.3在remix上演示Solidity事件和日誌60
12.4總結62
第13講繼承
13.1繼承的基本概念63
13.2簡單繼承63
13.3多重繼承65
13.4修飾器的繼承66
13.5構造函數的繼承68
13.6調用父合約的函數69
13.7鑽石繼承71
13.8總結73
第14講抽象合約和接口
14.1抽象合約74
14.2接口75
14.3應用:ERC721標準接口的實現75
14.4總結79
第15講異常
15.1異常80
15.2在remix上演示異常82
15.3三種方法的gas消耗比較83
15.4總結84
第16講函數重載
16.1函數重載的例子85
16.2實參匹配(argument matching)86
16.3總結87
第17講庫合約
17.1庫合約88
17.2示例:Strings庫合約88
17.3使用庫合約的方法91
17.4總結92
第18講導入其他合約
18.1import關鍵字94
18.2測試導入結果95
18.3總結96
第19講接收ETH
19.1接收ETH的回調函數receive()97
19.2回退函數fallback()98
19.3兩種回調函數的區別99
19.4在remix上演示回調函數99
19.5總結101
第20講發送ETH
20.1接收ETH的合約102
20.2發送ETH的合約103
20.3總結108
第21講調用其他合約
21.1調用已部署合約109
21.2編寫目標合約109
21.3調用目標合約110
21.4總結115
第22講call函數
22.1call函數及其使用場景116
22.2準備目標合約117
22.3用call函數調用目標合約118
22.4總結122
第23講delegatecall函數
23.1delegatecall函數123
23.2delegatecall的應用場景124
23.3delegatecall的用法示例125
23.4在remix上展示delegatecall的用法126
23.5總結129
第24講在合約中創建新合約
24.1基於CREATE操作碼生成合約130
24.2示例:一個簡化版的Uniswap130
24.3在remix上演示合約的創建133
24.4總結134
第25講CREATE2操作碼
25.1CREATE操作碼如何計算新合約地址135
25.2CREATE2操作碼如何計算新合約地址135
25.3示例:一個簡化版的Uniswap2136
25.4在remix上演示基於CREATE2創建合約140
25.5CREATE2操作碼的實際應用場景141
25.6總結141
第26講刪除合約
26.1selfdestruct命令142
26.2示例:DeleteContract合約142
26.3在remix上演示刪除合約143
26.4註意事項145
26.5總結145
第27講ABI的編碼和解碼
27.1ABI編碼146
27.2ABI解碼149
27.3在remix上展示ABI編碼和解碼150
27.4ABI的使用場景150
27.5總結152
第28講哈希函數
28.1哈希函數的性質和應用153
28.2keccak256函數154
28.3總結156
第29講函數選擇器
29.1函數選擇器157
29.2總結160
第30講捕獲異常
30.1try-catch實戰162
30.2總結167
附錄AERC20代幣標準和實現
A.1ERC20代幣標準168
A.2IERC20接口合約168
A.3ERC20代幣的實現171
A.4發行ERC20代幣174
A.5總結175
附錄B貢獻者名單176
第1講從HelloWeb3開始
1.1Solidity簡述1
1.2開發工具:remix1
1.3第一個Solidity程序2
1.4編譯並部署代碼3
1.5總結4
第2講值類型
2.1布爾型5
2.2整型7
2.3地址8
2.4字節數組9
2.5枚舉9
2.6總結10
第3講函數
3.1Solidity中的函數11
3.2到底什麽是pure和view?12
3.3代碼實現13
3.4測試payable關鍵字聲明的函數15
3.5總結17
第4講函數輸出
4.1返回值關鍵字return和returns18
4.2命名式返回19
4.3解構式賦值19
4.4總結20
第5講變量的數據存儲和作用域
5.1Solidity中的引用類型21
5.2數據位置21
5.3變量的作用域24
5.4變量的單位和換算26
5.5總結30
第6講數組和結構體
6.1數組31
6.2結構體34
6.3總結37
第7講映射類型
7.1映射的聲明38
7.2映射的規則38
7.3映射的底層機制40
7.4總結40
第8講變量的初始值
8.1值類型的初始值41
8.2引用類型的初始值43
8.3delete操作符43
8.4總結44
第9講常量和不變量
9.1constant關鍵字45
9.2immutable關鍵字46
9.3總結47
第10講控制流及其實踐
10.1控制流48
10.2實例:用Solidity實現插入排序50
10.3總結53
第11講構造函數和修飾器
11.1構造函數54
11.2修飾器55
11.3onlyOwner修飾器的演示56
11.4總結57
第12講事件
12.1事件58
12.2EVM日誌59
12.3在remix上演示Solidity事件和日誌60
12.4總結62
第13講繼承
13.1繼承的基本概念63
13.2簡單繼承63
13.3多重繼承65
13.4修飾器的繼承66
13.5構造函數的繼承68
13.6調用父合約的函數69
13.7鑽石繼承71
13.8總結73
第14講抽象合約和接口
14.1抽象合約74
14.2接口75
14.3應用:ERC721標準接口的實現75
14.4總結79
第15講異常
15.1異常80
15.2在remix上演示異常82
15.3三種方法的gas消耗比較83
15.4總結84
第16講函數重載
16.1函數重載的例子85
16.2實參匹配(argument matching)86
16.3總結87
第17講庫合約
17.1庫合約88
17.2示例:Strings庫合約88
17.3使用庫合約的方法91
17.4總結92
第18講導入其他合約
18.1import關鍵字94
18.2測試導入結果95
18.3總結96
第19講接收ETH
19.1接收ETH的回調函數receive()97
19.2回退函數fallback()98
19.3兩種回調函數的區別99
19.4在remix上演示回調函數99
19.5總結101
第20講發送ETH
20.1接收ETH的合約102
20.2發送ETH的合約103
20.3總結108
第21講調用其他合約
21.1調用已部署合約109
21.2編寫目標合約109
21.3調用目標合約110
21.4總結115
第22講call函數
22.1call函數及其使用場景116
22.2準備目標合約117
22.3用call函數調用目標合約118
22.4總結122
第23講delegatecall函數
23.1delegatecall函數123
23.2delegatecall的應用場景124
23.3delegatecall的用法示例125
23.4在remix上展示delegatecall的用法126
23.5總結129
第24講在合約中創建新合約
24.1基於CREATE操作碼生成合約130
24.2示例:一個簡化版的Uniswap130
24.3在remix上演示合約的創建133
24.4總結134
第25講CREATE2操作碼
25.1CREATE操作碼如何計算新合約地址135
25.2CREATE2操作碼如何計算新合約地址135
25.3示例:一個簡化版的Uniswap2136
25.4在remix上演示基於CREATE2創建合約140
25.5CREATE2操作碼的實際應用場景141
25.6總結141
第26講刪除合約
26.1selfdestruct命令142
26.2示例:DeleteContract合約142
26.3在remix上演示刪除合約143
26.4註意事項145
26.5總結145
第27講ABI的編碼和解碼
27.1ABI編碼146
27.2ABI解碼149
27.3在remix上展示ABI編碼和解碼150
27.4ABI的使用場景150
27.5總結152
第28講哈希函數
28.1哈希函數的性質和應用153
28.2keccak256函數154
28.3總結156
第29講函數選擇器
29.1函數選擇器157
29.2總結160
第30講捕獲異常
30.1try-catch實戰162
30.2總結167
附錄AERC20代幣標準和實現
A.1ERC20代幣標準168
A.2IERC20接口合約168
A.3ERC20代幣的實現171
A.4發行ERC20代幣174
A.5總結175
附錄B貢獻者名單176