web3j的基础用法-3ETH交易监听器_java web3j监听区块链-程序员宅基地

技术标签: 区块链  java  智能合约  以太坊  web3j  web3  

ETH的交易监听器

demo简单实现了4种

  1. 监听区块
  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();
    }
  1. 监听所有交易
    /**
     * 监听新交易事件
     * 已经交易的事件
     **/
    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();
    }
  1. 监听待上链的交易
    /**
     * 监听待定交易
     */
    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();
    }

  1. 监听指定合约的交易事件(例如监控大户流转,实现跟单,抛售等后续逻辑)
   /**
     * 监听合约的交易事件
     * **/
    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();
    }

请添加图片描述

github 地址
https://github.com/jambestwick/we3jdemo

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41602901/article/details/121757711

智能推荐

Pycharm(2023)使⽤conda环境_pycharm2023配置conda环境-程序员宅基地

文章浏览阅读7.1k次,点赞54次,收藏95次。2023版pycharm使用conda环境_pycharm2023配置conda环境

vue2+html+css实现动态鱼骨图_vue 鱼骨图-程序员宅基地

文章浏览阅读791次,点赞10次,收藏7次。鱼骨图_vue 鱼骨图

非线性方程求解 matlab,MATLAB应用 求解非线性方程-程序员宅基地

文章浏览阅读2.8k次。《MATLAB应用 求解非线性方程》由会员分享,可在线阅读,更多相关《MATLAB应用 求解非线性方程(16页珍藏版)》请在人人文库网上搜索。1、第7章 求解非线性方程7.1 多项式运算在MATLAB中的实现一、多项式的表达n次多项式表达为:,是n+1项之和在MATLAB中,n次多项式可以用n次多项式系数构成的长度为n+1的行向量表示a0, a1,an-1,an二、多项式的加减运算设有两个多项式和..._对于分子分母都含有未知量的非线性方程是否可用matlab 求解

计算机应用简答,计算机应用基础简答题.doc-程序员宅基地

文章浏览阅读523次。《计算机应用基础简答题.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《计算机应用基础简答题.doc》文档请在天天文库搜索。1、计算机应用基础简答题1. 什么是操作系统?操作系统的作用是什么?答:操作系统在计算机结构中处于硬件裸机与软件系统之间的层次上,它不仅管理位于内层的硬件资源,而且管理和协调外层各种软件资源,为用户提供一种高效便捷的应用环境。操作系统是最基础的..._计算机应用简答题csdn

将labelme标注的人体姿态Json文件转成训练Yolov8-Pose的txt格式_labelme骨骼点json转yolo-程序员宅基地

文章浏览阅读1.5k次,点赞13次,收藏17次。最近在训练Yolov8-Pose时遇到一个问题,就是如何将自己使用labelme标注的Json文件转化成可用于Yolov8-Pose训练的txt文件。_labelme骨骼点json转yolo

Linux安装Mysql5.7_linux mysql 5.7-程序员宅基地

文章浏览阅读680次,点赞2次,收藏8次。安装mysql5.7_linux mysql 5.7

随便推点

《网络产品安全漏洞管理规定》解读_根据《网络产品安全漏洞管理规定》,鼓励网络产品提供者建立所提供网络产品安-程序员宅基地

文章浏览阅读4.4k次。《网络产品安全漏洞管理规定》2021年7月12日已由工业和信息化部、国家互联网信息办公室、公安部三部门联合印发,现予公布,自2021年9月1日起施行。一、解读《网络产品安全漏洞管理规定》制定目的为了规范网络产品安全漏洞发现、报告、修补和发布等行为,防范网络安全风险。法律依据《中华人民共和国网络安全法》三类责任主体① 网络产品(含硬件、软件)提供者。② 网络运营者。③ 从事网络产品安全漏洞发现、收集、发布等活动的组织或者个人。三项管理职责及分工① 国家互联网信息办公_根据《网络产品安全漏洞管理规定》,鼓励网络产品提供者建立所提供网络产品安

springboot+ssm+vue前后端分离项目-宠物之家_做一个ssm框架与vue前端的前后端分离的商店系统加源码-程序员宅基地

文章浏览阅读2.7k次,点赞3次,收藏34次。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、需求分析二、项目架构1.引入库2.读入数据总结前言随着生活质量提供,人们不再满足简单物质生活,还追求更高层次精神生活。很多人愿意有养宠物意愿,愿意为宠物消费,正是基于这种场景,我们才开发了这个项目。首先让用户领养宠物,然后针对用户的宠物提供上门洗澡,美容,寄养等综合服务平台。由用户下单,平台统一分派给线下门店上门服务。平台除了提供针对普通用户的基本需求功能,支持商家入驻,合作加盟,扩展线下门店渠道。一、需求分析示_做一个ssm框架与vue前端的前后端分离的商店系统加源码

Java使用多线程做批处理(查询大量数据)_java多线程处理大批量数据-程序员宅基地

文章浏览阅读1.4w次,点赞12次,收藏81次。一个小demo表示java多线程的原理和应用_java多线程处理大批量数据

Go 语言 Excel 类库 Excelize 2.0.0 版本发布-程序员宅基地

文章浏览阅读341次。开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> Excelize 是 Go ..._excelize addcomment format

kettle 运行常见的报错_unexpected batch update error committing the datab-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏30次。kettle 加工抽取数据到另一个数据库运行常见的报错:DB2 SQLCODE=-206, SQLSTATE=42703 定义表字段问题 解决办法 检查建表字段(要用大写),在DB2中,默认情况下所有的名称都可包含字符:A-Z(大写) 0到9 @、#、$和_(下划线),名称不能以数字和下划线开头 ;Error: SQLCODE=-302, SQLSTATE=22001, SQLERR..._unexpected batch update error committing the database connection.

Yolov5 多边形标签转换,所有json文件自动转成txt格式[详细过程]_多边形json转txt-程序员宅基地

文章浏览阅读8k次,点赞42次,收藏97次。注:labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。通过labelme对图进行标注后,得到的是json文件,而Yolov5对数据进行模型构建的时候,读取需要的是txt格式的文件。txt_outer_path——保存txt文本的文件夹的绝对路径。json_name——json_name是json文本的名字。json_floder——读取json的文件夹的绝对路径。_多边形json转txt