UNPKG

tardis-dev

Version:

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

63 lines 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BlockchainComBookChangeMapper = exports.BlockchainComTradesMapper = void 0; const handy_1 = require("../handy"); class BlockchainComTradesMapper { canHandle(message) { return message.channel === 'trades' && message.event === 'updated'; } getFilters(symbols) { symbols = (0, handy_1.upperCaseSymbols)(symbols); return [ { channel: 'trades', symbols } ]; } *map(message, localTimestamp) { yield { type: 'trade', symbol: message.symbol, exchange: 'blockchain-com', id: message.trade_id, price: message.price, amount: message.qty, side: message.side === 'sell' ? 'sell' : 'buy', timestamp: new Date(message.timestamp), localTimestamp: localTimestamp }; } } exports.BlockchainComTradesMapper = BlockchainComTradesMapper; class BlockchainComBookChangeMapper { canHandle(message) { return message.channel == 'l2' && (message.event === 'snapshot' || message.event === 'updated'); } getFilters(symbols) { symbols = (0, handy_1.upperCaseSymbols)(symbols); return [ { channel: 'l2', symbols } ]; } *map(message, localTimestamp) { yield { type: 'book_change', symbol: message.symbol, exchange: 'blockchain-com', isSnapshot: message.event === 'snapshot', bids: message.bids.map(this.mapBookLevel), asks: message.asks.map(this.mapBookLevel), timestamp: new Date(message.timestamp), localTimestamp }; } mapBookLevel(level) { return { price: level.px, amount: level.qty }; } } exports.BlockchainComBookChangeMapper = BlockchainComBookChangeMapper; //# sourceMappingURL=blockchaincom.js.map