The Greenhouse
contract provides a contract factory with deterministic addresses solely depending on a given salt.
To remove a contract's initcode factor from the address generation, Greenhouse
uses CREATE3.
The contract uses chronicle-std/Auth
's Auth
module to grant addresses access to protected functions. chronicle-std
's Toll
module is utilized to determine which addresses are eligible to plant new contracts.
Install module via Foundry:
$ forge install chronicleprotocol/greenhouse@v1
The project uses the Foundry toolchain. You can find installation instructions here.
Setup:
$ git clone https://github.com/chronicleprotocol/greenhouse
$ cd greenhouse
$ forge install
Run tests:
$ forge test
$ forge test -vvvv # Run with full stack traces
$ FOUNDRY_PROFILE=intense forge test # Run in intense mode
Lint:
$ forge fmt [--check]
Update gas snapshots:
$ forge snapshot [--check]