假设智能合约中定义了一个事件:

pragma solidity ^0.4.0;contract Transfer{event transfer(address indexed _from, address indexed _to, uint indexed value);function deposit() payable {address current = this;uint value = msg.value;transfer(msg.sender, current, value);}function getBanlance() constant returns(uint) {return this.balance;}/* fallback function */function(){}
}

在web3j端对该事件的监听方法为:

void listenEvent(){Event event = new Event("transfer",Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}),Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));EthFilter filter = new EthFilter(DefaultBlockParameterName.EARLIEST,DefaultBlockParameterName.LATEST, contract_addr);filter.addSingleTopic(EventEncoder.encode(event));getWeb3jClient().ethLogObservable(filter).subscribe(new Action1<Log>() {@Overridepublic void call(Log log) {System.println(log.toString());}});}

注意,因为智能合约中transfer事件的定义形式是

event transfer(address indexed _from, address indexed _to, uint indexed value);

所以在web3j定义event的时候要对应上:

Event event = new Event("transfer",Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}),Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));

否则事件监听会失败。

web3j监听智能合约的event事件相关推荐

  1. web3j监听合约logs事件

    以太坊使用web3j监听特定的logs,用法. 更多区块链技术与应用分类: 区块链应用    区块链开发 以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币 | 其他链 通 ...

  2. Web3j监听功能代码研究

    Web3j监听功能代码研究 高洪涛 2021-03-19 本周深入研究了web3j工具包实现以太坊的监听功能,实现了交易监听和代币监听的方法,对监听过程中的常见问题进行了处理,本文就是对这部分开发经验 ...

  3. 13、Java Swing事件监听:事件处理模型和事件监听器

    事件表示程序和用户之间的交互,例如在文本框中输入,在列表框或组合框中选择,选中复选框和单选框,单击按钮等.事件处理表示程序对事件的响应,对用户的交互或者说对事件的处理是事件处理程序完成的. 当事件发生 ...

  4. 解决VUE在浏览器全屏下监听不到Esc键盘事件

    实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() {return {i ...

  5. 监听JScrollPane按PageUp,PageDown事件

    package com.cyl; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; imp ...

  6. java 监听鼠标点击_java 事件监听 - 鼠标

    java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...

  7. vue判断是否双击_vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作...

    Vue 事件处理方法 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. v-on:click 单击事件 + + - - v-on:dblclick 双击事件 ...

  8. vue监听浏览器刷新和关闭事件,并在页面关闭/刷新前发送请求

    vue监听浏览器刷新和关闭事件,并在页面关闭/刷新前发送请求 1.需求背景: 2.需求分析: 3.实现方式: 4.实现方式解析: 1)浏览器页面事件基础 2)在mounted监听beforeunloa ...

  9. CocosCreator 监听龙骨绑定的帧事件

    监听龙骨绑定的帧事件 简介 龙骨部分 CocosCreator 项目设置 CocosCreator 添加监听代码 简介 在龙骨中的Armature上绑定了一些帧事件,但是在CocosCreator中监 ...

最新文章

  1. poj 3281 Dining 最大流
  2. java switch 表达式_尝鲜Java 12新特性:switch表达式
  3. Spring.Net 能为我们做点什么
  4. Python 根据地址获取经纬度及求距离
  5. MySQL MMM多主多从搭建
  6. manually set focus for tag library
  7. html文件内容搜索,html读出文本文件内容
  8. mysql怎么插入10w测试数据_mysql快速插入100万测试数据
  9. (TTSR)Learning Texture Transformer Network for Image Super-Resolution
  10. Maven学习总结(26)——maven update时,报:Preference node org.eclipse.wst.validation...
  11. Jenkins 自动化集成之路 Linux 安装 maven
  12. ssh X11 Forwarding(本地共享远程服务器界面)
  13. JAVA 项目中使用 H2 数据库
  14. live2d手机制作软件_Live2d( 动画制作软件 )中文版分享
  15. c语言反步法编程,CCM模式下Boost电路的反步法非线性控制与仿真.pdf
  16. Docker参数 -i -t 的作用
  17. php 视频网站采集器,自己在用的视频网站开源,真正的自动采集无需手动更新...
  18. Plotly学习 3D三维轴的设置
  19. 《数据结构》实验报告二:顺序表 链表
  20. Web安全 信息收集 (收集 Web服务器 的重要信息.)

热门文章

  1. linux安装 odbc mysql_LINUX安装ODBC驱动
  2. 江南爱软装十大品牌 窗帘和户型挑选对会更加舒适
  3. Java中继承执行顺序
  4. 【非线性优化理论基础】(一)预备知识
  5. MSSQL 2005数据库转到SQL 2000的步骤讲解
  6. 打开jupyter时Localhost拒绝访问解决方法
  7. python处理异常的语句_python异常处理
  8. faster-rcnn原理介绍
  9. 根据用户经纬度,sql计算距离并排序
  10. 在 Zend Studio 12.5 里下断点调试运行 PHP 源代码