UNPKG

swtc-lib

Version:

websocket access for jingtum blockchain

52 lines 1.82 kB
import { EventEmitter } from "events"; import { utils } from "@swtc/utils"; class OrderBook extends 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.parseKey(key); if (!pair) { this.pair = new Error("invalid key"); return this; } this._books[key] = listener; }); this.on("removeListener", function (key) { const pair = 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.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.processTx(_data, data.transaction.Account); for (const book of books) { const callback = this._books[books[book]]; if (callback) callback(_tx); } } } } export { OrderBook }; //# sourceMappingURL=orderbook.js.map