Cellar contracts for the Sommelier Network.
Getting Started
Before attempting to setup the repo, first make sure you have Foundry installed and updated, which can be done here.
npm run setup
Building
Install libraries with Foundry which work with Hardhat:
forge install rari-capital/solmate # Already in this repo, just an example.
Whenever you install new libraries using Foundry, make sure to update your remappings.txt
file. This repo uses hardhat-preprocessor
and the remappings.txt
file to allow Hardhat to resolve libraries you install with Foundry.
Testing
Before running test, make sure to go to foundry.toml
and set eth_rpc_url
to your Alchemy HTTPS URL and etherscan_api_key
to your Etherscan API key. This is required for tests that run against a fork of mainnet.
Run tests with either Hardhat or Foundry:
forge test
# or
npx hardhat test
Run tests on forked chains with Foundry:
forge test --fork-url ALCHEMY_API_KEY
Run tests for both Hardhat and Foundry:
npm run test
Tasks
Use Hardhat's task framework:
npx hardhat compile
# Before running the next command, go to `hardhat.config.ts` and uncomment "./tasks" imports.
# This is initially commented to fix initial compile errors with Hardhat.
npx hardhat example