[chronik] implement electrum RPC method blockchain.scripthash.get_history
Summary:
See https://electrum-cash-protocol.readthedocs.io/en/latest/protocol-methods.html#blockchain.scripthash.get_history
Notable difference between this implementation and Fulcrum:
- we return an error if the history length is excessive, Fulcrum returns an empty history
- we don't check if unconfirmed transactions have unconfirmed parents (Fulcrum would set a height of -1 in this case)
- for now we don't implement Fulcrum's pagination parameters (from_height, to_height) (so we will need to return a version number < 1.5.1)
I do not expect we will ever use the pagination parameters, as specifying a block range does not allow to anticipate in advance the size of the returned history.
Test Plan: ninja check-functional
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D17664