怎么用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)

相关推荐

  • html中如何设置边框上下居中(html怎么让td显示的文字靠左)

    技术HTML如何设置td内容居中这篇文章主要讲解了“HTML如何设置td内容居中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML如何设置td内容居中”吧!

    攻略 2021年12月23日
  • 怎么安装Docker

    技术怎么安装Docker这篇文章主要讲解了“怎么安装Docker”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么安装Docker”吧!一、简介1.使用Docker:开发

    攻略 2021年12月13日
  • 怎么提高下载速度,怎样才能提高下载速度啊

    技术怎么提高下载速度,怎样才能提高下载速度啊国内ADSL用户的带宽一般都是1M、2M、3M的,理论上的下载速度分别是128K/S、256K/S、384K/S怎么提高下载速度。突发速度会更高。 如果用户在下载时速度能达到理

    生活 2021年10月28日
  • 怎么部署MySQL Group Replication

    技术怎么部署MySQL Group Replication这篇文章主要介绍“怎么部署MySQL Group Replication”,在日常操作中,相信很多人在怎么部署MySQL Group Replication问题上

    攻略 2021年11月18日
  • ubuntu中如何添加windows工作组下的共享打印机

    技术ubuntu中如何添加windows工作组下的共享打印机这篇文章主要为大家展示了“ubuntu中如何添加windows工作组下的共享打印机”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研

    攻略 2021年11月15日
  • vuejs如何加dom

    技术vuejs如何加dom这篇文章给大家分享的是有关vuejs如何加dom的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 vuejs加dom的方法:1、先new创建

    攻略 2021年10月27日