五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)賬的問題的評論 (共 條)

分享到微博請遵守國家法律
剑河县| 古蔺县| 霍林郭勒市| 平阳县| 乐安县| 腾冲县| 白沙| 桃园县| 称多县| 任丘市| 仁布县| 应城市| 嘉定区| 习水县| 杨浦区| 乌拉特中旗| 怀来县| 来安县| 无极县| 宿州市| 东台市| 房山区| 土默特左旗| 博客| 琼中| 万全县| 广宁县| 吴堡县| 炎陵县| 陵水| 诸城市| 松原市| 靖西县| 墨竹工卡县| 金堂县| 宁化县| 竹北市| 新民市| 新乡县| 永泰县| 礼泉县|