中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

以太坊賬戶類型怎么判斷

發布時間:2022-01-15 14:49:06 來源:億速云 閱讀:152 作者:iii 欄目:互聯網科技

本篇內容介紹了“以太坊賬戶類型怎么判斷”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

以太坊中有兩類賬戶,它們共用同一個地址空間。

  • 外部賬戶,該類賬戶被公鑰-私鑰對控制(人類)。

  • 合約賬戶,該類賬戶被存儲在賬戶中的代碼控制。

外部賬戶的地址是由公鑰決定的,合約賬戶的地址是在創建該合約時確定的。

合約賬戶存儲了代碼,外部賬戶則沒有,除了這點以外,這兩類賬戶對于EVM來說是一樣的。 每個賬戶有一個key-value形式的持久化存儲。其中key和value的長度都是256比特,名字叫做storage.

另外,每個賬戶都有一個以太幣余額(單位是“Wei"),該賬戶余額可以通過向它發送帶有以太幣的交易來改變。

web3實現

使用web3.eth.getCode()方法可以判斷一個給定的地址的賬戶是外部賬戶,還是合約賬戶。這個函數返回指定地址的代碼,由于外部賬戶沒有代碼,因此僅僅會返回0x,而合約賬戶將會返回0x開頭的16進制代碼字符串。例如:

var code = web3.eth.getCode("0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8")
if(code === '0x') console.log('外部賬戶')
else console.log('合約賬戶')

在solidity中實現

在合約內,可以使用EVM匯編代碼來獲取指定地址處的代碼大小,顯然,普通賬戶地址將返回0

contract EzDemo {
    function isContract(address addr) returns (bool) {
    uint size;
    assembly { size := extcodesize(addr) }
    return size > 0;
  }
}

“以太坊賬戶類型怎么判斷”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

利辛县| 西安市| 宿州市| 浏阳市| 大理市| 瓦房店市| 辽宁省| 远安县| 衢州市| 原平市| 竹北市| 上饶县| 井研县| 泾阳县| 亚东县| 安龙县| 蒲江县| 开封市| 天祝| 武威市| 衡东县| 建昌县| 通渭县| 东乌| 嘉荫县| 若尔盖县| 昆山市| 宣武区| 肥西县| 汉川市| 托克逊县| 儋州市| 新营市| 安新县| 永定县| 铜陵市| 凤山县| 宜君县| 汨罗市| 南宁市| 杭锦旗|