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