create2deployer

Helper smart contract to make easier and safer usage of the `CREATE2` EVM opcode.

MIT License

Stars
256

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 Create2Deployer deployments are permissionless as I have renounced the ownership accordingly.

Badges
Extracted from project README
🕵️‍♂️ Test smart contracts License: MIT
Related Projects