文章
问答
讲堂
百科图谱
线下集训
更多
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
讲堂
线下集训
专栏
活动
工作
文档
集市
搜索
登录/注册
105
java web3j 怎么监听智能合约的事件
回答问题即可获得
5
贡献值,回答被采纳后即可获得
110
学分。
java web3j 怎么监听智能合约的事件 链:币安链 web3j的版本:3.6.0 我想监听到自己发布的合约里面的事件 运行到107行就报错,一直找不到原因,救命哦 ![image.png](https://img.learnblockchain.cn/attachments/2022/08/eCTHQoAO62f56f4325cb5.png)
java web3j 怎么监听智能合约的事件 链:币安链 web3j的版本:3.6.0 我想监听到自己发布的合约里面的事件 运行到107行就报错,一直找不到原因,救命哦
0 条评论
分类:
以太坊
请先
登录
后评论
默认排序
时间排序
8 个回答
晓道
2022-08-12 09:32
谁叫你不用websocket订阅的呢。
请先
登录
后评论
Tiny熊
2022-08-12 09:50
擅长:智能合约,以太坊
订阅需要使用 websocket 链接,即协议前缀使用 `ws://` 而不是`http`. 不过, 很多节点并不支持 `ws://` , 你需要查阅节点的说明。 如果是http连接就可以通过扫块的方式获取日志。
请先
登录
后评论
runtoweb3.com
- 架构师
2022-08-12 17:56
嘿嘿,主动查询比监听好多了
请先
登录
后评论
nono
2022-08-12 19:13
代码看上去没啥问题,不过我用的`ethLogFlowable` ```java public void run(Consumer<? super Log> consumer, Action onCancel, Event event) { String encodedEventSignature = EventEncoder.encode(event); Request<?, EthBlockNumber> request = web3j.ethBlockNumber(); BigInteger fromblock = request.send().getBlockNumber(); EthFilter filter = new EthFilter(DefaultBlockParameter.valueOf(fromblock), DefaultBlockParameterName.LATEST, Lists.newArrayList(watchTokens.keySet())) .addSingleTopic(encodedEventSignature); this.logFlowable = web3j.ethLogFlowable(filter); if (onCancel != null) { this.logFlowable.doOnCancel(onCancel); } logFlowable.subscribe(consumer); } ``` fromBlocknumber 这个不需要填写EARLIEST,填对应合约创建时间就行。填EARLIEST也没错。 分隔符--------------- 有一说一,不是不想用websocket来实现订阅,问题是在某些网络环境较差的情况下,http的轮询方案能是实施起来最简单的,不必考虑重连,不用处理超时,心跳等因素的绝佳算着,一股脑的认为,一旦报错直接重新获取。
请先
登录
后评论
咪咪
2022-08-15 09:24
试了2天了,还是不行
请先
登录
后评论
martin
- 开发工程师
2022-08-23 11:13
1、web3j 版本感觉有点低 2、EthLog ethLog = web3jService.getWeb3j().ethGetLogs(ethFilter).send(); 3、debug 看看输出 4、如果还不行,那就要考虑你 event 构造这块了,比如 transfer 的 topic 是 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,日志打出来,对一下
请先
登录
后评论
怀旧
2022-11-14 16:38
兄弟,最后有解决吗
请先
登录
后评论
9527
- CTO
2023-07-04 21:44
兄弟,最后有解决吗
请先
登录
后评论
您需要登录后才可以回答问题,
登录
关注
9
关注
收藏
4
收藏,
6071
浏览
咪咪
提出于 2022-08-12 05:07
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: