UNPKG

solana-dex-parser

Version:

Solana Dex Transaction Parser

103 lines 4.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPumpswapSellInfo = exports.getPumpswapBuyInfo = exports.getPumpfunTradeInfo = void 0; const constants_1 = require("../../constants"); const types_1 = require("../../types"); const utils_1 = require("../../utils"); const getPumpfunTradeInfo = (event, info) => { const tradeType = event.isBuy ? 'BUY' : 'SELL'; const isBuy = tradeType === 'BUY'; return { type: tradeType, inputToken: { mint: isBuy ? constants_1.TOKENS.SOL : event.mint, amount: isBuy ? (0, types_1.convertToUiAmount)(event.solAmount) : (0, types_1.convertToUiAmount)(event.tokenAmount, 6), amountRaw: isBuy ? event.solAmount.toString() : event.tokenAmount.toString(), decimals: isBuy ? 9 : 6, }, outputToken: { mint: isBuy ? event.mint : constants_1.TOKENS.SOL, amount: isBuy ? (0, types_1.convertToUiAmount)(event.tokenAmount, 6) : (0, types_1.convertToUiAmount)(event.solAmount), amountRaw: isBuy ? event.tokenAmount.toString() : event.solAmount.toString(), decimals: isBuy ? 6 : 9, }, user: event.user, programId: constants_1.DEX_PROGRAMS.PUMP_FUN.id, amm: info.dexInfo?.amm || constants_1.DEX_PROGRAMS.PUMP_FUN.name, route: info.dexInfo?.route || '', slot: info.slot, timestamp: info.timestamp, signature: info.signature, idx: info.idx || '', }; }; exports.getPumpfunTradeInfo = getPumpfunTradeInfo; const getPumpswapBuyInfo = (event, inputToken, outputToken, info) => { const { mint: inputMint, decimals: inputDecimal } = inputToken; const { mint: outputMint, decimals: ouptDecimal } = outputToken; return { type: (0, utils_1.getTradeType)(inputMint, outputMint), inputToken: { mint: inputMint, amount: (0, types_1.convertToUiAmount)(event.quoteAmountInWithLpFee, inputDecimal), amountRaw: event.quoteAmountInWithLpFee.toString(), decimals: inputDecimal, }, outputToken: { mint: outputMint, amount: (0, types_1.convertToUiAmount)(event.baseAmountOut, ouptDecimal), amountRaw: event.baseAmountOut.toString(), decimals: ouptDecimal, }, fee: { mint: inputMint, amount: (0, types_1.convertToUiAmount)(event.protocolFee, inputDecimal), amountRaw: event.protocolFee.toString(), decimals: inputDecimal, }, user: event.user, programId: info.dexInfo?.programId || constants_1.DEX_PROGRAMS.PUMP_SWAP.id, amm: constants_1.DEX_PROGRAMS.PUMP_SWAP.name, route: info.dexInfo?.route || '', slot: info.slot, timestamp: info.timestamp, signature: info.signature, idx: info.idx || '', }; }; exports.getPumpswapBuyInfo = getPumpswapBuyInfo; const getPumpswapSellInfo = (event, inputToken, outputToken, info) => { const { mint: inputMint, decimals: inputDecimal } = inputToken; const { mint: outputMint, decimals: ouptDecimal } = outputToken; return { type: (0, utils_1.getTradeType)(inputMint, outputMint), inputToken: { mint: inputMint, amount: (0, types_1.convertToUiAmount)(event.baseAmountIn, inputDecimal), amountRaw: event.baseAmountIn.toString(), decimals: inputDecimal, }, outputToken: { mint: outputMint, amount: (0, types_1.convertToUiAmount)(event.userQuoteAmountOut, ouptDecimal), amountRaw: event.userQuoteAmountOut.toString(), decimals: ouptDecimal, }, fee: { mint: outputMint, amount: (0, types_1.convertToUiAmount)(event.protocolFee, ouptDecimal), amountRaw: event.protocolFee.toString(), decimals: ouptDecimal, }, user: event.user, programId: info.dexInfo?.programId || constants_1.DEX_PROGRAMS.PUMP_SWAP.id, amm: constants_1.DEX_PROGRAMS.PUMP_SWAP.name, route: info.dexInfo?.route || '', slot: info.slot, timestamp: info.timestamp, signature: info.signature, idx: info.idx || '', }; }; exports.getPumpswapSellInfo = getPumpswapSellInfo; //# sourceMappingURL=util.js.map