UNPKG

swtc-lib

Version:

websocket access for jingtum blockchain

55 lines 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderBook = void 0; const events_1 = require("events"); const utils_1 = require("@swtc/utils"); class OrderBook extends events_1.EventEmitter { constructor(remote) { super(); this._remote = remote; this._books = {}; this._token = remote._token || "swt"; this.on("newListener", function (key, listener) { if (key === "removeListener") return; const pair = utils_1.utils.parseKey(key); if (!pair) { this.pair = new Error("invalid key"); return this; } this._books[key] = listener; }); this.on("removeListener", function (key) { const pair = utils_1.utils.parseKey(key); if (!pair) { this.pair = new Error("invalid key"); return this; } delete this._books[key]; }); this._remote.on("transactions", this.__updateBooks.bind(this)); } __updateBooks(data) { if (data.meta) { const books = utils_1.utils.affectedBooks(data); const _data = { tx: data.transaction, meta: data.meta, engine_result: data.engine_result, engine_result_code: data.engine_result_code, engine_result_message: data.engine_result_message, ledger_hash: data.ledger_hash, ledger_index: data.ledger_index, validated: data.validated }; const _tx = utils_1.utils.processTx(_data, data.transaction.Account); for (const book of books) { const callback = this._books[books[book]]; if (callback) callback(_tx); } } } } exports.OrderBook = OrderBook; //# sourceMappingURL=orderbook.js.map