Replace WatchEventProvider with chain::Filter
authorJeffrey Czyz <jkczyz@gmail.com>
Thu, 30 Jul 2020 17:27:41 +0000 (10:27 -0700)
committerJeffrey Czyz <jkczyz@gmail.com>
Thu, 1 Oct 2020 05:40:33 +0000 (22:40 -0700)
commit98bc46beb9d364915c7c43c96b154b0d5efa0ba3
tree731ec23dac790e1ec21c865db6364c8ff742ea1c
parent1599a13643d893277eb3921c1bb15297547eb030
Replace WatchEventProvider with chain::Filter

WatchEventProvider served as a means for replacing ChainWatchInterface.
However, it requires users to explicitly fetch WatchEvents, even if not
interested in them. Replace WatchEventProvider by chain::Filter, which
is an optional member of ChainMonitor. If set, interesting transactions
and output spends are registered such that blocks containing them can be
retrieved from a chain source in an efficient manner.

This is useful when the chain source is not a full node. For Electrum,
it allows for pre-filtered blocks. For BIP157/158, it serves as a means
to match against compact filters.
ARCH.md
fuzz/src/chanmon_consistency.rs
fuzz/src/full_stack.rs
lightning-net-tokio/src/lib.rs
lightning/src/chain/mod.rs
lightning/src/ln/channelmonitor.rs
lightning/src/ln/functional_test_utils.rs
lightning/src/ln/functional_tests.rs
lightning/src/util/test_utils.rs