Openzeppelin

如何判斷程式碼是否已由 create2 在某個地址部署

  • October 31, 2022

我們有一個create2使用 OpenZeppelin 的複製(https://docs.openzeppelin.com/contracts/4.x/api/proxy#Clones-cloneDeterministic-address-bytes32-)創建複製的工廠。是否有可能知道 create2 是否已經在solidity中使用相同的參數被呼叫?即,如果給出來自 的地址predictDeterministicAddress(),有沒有辦法判斷那裡是否已經部署了沒有還原的程式碼?

您可以檢查該地址是否有關聯程式碼:account.code.length > 0

這也是 OpenZeppelin 的做法。請注意,此功能有一些小警告,請查看其功能的註釋:https ://github.com/OpenZeppelin/openzeppelin-contracts/blob/36951d58386b9fee81b237e6c6626c9115ccef3a/contracts/utils/Address.sol#L36

引用自:https://ethereum.stackexchange.com/questions/138458