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.
To mine efficient (e.g. 0x00000000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX) or opinionated (0xba5edXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXba5ed) Ethereum addresses for the deployed contract address, we should build a Rust or C++-based tooling that is powered by GPU support using OpenCL features. CPU support can also be part of it.
~$ createxcrunch -h
usage: createxcrunch [-h] [-V] [-f factory_address] [-pdp permissioned_deploy_protection] [-c caller_address] [-crp crosschain_redeploy_protection] [-z minimum_leading_zeros] [-m matching_pattern] [-o output_path] input_file [path_to_JSON_file]
positional argument:
input_file Contract creation code as JSON file.
generic program information:
-h, --help Show this help message and exit.
-V, --version Show program's version number and exit.
salt crunching configuration options:
-f, --factory Set the factory address. (Optional, defaults to `0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed`).
-pdp, --permissioned Set a permissioned deploy protection. (Optional, defaults to `false`).
-c, --caller Set the caller address in checksummed hex format. Required if `pdp = true`, otherwise input will be ignored.
-crp, --crosschain Set a cross-chain redeploy protection. (Optional, defaults to `false`).
-z, --zeros Minimum number of leading zeros. Example: `-z 4`. Cannot be used in combination with `-m`. (Optional, defaults to `0`).
-m, --matching Matching pattern for the contract address. Example: `-m ba5edXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXba5ed`. Cannot be used in combination with `-z`. (Optional, defaults to random pattern).
general output control:
-o, --output Set the output path for the results.
Describe the desired feature:
To mine efficient (e.g.
0x00000000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
) or opinionated (0xba5edXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXba5ed
) Ethereum addresses for the deployed contract address, we should build a Rust or C++-based tooling that is powered by GPU support using OpenCL features. CPU support can also be part of it.Related issues:
Possible specification