# 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.