solana-dex-parser
Version:
Solana Dex Transaction Parser
38 lines • 1.71 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.MeteoraDBCParser = void 0;
const constants_1 = require("../../constants");
const base_parser_1 = require("../base-parser");
const parser_meteora_dbc_event_1 = require("./parser-meteora-dbc-event");
class MeteoraDBCParser extends base_parser_1.BaseParser {
constructor(adapter, dexInfo, transferActions, classifiedInstructions) {
super(adapter, dexInfo, transferActions, classifiedInstructions);
this.eventParser = new parser_meteora_dbc_event_1.MeteoraDBCEventParser(adapter, transferActions);
}
processTrades() {
const events = this.eventParser
.parseInstructions(this.classifiedInstructions)
.filter((event) => event.type == "BUY" || event.type == "SELL" || event.type == "SWAP");
return events.map((event) => this.createTradeInfo(event));
}
createTradeInfo(event) {
const trade = {
type: event.type,
pool: [event.pool], // should be BondingCurve
inputToken: event.inputToken,
outputToken: event.outputToken,
user: event.user,
programId: this.dexInfo.programId,
amm: constants_1.DEX_PROGRAMS.METEORA_DBC.name,
amms: [constants_1.DEX_PROGRAMS.METEORA_DBC.name],
route: this.dexInfo.route,
slot: this.adapter.slot,
timestamp: event.timestamp,
signature: this.adapter.signature,
idx: event.idx,
};
return this.utils.attachTokenTransferInfo(trade, this.transferActions);
}
}
exports.MeteoraDBCParser = MeteoraDBCParser;
//# sourceMappingURL=parser-meteora-dbc.js.map
;