bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

PHP開發包OmniMon怎么使用

這篇文章主要講解了“PHP開發包OmniMon怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP開發包OmniMon怎么使用”吧!

創新互聯專業為企業提供拉薩網站建設、拉薩做網站、拉薩網站設計、拉薩網站制作等企業網站建設、網頁設計與制作、拉薩企業網站模板建站服務,10多年拉薩做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

1、開發包概述

OmniMon開發包特點如下:

  • 監聽任意指定地址發生的Omni/USDT代幣轉入/轉出交易

  • 監聽任意指定地址的比特幣轉入/轉出交易

  • 自定義代幣交易發生時的業務邏輯

OmniMon目前可以監聽四種類型的交易事件:

  • 比特幣流入事件:當比特幣流入監聽地址時觸發

  • 比特幣流出事件:當比特幣流出監聽地址時觸發

  • Omni/USDT代幣流入事件:當Omni/USDT代幣轉入監聽地址時觸發

  • Omni/USDT代幣流出事件:當Omni/USDT代幣轉出監聽地址時觸發

OmniMon支持所有類型的Omni Layer交易的解析。

OmniMon運行于PHP 7.1+環境下,主要類以及其關系如下圖所示:

PHP開發包OmniMon怎么使用

2、基本使用方法

Monitor是OmniMon開發包的入口類,使用Monitor監視Omni/USDT代幣或 比特幣轉賬交易的一般步驟如下:

  1. 創建Monitor實例

  2. 使用實例的watch()方法添加要監視的地址,可以多次調用該方法來 添加多個要監視的地址

  3. 使用實例的addEventListener()方法添加轉賬交易事件監聽器,可以多次調用 該方法來添加不同的監聽處理邏輯

  4. 定期調用實例的scanBlocks()方法掃描新的區塊,該方法將自動觸發前面 添加的交易事件監聽器

2.1 創建Monitor實例對象

實例化Monitor需要傳入兩個參數,分別用于訪問區塊鏈和解析Omni代幣元數據。 例如,下面的代碼利用一個ChainRpc對象和一個CloudPropertyMetaResolver對象 來創建Monitor實例:

use OmniTool\Monitor;
use OmniTool\ChainRpc;
use OmniTool\CloudPropertyMetaResolver;

$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 OmniTool\IEventListener;

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目前支持四種事件,其事件對象的結構也有不同:

  • in_btc:比特幣流入,事件結構如下:

    • height:區塊高度

    • txid:交易ID

    • vout:交易輸出序號

    • value:交易金額,單位:satoshi

    • address:流入地址

    • script:流入地址的公鑰腳本

  • out_btc:比特幣流出,事件結構如下:

    • height:區塊高度

    • txid:交易ID

    • vout:交易輸出序號

    • value:交易金額,單位:satoshi

    • address:流出地址

    • script:流出地址的公鑰腳本

  • in_omni:omni/usdt代幣流入,事件結構如下:

    • address:發送賬戶地址

    • script:發送賬戶公鑰腳本

    • height:區塊高度

    • txid:交易ID

    • sender:發送賬戶對象,結構如下:

    • reference:接收賬戶對象,結構同上

    • omin:omni交易對象,根據交易類型不同有所區別

  • out_omni:omni/usdt代幣流出

    • address:發送賬戶地址

    • script:發送賬戶公鑰腳本

    • height:區塊高度

    • txid:交易ID

    • sender:發送賬戶對象,結構如下:

    • reference:接收賬戶對象,結構同上

    • omin:omni交易對象,根據交易類型不同有所區別

2.4 掃描區塊鏈

需要周期性地調用Monitor實例的scanBlocks()方法來掃描區塊鏈以便跟蹤新的Omni/USDT代幣 或比特幣交易。scanBlocks()的兩個參數分別用來指定掃描的起始區塊號和結束區塊號, 當使用特殊的 latest字符串時,表示使用最新的區塊。

例如,下面的代碼每隔10分鐘掃描一次最新的區塊:

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

感謝各位的閱讀,以上就是“PHP開發包OmniMon怎么使用”的內容了,經過本文的學習后,相信大家對PHP開發包OmniMon怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

本文名稱:PHP開發包OmniMon怎么使用
文章源于:http://vcdvsql.cn/article4/peheie.html

成都網站建設公司_創新互聯,為您提供網站制作App開發網站策劃面包屑導航全網營銷推廣軟件開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站