Fetching for block ranges events with `eth_getLogs`
There's a common technique used by developers when scanning for smart contract logs - first, call ethblockNumber and then used it as a toBlock argument in the ethgetLogs request. By doing this it's easy to control the block ranges that you're scanning. However, because of the lack of standard in JSON-RPC regarding how clients handle an empty vs a missing block in ethgetLogs, this could expose a bit of inconsistency around the chain head. We mimic Geth's behaviour (and many other blockchain clients for that matter), which is to return an empty list when the block is missing. So the question is: how can I be sure that I have received all the logs from that block range? Or, more accurately, how can I make sure that whatever serves my ethgetLogs request knows about the last block I've retrieved via eth_blockNumber?