https://github.com/chronicleprotocol/greenhouse
A Greenhouse to plant contracts via CREATE3
https://github.com/chronicleprotocol/greenhouse
Last synced: 5 months ago
JSON representation
A Greenhouse to plant contracts via CREATE3
- Host: GitHub
- URL: https://github.com/chronicleprotocol/greenhouse
- Owner: chronicleprotocol
- License: mit
- Created: 2023-06-20T10:54:41.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-19T16:17:50.000Z (10 months ago)
- Last Synced: 2025-10-10T22:30:07.590Z (9 months ago)
- Language: Solidity
- Homepage:
- Size: 27.3 KB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Greenhouse • [](https://github.com/chronicleprotocol/greenhouse/actions/workflows/unit-tests.yml) [](https://opensource.org/licenses/MIT)
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](./src/libs/LibCREATE3.sol).
The contract uses [`chronicle-std/Auth`](https://github.com/chronicleprotocol/chronicle-std)'s `Auth` module to grant addresses access to protected functions. [`chronicle-std`](https://github.com/chronicleprotocol/chronicle-std)'s `Toll` module is utilized to determine which addresses are eligible to plant new contracts.
## Installation
Install module via Foundry:
```bash
$ forge install chronicleprotocol/greenhouse@v1
```
## Contributing
The project uses the Foundry toolchain. You can find installation instructions [here](https://getfoundry.sh/).
Setup:
```bash
$ git clone https://github.com/chronicleprotocol/greenhouse
$ cd greenhouse
$ forge install
```
Run tests:
```bash
$ forge test
$ forge test -vvvv # Run with full stack traces
$ FOUNDRY_PROFILE=intense forge test # Run in intense mode
```
Lint:
```bash
$ forge fmt [--check]
```
Update gas snapshots:
```bash
$ forge snapshot [--check]
```
## Dependencies
- [chronicleprotocol/chronicle-std@v2](https://github.com/chronicleprotocol/chronicle-std/tree/v2)