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 Create2.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 | |
----------------------|----------|----------|----------|----------|----------------|
All files | 100 | 100 | 100 | 100 | |
----------------------|----------|----------|----------|----------|----------------|
Important: 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. This project is in beta, use at your own risk!
Deployments Create2Deployer.sol
- EVM-Based Production Networks:
- Ethereum:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Binance Smart Chain:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum One:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Nova:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Polygon:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Heco:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fantom:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Avalanche:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Gnosis Chain:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Moonriver:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Moonbeam:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Celo:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Aurora:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Harmony:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Autobahn:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fuse Network:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Cronos:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Evmos:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Boba Network:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Ethereum:
- Ethereum Test Networks:
- Additional EVM-Based Test Networks:
- Binance Smart Chain Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism Testnet (Kovan):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Optimism Testnet (Goerli):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Testnet (Rinkeby):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Arbitrum Testnet (Goerli):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Polygon Testnet (Mumbai):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Heco Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fantom Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Avalanche Testnet (Fuji):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Sokol:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Moonbeam Testnet (Moonbase Alpha):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Celo Testnet (Alfajores):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Aurora Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Harmony Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Fuse Network Testnet (Spark):
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Cronos Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Evmos Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Boba Network Testnet:
0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2
- Binance Smart Chain Testnet: