UNPKG

solana-dex-parser

Version:

Solana Dex Transaction Parser

42 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRaydiumTradeInfo = void 0; const constants_1 = require("../../constants"); const types_1 = require("../../types"); const getRaydiumTradeInfo = (event, inputToken, outputToken, info) => { const { mint: inputMint, decimals: inputDecimal } = inputToken; const { mint: outputMint, decimals: ouptDecimal } = outputToken; const isBuy = event.tradeDirection === types_1.TradeDirection.Buy; const fee = BigInt(event.protocolFee) + BigInt(event.platformFee); return { type: isBuy ? 'BUY' : 'SELL', inputToken: { mint: inputMint, amount: (0, types_1.convertToUiAmount)(event.amountIn, inputDecimal), amountRaw: event.amountIn.toString(), decimals: inputDecimal, }, outputToken: { mint: outputMint, amount: (0, types_1.convertToUiAmount)(event.amountOut, ouptDecimal), amountRaw: event.amountOut.toString(), decimals: ouptDecimal, }, fee: { mint: isBuy ? inputMint : outputMint, amount: (0, types_1.convertToUiAmount)(fee, isBuy ? inputDecimal : ouptDecimal), amountRaw: fee.toString(), decimals: isBuy ? inputDecimal : ouptDecimal, }, user: event.user, programId: info.dexInfo?.programId || constants_1.DEX_PROGRAMS.RAYDIUM_LCP.id, amm: constants_1.DEX_PROGRAMS.RAYDIUM_LCP.name, route: info.dexInfo?.route || '', slot: info.slot, timestamp: info.timestamp, signature: info.signature, idx: info.idx || '', }; }; exports.getRaydiumTradeInfo = getRaydiumTradeInfo; //# sourceMappingURL=util.js.map