This PR adds support for makerdao's Multicall2 contract. This is useful in use cases where some call in the batch might fail, but we want the mutlicall to try and execute all included calls and not just fail.
In summary, Multicall can take an extra argument in it's constructor, specifying whether to use the new tryBlockAndAggregate contract method (require_success=False) or keep the old logic as-is. In the former case, return argument handlers receive two arguments:
A boolean flag, indicating the return status of the call, and
The return value if the call was successful, else None
This PR adds support for makerdao's Multicall2 contract. This is useful in use cases where some call in the batch might fail, but we want the mutlicall to try and execute all included calls and not just fail.
In summary, Multicall can take an extra argument in it's constructor, specifying whether to use the new
tryBlockAndAggregate
contract method (require_success=False
) or keep the old logic as-is. In the former case, return argument handlers receive two arguments: