create2deployer
create2deployer copied to clipboard
Helper smart contract to make easier and safer usage of the `CREATE2` EVM opcode.
CREATE2 Deployer
[!TIP] I have built a versatile, trustless, and stateless successor to
Create2Deployer:CreateX. Check it out! 🫡
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.
Unit Tests
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:
pnpm run test
Test Coverage
This project repository implements a test coverage plugin. Simply run:
pnpm 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
Create2Deployerdeployments are permissionless as I have renounced the ownership accordingly.
- EVM-Based Production Networks:
- 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 - Base:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Mantle:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Scroll:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Linea:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Zora:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - LUKSO:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Manta Pacific:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Kroma:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Kava:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - X Layer:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Core:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Telos:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Rootstock:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Ethereum:
- Ethereum Test Networks:
- Rinkeby (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Ropsten (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Kovan (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Goerli (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Sepolia:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Holešky (Holešovice):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Rinkeby (⚠️ Deprecated):
- 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; ⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Arbitrum Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Polygon Goerli Testnet (Mumbai; ⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Polygon Sepolia Testnet (Amoy):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Polygon Testnet (zkEVM; ⚠️ Deprecated):
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; ⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Mantle Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Filecoin Testnet (Hyperspace; ⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Filecoin Testnet (Calibration):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Scroll Testnet (Alpha; ⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Scroll Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Linea Testnet (Goerli; ⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Linea Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Zora Testnet (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - LUKSO Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Manta Pacific Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Shardeum Testnet (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Arthera Testnet (⚠️ Deprecated):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Blast Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Kroma Testnet (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Sei Arctic Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - X Layer (Sepolia):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Core Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Telos Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 - Rootstock Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Binance Smart Chain Testnet: