ETH的交易监听器
demo简单实现了4种
- 监听区块
public Subscription subscribeBlock(final Action1<? super EthBlock> onNext) {
if (this.web3j == null) return null;
return this.web3j.blockObservable(true).subscribe(onNext);
}
public void unsubscribeBlock(Subscription subscription) {
if (this.web3j == null) return;
subscription.unsubscribe();
}
- 监听所有交易
/**
* 监听新交易事件
* 已经交易的事件
**/
public Subscription subscribeHasTrans(final Action1<? super Transaction> onNext) {
if (this.web3j == null) return null;
return web3j.transactionObservable().subscribe(onNext);
}
/**
* 取消订阅信息
**/
public void unsubscribeHasTrans(Subscription subscription) {
if (this.web3j == null) return;
subscription.unsubscribe();
}
- 监听待上链的交易
/**
* 监听待定交易
*/
public Subscription subscribePendingTrans(final Action1<? super Transaction> onNext) {
if (this.web3j == null) return null;
return web3j.pendingTransactionObservable().subscribe(onNext);
}
/**
* 取消订阅信息
**/
public void unsubscribePendingTrans(Subscription subscription) {
if (this.web3j == null) return;
subscription.unsubscribe();
}
- 监听指定合约的交易事件(例如监控大户流转,实现跟单,抛售等后续逻辑)
/**
* 监听合约的交易事件
* **/
public Subscription subscribeContract(String contractAddress, final Action1<? super Log> onNext) {
if (this.web3j == null) return null;
// 要监听的合约事件 交易
Event event = new Event("Transfer",
Arrays.asList(
new TypeReference<Address>(true) {
},
new TypeReference<Address>(true) {
},
new TypeReference<Uint256>(false) {
}));
EthFilter filter = new EthFilter(
DefaultBlockParameterName.EARLIEST,
DefaultBlockParameterName.LATEST,
contractAddress);
filter.addSingleTopic(EventEncoder.encode(event));
return web3j.ethLogObservable(filter).subscribe(onNext);
}
public void subscribeContract(Subscription subscription){
if (this.web3j == null) return;
subscription.unsubscribe();
}
文章来源:https://www.toymoban.com/news/detail-511548.html
github 地址
https://github.com/jambestwick/we3jdemo文章来源地址https://www.toymoban.com/news/detail-511548.html
到了这里,关于web3j的基础用法-3ETH交易监听器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!