UNPKG

tardis-dev

Version:

Convenient access to tick-level historical and real-time cryptocurrency market data via Node.js

76 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpbitBookChangeMapper = exports.UpbitTradesMapper = void 0; const handy_1 = require("../handy"); class UpbitTradesMapper { canHandle(message) { return message.type === 'trade'; } getFilters(symbols) { symbols = (0, handy_1.upperCaseSymbols)(symbols); return [ { channel: 'trade', symbols } ]; } *map(message, localTimestamp) { yield { type: 'trade', symbol: message.code, exchange: 'upbit', id: String(message.sequential_id), price: message.trade_price, amount: message.trade_volume, side: message.ask_bid === 'ASK' ? 'sell' : 'buy', timestamp: (0, handy_1.fromMicroSecondsToDate)(message.trade_timestamp), localTimestamp: localTimestamp }; } } exports.UpbitTradesMapper = UpbitTradesMapper; class UpbitBookChangeMapper { canHandle(message) { return message.type === 'orderbook'; } getFilters(symbols) { symbols = (0, handy_1.upperCaseSymbols)(symbols); return [ { channel: 'orderbook', symbols } ]; } *map(message, localTimestamp) { let asks = []; let bids = []; for (const level of message.orderbook_units) { if (level.ask_price > 0) { asks.push({ price: level.ask_price, amount: level.ask_size }); } if (level.bid_price > 0) { bids.push({ price: level.bid_price, amount: level.bid_size }); } } yield { type: 'book_change', symbol: message.code, exchange: 'upbit', isSnapshot: true, bids, asks, timestamp: (0, handy_1.fromMicroSecondsToDate)(message.timestamp), localTimestamp }; } } exports.UpbitBookChangeMapper = UpbitBookChangeMapper; //# sourceMappingURL=upbit.js.map