最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

幾句話說清楚函數(shù)調(diào)用和轉(zhuǎn)賬的問題

2023-02-26 20:24 作者:東風(fēng)草綠  | 我要投稿

????函數(shù)調(diào)用與轉(zhuǎn)賬是所有教程(可能夸大),也包括官方文檔,搞得極其混亂的地方。

????函數(shù)調(diào)用和轉(zhuǎn)賬關(guān)系密切,概念上轉(zhuǎn)賬是函數(shù)調(diào)用的附屬物,通過{value,gas}附著在函數(shù)調(diào)用上,無論是自定義函數(shù),合約部署,還是call方法。當(dāng)然是這樣,因為value和calldata都是transaction(message)的數(shù)據(jù)字段。

????下面這個圖是被廣泛使用的:


????但它既不準(zhǔn)確,也不清晰清晰,理解困難。下面我們給出另一種方式


????我們將問題分解成兩部:


????第一步是解析邏輯

????為調(diào)用解析出一個處理這個調(diào)用的合約函數(shù)。這個過程與轉(zhuǎn)賬無關(guān),即與value無關(guān),如下圖:

????這是一個過濾器模式。自定義函數(shù)使用selecor匹配,receive匹配calldata為空的情況,而fallback是最后兜底。receive和自定義的函數(shù)可以任意交換,但fallback必須在最后。當(dāng)然receive和fallback都可能缺席。當(dāng)calldata穿透這個鏈條沒有被攔截,調(diào)用失敗。

????這就是解析邏輯。


第二步是檢查邏輯

????如果被某一函數(shù)攔截了,檢查 是否有value>0而函數(shù)沒有被payble修飾的情況。如果有,調(diào)用被拒絕,否則,執(zhí)行解析出的函數(shù)的邏輯。

????以上邏輯清晰易懂,關(guān)鍵是一定將解析邏輯和檢查邏輯分離。只要混在一起講,一定是一團(tuán)亂麻。遺憾的是,這似乎是所有文章和課程的做法。起碼我看到的是這樣。

幾句話說清楚函數(shù)調(diào)用和轉(zhuǎn)賬的問題的評論 (共 條)

分享到微博請遵守國家法律
综艺| 乳源| 米林县| 东乌| 绥芬河市| 鄂托克旗| 青阳县| 阳曲县| 徐水县| 毕节市| 遵义县| 三门县| 岚皋县| 丰台区| 永平县| 来宾市| 衡山县| 莱西市| 乌拉特中旗| 岚皋县| 叶城县| 轮台县| 林西县| 德令哈市| 上杭县| 治县。| 兴山县| 沙湾县| 抚远县| 伊川县| 永州市| 永兴县| 扬中市| 博爱县| 玉山县| 潞城市| 盐津县| 汨罗市| 红安县| 准格尔旗| 合水县|