无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

合約調(diào)用的邊界情況

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

????邊界情況總是較少受到關(guān)注,更容易被忽視,但又對理解問題很關(guān)鍵。solidity合約調(diào)用的問題也是如此,幾乎所有教程、文檔都不提及。這對學(xué)習(xí)者、開發(fā)者很不利。所以說一下。

  1. 一個(gè)非合約的地址能夠接受任何形式上正確的transaction。這實(shí)際上將沒有代碼的一個(gè)address當(dāng)成消極被動(dòng)的實(shí)體,一個(gè)白癡,它不懂如何拒絕。你去調(diào)用一個(gè)合約函數(shù),地址搞錯(cuò)了,用了一個(gè)非合約地址,不要指望交易會revert。它總是成功的。

  2. 上一條說得非合約地址,并不意味著它是來自于一個(gè)公司鑰對。它可能是任何一個(gè)160位的數(shù)據(jù)塊。向這種地址轉(zhuǎn)賬,錢就進(jìn)了黑洞。數(shù)量上這種黑洞地址遠(yuǎn)多于真實(shí)的外部賬號地址。黑洞占統(tǒng)治地位。

  3. 發(fā)送到有代碼的合約地址的交易,即合約調(diào)用,并不總是被接受(我們這里說的是被接受,并不一定成功執(zhí)行),取決于合約的函數(shù)安排。自定義的函數(shù)只接受對應(yīng)的selector的調(diào)用,receive用于攔截calldata為空的情況,fallback在receive之后兜底。如果value大于0,則要看上述鏈條解析出的接受者是否是payble。一個(gè)transaction在一個(gè)合約中可能找不到接受函數(shù),這時(shí)調(diào)用失敗。非合約地址就不會發(fā)生這種失敗。這個(gè)過程很多開發(fā)者并未徹底搞清楚。

上面幾條列一下,以為記


合約調(diào)用的邊界情況的評論 (共 條)

分享到微博請遵守國家法律
宁城县| 建湖县| 安乡县| 鞍山市| 镇安县| 紫云| 南昌市| 兴国县| 鲁山县| 莱西市| 鱼台县| 永修县| 桦南县| 保定市| 隆化县| 伊通| 华容县| 嘉峪关市| 遂溪县| 福清市| 磴口县| 富源县| 华安县| 大兴区| 平乐县| 辽阳县| 曲松县| 闽侯县| 通许县| 连山| 汝阳县| 衡山县| 青龙| 沂源县| 西和县| 菏泽市| 原阳县| 富平县| 徐汇区| 万盛区| 平安县|