- Work around ``BadFunctionCallOutput``: Insufficient bytes exception: A special case of eth_call returning an empty result.
This happens if you call a smart contract for a block number
for which the node does not yet have data or is still processing data.
This happens often on low-quality RPC providers (Ankr)
that route your call between different nodes between subsequent calls, and those nodes
see a different state of EVM.
Down the line, not in the middleware stack, this would lead to `BadFunctionCallOutput` output. We work around this by detecting this condition in the middleware stack and triggering the middleware fall-over node switch if the condition is detected.
- Set `FallbackProvider` to have the default `4` blocks latency for all `latest` calls,
in `get_default_block_tip_latency()` so that fail over switches are more robust.