UNPKG

@btcfun/mempool.js

Version:

Mirror NPM package module for Mempool APIs.

96 lines (95 loc) 3.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.wsStopTrackingMempoolBlock = exports.wsTrackMempoolBlock = exports.wsStopTrackingRbf = exports.wsTrackRbf = exports.wsStopTrackingRbfSummary = exports.wsTrackRbfSummary = exports.wsStopTrackingTransaction = exports.wsTrackTransaction = exports.wsStopTrackingAddresses = exports.wsTrackAddresses = exports.wsStopTrackingAddress = exports.wsTrackAddress = exports.wsStopData = exports.wsWantData = exports.wsInit = void 0; var ws_1 = __importDefault(require("ws")); var TIMEOUT_DURATION = 5000; var MAX_RETRY_COUNT = 3; var wsActionWrapper = function (ws, action) { var retryCount = 0; var sendData = function () { if (ws.readyState === ws_1.default.OPEN) { ws.send(JSON.stringify(action)); } else if (retryCount < MAX_RETRY_COUNT) { retryCount++; console.log("WebSocket connection is not open. Retrying..."); setTimeout(sendData, TIMEOUT_DURATION); } else { console.log("WebSocket connection is not open. Max retry count reached."); } }; sendData(); }; var wsInit = function (endpoint) { var ws = new ws_1.default(endpoint); ws.addEventListener("open", function open() { ws.send(JSON.stringify({ action: "init" })); }); return ws; }; exports.wsInit = wsInit; var wsWantData = function (ws, options) { wsActionWrapper(ws, { action: "want", data: options }); }; exports.wsWantData = wsWantData; var wsStopData = function (ws) { wsActionWrapper(ws, { action: "want", data: [] }); }; exports.wsStopData = wsStopData; var wsTrackAddress = function (ws, address) { wsActionWrapper(ws, { 'track-address': address }); }; exports.wsTrackAddress = wsTrackAddress; var wsStopTrackingAddress = function (ws) { wsActionWrapper(ws, { 'track-address': 'stop' }); }; exports.wsStopTrackingAddress = wsStopTrackingAddress; var wsTrackAddresses = function (ws, addresses) { wsActionWrapper(ws, { 'track-addresses': addresses }); }; exports.wsTrackAddresses = wsTrackAddresses; var wsStopTrackingAddresses = function (ws) { wsActionWrapper(ws, { 'track-addresses': [] }); }; exports.wsStopTrackingAddresses = wsStopTrackingAddresses; var wsTrackTransaction = function (ws, txid) { wsActionWrapper(ws, { 'track-tx': txid }); }; exports.wsTrackTransaction = wsTrackTransaction; var wsStopTrackingTransaction = function (ws) { wsActionWrapper(ws, { 'track-tx': 'stop' }); }; exports.wsStopTrackingTransaction = wsStopTrackingTransaction; var wsTrackRbfSummary = function (ws) { wsActionWrapper(ws, { 'track-rbf-summary': true }); }; exports.wsTrackRbfSummary = wsTrackRbfSummary; var wsStopTrackingRbfSummary = function (ws) { wsActionWrapper(ws, { 'track-rbf-summary': false }); }; exports.wsStopTrackingRbfSummary = wsStopTrackingRbfSummary; var wsTrackRbf = function (ws, fullRbf) { if (!fullRbf) { wsActionWrapper(ws, { 'track-rbf': 'all' }); } else { wsActionWrapper(ws, { 'track-rbf': 'fullRbf' }); } }; exports.wsTrackRbf = wsTrackRbf; var wsStopTrackingRbf = function (ws) { wsActionWrapper(ws, { 'track-rbf': 'stop' }); }; exports.wsStopTrackingRbf = wsStopTrackingRbf; var wsTrackMempoolBlock = function (ws, index) { wsActionWrapper(ws, { 'track-mempool-block': index }); }; exports.wsTrackMempoolBlock = wsTrackMempoolBlock; var wsStopTrackingMempoolBlock = function (ws) { wsActionWrapper(ws, { 'track-mempool-block': -1 }); }; exports.wsStopTrackingMempoolBlock = wsStopTrackingMempoolBlock;