We use Foundry to manage contract dependencies (actually, Foundry is using .gitmodules
). However, we still add contract dependencies to package.json
to get vulnerability alerts using Dependabot.
Therefore, please make sure you update both .gitmodules
and package.json
when changing contract dependencies.
Make sure you have .env
file at project root with the following variables:
OPTIMISM_WEB3_ENDPOINT_ARCHIVE // Optimism archive endpoint
For unit tests, basically we follow the best practices of Foundry.
If you want to test a case that expecting a revert, add _reverts
suffix to the function name, example:
function test_deposit_reverts() public {
// ...
}
If you are not sure when to merge into main
, please reference the doc.
To install all dependencies:
npm ci
forge install
To compile contracts:
npm run build
# or
forge build
To run all tests:
npm run test
# or
forge test