#
Bugs To Find
Balance Extraction Detect whether the attackers can steal ETH / native tokens from the contract.
Token Extraction Detect whether the attackers can steal ERC20 / ERC721 tokens from the contract.
Uniswap Pair Issues Identify misuse of Uniswap pair that could lead to price manipulation attacks.
ChainLink Issues Identify misuse of Chainlink that could lead to a range of different attacks.
Arbitrary Selfdestruct Detect whether the attackers can make contract self-destruct.
FuzzLand Violations
You can insert emit AssertionFailed(string)
into your code to indicate that the invariant is broken and the violation has happened. Blaz uses AssertionFailed(string)
event to determine whether a violation has happened.
Echidna Violations You can insert Echidna invariants into your code. Blaz will use those invariant functions to determine whether a violation has happened.
Example:
function echidna_bug1() public returns (bool) {
return WMATICV2.totalSupply() == WMATICV2.balance();
}
Scribble Violations You can insert Scribble assertions into your code and Blaz would check those assertions. Note that you need to upload the Scribble instrumented file to Blaz.