Dependency Contract used by IGO for registering users buy info and facilitates refund
yarn install && forge installEach time a new dependency is added in lib/ run forge install.
- Run without fuzz testing, use
forge test -vvv --via-ir
If lcov is not installed, run brew install lcov.
Then run: yarn coverage
- Install act
- Load env var
source .env - Run a job:
act -j <job_name> -s SEED(hit ENTER when askedProvide value for 'SEED':)
slither .
Note: Slither has been added to GitHub actions, so it will run automatically on every push and pull requests.
myth a src/IGOVesting.sol --solc-json mythril.config.json (you can use both myth a and mythril analyze)
- Run Docker container:
docker run --rm -it --platform linux/amd64 \
-v $(pwd):/home/igo \
baolean/manticore:latest
-
Go to mounted volume location:
cd /home/igo -
Select Solidity version
solc-select install 0.8.17 && solc-select use 0.8.17
- Run manticore:
manticore src/IGOVesting.sol --contract IGOVesting --solc-remaps="openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/ @openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/"
After install yarn dependencies, run yarn sumo test to run mutation testing.
Note: there issues as we can specificy --ffi parameter when compiling with forge
- Code formatter & linter: prettier, solhint, husky, lint-staged & husky
- Foundry
- Solidity Patterns
- Solcurity Codes
- Secureum posts (101 & 101: Security Pitfalls & Best Practice)
- Smart Contract Security Verification Standard
- SWC