UNPKG

tardis-dev

Version:

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

71 lines 1.99 kB
import { fromMicroSecondsToDate, upperCaseSymbols } from "../handy.js"; export class UpbitTradesMapper { canHandle(message) { return message.type === 'trade'; } getFilters(symbols) { symbols = 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: fromMicroSecondsToDate(message.trade_timestamp), localTimestamp: localTimestamp }; } } export class UpbitBookChangeMapper { canHandle(message) { return message.type === 'orderbook'; } getFilters(symbols) { symbols = 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: fromMicroSecondsToDate(message.timestamp), localTimestamp }; } } //# sourceMappingURL=upbit.js.map