Calls the afterInvariant()
function on a contract.
Returns call result and if call succeeded.
The state after the call is not persisted.
Calls the invariant function and returns call result and if succeeded.
Checks if the given call sequence breaks the invariant.
Collects data from call for fuzzing. However, it first verifies that the sender is not an EOA
before inserting it into the dictionary. Otherwise, we flood the dictionary with
randomly generated addresses.
Replays the error case, shrinks the failing sequence and collects all necessary traces.
Replays a call sequence for collecting logs and traces.
Returns counterexample to be used when the call sequence is a failed scenario.