再现过滤器
webjs还提供用于再现块和交易历史的过滤器。
从区块链再现一系列块:
Subscription subscription = web3j.replayBlocksObservable(
<startBlockNumber>, <endBlockNumber>, <fullTxObjects>)
.subscribe(block -> {
...
});
再现包含在一个块范围内的单个交易:
Subscription subscription = web3j.replayTransactionsObservable(
<startBlockNumber>, <endBlockNumber>)
.subscribe(tx -> {
...
});
也可以获得Web3J再现最新的块,并在你看过后提供通知(通过提交Observable
):
Subscription subscription = web3j.catchUpToLatestBlockObservable(
<startBlockNumber>, <fullTxObjects>, <onCompleteObservable>)
.subscribe(block -> {
...
});
或者,也可以在你再现最新的块后,通知新创建的后续块:
Subscription subscription = web3j.catchUpToLatestAndSubscribeToNewBlocksObservable(
<startBlockNumber>, <fullTxObjects>)
.subscribe(block -> {
...
});
如上所述,并包含在块内的交易:
Subscription subscription = web3j.catchUpToLatestAndSubscribeToNewTransactionsObservable(
<startBlockNumber>)
.subscribe(tx -> {
...
});
所有上述过滤器都是通过Web3JRX接口导出的。