iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
影片教學

30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛系列 第 25

Solidity 入門走到飛🚀-【Day25】Create2 - 預測合約地址

  • 分享至 

  • xImage
  •  

影片教學

Yes

主要內容

CREATE2 操作碼讓我們能夠在智能合約部署前預測合約的地址。Uniswap 創建 Pair 合約時使用的是 CREATE2 而不是 CREATE。

CREATE2 確保,如果創建者使用 CREATE2,並提供相同的 salt 和合約 bytecode,那麼合約將被部署在相同的地址上。

使用 CREATE2 的方式與之前介紹的 CREATE 類似,只需實例化一個新合約對象,並傳入新合約構造函數所需的參數,同時還需要傳入 salt 參數。

1.CREATE 地址計算方式

創建者的地址
通常是部署合約的錢包地址或其他合約地址。

nonce
該地址發送的交易總數,對於合約帳戶來說是創建的合約總數,每創建一個合約 nonce + 1。

新地址 = hash(創建者地址, nonce)

2.CREATE2 址計算方式

0xFF
一個常數,用於避免與 CREATE 衝突。

創建者地址
通常是部署合約的錢包地址或其他合約地址。

salt
由創建者提供的數值。

bytecode
待部署合約的字節碼。

新地址 = hash("0xFF", 創建者地址, salt, bytecode)

相關連結

WTF Solidity Create2


上一篇
Solidity 入門走到飛🚀-【Day24】在合約中創建新合約 - new
下一篇
Solidity 入門走到飛🚀-【Day26】刪除合約 - selfdestruct
系列文
30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言