主页 > imtoken钱包最新版本下载 > Cicada自定义php区块_Omni/USDT交易监控PHP开发包-OmniMon
Cicada自定义php区块_Omni/USDT交易监控PHP开发包-OmniMon
OmniMon开发包用于监控Omni/USDT代币和比特币转账交易usdt协议监听,官方下载地址:.
一、开发包概述
OmniMon 开发包特性如下:
OmniMon 目前可以监听四种类型的交易事件:
OmniMon 支持解析所有类型的 Omni Layer 事务。
OmniMon运行在PHP 7.1+环境下usdt协议监听,主要类及其关系如下图所示:
如需 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开发包-汇智网