怎么用EthMon.php监听以太坊代币转账交易

技术怎么用EthMon.php监听以太坊代币转账交易怎么用EthMon.php监听以太坊代币转账交易,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。EthMo

相信很多没有经验的人对于如何利用EthMon.php来监控以太馆的代币转账交易是束手无策的。因此,本文总结了出现问题的原因和解决方法,希望大家可以通过这篇文章来解决这个问题。

EthMon开发包用于监控ethereal ERC20代币合约的转让交易。

1、开发包概述

EthMon令牌交易监控开发包功能如下:

监控Ethereum合同日志中指定地址的令牌转入和转出交易。

当令牌事务发生时,自定义业务逻辑。

也就是说,它既支持标准的Web3接口(如Infura),也支持Etherscan非标准接口。

EthMon在PHP 7.1环境下运行,主要的类及其关系如下图所示:

怎么用EthMon.php监听以太坊代币转账交易

见官方描述:http://sc.hubwiz.com/codebag/EthMon-php/的主要代码文件清单的筛法。

00-1010启动前,请用自己的API KEY替换以下文件的内容。

演示/以太扫描键

demo/infura-key

EthMon是开发包的入口类。通过调用其scanBlocks()方法,可以在指定的时间间隔内扫描Ethereum块,提取并解析其中的合约日志。匹配监听地址后,可以调用事件监听器的handleEvent()方法(IEventListener接口的实现对象)并传入解析后的事件对象。

2、使用说明

调用者的程序需要将自己的业务逻辑封装在IeventListener接口的实现类中,比如写入数据库等。下面的代码实现了一个基本的事件监听器——,它只是在屏幕上显示和输出事件对象的内容:

classzlistereimplementsiventlistener {

functionhandleEvent($ event){ 0

var _ dump($ event);

}

}handleEvent()方法的参数是一个具有以下结构的StdClass对象:

区块:交易所的区块编号。

Txhash:事务哈希。

合同:触发事件的合同地址。

名称:事件的名称,例如:转移。

流动:资本流动方向,可能值:入站-转入,出站-转出。

Params:事件参数数组,其成员为:

输出地址,字符串。

转到地址字符串。

可以通过调用to string()方法将令牌量BigInteger转换为字符串。

定义事件侦听器后,可以按如下方式设置和启动它:

2.1 IEventListener

创建EthMon实例时,需要传入一个EthApi对象,例如,使用EthApiWeb3对象:

$ ethApi=new ethApi web 3(' https://mainnet . infura . io/v3/your-API-key ');

$ em=new ethmon($ EThapi);00-1010在创建了EthMon实例之后,您需要调用watchToken()方法来设置要监视的令牌契约,例如监视BNB令牌契约:

$ em-WatchToken('0xb 8c 77482 e 45 f1 f 44 de 1745 f 52 c 74426 c 631 BDD 52 ');00-1010使用EthMon实例的watchAddress()方法添加与要监控的令牌事务相关的地址。例如,以下代码侦听地址0xd 3705916 ce 7 e2c 43806 e0e 0707 C4 B9 d6f 27 e9 ab 2接收令牌的事件:

$ em-Watch ADdress('0xd 3705916 ce 7 e2c 43806 e0e 0707 C4 B9 d6f 27 e 9 ab 2 ',筛孔: flow _ IN);下面的代码侦听地址0x6c6cbb3 ef 3d 690 de7a a 0525 b5 E6 C2 FFE 7 aed6a 5传送出令牌的事件:

$ em-Watch ADdress('0x6c cbbb 3 ef 3d 690 de7 aa 0525 b5 E6 C2 FFE 7 aed 6 a 5 ',筛孔: flow _ OUT);当您想要监听地址的传入/传出令牌事件时,请使用筛孔:FLOW_INOUT标志:

$ em-Watch ADdress('0xd 3705916 ce 7 e2c 43806 e0e 0707 C4 B9 d6f 27 e9 ab 2 ',筛孔:3360 FLoW _ INOUT);00-1010调用EthMon实例的addEventListener()方法添加事件侦听器对象。当EthMon的scanBlocks()扫描块时,满足条件时将调用这些事件侦听器。

例如,下面的代码添加了我们前面定义的EzListener类的一个实例对象:

$ em-addEventListener(new ezlistener);

2.2 创建EthMon对象

,需要定期调用EthMon的scanBlocks()方法来扫描区块链,以便跟踪新的令牌事务日志。scanBlocks()的两个参数分别用于指定扫描的开始块数和结束块数。当使用特殊的最新字符串时,使用最新的块。

例如,以下代码每5秒扫描一次最新的块:

while(true){ 0

$em-scanBlocks('latest ',' latest ');

睡眠(5);

}尽管起始和结束块号可以使用任意整数值,但不建议一次扫描多个块,因为Etherscan和Web3返回的记录数量有限。例如,以下代码尝试扫描从8500000到8500404的405个块:

$em-scanBlocks(8500000,8500404);//不推荐,但可能会失败。建议逐块扫描。考虑到第三方服务的访问频率限制,在两次扫描期间应进行适当的延迟处理。

看完上面的内容,你知道如何使用EthMon.php来监控Ethereum中的令牌转移交易吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道。感谢阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/43708.html

(0)

相关推荐

  • 三横三竖三撇三捺是什么字,三横三竖三撇三捺念什么字啊

    技术三横三竖三撇三捺是什么字,三横三竖三撇三捺念什么字啊森。可以先想一横三横三竖三撇三捺是什么字,一竖,一撇,一捺 是什么字,是木,三个木就是森。森是一个汉字,读作sēn,本意是树木丛生繁密,引申义是从林从木,整齐而严肃

    生活 2021年10月26日
  • MySQL Index Condition Pushdown(ICP)的使用限制有哪些

    技术MySQL Index Condition Pushdown(ICP)的使用限制有哪些小编给大家分享一下MySQL Index Condition Pushdown(ICP)的使用限制有哪些,希望大家阅读完这篇文章之

    攻略 2021年11月3日
  • 怎样进行Java Socket通信客户端和服务器的代码介绍

    技术怎样进行Java Socket通信客户端和服务器的代码介绍今天就跟大家聊聊有关怎样进行Java Socket通信客户端和服务器的代码介绍,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根

    攻略 2021年11月21日
  • 嵌入式数据库Sqlite3之如何使用基本的命令操作

    技术嵌入式数据库Sqlite3之如何使用基本的命令操作这篇文章主要介绍“嵌入式数据库Sqlite3之如何使用基本的命令操作”,在日常操作中,相信很多人在嵌入式数据库Sqlite3之如何使用基本的命令操作问题上存在疑惑,小

    攻略 2021年10月22日
  • vue组件上绑定原生事件

    技术vue组件上绑定原生事件 vue组件上绑定原生事件将原生事件绑定在组件上 .native 修饰符:
    子组件
    templatediv class="demo"h2我是子组件/h2h3我是子组件中的信息

    礼包 2021年10月26日
  • 编译时JAVA最常见的错误是什么

    技术编译时JAVA最常见的错误是什么本篇内容主要讲解“编译时JAVA最常见的错误是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编译时JAVA最常见的错误是什么”吧!  

    攻略 2021年11月2日