create2crunch
create2crunch copied to clipboard
Compatibility with `CreateX` `salt` scheme
Background
CreateX is now live on 56 EVM chains (see also createx.rocks). TL;DR: CreateX is a factory smart contract to make easier and safer usage of the CREATE and CREATE2 EVM opcodes as well as of CREATE3-based (i.e. without an initcode factor) contract creations.
CreateX salt scheme
The full documentation can be viewed here.
CreateX implements some special features:
- Permissioned Deploy Protection
- Cross-Chain Redeploy Protection
The salt value implements these different safeguarding mechanisms depending on the encoded values in the salt (|| stands for byte-wise concatenation):
=> salt (32 bytes) = 0xbebebebebebebebebebebebebebebebebebebebe||ff||1212121212121212121212
- The first 20 bytes (i.e.
bebebebebebebebebebebebebebebebebebebebe) may be used to implement a permissioned deploy protection by setting them equal tomsg.sender, - The 21st byte (i.e.
ff) may be used to implement a cross-chain redeploy protection by setting it equal to0x01, - The last random 11 bytes (i.e.
1212121212121212121212) allow for $2^{88}$ bits of entropy for mining a salt.
Feature Request
Make create2crunch compatible with CreateX's salt scheme. I'm pretty sure some of the Foundry contributors can be motivated to tackle this challenge :). Cc: @mds1 @Vectorized
See createXcrunch for a dedicated CreateX cruncher implementation.