Helper smart contract to make easier and safer usage of the CREATE2
Ethereum Virtual Machine (EVM) opcode. CREATE2
can be used to compute in advance the address where a smart contract will be deployed, which allows for interesting new mechanisms known as counterfactual interactions.
Since Hardhat implements great features for Solidity debugging like Solidity stack traces, console.log
, and explicit error messages when transactions fail, we leverage Hardhat for testing:
npm run test
This project repository implements a test coverage plugin. Simply run:
npm run coverage
The written tests available in the file Create2Deployer.test.ts
achieve a test coverage of 100%:
--------------------------------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
--------------------------------|----------|----------|----------|----------|----------------|
contracts\ | 100 | 100 | 100 | 100 | |
Create2Deployer.sol | 100 | 100 | 100 | 100 | |
Create2DeployerDeprecated.sol | 100 | 100 | 100 | 100 | |
--------------------------------|----------|----------|----------|----------|----------------|
All files | 100 | 100 | 100 | 100 | |
--------------------------------|----------|----------|----------|----------|----------------|
Note
A test coverage of 100% does not mean that there are no vulnerabilities. What really counts is the quality and spectrum of the tests themselves!
Deployments Create2Deployer
Important
As of 8 December 2023, all non-deprecated Create2Deployer
deployments are permissionless as I have renounced the ownership accordingly.
- EVM-Based Production Networks:1
- Ethereum:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Binance Smart Chain:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum One:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Nova:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Polygon:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Polygon zkEVM:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Heco:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fantom:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Avalanche:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Gnosis Chain:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Moonriver:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Moonbeam:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Celo:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Aurora:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Harmony:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Autobahn (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fuse Network:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Cronos:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Evmos:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Boba Network:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Canto:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Mantle:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Scroll:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Linea:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Zora:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- LUKSO:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Manta Pacific:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Ethereum:
- Ethereum Test Networks:
- Rinkeby (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Ropsten (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Kovan (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Goerli:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Sepolia:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Holešky (Holešovice):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Rinkeby (
- Additional EVM-Based Test Networks:
- Binance Smart Chain Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism Testnet (Kovan;
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism Testnet (Goerli):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Testnet (Rinkeby;
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Testnet (Goerli):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Polygon Testnet (Mumbai):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Polygon Testnet (zkEVM):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Heco Testnet (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fantom Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Avalanche Testnet (Fuji):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Sokol (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Gnosis Chain Testnet (Chiado):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Moonbeam Testnet (Moonbase Alpha):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Celo Testnet (Alfajores):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Aurora Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Harmony Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Autobahn Testnet (
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fuse Network Testnet (Spark):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Cronos Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Evmos Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Boba Network Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Canto Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Base Testnet (Goerli):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Base Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Mantle Testnet (Wadsley):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Filecoin Testnet (Hyperspace;
⚠️ Deprecated):0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Filecoin Testnet (Calibration):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Scroll Testnet (Alpha):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Scroll Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Linea Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Zora Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- LUKSO Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Manta Pacific Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Shardeum Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arthera Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Binance Smart Chain Testnet:
Footnotes
-
Please refer to this issue why the contract
Create2Deployer
was not deployed on the Base mainnet. ↩