tardis-dev
Version:
Convenient access to tick-level historical and real-time cryptocurrency market data via Node.js
63 lines • 2.03 kB
JavaScript
;
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