跳到主要内容

create-create2

合约创建:CREATE 与 CREATE2

CREATE(传统)

  • 合约地址:addr = keccak(rlp(sender, nonce))[12:]
  • 流程:执行 init code,返回值作为 runtime code 存储;部署失败回滚

CREATE2(EIP-1014)

  • 合约地址:addr = keccak(0xff || sender || salt || keccak(init_code))[12:]
  • 优势:
    • 地址可预测(与 nonce 无关),便于“先知晓地址再部署”
    • 工厂合约、重部署/升级等模式中常用

注意:同一 sender+salt+init_code 地址唯一;若已存在则创建失败。