我们有一家工厂使用create2创建克隆,使用OpenZeppelin的克隆(https://docs.openzeppelin.com/contracts/4.x/api/proxy#Clones-cloneDeterministic-address-bytes32-)。是否有可能知道create2是否已经被调用时具有相同的实体参数?也就是说,如果给出了来自predictDeterministicAddress()的地址,是否有一种方法可以判断是否已经部署了代码而不进行还原?
发布于 2022-10-31 06:40:37
您可以检查地址是否有关联的代码:account.code.length > 0。
OpenZeppelin也是这样做的。请注意,对于此功能有一些次要的警告,请检查其功能注释:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/36951d58386b9fee81b237e6c6626c9115ccef3a/contracts/utils/Address.sol#L36
https://ethereum.stackexchange.com/questions/138458
复制相似问题