主页 > imtoken钱包最新版本下载 > Cicada自定义php区块_Omni/USDT交易监控PHP开发包-OmniMon

Cicada自定义php区块_Omni/USDT交易监控PHP开发包-OmniMon

imtoken钱包最新版本下载 2023-03-07 07:00:28

OmniMon开发包用于监控Omni/USDT代币和比特币转账交易usdt协议监听,官方下载地址:.

一、开发包概述

OmniMon 开发包特性如下:

OmniMon 目前可以监听四种类型的交易事件:

OmniMon 支持解析所有类型的 Omni Layer 事务。

OmniMon运行在PHP 7.1+环境下usdt协议监听,主要类及其关系如下图所示:

b9b454bf039f7f9be58d0d53e7c6a245.png

如需 OmniMon 的主要代码文件列表,请参阅:

2. 基本用法

Monitor是OmniMon开发包的入门类。 使用Monitor监控Omni/USDT代币或比特币转账交易的一般步骤如下:

创建Monitor实例使用实例的watch()方法添加需要监控的地址。 该方法可以多次调用,添加多个需要监控的地址。 使用实例的addEventListener()方法添加转账交易事件监听器。 该方法可以多次调用 添加不同的监控处理逻辑周期性调用实例的scanBlocks()方法扫描新区块,该方法会自动触发之前添加的交易事件监听器 2.1 创建Monitor实例对象

实例化 Monitor 需要传入两个参数,分别用于访问区块链和解析 Omni 代币元数据。 例如,以下代码使用 ChainRpc 对象和 CloudPropertyMetaResolver 对象来创建 Monitor 实例:

use OmniToolMonitor;use OmniToolChainRpc;use OmniToolCloudPropertyMetaResolver;$monitor = new Monitor( new ChainRpc('http://user:123456@127.0.0.1:8332'), new CloudPropertyMetaResolver);

2.2 添加监听地址

使用 Monitor 实例的 watch() 方法,您可以将地址添加到监视器。 例如,下面的代码添加了三个要监听的地址:

$addressList = [ '15VSP7X29kR3yoaN2Xv3GQ898JeUp5dAtk', '19i2mRRtUeThfFyPd1j1Ui3LVbTFM9sdie', '3AqUTUsBkAkDBRM8zoAUbBhPxw8x541cZk'];foreach($addressList as $address) $monitor->watch($address);

2.3 添加交易事件监听处理器

使用 Monitor 实例的 addEventListener() 方法添加自定义处理逻辑。 比如下面的代码定义了一个监听接口实现类UtxoSaver,负责将新发现的UTXO存入数据库:

use OmniToolIEventListener;class UtxoSaver implements IEventListener{ protected $db; function __construct($db){ $this->db = $db; } function handleEvent($event){ if($event->type != 'in_btc') return; $db->saveUtxo( $event->height, $event->txid, $event->vout, $event->value, $event->address, $event->script  ); }}$monitor->addEventListener(new UtxoSaver);

OmniMon目前支持四种事件,它们的事件对象结构也各不相同:

2.4 扫描区块链

需要定期调用 Monitor 实例的 scanBlocks() 方法来扫描区块链以跟踪新的 Omni/USDT 代币或比特币交易。 scanBlocks()的两个参数分别用于指定扫描的起始块号和结束块号。 当使用特殊的 latest 字符串时,表示使用了最新的块。

例如,下面的代码每 10 分钟扫描一次最新的区块:

while(true){ $monitor->scanBlocks('latest','latest'); sleep(60*10);}

官方下载地址:Omni/USDT交易监控PHP开发包-汇智网