These help test how hevm pretty-prints messages to users
Example use:
git clone https://github.com/ethereum/hevm/
cd hevm
nix develop .
git clone https://github.com/msooseth/hevm-result-test-contracts
cd hevm-result-test-contracts
git submodule init
git submodule update
forge build --ast
cd ..
cabal run exe:hevm -- test --root "hevm-result-test-contracts"
You should be getting something like:
Running 1 test(s) for src/contract-allrevert.sol:MyContract
Exploring contract
Explored contract (8 branches)
Checking for reachability of 5 potential property violation(s)
[PASS] prove_add_value(address,uint256)
Running 1 test(s) for src/contract-bail.sol:MyContract
Exploring contract
Explored contract (8 branches)
Checking for reachability of 4 potential property violation(s)
[FAIL] prove_add_value(address,uint256)
Failure: prove_add_value(address,uint256)
No reachable assertion violations, but all branches reverted
Prefix this testname with `proveFail` if this is expected
As provided by Rappie
- https://github.com/balancer-labs/balancer-v2-monorepo/tree/master/pkg/solidity-utils/contracts/math
- https://github.com/balancer-labs/balancer-core/blob/master/contracts/BNum.sol
- https://github.com/Aurigami-Finance/aurigami-smart-contracts/blob/main/contracts/ExponentialNoError.sol
- https://github.com/Aurigami-Finance/aurigami-smart-contracts/blob/main/contracts/Exponential.sol
- https://github.com/dhedge/V2-Public/blob/master/contracts/utils/BalancerLib.sol
- https://github.com/dhedge/V2-Public/blob/master/contracts/utils/DhedgeMath.sol
- https://github.com/mstable/mStable-contracts/tree/master/contracts/shared
- https://github.com/mstable/mStable-contracts/blob/master/contracts/shared/Root.sol
- https://github.com/mstable/mStable-contracts/blob/master/contracts/shared/StableMath.solScientix (0.6.12)
- https://github.com/ScientixFinance/scientix-contract/blob/main/contracts/libraries/FixedPointMath.sol
- https://github.com/DivergenceProtocol/divergence-contracts--legacy/tree/820d5e963e207f326c7dd1ba4619a041b9e5d9e0/contracts/lib
- Gebaseerd op Synthetix
- https://github.com/Synthetixio/synthetix/blob/develop/contracts/Math.sol
- https://github.com/Synthetixio/synthetix/blob/develop/contracts/SafeDecimalMath.sol
- https://github.com/Synthetixio/synthetix/blob/develop/contracts/SignedSafeMath.solMeer?
- https://github.com/Synthetixio/synthetix/tree/develop/contracts
- https://immunefi.com/bounty/resonate/
- Deel van Revest? https://immunefi.com/bounty/revest/
- https://github.com/Revest-Finance/ResonateContracts/blob/public/hardhat/contracts/lib/FullMath.sol
- https://github.com/ajna-finance/ajna-core/blob/main/src/libraries/internal/Loans.sol
- https://github.com/ajna-finance/ajna-core/blob/main/src/libraries/internal/Deposits.sol
- https://github.com/alchemix-finance/v2-foundry/blob/8cbc07b7723050ac7df986b9fea43a2c3baf5bb5/src/libraries/Sets.sol#L4
- https://github.com/alchemix-finance/v2-foundry/blob/8cbc07b7723050ac7df986b9fea43a2c3baf5bb5/src/libraries/Tick.sol#L4
- https://github.com/alchemix-finance/v2-foundry/blob/8cbc07b7723050ac7df986b9fea43a2c3baf5bb5/src/libraries/Limiters.sol
- https://github.com/alchemix-finance/v2-foundry/blob/8cbc07b7723050ac7df986b9fea43a2c3baf5bb5/src/libraries/pools/Pool.sol
- https://github.com/alchemix-finance/v2-foundry/blob/8cbc07b7723050ac7df986b9fea43a2c3baf5bb5/src/libraries/pools/Stake.sol