@liberfi.io/client 0.1.35 → 0.1.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +69 -10
- package/dist/index.d.ts +69 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -9
- package/dist/utils.d.mts +0 -45
- package/dist/utils.d.ts +0 -45
- package/dist/utils.js +0 -2
- package/dist/utils.js.map +0 -1
- package/dist/utils.mjs +0 -2
- package/dist/utils.mjs.map +0 -1
package/dist/utils.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { ChainSymbol, Resolution, FilterCondition, TokenCreatorsDTO, Token, TokenStat, DexPoolDTO, TokenMarketData, Candle, SwapRouteInput, SendTxInput, TokenHolderPage, TokenPage, SwapRouteResponse, SendTxResponse, WalletNetWorthPage, WalletPnlSummaryDTO, PnlDetailsPage, WalletNetWorthByTokensResult, TradePage, WsNewToken, WsTokenMetadata, WsCandle, WsTokenStat, WsTokenSupply, WsTokenHolder, WsTokenLiquidity, WsTokenBondingCurve, WsTokenMaxLiquidity, WsTokenTotalLiquidity, WsTradeActivity } from '@chainstream-io/sdk';
|
|
2
|
-
import { Chain, TokenResolution, API, TokenCreator, Token as Token$1, TokenStats, TokenLiquidity, TokenMarketData as TokenMarketData$1, TokenCandle, TokenSecurity, TokenHolder, WalletPortfolios, WalletPnl, WalletPortfolioPnls, Portfolio, PortfolioPnl, TradeActivity } from '@liberfi.io/types';
|
|
3
|
-
|
|
4
|
-
declare function toChainDTO(chain: Chain): ChainSymbol;
|
|
5
|
-
declare function toResolutionDTO(resolution: TokenResolution): Resolution;
|
|
6
|
-
declare function toSortDirectionDTO(direction: "asc" | "desc"): string;
|
|
7
|
-
declare function toSearchFieldDTO(field: API.TokenFieldOption): string;
|
|
8
|
-
declare function toFieldDTO(field: API.TokenFieldOption): string;
|
|
9
|
-
declare function toRangeFiltersDTO(filters: Array<API.TokenFilterOption>): Array<FilterCondition>;
|
|
10
|
-
declare function fromChainDTO(chain: string): Chain;
|
|
11
|
-
declare function fromTokenCreatorDTO(input: TokenCreatorsDTO): TokenCreator;
|
|
12
|
-
declare function fromTokenDTO(input: Token): Token$1;
|
|
13
|
-
declare function fromTokenStatsDTO(input: TokenStat): TokenStats;
|
|
14
|
-
declare function fromTokenLiquidityDTO(input: DexPoolDTO): TokenLiquidity;
|
|
15
|
-
declare function fromTokenMarketDataDTO(input: TokenMarketData): TokenMarketData$1;
|
|
16
|
-
declare function fromTokenCandle(input: Candle): TokenCandle;
|
|
17
|
-
declare function fromTokenSecurity(input: Record<string, unknown>): TokenSecurity;
|
|
18
|
-
declare function toSwapRouteInput(params: API.SwapParams): SwapRouteInput;
|
|
19
|
-
declare function toSendTxInput(params: API.SendTxParams): SendTxInput;
|
|
20
|
-
declare function fromTokenHolderPage(input: TokenHolderPage): API.CursorList<TokenHolder>;
|
|
21
|
-
declare function fromTokenPage(input: TokenPage): API.SearchTokenCursorList;
|
|
22
|
-
declare function fromSwapRoute(input: SwapRouteResponse): API.SwapRoute;
|
|
23
|
-
declare function fromSendTxResult(input: SendTxResponse): API.SendTxResult;
|
|
24
|
-
declare function fromWalletPortfolios(chain: Chain, input: WalletNetWorthPage): WalletPortfolios;
|
|
25
|
-
declare function fromWalletPnlSummary(chain: Chain, address: string, input: WalletPnlSummaryDTO): WalletPnl;
|
|
26
|
-
declare function fromPnlDetailsPage(chain: Chain, address: string, input: PnlDetailsPage): WalletPortfolioPnls;
|
|
27
|
-
declare function fromWalletNetWorthByTokens(chain: Chain, input: WalletNetWorthByTokensResult): Portfolio[];
|
|
28
|
-
declare function fromPnlDetailItems(chain: Chain, input: PnlDetailsPage): PortfolioPnl[];
|
|
29
|
-
declare function fromTradePage(input: TradePage): API.CursorList<TradeActivity>;
|
|
30
|
-
declare function fromTokenSubscribed(chain: Chain, input: WsNewToken): API.TokenSubscribed;
|
|
31
|
-
declare function fromTokenMetadataSubscribed(chain: Chain, input: WsTokenMetadata): API.TokenSubscribed;
|
|
32
|
-
declare function fromWsCandle(input: WsCandle): TokenCandle;
|
|
33
|
-
declare function fromWsTokenStats(input: WsTokenStat): TokenStats;
|
|
34
|
-
declare function fromWsTokenMarketDataFromStats(input: WsTokenStat): TokenMarketData$1;
|
|
35
|
-
declare function fromWsTokenDataSubscribed(chain: Chain, input: WsTokenStat): API.TokenSubscribed;
|
|
36
|
-
declare function fromWsTokenSupplyToSubscribed(chain: Chain, address: string, input: WsTokenSupply): API.TokenSubscribed;
|
|
37
|
-
declare function fromWsTokenHolderToSubscribed(chain: Chain, address: string, input: WsTokenHolder): API.TokenSubscribed;
|
|
38
|
-
declare function fromWsTokenLiquidityToSubscribed(chain: Chain, address: string, input: WsTokenLiquidity): API.TokenSubscribed;
|
|
39
|
-
declare function fromWsTokenBondingCurveToSubscribed(chain: Chain, input: WsTokenBondingCurve): API.TokenSubscribed;
|
|
40
|
-
declare function fromWsTokenMaxLiquidityToSubscribed(chain: Chain, address: string, input: WsTokenMaxLiquidity): API.TokenSubscribed;
|
|
41
|
-
declare function fromWsTokenTotalLiquidityToSubscribed(chain: Chain, address: string, input: WsTokenTotalLiquidity): API.TokenSubscribed;
|
|
42
|
-
declare function fromWsTokenMarketDataFromHolder(input: WsTokenHolder): Partial<TokenMarketData$1>;
|
|
43
|
-
declare function fromWsTradeActivity(chain: Chain, input: WsTradeActivity): TradeActivity;
|
|
44
|
-
|
|
45
|
-
export { fromChainDTO, fromPnlDetailItems, fromPnlDetailsPage, fromSendTxResult, fromSwapRoute, fromTokenCandle, fromTokenCreatorDTO, fromTokenDTO, fromTokenHolderPage, fromTokenLiquidityDTO, fromTokenMarketDataDTO, fromTokenMetadataSubscribed, fromTokenPage, fromTokenSecurity, fromTokenStatsDTO, fromTokenSubscribed, fromTradePage, fromWalletNetWorthByTokens, fromWalletPnlSummary, fromWalletPortfolios, fromWsCandle, fromWsTokenBondingCurveToSubscribed, fromWsTokenDataSubscribed, fromWsTokenHolderToSubscribed, fromWsTokenLiquidityToSubscribed, fromWsTokenMarketDataFromHolder, fromWsTokenMarketDataFromStats, fromWsTokenMaxLiquidityToSubscribed, fromWsTokenStats, fromWsTokenSupplyToSubscribed, fromWsTokenTotalLiquidityToSubscribed, fromWsTradeActivity, toChainDTO, toFieldDTO, toRangeFiltersDTO, toResolutionDTO, toSearchFieldDTO, toSendTxInput, toSortDirectionDTO, toSwapRouteInput };
|
package/dist/utils.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');function ze(e){switch(e){case types.Chain.ETHEREUM:return sdk.ChainSymbol.eth;case types.Chain.BINANCE:return sdk.ChainSymbol.bsc;case types.Chain.SOLANA:return sdk.ChainSymbol.sol}throw new Error(`Unsupported chain: ${e}`)}function Ve(e){switch(e){case "1s":return sdk.Resolution["1s"];case "15s":return sdk.Resolution["15s"];case "30s":return sdk.Resolution["30s"];case "1m":return sdk.Resolution["1m"];case "5m":return sdk.Resolution["5m"];case "15m":return sdk.Resolution["15m"];case "30m":case "1h":return sdk.Resolution["1h"];case "4h":return sdk.Resolution["4h"];case "12h":return sdk.Resolution["12h"];case "24h":return sdk.Resolution["1d"]}}function pe(e){switch(e){case "asc":return "ASC";case "desc":return "DESC"}}function Be(e){switch(e){case "marketCap":return sdk.SearchSortBy.marketCapInUsd;case "tvl":return sdk.SearchSortBy.liquidityInUsd;case "price":return sdk.SearchSortBy.priceInUsd;case "holders":return sdk.SearchSortBy.holderCount;case "volumes24h":return sdk.SearchSortBy.h24VolumeInUsd;case "trades24h":return sdk.SearchSortBy.h24Transactions;case "createdAt":return sdk.SearchSortBy.tokenCreatedAt}throw new Error(`Unsupported search field: ${e}`)}function N(e){switch(e){case "price":return sdk.GetNewTokensSortBy.marketDatapriceInUsd;case "priceChange1m":return sdk.GetNewTokensSortBy.statspriceChangeRatioInUsd1m;case "priceChange5m":return sdk.GetNewTokensSortBy.statspriceChangeRatioInUsd5m;case "priceChange1h":return sdk.GetNewTokensSortBy.statspriceChangeRatioInUsd1h;case "priceChange4h":return sdk.GetNewTokensSortBy.statspriceChangeRatioInUsd4h;case "priceChange24h":return sdk.GetNewTokensSortBy.statspriceChangeRatioInUsd24h;case "marketCap":return sdk.GetNewTokensSortBy.marketDatamarketCapInUsd;case "tvl":return sdk.GetNewTokensSortBy.marketDatamaxPoolTvlInUsd;case "top10Holdings":return sdk.GetNewTokensSortBy.marketDatatop10TotalHoldings;case "top10Ratio":return sdk.GetNewTokensSortBy.marketDatatop10HoldingsRatio;case "top100Holdings":return sdk.GetNewTokensSortBy.marketDatatop100TotalHoldings;case "top100Ratio":return sdk.GetNewTokensSortBy.marketDatatop100HoldingsRatio;case "holders":return sdk.GetNewTokensSortBy.marketDataholders;case "creatorsHoldings":return sdk.GetNewTokensSortBy.marketDatacreatorHoldings;case "creatorsRatio":return sdk.GetNewTokensSortBy.marketDatacreatorHoldingsRatio;case "buys1m":return sdk.GetNewTokensSortBy.statsbuys1m;case "buys5m":return sdk.GetNewTokensSortBy.statsbuys5m;case "buys15m":return sdk.GetNewTokensSortBy.statsbuys15m;case "buys30m":return sdk.GetNewTokensSortBy.statsbuys30m;case "buys1h":return sdk.GetNewTokensSortBy.statsbuys1h;case "buys4h":return sdk.GetNewTokensSortBy.statsbuys4h;case "buys24h":return sdk.GetNewTokensSortBy.statsbuys24h;case "sells1m":return sdk.GetNewTokensSortBy.statssells1m;case "sells5m":return sdk.GetNewTokensSortBy.statssells5m;case "sells15m":return sdk.GetNewTokensSortBy.statssells15m;case "sells30m":return sdk.GetNewTokensSortBy.statssells30m;case "sells1h":return sdk.GetNewTokensSortBy.statssells1h;case "sells4h":return sdk.GetNewTokensSortBy.statssells4h;case "sells24h":return sdk.GetNewTokensSortBy.statssells24h;case "trades1m":return sdk.GetNewTokensSortBy.statstrades1m;case "trades5m":return sdk.GetNewTokensSortBy.statstrades5m;case "trades1h":return sdk.GetNewTokensSortBy.statstrades1h;case "trades4h":return sdk.GetNewTokensSortBy.statstrades4h;case "trades24h":return sdk.GetNewTokensSortBy.statstrades24h;case "traders1m":return sdk.GetNewTokensSortBy.statstraders1m;case "traders5m":return sdk.GetNewTokensSortBy.statstraders5m;case "traders1h":return sdk.GetNewTokensSortBy.statstraders1h;case "traders4h":return sdk.GetNewTokensSortBy.statstraders4h;case "traders24h":return sdk.GetNewTokensSortBy.statstraders24h;case "volumes1m":return sdk.GetNewTokensSortBy.statsvolumesInUsd1m;case "volumes5m":return sdk.GetNewTokensSortBy.statsvolumesInUsd5m;case "volumes1h":return sdk.GetNewTokensSortBy.statsvolumesInUsd1h;case "volumes4h":return sdk.GetNewTokensSortBy.statsvolumesInUsd4h;case "volumes24h":return sdk.GetNewTokensSortBy.statsvolumesInUsd24h;case "createdAt":return sdk.GetNewTokensSortBy.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function qe(e){return e.filter(o=>["gt","gte","lt","lte","between"].indexOf(o.operator)>=0).map(o=>{let s={field:N(o.field)};return ["gt","gte","between"].indexOf(o.operator)>=0&&(s.min=typeof o.value=="number"?new utils.SafeBigNumber(o.value).toString():o.value),["lt","lte","between"].indexOf(o.operator)>=0&&(s.max=typeof o.value=="number"?new utils.SafeBigNumber(o.value).toString():o.value),s})}function h(e){switch(e){case sdk.ChainSymbol.eth:return types.Chain.ETHEREUM;case sdk.ChainSymbol.bsc:return types.Chain.BINANCE;case sdk.ChainSymbol.sol:case "solana":return types.Chain.SOLANA}throw new Error(`Unsupported chain: ${e}`)}function W(e){return {address:e.address,share:e.share,isVerified:e.isVerified}}function F(e){return {chain:h(e.chain),name:e.name,symbol:e.symbol,address:e.address,decimals:e.decimals,image:e.imageUrl,description:e.description,creators:e.tokenCreators?.map(W),launchedFrom:{programAddress:e.extra?.launchFromProgramAddress,protocolFamily:e.extra?.launchFromProtocolFamily},migrateProgress:e.marketData.completionRatio?new utils.SafeBigNumber(e.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:e.extra?.migratedToProgramAddress,protocolFamily:e.extra?.migratedToProtocolFamily,poolAddress:e.extra?.migratedToPoolAddress,migratedAt:e.extra?.migratedAt?new Date(e.extra.migratedAt):void 0},socialMedias:e.socialMedias?{...e.socialMedias}:void 0,stats:e.stats?O(e.stats):void 0,marketData:e.marketData?z(e.marketData):void 0,liquidities:e.liquidity?.map(M),createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function O(e){return {"1m":i(e,"1m"),"5m":i(e,"5m"),"15m":i(e,"15m"),"30m":i(e,"30m"),"1h":i(e,"1h"),"4h":i(e,"4h"),"24h":i(e,"24h")}}function m(e){return e===void 0?void 0:parseInt(e)}function i(e,o){let s=e.periods?.[o];return s?{buys:m(s.buys),sells:m(s.sells),trades:m(s.trades),buyers:m(s.buyers),sellers:m(s.sellers),traders:m(s.traders),buyVolumes:s.buyVolume,sellVolumes:s.sellVolume,volumes:s.totalVolumeInNative,buyVolumesInUsd:s.buyVolumeInUsd,sellVolumesInUsd:s.sellVolumeInUsd,volumesInUsd:s.totalVolumeInUsd,openPriceInUsd:s.openInUsd,closePriceInUsd:s.closeInUsd,highPriceInUsd:s.highInUsd,lowPriceInUsd:s.lowInUsd,priceInUsd:s.closeInUsd,priceChange:s.priceChangeRatioInUsd}:{}}function M(e){return {image:e.image,poolAddress:e.poolAddress,programAddress:e.programAddress,protocolFamily:e.protocolFamily,tvl:e.tvlInSol,tvlInUsd:e.tvlInUsd}}function z(e){return {totalSupply:e.totalSupply,marketCap:e.marketCapInSol,marketCapInUsd:e.marketCapInUsd,price:e.priceInSol,priceInUsd:e.priceInUsd,tvl:e.totalTvlInSol,tvlInUsd:e.totalTvlInUsd,holders:parseInt(e.holders),top10Holdings:e.top10TotalHoldings,top10HoldingsRatio:e.top10HoldingsRatio,top50Holdings:e.top50TotalHoldings,top50HoldingsRatio:e.top50HoldingsRatio,top100Holdings:e.top100TotalHoldings,top100HoldingsRatio:e.top100HoldingsRatio,bluechipHolders:e.bluechipTotalHolders===void 0?void 0:parseInt(e.bluechipTotalHolders),bluechipHoldings:e.bluechipTotalHoldings,bluechipHoldingsRatio:e.bluechipHoldingsRatio,kolHolders:e.kolTotalHolders===void 0?void 0:parseInt(e.kolTotalHolders),kolHoldings:e.kolTotalHoldings,kolHoldingsRatio:e.kolHoldingsRatio,sniperHolders:e.sniperTotalHolders===void 0?void 0:parseInt(e.sniperTotalHolders),sniperHoldings:e.sniperTotalHoldings,sniperHoldingsRatio:e.sniperHoldingsRatio,proHolders:e.proTotalHolders===void 0?void 0:parseInt(e.proTotalHolders),proHoldings:e.proTotalHoldings,proHoldingsRatio:e.proHoldingsRatio,insiderHolders:e.insiderTotalHolders===void 0?void 0:parseInt(e.insiderTotalHolders),insiderHoldings:e.insiderTotalHoldings,insiderHoldingsRatio:e.insiderHoldingsRatio,sandwichHolders:e.sandwishTotalHolders===void 0?void 0:parseInt(e.sandwishTotalHolders),sandwichHoldings:e.sandwishTotalHoldings,sandwichHoldingsRatio:e.sandwishHoldingsRatio,freshHolders:e.freshTotalHolders===void 0?void 0:parseInt(e.freshTotalHolders),freshHoldings:e.freshTotalHoldings,freshHoldingsRatio:e.freshHoldingsRatio,bundleHolders:e.bundleTotalHolders===void 0?void 0:parseInt(e.bundleTotalHolders),bundleHoldings:e.bundleTotalHoldings,bundleHoldingsRatio:e.bundleHoldingsRatio,devHolders:e.devTotalHolders===void 0?void 0:parseInt(e.devTotalHolders),devHoldings:e.devTotalHoldings,devHoldingsRatio:e.devHoldingsRatio}}function Le(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:S(e.resolution),timestamp:new Date(e.time)}}function S(e){return e==="1d"?"24h":e}function Ee(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}function $e(e){return {dex:"jupiter",userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.API.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:e.input,outputMint:e.output,priorityFee:e.priorityFee}}function _e(e){return {signedTx:e.serializedTx}}function je(e){return {startCursor:e.startCursor,endCursor:e.endCursor,hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(o=>({address:o.walletAddress,amount:o.amount,amountInUsd:o.amountInUsd,ratio:o.percentage}))}}function Ge(e){return {startCursor:e.startCursor,endCursor:e.endCursor,hasPrev:e.hasPrev,hasNext:e.hasNext,total:e.total,data:e.data.map(F),extra:e.countsByProtocols}}function Qe(e){return {serializedTx:e.serializedTx,plans:[],extra:e.routeInfo}}function Xe(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Ye(e,o){let s=(o.data??[]).map(n=>({chain:h(n.chain),address:n.tokenAddress,name:n.name,symbol:n.symbol,image:n.logoUri,priceInUsd:n.priceInUsd,priceInNative:n.priceInNative,amount:n.amount,amountInUsd:n.valueInUsd,amountInNative:n.valueInNative,decimals:n.decimals}));return {chain:s[0]?.chain??e,address:o.walletAddress,balanceInUsd:o.totalValueInUsd,balanceInNative:o.totalValueInNative,startCursor:o.startCursor,endCursor:o.endCursor,hasPrev:o.hasPrev,hasNext:o.hasNext,portfolios:s}}function Je(e,o,s){return {chain:e,address:o,tokens:s.tokens?Number(s.tokens):void 0,buys:s.buys?Number(s.buys):void 0,sells:s.sells?Number(s.sells):void 0,totalTrades:s.totalTrades?Number(s.totalTrades):void 0,wins:s.wins?Number(s.wins):void 0,losses:s.losses?Number(s.losses):void 0,winRate:s.winRate,buyAmountInUsd:s.buyAmountInUsd,sellAmountInUsd:s.sellAmountInUsd,totalCostInUsd:s.totalCostInUsd,realizedProfitInUsd:s.realizedProfitInUsd,realizedProfitRatio:s.realizedProfitRatio,unrealizedProfitInUsd:s.unrealizedProfitInUsd,unrealizedProfitRatio:s.unrealizedProfitRatio,totalProfitInUsd:s.totalProfitInUsd,totalProfitRatio:s.totalProfitRatio,avgProfitPerTradeInUsd:s.avgProfitPerTradeInUsd}}function Ke(e,o,s){let n=s.data.map(a=>({chain:e,address:a.tokenAddress,name:a.name,symbol:a.symbol,image:a.logoUri,amount:a.balance,amountInUsd:a.currentValue,priceInUsd:a.priceInUsd,decimals:a.decimals,totalTrades:Number(a.totalTrades),buys:Number(a.buys),buyVolumes:a.buyAmount,buyVolumesInUsd:a.buyAmountInUsd,buyAvgPriceInUsd:a.avgBuyPriceInUsd,sells:Number(a.sells),sellVolumes:a.sellAmount,sellVolumesInUsd:a.sellAmountInUsd,sellAvgPriceInUsd:a.avgSellPriceInUsd,realizedProfitInUsd:a.realizedProfitInUsd,realizedProfitRatio:a.realizedProfitRatio,unrealizedProfitInUsd:a.unrealizedProfitInUsd,unrealizedProfitRatio:a.unrealizedProfitRatio,totalProfitInUsd:a.totalProfitInUsd,totalProfitRatio:a.totalProfitRatio}));return {chain:e,address:o,tokens:Number(s.summary.tokens),buys:Number(s.summary.buys),sells:Number(s.summary.sells),totalTrades:Number(s.summary.totalTrades),wins:Number(s.summary.wins),losses:Number(s.summary.losses),winRate:s.summary.winRate,buyAmountInUsd:s.summary.buyAmountInUsd,sellAmountInUsd:s.summary.sellAmountInUsd,totalCostInUsd:s.summary.totalCostInUsd,realizedProfitInUsd:s.summary.realizedProfitInUsd,realizedProfitRatio:s.summary.realizedProfitRatio,unrealizedProfitInUsd:s.summary.unrealizedProfitInUsd,totalProfitInUsd:s.summary.totalProfitInUsd,startCursor:s.startCursor,endCursor:s.endCursor,hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:n}}function Ze(e,o){return (o.data??[]).map(s=>({chain:h(s.chain),address:s.tokenAddress,name:s.name,symbol:s.symbol,image:s.logoUri,priceInUsd:s.priceInUsd,priceInNative:s.priceInNative,amount:s.amount,amountInUsd:s.valueInUsd,amountInNative:s.valueInNative,decimals:s.decimals}))}function es(e,o){return o.data.map(s=>({chain:e,address:s.tokenAddress,name:s.name,symbol:s.symbol,image:s.logoUri,amount:s.balance,amountInUsd:s.currentValue,priceInUsd:s.priceInUsd,decimals:s.decimals,totalTrades:Number(s.totalTrades),buys:Number(s.buys),buyVolumes:s.buyAmount,buyVolumesInUsd:s.buyAmountInUsd,buyAvgPriceInUsd:s.avgBuyPriceInUsd,sells:Number(s.sells),sellVolumes:s.sellAmount,sellVolumesInUsd:s.sellAmountInUsd,sellAvgPriceInUsd:s.avgSellPriceInUsd,realizedProfitInUsd:s.realizedProfitInUsd,realizedProfitRatio:s.realizedProfitRatio,unrealizedProfitInUsd:s.unrealizedProfitInUsd,unrealizedProfitRatio:s.unrealizedProfitRatio,totalProfitInUsd:s.totalProfitInUsd,totalProfitRatio:s.totalProfitRatio}))}function ss(e){return {startCursor:e.startCursor,endCursor:e.endCursor,hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(V)}}function V(e){let o=e.type.toLowerCase()==="buy";return {chain:h(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:o?"buy":"sell",from:{address:o?e.sideTokenAddress:e.tokenAddress,symbol:o?e.sideTokenSymbol:e.tokenSymbol,name:o?e.sideTokenName:e.tokenName,image:o?e.sideTokenImageUrl:e.tokenImageUrl,amount:o?e.sideTokenAmount:e.tokenAmount,amountInUsd:o?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:o?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:o?e.tokenAddress:e.sideTokenAddress,symbol:o?e.tokenSymbol:e.sideTokenSymbol,name:o?e.tokenName:e.sideTokenName,image:o?e.tokenImageUrl:e.sideTokenImageUrl,amount:o?e.tokenAmount:e.sideTokenAmount,amountInUsd:o?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:o?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:e.dexProgramAddress,protocolFamily:e.dexProtocolFamily,image:e.dexImage},poolAddress:e.poolAddress,status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function os(e,o){return {chain:e,address:o.tokenAddress,name:o.name,symbol:o.symbol,decimals:o.decimals,createdAt:o.createdAtMs?new Date(o.createdAtMs):void 0,launchedFrom:o.launchFrom?{programAddress:o.launchFrom.programAddress,protocolFamily:o.launchFrom.protocolFamily}:void 0}}function rs(e,o){return {chain:e,address:o.tokenAddress,name:o.name,symbol:o.symbol,decimals:o.decimals,image:o.imageUrl,description:o.description,socialMedias:o.socialMedia?{...o.socialMedia}:void 0,createdAt:o.createdAtMs?new Date(o.createdAtMs):void 0,launchedFrom:o.launchFrom?{programAddress:o.launchFrom.programAddress,protocolFamily:o.launchFrom.protocolFamily}:void 0,migratedTo:o.migratedTo?{programAddress:o.migratedTo.programAddress,protocolFamily:o.migratedTo.protocolFamily}:void 0}}function as(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:S(e.resolution),timestamp:new Date(e.time)}}function p(e){let o=["1m","5m","15m","30m","1h","4h","24h"],s=e,n={};for(let a of o){let f=s[`buys${a}`],g=s[`sells${a}`],b=s[`buyers${a}`],k=s[`sellers${a}`],y=s[`buyVolumeInUsd${a}`],U=s[`sellVolumeInUsd${a}`],P=s[`trades${a}`],A=s[`price${a}`],T=s[`openInUsd${a}`],I=s[`closeInUsd${a}`];if(!(f!==void 0||g!==void 0||P!==void 0||A!==void 0))continue;let C=P??(f!==void 0&&g!==void 0?f+g:void 0),v=b!==void 0&&k!==void 0?b+k:void 0,x=y!==void 0&&U!==void 0?new utils.SafeBigNumber(y).plus(U).toString():void 0,w=T&&I&&new utils.SafeBigNumber(T).gt(0)?new utils.SafeBigNumber(I).minus(T).div(T).toString():void 0;n[a]={buys:f,sells:g,trades:C,buyers:b,sellers:k,traders:v,buyVolumesInUsd:y,sellVolumesInUsd:U,volumesInUsd:x,openPriceInUsd:T,closePriceInUsd:I,priceInUsd:A??I,priceChange:w};}return n}function B(e){return {priceInUsd:e.price}}function ns(e,o){return {chain:e,address:o.address,stats:p(o),marketData:B(o)}}function ts(e,o,s){return {chain:e,address:o,marketData:{totalSupply:s.supply,marketCapInUsd:s.marketCapInUsd}}}function ds(e,o,s){return {chain:e,address:o,marketData:q(s)}}function ls(e,o,s){return s.metricType===sdk.WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:o,marketData:{tvlInUsd:s.value}}:s.metricType===sdk.WsMetricType.MIGRATED_RATIO?{chain:e,address:o,migrateProgress:new utils.SafeBigNumber(s.value).shiftedBy(2).toString()}:{chain:e,address:o}}function is(e,o){return {chain:e,address:o.tokenAddress??"",migrateProgress:o.progressRatio?new utils.SafeBigNumber(o.progressRatio).shiftedBy(2).toString():void 0}}function ms(e,o,s){return {chain:e,address:o,liquidities:[{poolAddress:s.poolAddress,tvlInUsd:s.liquidityInUsd,tvl:s.liquidityInNative}]}}function cs(e,o,s){return {chain:e,address:o,marketData:{tvlInUsd:s.liquidityInUsd,tvl:s.liquidityInNative}}}function q(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,devHolders:e.balanceTagDevHolders===void 0?void 0:e.balanceTagDevHolders,devHoldings:e.balanceTagDevAmount,devHoldingsRatio:e.balanceTagDevRatio,sniperHolders:e.balanceTagSniperHolders===void 0?void 0:e.balanceTagSniperHolders,sniperHoldings:e.balanceTagSniperAmount,sniperHoldingsRatio:e.balanceTagSniperRatio,freshHolders:e.balanceTagFreshHolders===void 0?void 0:e.balanceTagFreshHolders,freshHoldings:e.balanceTagFreshAmount,freshHoldingsRatio:e.balanceTagFreshRatio,bundleHolders:e.balanceTagBundleHolders===void 0?void 0:e.balanceTagBundleHolders,bundleHoldings:e.balanceTagBundleAmount,bundleHoldingsRatio:e.balanceTagBundleRatio,sandwichHolders:e.balanceTagSandwichHolders===void 0?void 0:e.balanceTagSandwichHolders,sandwichHoldings:e.balanceTagSandwichAmount,sandwichHoldingsRatio:e.balanceTagSandwichRatio}}function us(e,o){let s=o.kind.toLowerCase()==="buy";return {chain:e,walletAddress:s?o.buyWalletAddress:o.sellWalletAddress,txHash:o.txHash,type:s?"buy":"sell",from:{address:o.sellTokenAddress,symbol:o.sellTokenSymbol,name:o.sellTokenName,amount:o.sellAmount,amountInUsd:o.sellAmountInUsd},to:{address:o.buyTokenAddress,symbol:o.buyTokenSymbol,name:o.buyTokenName,amount:o.buyAmount,amountInUsd:o.buyAmountInUsd},status:"success",time:new Date(o.timestamp)}}exports.fromChainDTO=h;exports.fromPnlDetailItems=es;exports.fromPnlDetailsPage=Ke;exports.fromSendTxResult=Xe;exports.fromSwapRoute=Qe;exports.fromTokenCandle=Le;exports.fromTokenCreatorDTO=W;exports.fromTokenDTO=F;exports.fromTokenHolderPage=je;exports.fromTokenLiquidityDTO=M;exports.fromTokenMarketDataDTO=z;exports.fromTokenMetadataSubscribed=rs;exports.fromTokenPage=Ge;exports.fromTokenSecurity=Ee;exports.fromTokenStatsDTO=O;exports.fromTokenSubscribed=os;exports.fromTradePage=ss;exports.fromWalletNetWorthByTokens=Ze;exports.fromWalletPnlSummary=Je;exports.fromWalletPortfolios=Ye;exports.fromWsCandle=as;exports.fromWsTokenBondingCurveToSubscribed=is;exports.fromWsTokenDataSubscribed=ns;exports.fromWsTokenHolderToSubscribed=ds;exports.fromWsTokenLiquidityToSubscribed=ls;exports.fromWsTokenMarketDataFromHolder=q;exports.fromWsTokenMarketDataFromStats=B;exports.fromWsTokenMaxLiquidityToSubscribed=ms;exports.fromWsTokenStats=p;exports.fromWsTokenSupplyToSubscribed=ts;exports.fromWsTokenTotalLiquidityToSubscribed=cs;exports.fromWsTradeActivity=us;exports.toChainDTO=ze;exports.toFieldDTO=N;exports.toRangeFiltersDTO=qe;exports.toResolutionDTO=Ve;exports.toSearchFieldDTO=Be;exports.toSendTxInput=_e;exports.toSortDirectionDTO=pe;exports.toSwapRouteInput=$e;//# sourceMappingURL=utils.js.map
|
|
2
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts"],"names":["toChainDTO","chain","Chain","ChainSymbol","toResolutionDTO","resolution","Resolution","toSortDirectionDTO","direction","toSearchFieldDTO","field","SearchSortBy","toFieldDTO","GetNewTokensSortBy","toRangeFiltersDTO","filters","it","cond","SafeBigNumber","fromChainDTO","fromTokenCreatorDTO","input","fromTokenDTO","fromTokenStatsDTO","fromTokenMarketDataDTO","fromTokenLiquidityDTO","parseTokenStatsByResolution","toOptionalNumber","value","period","fromTokenCandle","fromResolutionDTO","fromTokenSecurity","toSwapRouteInput","params","API","SwapRouteInputSwapMode","toSendTxInput","fromTokenHolderPage","holder","fromTokenPage","fromSwapRoute","fromSendTxResult","fromWalletPortfolios","portfolios","item","fromWalletPnlSummary","address","fromPnlDetailsPage","fromWalletNetWorthByTokens","fromPnlDetailItems","fromTradePage","fromTradeDetailDTO","isBuy","fromTokenSubscribed","fromTokenMetadataSubscribed","fromWsCandle","fromWsTokenStats","timeframes","record","result","tf","buys","sells","buyers","sellers","buyVolumeInUsd","sellVolumeInUsd","trades","price","openInUsd","closeInUsd","totalTrades","totalTraders","totalVolumesInUsd","priceChange","fromWsTokenMarketDataFromStats","fromWsTokenDataSubscribed","fromWsTokenSupplyToSubscribed","fromWsTokenHolderToSubscribed","fromWsTokenMarketDataFromHolder","fromWsTokenLiquidityToSubscribed","WsMetricType","fromWsTokenBondingCurveToSubscribed","fromWsTokenMaxLiquidityToSubscribed","fromWsTokenTotalLiquidityToSubscribed","fromWsTradeActivity"],"mappings":"0HA2DO,SAASA,EAAAA,CAAWC,EAA2B,CACpD,OAAQA,CAAAA,EACN,KAAKC,WAAAA,CAAM,QAAA,CACT,OAAOC,eAAAA,CAAY,GAAA,CACrB,KAAKD,WAAAA,CAAM,OAAA,CACT,OAAOC,eAAAA,CAAY,IACrB,KAAKD,WAAAA,CAAM,MAAA,CACT,OAAOC,gBAAY,GACvB,CACA,MAAM,IAAI,MAAM,CAAA,mBAAA,EAAsBF,CAAK,EAAE,CAC/C,CAEO,SAASG,EAAAA,CAAgBC,CAAAA,CAAyC,CACvE,OAAQA,GACN,KAAK,IAAA,CACH,OAAOC,eAAW,IAAI,CAAA,CACxB,KAAK,KAAA,CACH,OAAOA,cAAAA,CAAW,KAAK,EACzB,KAAK,KAAA,CACH,OAAOA,cAAAA,CAAW,KAAK,CAAA,CACzB,KAAK,KACH,OAAOA,cAAAA,CAAW,IAAI,CAAA,CACxB,KAAK,IAAA,CACH,OAAOA,cAAAA,CAAW,IAAI,EACxB,KAAK,KAAA,CACH,OAAOA,cAAAA,CAAW,KAAK,EACzB,KAAK,KAAA,CACL,KAAK,IAAA,CACH,OAAOA,cAAAA,CAAW,IAAI,CAAA,CACxB,KAAK,KACH,OAAOA,cAAAA,CAAW,IAAI,CAAA,CACxB,KAAK,KAAA,CACH,OAAOA,eAAW,KAAK,CAAA,CACzB,KAAK,KAAA,CACH,OAAOA,cAAAA,CAAW,IAAI,CAC1B,CACF,CAEO,SAASC,EAAAA,CAAmBC,EAAmC,CACpE,OAAQA,CAAAA,EACN,KAAK,KAAA,CACH,OAAO,MACT,KAAK,MAAA,CACH,OAAO,MACX,CACF,CAEO,SAASC,GAAiBC,CAAAA,CAAqC,CACpE,OAAQA,CAAAA,EACN,KAAK,WAAA,CACH,OAAOC,gBAAAA,CAAa,eACtB,KAAK,KAAA,CACH,OAAOA,gBAAAA,CAAa,cAAA,CACtB,KAAK,OAAA,CACH,OAAOA,gBAAAA,CAAa,UAAA,CACtB,KAAK,SAAA,CACH,OAAOA,gBAAAA,CAAa,WAAA,CACtB,KAAK,YAAA,CACH,OAAOA,gBAAAA,CAAa,cAAA,CACtB,KAAK,WAAA,CACH,OAAOA,iBAAa,eAAA,CACtB,KAAK,YACH,OAAOA,gBAAAA,CAAa,cACxB,CACA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6BD,CAAK,EAAE,CACtD,CAEO,SAASE,CAAAA,CAAWF,EAAqC,CAC9D,OAAQA,GACN,KAAK,QACH,OAAOG,sBAAAA,CAAmB,oBAAA,CAC5B,KAAK,gBACH,OAAOA,sBAAAA,CAAmB,4BAAA,CAC5B,KAAK,gBACH,OAAOA,sBAAAA,CAAmB,4BAAA,CAC5B,KAAK,gBACH,OAAOA,sBAAAA,CAAmB,6BAC5B,KAAK,eAAA,CACH,OAAOA,sBAAAA,CAAmB,4BAAA,CAC5B,KAAK,gBAAA,CACH,OAAOA,sBAAAA,CAAmB,6BAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,sBAAAA,CAAmB,wBAAA,CAC5B,KAAK,KAAA,CACH,OAAOA,sBAAAA,CAAmB,yBAAA,CAC5B,KAAK,eAAA,CACH,OAAOA,uBAAmB,4BAAA,CAC5B,KAAK,YAAA,CACH,OAAOA,uBAAmB,4BAAA,CAC5B,KAAK,gBAAA,CACH,OAAOA,uBAAmB,6BAAA,CAC5B,KAAK,aAAA,CACH,OAAOA,uBAAmB,6BAAA,CAC5B,KAAK,UACH,OAAOA,sBAAAA,CAAmB,kBAC5B,KAAK,kBAAA,CACH,OAAOA,sBAAAA,CAAmB,0BAC5B,KAAK,eAAA,CACH,OAAOA,sBAAAA,CAAmB,+BAC5B,KAAK,QAAA,CACH,OAAOA,sBAAAA,CAAmB,YAC5B,KAAK,QAAA,CACH,OAAOA,sBAAAA,CAAmB,WAAA,CAC5B,KAAK,SAAA,CACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,SAAA,CACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,QAAA,CACH,OAAOA,sBAAAA,CAAmB,WAAA,CAC5B,KAAK,QAAA,CACH,OAAOA,uBAAmB,WAAA,CAC5B,KAAK,UACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,UACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,UACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,WACH,OAAOA,sBAAAA,CAAmB,cAC5B,KAAK,UAAA,CACH,OAAOA,sBAAAA,CAAmB,aAAA,CAC5B,KAAK,SAAA,CACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,SAAA,CACH,OAAOA,sBAAAA,CAAmB,YAAA,CAC5B,KAAK,UAAA,CACH,OAAOA,sBAAAA,CAAmB,aAAA,CAC5B,KAAK,UAAA,CACH,OAAOA,sBAAAA,CAAmB,aAAA,CAC5B,KAAK,UAAA,CACH,OAAOA,sBAAAA,CAAmB,aAAA,CAC5B,KAAK,UAAA,CACH,OAAOA,sBAAAA,CAAmB,aAAA,CAC5B,KAAK,UAAA,CACH,OAAOA,sBAAAA,CAAmB,aAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,uBAAmB,cAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,uBAAmB,cAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,uBAAmB,cAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,uBAAmB,cAAA,CAC5B,KAAK,YACH,OAAOA,sBAAAA,CAAmB,eAC5B,KAAK,YAAA,CACH,OAAOA,sBAAAA,CAAmB,gBAC5B,KAAK,WAAA,CACH,OAAOA,sBAAAA,CAAmB,oBAC5B,KAAK,WAAA,CACH,OAAOA,sBAAAA,CAAmB,oBAC5B,KAAK,WAAA,CACH,OAAOA,sBAAAA,CAAmB,mBAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,sBAAAA,CAAmB,mBAAA,CAC5B,KAAK,YAAA,CACH,OAAOA,sBAAAA,CAAmB,oBAAA,CAC5B,KAAK,WAAA,CACH,OAAOA,sBAAAA,CAAmB,cAC9B,CACA,MAAM,IAAI,MAAM,CAAA,oBAAA,EAAuBH,CAAK,EAAE,CAChD,CAEO,SAASI,EAAAA,CACdC,EACwB,CACxB,OAAOA,CAAAA,CACJ,MAAA,CACEC,GAAO,CAAC,IAAA,CAAM,KAAA,CAAO,IAAA,CAAM,MAAO,SAAS,CAAA,CAAE,QAAQA,CAAAA,CAAG,QAAQ,GAAK,CACxE,CAAA,CACC,GAAA,CAAKA,CAAAA,EAAO,CACX,IAAMC,CAAAA,CAAO,CAAE,KAAA,CAAOL,EAAWI,CAAAA,CAAG,KAAK,CAAE,CAAA,CAC3C,OAAI,CAAC,IAAA,CAAM,MAAO,SAAS,CAAA,CAAE,QAAQA,CAAAA,CAAG,QAAQ,CAAA,EAAK,CAAA,GACnDC,EAAK,GAAA,CACH,OAAOD,CAAAA,CAAG,KAAA,EAAU,SAChB,IAAIE,mBAAAA,CAAcF,CAAAA,CAAG,KAAK,EAAE,QAAA,EAAS,CACpCA,EAAG,KAAA,CAAA,CAER,CAAC,KAAM,KAAA,CAAO,SAAS,CAAA,CAAE,OAAA,CAAQA,EAAG,QAAQ,CAAA,EAAK,CAAA,GACnDC,CAAAA,CAAK,IACH,OAAOD,CAAAA,CAAG,KAAA,EAAU,QAAA,CAChB,IAAIE,mBAAAA,CAAcF,CAAAA,CAAG,KAAK,CAAA,CAAE,QAAA,GAC3BA,CAAAA,CAAG,KAAA,CAAA,CAELC,CACT,CAAC,CACL,CAEO,SAASE,CAAAA,CAAalB,CAAAA,CAAsB,CACjD,OAAQA,CAAAA,EACN,KAAKE,gBAAY,GAAA,CACf,OAAOD,YAAM,QAAA,CACf,KAAKC,gBAAY,GAAA,CACf,OAAOD,WAAAA,CAAM,OAAA,CACf,KAAKC,eAAAA,CAAY,GAAA,CACjB,KAAK,QAAA,CACH,OAAOD,WAAAA,CAAM,MACjB,CACA,MAAM,IAAI,KAAA,CAAM,CAAA,mBAAA,EAAsBD,CAAK,CAAA,CAAE,CAC/C,CAEO,SAASmB,CAAAA,CAAoBC,CAAAA,CAAuC,CACzE,OAAO,CACL,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,MAAOA,CAAAA,CAAM,KAAA,CACb,UAAA,CAAYA,CAAAA,CAAM,UACpB,CACF,CAEO,SAASC,CAAAA,CAAaD,CAAAA,CAAwB,CACnD,OAAO,CACL,KAAA,CAAOF,CAAAA,CAAaE,EAAM,KAAK,CAAA,CAC/B,IAAA,CAAMA,CAAAA,CAAM,KACZ,MAAA,CAAQA,CAAAA,CAAM,MAAA,CACd,OAAA,CAASA,EAAM,OAAA,CACf,QAAA,CAAUA,EAAM,QAAA,CAChB,KAAA,CAAOA,EAAM,QAAA,CACb,WAAA,CAAaA,CAAAA,CAAM,WAAA,CACnB,SAAUA,CAAAA,CAAM,aAAA,EAAe,GAAA,CAAID,CAAmB,EACtD,YAAA,CAAc,CACZ,cAAA,CAAgBC,CAAAA,CAAM,OAAO,wBAAA,CAC7B,cAAA,CAAgBA,EAAM,KAAA,EAAO,wBAC/B,EACA,eAAA,CAAiBA,CAAAA,CAAM,UAAA,CAAW,eAAA,CAC9B,IAAIH,mBAAAA,CAAcG,CAAAA,CAAM,UAAA,CAAW,eAAe,EAC/C,SAAA,CAAU,CAAC,CAAA,CACX,QAAA,GACH,MAAA,CACJ,UAAA,CAAY,CACV,cAAA,CAAgBA,CAAAA,CAAM,OAAO,wBAAA,CAC7B,cAAA,CAAgBA,CAAAA,CAAM,KAAA,EAAO,yBAC7B,WAAA,CAAaA,CAAAA,CAAM,KAAA,EAAO,qBAAA,CAC1B,WAAYA,CAAAA,CAAM,KAAA,EAAO,UAAA,CACrB,IAAI,KAAKA,CAAAA,CAAM,KAAA,CAAM,UAAU,CAAA,CAC/B,MACN,EACA,YAAA,CAAcA,CAAAA,CAAM,YAAA,CAAe,CAAE,GAAGA,CAAAA,CAAM,YAAa,CAAA,CAAI,MAAA,CAC/D,MAAOA,CAAAA,CAAM,KAAA,CAAQE,CAAAA,CAAkBF,CAAAA,CAAM,KAAK,CAAA,CAAI,MAAA,CACtD,UAAA,CAAYA,CAAAA,CAAM,WACdG,CAAAA,CAAuBH,CAAAA,CAAM,UAAU,CAAA,CACvC,OACJ,WAAA,CAAaA,CAAAA,CAAM,SAAA,EAAW,GAAA,CAAII,CAAqB,CAAA,CACvD,SAAA,CAAWJ,CAAAA,CAAM,cAAA,CACb,IAAI,IAAA,CAAKA,CAAAA,CAAM,cAAc,CAAA,CAC7B,MACN,CACF,CAEO,SAASE,CAAAA,CAAkBF,CAAAA,CAA8B,CAC9D,OAAO,CACJ,IAAA,CAAOK,CAAAA,CAA4BL,EAAO,IAAI,CAAA,CAC9C,IAAA,CAAOK,CAAAA,CAA4BL,EAAO,IAAI,CAAA,CAC9C,MAAQK,CAAAA,CAA4BL,CAAAA,CAAO,KAAK,CAAA,CAChD,KAAA,CAAQK,CAAAA,CAA4BL,CAAAA,CAAO,KAAK,CAAA,CAChD,IAAA,CAAOK,CAAAA,CAA4BL,CAAAA,CAAO,IAAI,CAAA,CAC9C,IAAA,CAAOK,CAAAA,CAA4BL,CAAAA,CAAO,IAAI,CAAA,CAC9C,KAAA,CAAQK,EAA4BL,CAAAA,CAAO,KAAK,CACnD,CACF,CAEA,SAASM,CAAAA,CAAiBC,EAA+C,CACvE,OAAOA,CAAAA,GAAU,MAAA,CAAY,OAAY,QAAA,CAASA,CAAK,CACzD,CAEA,SAASF,CAAAA,CACPL,CAAAA,CACAhB,EACwB,CACxB,IAAMwB,EAASR,CAAAA,CAAM,OAAA,GAAUhB,CAAU,CAAA,CACzC,OAAKwB,CAAAA,CAIE,CACL,IAAA,CAAMF,CAAAA,CAAiBE,EAAO,IAAI,CAAA,CAClC,KAAA,CAAOF,CAAAA,CAAiBE,EAAO,KAAK,CAAA,CACpC,OAAQF,CAAAA,CAAiBE,CAAAA,CAAO,MAAM,CAAA,CACtC,MAAA,CAAQF,CAAAA,CAAiBE,CAAAA,CAAO,MAAM,CAAA,CACtC,OAAA,CAASF,CAAAA,CAAiBE,CAAAA,CAAO,OAAO,CAAA,CACxC,OAAA,CAASF,CAAAA,CAAiBE,CAAAA,CAAO,OAAO,CAAA,CACxC,UAAA,CAAYA,EAAO,SAAA,CACnB,WAAA,CAAaA,EAAO,UAAA,CACpB,OAAA,CAASA,CAAAA,CAAO,mBAAA,CAChB,gBAAiBA,CAAAA,CAAO,cAAA,CACxB,gBAAA,CAAkBA,CAAAA,CAAO,gBACzB,YAAA,CAAcA,CAAAA,CAAO,gBAAA,CACrB,cAAA,CAAgBA,EAAO,SAAA,CACvB,eAAA,CAAiBA,EAAO,UAAA,CACxB,cAAA,CAAgBA,EAAO,SAAA,CACvB,aAAA,CAAeA,CAAAA,CAAO,QAAA,CACtB,WAAYA,CAAAA,CAAO,UAAA,CACnB,WAAA,CAAaA,CAAAA,CAAO,qBACtB,CAAA,CAtBS,EAuBX,CAEO,SAASJ,CAAAA,CAAsBJ,CAAAA,CAAmC,CACvE,OAAO,CACL,MAAOA,CAAAA,CAAM,KAAA,CACb,WAAA,CAAaA,CAAAA,CAAM,YACnB,cAAA,CAAgBA,CAAAA,CAAM,cAAA,CACtB,cAAA,CAAgBA,EAAM,cAAA,CACtB,GAAA,CAAKA,CAAAA,CAAM,QAAA,CACX,SAAUA,CAAAA,CAAM,QAClB,CACF,CAEO,SAASG,EACdH,CAAAA,CACiB,CACjB,OAAO,CACL,YAAaA,CAAAA,CAAM,WAAA,CACnB,SAAA,CAAWA,CAAAA,CAAM,eACjB,cAAA,CAAgBA,CAAAA,CAAM,cAAA,CACtB,KAAA,CAAOA,EAAM,UAAA,CACb,UAAA,CAAYA,EAAM,UAAA,CAClB,GAAA,CAAKA,EAAM,aAAA,CACX,QAAA,CAAUA,CAAAA,CAAM,aAAA,CAChB,QAAS,QAAA,CAASA,CAAAA,CAAM,OAAO,CAAA,CAC/B,cAAeA,CAAAA,CAAM,kBAAA,CACrB,kBAAA,CAAoBA,CAAAA,CAAM,mBAC1B,aAAA,CAAeA,CAAAA,CAAM,mBACrB,kBAAA,CAAoBA,CAAAA,CAAM,mBAC1B,cAAA,CAAgBA,CAAAA,CAAM,mBAAA,CACtB,mBAAA,CAAqBA,EAAM,mBAAA,CAC3B,eAAA,CACEA,CAAAA,CAAM,oBAAA,GAAyB,OAC3B,MAAA,CACA,QAAA,CAASA,CAAAA,CAAM,oBAAoB,EACzC,gBAAA,CAAkBA,CAAAA,CAAM,sBACxB,qBAAA,CAAuBA,CAAAA,CAAM,sBAC7B,UAAA,CACEA,CAAAA,CAAM,eAAA,GAAoB,MAAA,CACtB,OACA,QAAA,CAASA,CAAAA,CAAM,eAAe,CAAA,CACpC,YAAaA,CAAAA,CAAM,gBAAA,CACnB,gBAAA,CAAkBA,CAAAA,CAAM,iBACxB,aAAA,CACEA,CAAAA,CAAM,qBAAuB,MAAA,CACzB,MAAA,CACA,SAASA,CAAAA,CAAM,kBAAkB,CAAA,CACvC,cAAA,CAAgBA,EAAM,mBAAA,CACtB,mBAAA,CAAqBA,CAAAA,CAAM,mBAAA,CAC3B,WACEA,CAAAA,CAAM,eAAA,GAAoB,MAAA,CACtB,MAAA,CACA,SAASA,CAAAA,CAAM,eAAe,EACpC,WAAA,CAAaA,CAAAA,CAAM,iBACnB,gBAAA,CAAkBA,CAAAA,CAAM,gBAAA,CACxB,cAAA,CACEA,EAAM,mBAAA,GAAwB,MAAA,CAC1B,MAAA,CACA,QAAA,CAASA,EAAM,mBAAmB,CAAA,CACxC,eAAA,CAAiBA,CAAAA,CAAM,qBACvB,oBAAA,CAAsBA,CAAAA,CAAM,qBAC5B,eAAA,CACEA,CAAAA,CAAM,uBAAyB,MAAA,CAC3B,MAAA,CACA,QAAA,CAASA,CAAAA,CAAM,oBAAoB,CAAA,CACzC,gBAAA,CAAkBA,CAAAA,CAAM,qBAAA,CACxB,sBAAuBA,CAAAA,CAAM,qBAAA,CAC7B,YAAA,CACEA,CAAAA,CAAM,oBAAsB,MAAA,CACxB,MAAA,CACA,QAAA,CAASA,CAAAA,CAAM,iBAAiB,CAAA,CACtC,aAAA,CAAeA,CAAAA,CAAM,kBAAA,CACrB,mBAAoBA,CAAAA,CAAM,kBAAA,CAC1B,aAAA,CACEA,CAAAA,CAAM,qBAAuB,MAAA,CACzB,MAAA,CACA,QAAA,CAASA,CAAAA,CAAM,kBAAkB,CAAA,CACvC,cAAA,CAAgBA,EAAM,mBAAA,CACtB,mBAAA,CAAqBA,EAAM,mBAAA,CAC3B,UAAA,CACEA,CAAAA,CAAM,eAAA,GAAoB,OACtB,MAAA,CACA,QAAA,CAASA,CAAAA,CAAM,eAAe,EACpC,WAAA,CAAaA,CAAAA,CAAM,gBAAA,CACnB,gBAAA,CAAkBA,EAAM,gBAC1B,CACF,CAEO,SAASS,EAAAA,CAAgBT,EAA4B,CAC1D,OAAO,CACL,IAAA,CAAMA,EAAM,IAAA,CACZ,KAAA,CAAOA,CAAAA,CAAM,KAAA,CACb,KAAMA,CAAAA,CAAM,IAAA,CACZ,GAAA,CAAKA,CAAAA,CAAM,IACX,MAAA,CAAQA,CAAAA,CAAM,OACd,UAAA,CAAYU,CAAAA,CAAkBV,EAAM,UAAU,CAAA,CAC9C,SAAA,CAAW,IAAI,KAAKA,CAAAA,CAAM,IAAI,CAChC,CACF,CAEA,SAASU,CAAAA,CAAkB1B,CAAAA,CAAqC,CAC9D,OAAIA,CAAAA,GAAe,IAAA,CAAa,MACzBA,CACT,CAEO,SAAS2B,EAAAA,CACdX,CAAAA,CACe,CACf,OAAO,CACL,cAAA,CAAgBA,CAAAA,CAAM,cAAA,CACtB,uBAAA,CAAyBA,EAAM,uBAAA,CAG/B,cAAA,CAAgBA,CAAAA,CAAM,cAAA,CACtB,YAAaA,CAAAA,CAAM,WAAA,CACnB,WAAYA,CAAAA,CAAM,UACpB,CACF,CACO,SAASY,EAAAA,CAAiBC,CAAAA,CAAwC,CACvE,OAAO,CACL,GAAA,CAAK,SAAA,CACL,YAAaA,CAAAA,CAAO,WAAA,CACpB,MAAA,CAAQA,CAAAA,CAAO,OACf,QAAA,CAAWA,CAAAA,CAAO,OAASC,SAAAA,CAAI,QAAA,CAAS,SACpCC,0BAAAA,CAAuB,OAAA,CACvBA,0BAAAA,CAAuB,QAAA,CAC3B,SAAUF,CAAAA,CAAO,QAAA,EAAY,CAAA,CAC7B,SAAA,CAAWA,EAAO,KAAA,CAClB,UAAA,CAAYA,CAAAA,CAAO,MAAA,CACnB,YAAaA,CAAAA,CAAO,WACtB,CACF,CAEO,SAASG,GAAcH,CAAAA,CAAuC,CACnE,OAAO,CACL,SAAUA,CAAAA,CAAO,YACnB,CACF,CAEO,SAASI,EAAAA,CACdjB,CAAAA,CAC6B,CAC7B,OAAO,CACL,WAAA,CAAaA,CAAAA,CAAM,YACnB,SAAA,CAAWA,CAAAA,CAAM,UACjB,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,OAAA,CAASA,EAAM,OAAA,CACf,IAAA,CAAMA,CAAAA,CAAM,IAAA,CAAK,IAAKkB,CAAAA,GAAY,CAChC,OAAA,CAASA,CAAAA,CAAO,cAChB,MAAA,CAAQA,CAAAA,CAAO,OACf,WAAA,CAAaA,CAAAA,CAAO,YACpB,KAAA,CAAOA,CAAAA,CAAO,UAChB,CAAA,CAAE,CACJ,CACF,CAEO,SAASC,EAAAA,CACdnB,EAC2B,CAC3B,OAAO,CACL,WAAA,CAAaA,EAAM,WAAA,CACnB,SAAA,CAAWA,EAAM,SAAA,CACjB,OAAA,CAASA,EAAM,OAAA,CACf,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,MAAOA,CAAAA,CAAM,KAAA,CACb,IAAA,CAAMA,CAAAA,CAAM,KAAK,GAAA,CAAIC,CAAY,CAAA,CACjC,KAAA,CAAOD,EAAM,iBACf,CACF,CAEO,SAASoB,EAAAA,CAAcpB,EAAyC,CACrE,OAAO,CACL,YAAA,CAAcA,EAAM,YAAA,CACpB,KAAA,CAAO,EAAC,CACR,MAAOA,CAAAA,CAAM,SACf,CACF,CAEO,SAASqB,EAAAA,CAAiBrB,CAAAA,CAAyC,CACxE,OAAO,CACL,OAAQA,CAAAA,CAAM,SAAA,CACd,KAAA,CAAO,CAAE,MAAOA,CAAAA,CAAM,KAAA,CAAO,WAAA,CAAaA,CAAAA,CAAM,WAAY,CAC9D,CACF,CAEO,SAASsB,GACd1C,CAAAA,CACAoB,CAAAA,CACkB,CAClB,IAAMuB,CAAAA,CAAAA,CAA2BvB,EAAM,IAAA,EAAQ,EAAC,EAAG,GAAA,CAAKwB,IAAU,CAChE,KAAA,CAAO1B,CAAAA,CAAa0B,CAAAA,CAAK,KAAK,CAAA,CAC9B,OAAA,CAASA,CAAAA,CAAK,YAAA,CACd,KAAMA,CAAAA,CAAK,IAAA,CACX,OAAQA,CAAAA,CAAK,MAAA,CACb,MAAOA,CAAAA,CAAK,OAAA,CACZ,UAAA,CAAYA,CAAAA,CAAK,WACjB,aAAA,CAAeA,CAAAA,CAAK,aAAA,CACpB,MAAA,CAAQA,EAAK,MAAA,CACb,WAAA,CAAaA,CAAAA,CAAK,UAAA,CAClB,eAAgBA,CAAAA,CAAK,aAAA,CACrB,SAAUA,CAAAA,CAAK,QACjB,EAAE,CAAA,CAEF,OAAO,CACL,KAAA,CAAOD,EAAW,CAAC,CAAA,EAAG,KAAA,EAAS3C,CAAAA,CAC/B,QAASoB,CAAAA,CAAM,aAAA,CACf,YAAA,CAAcA,CAAAA,CAAM,gBACpB,eAAA,CAAiBA,CAAAA,CAAM,kBAAA,CACvB,WAAA,CAAaA,EAAM,WAAA,CACnB,SAAA,CAAWA,CAAAA,CAAM,SAAA,CACjB,QAASA,CAAAA,CAAM,OAAA,CACf,OAAA,CAASA,CAAAA,CAAM,QACf,UAAA,CAAAuB,CACF,CACF,CAEO,SAASE,EAAAA,CACd7C,CAAAA,CACA8C,EACA1B,CAAAA,CACW,CACX,OAAO,CACL,KAAA,CAAApB,CAAAA,CACA,OAAA,CAAA8C,EACA,MAAA,CAAQ1B,CAAAA,CAAM,MAAA,CAAS,MAAA,CAAOA,EAAM,MAAM,CAAA,CAAI,MAAA,CAC9C,IAAA,CAAMA,EAAM,IAAA,CAAO,MAAA,CAAOA,EAAM,IAAI,CAAA,CAAI,OACxC,KAAA,CAAOA,CAAAA,CAAM,KAAA,CAAQ,MAAA,CAAOA,EAAM,KAAK,CAAA,CAAI,MAAA,CAC3C,WAAA,CAAaA,EAAM,WAAA,CAAc,MAAA,CAAOA,CAAAA,CAAM,WAAW,EAAI,MAAA,CAC7D,IAAA,CAAMA,EAAM,IAAA,CAAO,MAAA,CAAOA,EAAM,IAAI,CAAA,CAAI,MAAA,CACxC,MAAA,CAAQA,EAAM,MAAA,CAAS,MAAA,CAAOA,CAAAA,CAAM,MAAM,EAAI,MAAA,CAC9C,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,eAAgBA,CAAAA,CAAM,cAAA,CACtB,gBAAiBA,CAAAA,CAAM,eAAA,CACvB,eAAgBA,CAAAA,CAAM,cAAA,CACtB,mBAAA,CAAqBA,CAAAA,CAAM,oBAC3B,mBAAA,CAAqBA,CAAAA,CAAM,mBAAA,CAC3B,qBAAA,CAAuBA,EAAM,qBAAA,CAC7B,qBAAA,CAAuBA,CAAAA,CAAM,qBAAA,CAC7B,iBAAkBA,CAAAA,CAAM,gBAAA,CACxB,iBAAkBA,CAAAA,CAAM,gBAAA,CACxB,uBAAwBA,CAAAA,CAAM,sBAChC,CACF,CAEO,SAAS2B,EAAAA,CACd/C,CAAAA,CACA8C,CAAAA,CACA1B,CAAAA,CACqB,CACrB,IAAMuB,CAAAA,CAA6BvB,CAAAA,CAAM,IAAA,CAAK,IAAKwB,CAAAA,GAAU,CAC3D,MAAA5C,CAAAA,CACA,OAAA,CAAS4C,EAAK,YAAA,CACd,IAAA,CAAMA,CAAAA,CAAK,IAAA,CACX,OAAQA,CAAAA,CAAK,MAAA,CACb,KAAA,CAAOA,CAAAA,CAAK,QACZ,MAAA,CAAQA,CAAAA,CAAK,OAAA,CACb,WAAA,CAAaA,EAAK,YAAA,CAClB,UAAA,CAAYA,EAAK,UAAA,CACjB,QAAA,CAAUA,EAAK,QAAA,CACf,WAAA,CAAa,MAAA,CAAOA,CAAAA,CAAK,WAAW,CAAA,CACpC,IAAA,CAAM,MAAA,CAAOA,CAAAA,CAAK,IAAI,CAAA,CACtB,UAAA,CAAYA,CAAAA,CAAK,SAAA,CACjB,gBAAiBA,CAAAA,CAAK,cAAA,CACtB,iBAAkBA,CAAAA,CAAK,gBAAA,CACvB,MAAO,MAAA,CAAOA,CAAAA,CAAK,KAAK,CAAA,CACxB,YAAaA,CAAAA,CAAK,UAAA,CAClB,gBAAA,CAAkBA,CAAAA,CAAK,gBACvB,iBAAA,CAAmBA,CAAAA,CAAK,iBAAA,CACxB,mBAAA,CAAqBA,EAAK,mBAAA,CAC1B,mBAAA,CAAqBA,EAAK,mBAAA,CAC1B,qBAAA,CAAuBA,EAAK,qBAAA,CAC5B,qBAAA,CAAuBA,CAAAA,CAAK,qBAAA,CAC5B,iBAAkBA,CAAAA,CAAK,gBAAA,CACvB,gBAAA,CAAkBA,CAAAA,CAAK,gBACzB,CAAA,CAAE,CAAA,CAEF,OAAO,CACL,MAAA5C,CAAAA,CACA,OAAA,CAAA8C,EACA,MAAA,CAAQ,MAAA,CAAO1B,EAAM,OAAA,CAAQ,MAAM,CAAA,CACnC,IAAA,CAAM,OAAOA,CAAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,CAC/B,MAAO,MAAA,CAAOA,CAAAA,CAAM,OAAA,CAAQ,KAAK,EACjC,WAAA,CAAa,MAAA,CAAOA,EAAM,OAAA,CAAQ,WAAW,EAC7C,IAAA,CAAM,MAAA,CAAOA,CAAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,CAC/B,MAAA,CAAQ,MAAA,CAAOA,CAAAA,CAAM,QAAQ,MAAM,CAAA,CACnC,OAAA,CAASA,CAAAA,CAAM,QAAQ,OAAA,CACvB,cAAA,CAAgBA,EAAM,OAAA,CAAQ,cAAA,CAC9B,gBAAiBA,CAAAA,CAAM,OAAA,CAAQ,eAAA,CAC/B,cAAA,CAAgBA,EAAM,OAAA,CAAQ,cAAA,CAC9B,mBAAA,CAAqBA,CAAAA,CAAM,QAAQ,mBAAA,CACnC,mBAAA,CAAqBA,CAAAA,CAAM,OAAA,CAAQ,oBACnC,qBAAA,CAAuBA,CAAAA,CAAM,QAAQ,qBAAA,CACrC,gBAAA,CAAkBA,EAAM,OAAA,CAAQ,gBAAA,CAChC,WAAA,CAAaA,CAAAA,CAAM,YACnB,SAAA,CAAWA,CAAAA,CAAM,SAAA,CACjB,OAAA,CAASA,EAAM,OAAA,CACf,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,WAAAuB,CACF,CACF,CAEO,SAASK,EAAAA,CACdhD,EACAoB,CAAAA,CACa,CACb,OAAA,CAAQA,CAAAA,CAAM,MAAQ,EAAC,EAAG,GAAA,CAAKwB,CAAAA,GAAU,CACvC,KAAA,CAAO1B,CAAAA,CAAa0B,CAAAA,CAAK,KAAK,EAC9B,OAAA,CAASA,CAAAA,CAAK,aACd,IAAA,CAAMA,CAAAA,CAAK,KACX,MAAA,CAAQA,CAAAA,CAAK,MAAA,CACb,KAAA,CAAOA,EAAK,OAAA,CACZ,UAAA,CAAYA,CAAAA,CAAK,UAAA,CACjB,cAAeA,CAAAA,CAAK,aAAA,CACpB,MAAA,CAAQA,CAAAA,CAAK,OACb,WAAA,CAAaA,CAAAA,CAAK,UAAA,CAClB,cAAA,CAAgBA,EAAK,aAAA,CACrB,QAAA,CAAUA,CAAAA,CAAK,QACjB,EAAE,CACJ,CAEO,SAASK,EAAAA,CACdjD,EACAoB,CAAAA,CACgB,CAChB,OAAOA,CAAAA,CAAM,KAAK,GAAA,CAAKwB,CAAAA,GAAU,CAC/B,KAAA,CAAA5C,CAAAA,CACA,QAAS4C,CAAAA,CAAK,YAAA,CACd,IAAA,CAAMA,CAAAA,CAAK,KACX,MAAA,CAAQA,CAAAA,CAAK,MAAA,CACb,KAAA,CAAOA,EAAK,OAAA,CACZ,MAAA,CAAQA,CAAAA,CAAK,OAAA,CACb,YAAaA,CAAAA,CAAK,YAAA,CAClB,WAAYA,CAAAA,CAAK,UAAA,CACjB,SAAUA,CAAAA,CAAK,QAAA,CACf,WAAA,CAAa,MAAA,CAAOA,EAAK,WAAW,CAAA,CACpC,IAAA,CAAM,MAAA,CAAOA,EAAK,IAAI,CAAA,CACtB,UAAA,CAAYA,CAAAA,CAAK,UACjB,eAAA,CAAiBA,CAAAA,CAAK,eACtB,gBAAA,CAAkBA,CAAAA,CAAK,iBACvB,KAAA,CAAO,MAAA,CAAOA,CAAAA,CAAK,KAAK,EACxB,WAAA,CAAaA,CAAAA,CAAK,UAAA,CAClB,gBAAA,CAAkBA,EAAK,eAAA,CACvB,iBAAA,CAAmBA,CAAAA,CAAK,iBAAA,CACxB,oBAAqBA,CAAAA,CAAK,mBAAA,CAC1B,oBAAqBA,CAAAA,CAAK,mBAAA,CAC1B,sBAAuBA,CAAAA,CAAK,qBAAA,CAC5B,qBAAA,CAAuBA,CAAAA,CAAK,sBAC5B,gBAAA,CAAkBA,CAAAA,CAAK,gBAAA,CACvB,gBAAA,CAAkBA,EAAK,gBACzB,CAAA,CAAE,CACJ,CAEO,SAASM,EAAAA,CAAc9B,CAAAA,CAAiD,CAC7E,OAAO,CACL,YAAaA,CAAAA,CAAM,WAAA,CACnB,SAAA,CAAWA,CAAAA,CAAM,UACjB,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,OAAA,CAASA,EAAM,OAAA,CACf,IAAA,CAAMA,CAAAA,CAAM,IAAA,CAAK,IAAI+B,CAAkB,CACzC,CACF,CAEA,SAASA,EAAmB/B,CAAAA,CAAiD,CAC3E,IAAMgC,CAAAA,CAAQhC,EAAM,IAAA,CAAK,WAAA,EAAY,GAAM,KAAA,CAC3C,OAAO,CACL,KAAA,CAAOF,CAAAA,CAAaE,CAAAA,CAAM,KAAK,CAAA,CAC/B,aAAA,CAAeA,EAAM,mBAAA,CACrB,MAAA,CAAQA,EAAM,oBAAA,CACd,IAAA,CAAMgC,CAAAA,CAAQ,KAAA,CAAQ,OACtB,IAAA,CAAM,CACJ,OAAA,CAASA,CAAAA,CAAQhC,EAAM,gBAAA,CAAmBA,CAAAA,CAAM,YAAA,CAChD,MAAA,CAAQgC,EAAQhC,CAAAA,CAAM,eAAA,CAAkBA,EAAM,WAAA,CAC9C,IAAA,CAAMgC,EAAQhC,CAAAA,CAAM,aAAA,CAAgBA,CAAAA,CAAM,SAAA,CAC1C,MAAOgC,CAAAA,CAAQhC,CAAAA,CAAM,iBAAA,CAAoBA,CAAAA,CAAM,cAC/C,MAAA,CAAQgC,CAAAA,CAAQhC,CAAAA,CAAM,eAAA,CAAkBA,EAAM,WAAA,CAC9C,WAAA,CAAagC,EAAQhC,CAAAA,CAAM,oBAAA,CAAuBA,EAAM,gBAAA,CACxD,UAAA,CAAYgC,CAAAA,CAAQhC,CAAAA,CAAM,oBAAsBA,CAAAA,CAAM,eACxD,CAAA,CACA,EAAA,CAAI,CACF,OAAA,CAASgC,CAAAA,CAAQhC,CAAAA,CAAM,YAAA,CAAeA,EAAM,gBAAA,CAC5C,MAAA,CAAQgC,EAAQhC,CAAAA,CAAM,WAAA,CAAcA,EAAM,eAAA,CAC1C,IAAA,CAAMgC,CAAAA,CAAQhC,CAAAA,CAAM,UAAYA,CAAAA,CAAM,aAAA,CACtC,KAAA,CAAOgC,CAAAA,CAAQhC,EAAM,aAAA,CAAgBA,CAAAA,CAAM,iBAAA,CAC3C,MAAA,CAAQgC,EAAQhC,CAAAA,CAAM,WAAA,CAAcA,EAAM,eAAA,CAC1C,WAAA,CAAagC,EAAQhC,CAAAA,CAAM,gBAAA,CAAmBA,CAAAA,CAAM,oBAAA,CACpD,WAAYgC,CAAAA,CAAQhC,CAAAA,CAAM,eAAA,CAAkBA,CAAAA,CAAM,mBACpD,CAAA,CACA,GAAA,CAAK,CACH,cAAA,CAAgBA,EAAM,iBAAA,CACtB,cAAA,CAAgBA,EAAM,iBAAA,CACtB,KAAA,CAAOA,EAAM,QACf,CAAA,CACA,WAAA,CAAaA,CAAAA,CAAM,YACnB,MAAA,CAASA,CAAAA,CAAM,MAAA,EAAsC,SAAA,CACrD,KAAM,IAAI,IAAA,CAAKA,CAAAA,CAAM,cAAA,CAAiB,GAAI,CAC5C,CACF,CAEO,SAASiC,EAAAA,CACdrD,EACAoB,CAAAA,CACqB,CACrB,OAAO,CACL,MAAApB,CAAAA,CACA,OAAA,CAASoB,CAAAA,CAAM,YAAA,CACf,KAAMA,CAAAA,CAAM,IAAA,CACZ,MAAA,CAAQA,CAAAA,CAAM,OACd,QAAA,CAAUA,CAAAA,CAAM,SAChB,SAAA,CAAWA,CAAAA,CAAM,YAAc,IAAI,IAAA,CAAKA,CAAAA,CAAM,WAAW,EAAI,MAAA,CAC7D,YAAA,CAAcA,CAAAA,CAAM,UAAA,CAChB,CACE,cAAA,CAAgBA,CAAAA,CAAM,UAAA,CAAW,cAAA,CACjC,eAAgBA,CAAAA,CAAM,UAAA,CAAW,cACnC,CAAA,CACA,MACN,CACF,CAEO,SAASkC,EAAAA,CACdtD,CAAAA,CACAoB,EACqB,CACrB,OAAO,CACL,KAAA,CAAApB,EACA,OAAA,CAASoB,CAAAA,CAAM,YAAA,CACf,IAAA,CAAMA,EAAM,IAAA,CACZ,MAAA,CAAQA,CAAAA,CAAM,MAAA,CACd,SAAUA,CAAAA,CAAM,QAAA,CAChB,KAAA,CAAOA,CAAAA,CAAM,SACb,WAAA,CAAaA,CAAAA,CAAM,WAAA,CACnB,YAAA,CAAcA,EAAM,WAAA,CAAc,CAAE,GAAGA,CAAAA,CAAM,WAAY,CAAA,CAAI,MAAA,CAC7D,UAAWA,CAAAA,CAAM,WAAA,CAAc,IAAI,IAAA,CAAKA,CAAAA,CAAM,WAAW,CAAA,CAAI,OAC7D,YAAA,CAAcA,CAAAA,CAAM,UAAA,CAChB,CACE,eAAgBA,CAAAA,CAAM,UAAA,CAAW,cAAA,CACjC,cAAA,CAAgBA,EAAM,UAAA,CAAW,cACnC,EACA,MAAA,CACJ,UAAA,CAAYA,EAAM,UAAA,CACd,CACE,cAAA,CAAgBA,CAAAA,CAAM,WAAW,cAAA,CACjC,cAAA,CAAgBA,CAAAA,CAAM,UAAA,CAAW,cACnC,CAAA,CACA,MACN,CACF,CAMO,SAASmC,EAAAA,CAAanC,CAAAA,CAA8B,CACzD,OAAO,CACL,KAAMA,CAAAA,CAAM,IAAA,CACZ,KAAA,CAAOA,CAAAA,CAAM,MACb,IAAA,CAAMA,CAAAA,CAAM,IAAA,CACZ,GAAA,CAAKA,EAAM,GAAA,CACX,MAAA,CAAQA,CAAAA,CAAM,MAAA,CACd,WAAYU,CAAAA,CAAkBV,CAAAA,CAAM,UAAU,CAAA,CAC9C,SAAA,CAAW,IAAI,IAAA,CAAKA,CAAAA,CAAM,IAAI,CAChC,CACF,CAEO,SAASoC,CAAAA,CAAiBpC,CAAAA,CAAgC,CAC/D,IAAMqC,CAAAA,CAAa,CAAC,IAAA,CAAM,KAAM,KAAA,CAAO,KAAA,CAAO,KAAM,IAAA,CAAM,KAAK,EACzDC,CAAAA,CAAStC,CAAAA,CAITuC,CAAAA,CAAqB,GAE3B,IAAA,IAAWC,CAAAA,IAAMH,CAAAA,CAAY,CAC3B,IAAMI,CAAAA,CAAOH,CAAAA,CAAO,CAAA,IAAA,EAAOE,CAAE,EAAE,CAAA,CACzBE,CAAAA,CAAQJ,EAAO,CAAA,KAAA,EAAQE,CAAE,EAAE,CAAA,CAC3BG,CAAAA,CAASL,CAAAA,CAAO,CAAA,MAAA,EAASE,CAAE,CAAA,CAAE,CAAA,CAC7BI,CAAAA,CAAUN,CAAAA,CAAO,UAAUE,CAAE,CAAA,CAAE,CAAA,CAC/BK,CAAAA,CAAiBP,EAAO,CAAA,cAAA,EAAiBE,CAAE,EAAE,CAAA,CAC7CM,CAAAA,CAAkBR,EAAO,CAAA,eAAA,EAAkBE,CAAE,CAAA,CAAE,CAAA,CAG/CO,EAAST,CAAAA,CAAO,CAAA,MAAA,EAASE,CAAE,CAAA,CAAE,EAC7BQ,CAAAA,CAAQV,CAAAA,CAAO,CAAA,KAAA,EAAQE,CAAE,EAAE,CAAA,CAC3BS,CAAAA,CAAYX,EAAO,CAAA,SAAA,EAAYE,CAAE,EAAE,CAAA,CACnCU,CAAAA,CAAaZ,CAAAA,CAAO,CAAA,UAAA,EAAaE,CAAE,CAAA,CAAE,CAAA,CAQ3C,GAAI,EALFC,IAAS,MAAA,EACTC,CAAAA,GAAU,MAAA,EACVK,CAAAA,GAAW,QACXC,CAAAA,GAAU,MAAA,CAAA,CAEE,SAEd,IAAMG,CAAAA,CACJJ,IACCN,CAAAA,GAAS,MAAA,EAAaC,CAAAA,GAAU,MAAA,CAAYD,EAAOC,CAAAA,CAAQ,MAAA,CAAA,CACxDU,CAAAA,CACJT,CAAAA,GAAW,QAAaC,CAAAA,GAAY,MAAA,CAChCD,CAAAA,CAASC,CAAAA,CACT,OACAS,CAAAA,CACJR,CAAAA,GAAmB,QAAaC,CAAAA,GAAoB,MAAA,CAChD,IAAIjD,mBAAAA,CAAcgD,CAAc,CAAA,CAAE,IAAA,CAAKC,CAAe,CAAA,CAAE,QAAA,EAAS,CACjE,MAAA,CACAQ,EACJL,CAAAA,EAAaC,CAAAA,EAAc,IAAIrD,mBAAAA,CAAcoD,CAAS,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA,CACxD,IAAIpD,oBAAcqD,CAAU,CAAA,CACzB,KAAA,CAAMD,CAAS,EACf,GAAA,CAAIA,CAAS,CAAA,CACb,QAAA,GACH,MAAA,CAENV,CAAAA,CAAOC,CAAE,CAAA,CAAI,CACX,IAAA,CAAAC,CAAAA,CACA,MAAAC,CAAAA,CACA,MAAA,CAAQS,EACR,MAAA,CAAAR,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,QAASQ,CAAAA,CACT,eAAA,CAAiBP,CAAAA,CACjB,gBAAA,CAAkBC,EAClB,YAAA,CAAcO,CAAAA,CACd,cAAA,CAAgBJ,CAAAA,CAChB,gBAAiBC,CAAAA,CACjB,UAAA,CAAYF,GAASE,CAAAA,CACrB,WAAA,CAAAI,CACF,EACF,CAEA,OAAOf,CACT,CAEO,SAASgB,CAAAA,CACdvD,CAAAA,CACiB,CACjB,OAAO,CACL,UAAA,CAAYA,CAAAA,CAAM,KACpB,CACF,CAEO,SAASwD,GACd5E,CAAAA,CACAoB,CAAAA,CACqB,CACrB,OAAO,CACL,KAAA,CAAApB,CAAAA,CACA,QAASoB,CAAAA,CAAM,OAAA,CACf,KAAA,CAAOoC,CAAAA,CAAiBpC,CAAK,CAAA,CAC7B,UAAA,CAAYuD,CAAAA,CAA+BvD,CAAK,CAClD,CACF,CAEO,SAASyD,EAAAA,CACd7E,CAAAA,CACA8C,EACA1B,CAAAA,CACqB,CACrB,OAAO,CACL,MAAApB,CAAAA,CACA,OAAA,CAAA8C,CAAAA,CACA,UAAA,CAAY,CACV,WAAA,CAAa1B,CAAAA,CAAM,MAAA,CACnB,cAAA,CAAgBA,EAAM,cACxB,CACF,CACF,CAEO,SAAS0D,EAAAA,CACd9E,CAAAA,CACA8C,CAAAA,CACA1B,CAAAA,CACqB,CACrB,OAAO,CACL,KAAA,CAAApB,CAAAA,CACA,QAAA8C,CAAAA,CACA,UAAA,CAAYiC,CAAAA,CAAgC3D,CAAK,CACnD,CACF,CAEO,SAAS4D,EAAAA,CACdhF,CAAAA,CACA8C,EACA1B,CAAAA,CACqB,CACrB,OAAIA,CAAAA,CAAM,aAAe6D,gBAAAA,CAAa,gBAAA,CAC7B,CACL,KAAA,CAAAjF,EACA,OAAA,CAAA8C,CAAAA,CACA,UAAA,CAAY,CAAE,SAAU1B,CAAAA,CAAM,KAAM,CACtC,CAAA,CAEEA,CAAAA,CAAM,aAAe6D,gBAAAA,CAAa,cAAA,CAC7B,CACL,KAAA,CAAAjF,EACA,OAAA,CAAA8C,CAAAA,CACA,eAAA,CAAiB,IAAI7B,oBAAcG,CAAAA,CAAM,KAAK,CAAA,CAAE,SAAA,CAAU,CAAC,CAAA,CAAE,QAAA,EAC/D,CAAA,CAEK,CAAE,MAAApB,CAAAA,CAAO,OAAA,CAAA8C,CAAQ,CAC1B,CAEO,SAASoC,EAAAA,CACdlF,CAAAA,CACAoB,CAAAA,CACqB,CACrB,OAAO,CACL,KAAA,CAAApB,CAAAA,CACA,QAASoB,CAAAA,CAAM,YAAA,EAAgB,GAC/B,eAAA,CAAiBA,CAAAA,CAAM,cACnB,IAAIH,mBAAAA,CAAcG,CAAAA,CAAM,aAAa,EAAE,SAAA,CAAU,CAAC,CAAA,CAAE,QAAA,GACpD,MACN,CACF,CAEO,SAAS+D,GACdnF,CAAAA,CACA8C,CAAAA,CACA1B,EACqB,CACrB,OAAO,CACL,KAAA,CAAApB,CAAAA,CACA,OAAA,CAAA8C,CAAAA,CACA,YAAa,CACX,CACE,WAAA,CAAa1B,CAAAA,CAAM,YACnB,QAAA,CAAUA,CAAAA,CAAM,cAAA,CAChB,GAAA,CAAKA,EAAM,iBACb,CACF,CACF,CACF,CAEO,SAASgE,EAAAA,CACdpF,CAAAA,CACA8C,CAAAA,CACA1B,CAAAA,CACqB,CACrB,OAAO,CACL,KAAA,CAAApB,CAAAA,CACA,QAAA8C,CAAAA,CACA,UAAA,CAAY,CACV,QAAA,CAAU1B,EAAM,cAAA,CAChB,GAAA,CAAKA,EAAM,iBACb,CACF,CACF,CAEO,SAAS2D,CAAAA,CACd3D,CAAAA,CAC0B,CAC1B,OAAO,CACL,OAAA,CAASA,CAAAA,CAAM,QACf,aAAA,CAAeA,CAAAA,CAAM,kBAAA,CACrB,kBAAA,CAAoBA,EAAM,iBAAA,CAC1B,aAAA,CAAeA,EAAM,kBAAA,CACrB,kBAAA,CAAoBA,EAAM,iBAAA,CAC1B,cAAA,CAAgBA,CAAAA,CAAM,mBAAA,CACtB,oBAAqBA,CAAAA,CAAM,kBAAA,CAC3B,UAAA,CACEA,CAAAA,CAAM,uBAAyB,MAAA,CAC3B,MAAA,CACAA,CAAAA,CAAM,oBAAA,CACZ,YAAaA,CAAAA,CAAM,mBAAA,CACnB,iBAAkBA,CAAAA,CAAM,kBAAA,CACxB,cACEA,CAAAA,CAAM,uBAAA,GAA4B,MAAA,CAC9B,MAAA,CACAA,EAAM,uBAAA,CACZ,cAAA,CAAgBA,CAAAA,CAAM,sBAAA,CACtB,oBAAqBA,CAAAA,CAAM,qBAAA,CAC3B,YAAA,CACEA,CAAAA,CAAM,yBAA2B,MAAA,CAC7B,MAAA,CACAA,EAAM,sBAAA,CACZ,aAAA,CAAeA,EAAM,qBAAA,CACrB,kBAAA,CAAoBA,CAAAA,CAAM,oBAAA,CAC1B,cACEA,CAAAA,CAAM,uBAAA,GAA4B,MAAA,CAC9B,MAAA,CACAA,EAAM,uBAAA,CACZ,cAAA,CAAgBA,CAAAA,CAAM,sBAAA,CACtB,oBAAqBA,CAAAA,CAAM,qBAAA,CAC3B,gBACEA,CAAAA,CAAM,yBAAA,GAA8B,OAChC,MAAA,CACAA,CAAAA,CAAM,yBAAA,CACZ,gBAAA,CAAkBA,EAAM,wBAAA,CACxB,qBAAA,CAAuBA,CAAAA,CAAM,uBAC/B,CACF,CAEO,SAASiE,EAAAA,CACdrF,CAAAA,CACAoB,EACe,CACf,IAAMgC,EAAQhC,CAAAA,CAAM,IAAA,CAAK,aAAY,GAAM,KAAA,CAC3C,OAAO,CACL,MAAApB,CAAAA,CACA,aAAA,CAAeoD,CAAAA,CAAQhC,CAAAA,CAAM,iBAAmBA,CAAAA,CAAM,iBAAA,CACtD,MAAA,CAAQA,CAAAA,CAAM,OACd,IAAA,CAAMgC,CAAAA,CAAQ,MAAQ,MAAA,CACtB,IAAA,CAAM,CACJ,OAAA,CAAShC,CAAAA,CAAM,gBAAA,CACf,MAAA,CAAQA,EAAM,eAAA,CACd,IAAA,CAAMA,CAAAA,CAAM,aAAA,CACZ,OAAQA,CAAAA,CAAM,UAAA,CACd,WAAA,CAAaA,CAAAA,CAAM,eACrB,CAAA,CACA,EAAA,CAAI,CACF,OAAA,CAASA,CAAAA,CAAM,gBACf,MAAA,CAAQA,CAAAA,CAAM,cAAA,CACd,IAAA,CAAMA,EAAM,YAAA,CACZ,MAAA,CAAQA,CAAAA,CAAM,SAAA,CACd,YAAaA,CAAAA,CAAM,cACrB,CAAA,CACA,MAAA,CAAQ,UACR,IAAA,CAAM,IAAI,KAAKA,CAAAA,CAAM,SAAS,CAChC,CACF","file":"utils.js","sourcesContent":["import {\n Token as TokenDTO,\n Resolution,\n Candle,\n TokenStat,\n TokenHolderPage,\n TokenMarketData as TokenMarketDataDTO,\n GetNewTokensSortBy,\n FilterCondition,\n SearchSortBy,\n TokenPage as ChainStreamTokenPage,\n SwapRouteResponse,\n SwapRouteInput,\n SwapRouteInputSwapMode,\n SendTxInput,\n SendTxResponse,\n WalletNetWorthPage,\n TradePage,\n DexPoolDTO,\n ChainSymbol,\n TokenCreatorsDTO,\n WsNewToken,\n WsTokenMetadata,\n WsCandle,\n WsTokenStat,\n WsTradeActivity,\n WsTokenHolder as WsTokenHolderDTO,\n WsTokenSupply,\n WsTokenLiquidity,\n WsTokenMaxLiquidity,\n WsTokenTotalLiquidity,\n WsTokenBondingCurve,\n WsMetricType,\n WalletPnlSummaryDTO,\n PnlDetailsPage,\n WalletNetWorthByTokensResult,\n} from \"@chainstream-io/sdk\";\nimport {\n API,\n Chain,\n Token,\n TokenCandle,\n TokenCreator,\n TokenHolder,\n TokenLiquidity,\n TokenMarketData,\n TokenResolution,\n TokenSecurity,\n TokenStats,\n TokenStatsByResolution,\n TradeActivity,\n Portfolio,\n PortfolioPnl,\n WalletPnl,\n WalletPortfolioPnls,\n WalletPortfolios,\n} from \"@liberfi.io/types\";\nimport { SafeBigNumber } from \"@liberfi.io/utils\";\n\nexport function toChainDTO(chain: Chain): ChainSymbol {\n switch (chain) {\n case Chain.ETHEREUM:\n return ChainSymbol.eth;\n case Chain.BINANCE:\n return ChainSymbol.bsc;\n case Chain.SOLANA:\n return ChainSymbol.sol;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function toResolutionDTO(resolution: TokenResolution): Resolution {\n switch (resolution) {\n case \"1s\":\n return Resolution[\"1s\"];\n case \"15s\":\n return Resolution[\"15s\"];\n case \"30s\":\n return Resolution[\"30s\"];\n case \"1m\":\n return Resolution[\"1m\"];\n case \"5m\":\n return Resolution[\"5m\"];\n case \"15m\":\n return Resolution[\"15m\"];\n case \"30m\":\n case \"1h\":\n return Resolution[\"1h\"];\n case \"4h\":\n return Resolution[\"4h\"];\n case \"12h\":\n return Resolution[\"12h\"];\n case \"24h\":\n return Resolution[\"1d\"];\n }\n}\n\nexport function toSortDirectionDTO(direction: \"asc\" | \"desc\"): string {\n switch (direction) {\n case \"asc\":\n return \"ASC\";\n case \"desc\":\n return \"DESC\";\n }\n}\n\nexport function toSearchFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"marketCap\":\n return SearchSortBy.marketCapInUsd;\n case \"tvl\":\n return SearchSortBy.liquidityInUsd;\n case \"price\":\n return SearchSortBy.priceInUsd;\n case \"holders\":\n return SearchSortBy.holderCount;\n case \"volumes24h\":\n return SearchSortBy.h24VolumeInUsd;\n case \"trades24h\":\n return SearchSortBy.h24Transactions;\n case \"createdAt\":\n return SearchSortBy.tokenCreatedAt;\n }\n throw new Error(`Unsupported search field: ${field}`);\n}\n\nexport function toFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"price\":\n return GetNewTokensSortBy.marketDatapriceInUsd;\n case \"priceChange1m\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd1m;\n case \"priceChange5m\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd5m;\n case \"priceChange1h\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd1h;\n case \"priceChange4h\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd4h;\n case \"priceChange24h\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd24h;\n case \"marketCap\":\n return GetNewTokensSortBy.marketDatamarketCapInUsd;\n case \"tvl\":\n return GetNewTokensSortBy.marketDatamaxPoolTvlInUsd;\n case \"top10Holdings\":\n return GetNewTokensSortBy.marketDatatop10TotalHoldings;\n case \"top10Ratio\":\n return GetNewTokensSortBy.marketDatatop10HoldingsRatio;\n case \"top100Holdings\":\n return GetNewTokensSortBy.marketDatatop100TotalHoldings;\n case \"top100Ratio\":\n return GetNewTokensSortBy.marketDatatop100HoldingsRatio;\n case \"holders\":\n return GetNewTokensSortBy.marketDataholders;\n case \"creatorsHoldings\":\n return GetNewTokensSortBy.marketDatacreatorHoldings;\n case \"creatorsRatio\":\n return GetNewTokensSortBy.marketDatacreatorHoldingsRatio;\n case \"buys1m\":\n return GetNewTokensSortBy.statsbuys1m;\n case \"buys5m\":\n return GetNewTokensSortBy.statsbuys5m;\n case \"buys15m\":\n return GetNewTokensSortBy.statsbuys15m;\n case \"buys30m\":\n return GetNewTokensSortBy.statsbuys30m;\n case \"buys1h\":\n return GetNewTokensSortBy.statsbuys1h;\n case \"buys4h\":\n return GetNewTokensSortBy.statsbuys4h;\n case \"buys24h\":\n return GetNewTokensSortBy.statsbuys24h;\n case \"sells1m\":\n return GetNewTokensSortBy.statssells1m;\n case \"sells5m\":\n return GetNewTokensSortBy.statssells5m;\n case \"sells15m\":\n return GetNewTokensSortBy.statssells15m;\n case \"sells30m\":\n return GetNewTokensSortBy.statssells30m;\n case \"sells1h\":\n return GetNewTokensSortBy.statssells1h;\n case \"sells4h\":\n return GetNewTokensSortBy.statssells4h;\n case \"sells24h\":\n return GetNewTokensSortBy.statssells24h;\n case \"trades1m\":\n return GetNewTokensSortBy.statstrades1m;\n case \"trades5m\":\n return GetNewTokensSortBy.statstrades5m;\n case \"trades1h\":\n return GetNewTokensSortBy.statstrades1h;\n case \"trades4h\":\n return GetNewTokensSortBy.statstrades4h;\n case \"trades24h\":\n return GetNewTokensSortBy.statstrades24h;\n case \"traders1m\":\n return GetNewTokensSortBy.statstraders1m;\n case \"traders5m\":\n return GetNewTokensSortBy.statstraders5m;\n case \"traders1h\":\n return GetNewTokensSortBy.statstraders1h;\n case \"traders4h\":\n return GetNewTokensSortBy.statstraders4h;\n case \"traders24h\":\n return GetNewTokensSortBy.statstraders24h;\n case \"volumes1m\":\n return GetNewTokensSortBy.statsvolumesInUsd1m;\n case \"volumes5m\":\n return GetNewTokensSortBy.statsvolumesInUsd5m;\n case \"volumes1h\":\n return GetNewTokensSortBy.statsvolumesInUsd1h;\n case \"volumes4h\":\n return GetNewTokensSortBy.statsvolumesInUsd4h;\n case \"volumes24h\":\n return GetNewTokensSortBy.statsvolumesInUsd24h;\n case \"createdAt\":\n return GetNewTokensSortBy.tokenCreatedAt;\n }\n throw new Error(`Unsupported sortBy: ${field}`);\n}\n\nexport function toRangeFiltersDTO(\n filters: Array<API.TokenFilterOption>,\n): Array<FilterCondition> {\n return filters\n .filter(\n (it) => [\"gt\", \"gte\", \"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0,\n )\n .map((it) => {\n const cond = { field: toFieldDTO(it.field) } as FilterCondition;\n if ([\"gt\", \"gte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.min =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n if ([\"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.max =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n return cond;\n });\n}\n\nexport function fromChainDTO(chain: string): Chain {\n switch (chain) {\n case ChainSymbol.eth:\n return Chain.ETHEREUM;\n case ChainSymbol.bsc:\n return Chain.BINANCE;\n case ChainSymbol.sol:\n case \"solana\":\n return Chain.SOLANA;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function fromTokenCreatorDTO(input: TokenCreatorsDTO): TokenCreator {\n return {\n address: input.address,\n share: input.share,\n isVerified: input.isVerified,\n };\n}\n\nexport function fromTokenDTO(input: TokenDTO): Token {\n return {\n chain: fromChainDTO(input.chain),\n name: input.name,\n symbol: input.symbol,\n address: input.address,\n decimals: input.decimals,\n image: input.imageUrl,\n description: input.description,\n creators: input.tokenCreators?.map(fromTokenCreatorDTO),\n launchedFrom: {\n programAddress: input.extra?.launchFromProgramAddress,\n protocolFamily: input.extra?.launchFromProtocolFamily,\n },\n migrateProgress: input.marketData.completionRatio\n ? new SafeBigNumber(input.marketData.completionRatio)\n .shiftedBy(2)\n .toString()\n : undefined,\n migratedTo: {\n programAddress: input.extra?.migratedToProgramAddress,\n protocolFamily: input.extra?.migratedToProtocolFamily,\n poolAddress: input.extra?.migratedToPoolAddress,\n migratedAt: input.extra?.migratedAt\n ? new Date(input.extra.migratedAt)\n : undefined,\n },\n socialMedias: input.socialMedias ? { ...input.socialMedias } : undefined,\n stats: input.stats ? fromTokenStatsDTO(input.stats) : undefined,\n marketData: input.marketData\n ? fromTokenMarketDataDTO(input.marketData)\n : undefined,\n liquidities: input.liquidity?.map(fromTokenLiquidityDTO),\n createdAt: input.tokenCreatedAt\n ? new Date(input.tokenCreatedAt)\n : undefined,\n };\n}\n\nexport function fromTokenStatsDTO(input: TokenStat): TokenStats {\n return {\n [\"1m\"]: parseTokenStatsByResolution(input, \"1m\"),\n [\"5m\"]: parseTokenStatsByResolution(input, \"5m\"),\n [\"15m\"]: parseTokenStatsByResolution(input, \"15m\"),\n [\"30m\"]: parseTokenStatsByResolution(input, \"30m\"),\n [\"1h\"]: parseTokenStatsByResolution(input, \"1h\"),\n [\"4h\"]: parseTokenStatsByResolution(input, \"4h\"),\n [\"24h\"]: parseTokenStatsByResolution(input, \"24h\"),\n };\n}\n\nfunction toOptionalNumber(value: string | undefined): number | undefined {\n return value === undefined ? undefined : parseInt(value);\n}\n\nfunction parseTokenStatsByResolution(\n input: TokenStat,\n resolution: TokenResolution,\n): TokenStatsByResolution {\n const period = input.periods?.[resolution];\n if (!period) {\n return {};\n }\n\n return {\n buys: toOptionalNumber(period.buys),\n sells: toOptionalNumber(period.sells),\n trades: toOptionalNumber(period.trades),\n buyers: toOptionalNumber(period.buyers),\n sellers: toOptionalNumber(period.sellers),\n traders: toOptionalNumber(period.traders),\n buyVolumes: period.buyVolume,\n sellVolumes: period.sellVolume,\n volumes: period.totalVolumeInNative,\n buyVolumesInUsd: period.buyVolumeInUsd,\n sellVolumesInUsd: period.sellVolumeInUsd,\n volumesInUsd: period.totalVolumeInUsd,\n openPriceInUsd: period.openInUsd,\n closePriceInUsd: period.closeInUsd,\n highPriceInUsd: period.highInUsd,\n lowPriceInUsd: period.lowInUsd,\n priceInUsd: period.closeInUsd,\n priceChange: period.priceChangeRatioInUsd,\n };\n}\n\nexport function fromTokenLiquidityDTO(input: DexPoolDTO): TokenLiquidity {\n return {\n image: input.image,\n poolAddress: input.poolAddress,\n programAddress: input.programAddress,\n protocolFamily: input.protocolFamily,\n tvl: input.tvlInSol,\n tvlInUsd: input.tvlInUsd,\n };\n}\n\nexport function fromTokenMarketDataDTO(\n input: TokenMarketDataDTO,\n): TokenMarketData {\n return {\n totalSupply: input.totalSupply,\n marketCap: input.marketCapInSol,\n marketCapInUsd: input.marketCapInUsd,\n price: input.priceInSol,\n priceInUsd: input.priceInUsd,\n tvl: input.totalTvlInSol,\n tvlInUsd: input.totalTvlInUsd,\n holders: parseInt(input.holders),\n top10Holdings: input.top10TotalHoldings,\n top10HoldingsRatio: input.top10HoldingsRatio,\n top50Holdings: input.top50TotalHoldings,\n top50HoldingsRatio: input.top50HoldingsRatio,\n top100Holdings: input.top100TotalHoldings,\n top100HoldingsRatio: input.top100HoldingsRatio,\n bluechipHolders:\n input.bluechipTotalHolders === undefined\n ? undefined\n : parseInt(input.bluechipTotalHolders),\n bluechipHoldings: input.bluechipTotalHoldings,\n bluechipHoldingsRatio: input.bluechipHoldingsRatio,\n kolHolders:\n input.kolTotalHolders === undefined\n ? undefined\n : parseInt(input.kolTotalHolders),\n kolHoldings: input.kolTotalHoldings,\n kolHoldingsRatio: input.kolHoldingsRatio,\n sniperHolders:\n input.sniperTotalHolders === undefined\n ? undefined\n : parseInt(input.sniperTotalHolders),\n sniperHoldings: input.sniperTotalHoldings,\n sniperHoldingsRatio: input.sniperHoldingsRatio,\n proHolders:\n input.proTotalHolders === undefined\n ? undefined\n : parseInt(input.proTotalHolders),\n proHoldings: input.proTotalHoldings,\n proHoldingsRatio: input.proHoldingsRatio,\n insiderHolders:\n input.insiderTotalHolders === undefined\n ? undefined\n : parseInt(input.insiderTotalHolders),\n insiderHoldings: input.insiderTotalHoldings,\n insiderHoldingsRatio: input.insiderHoldingsRatio,\n sandwichHolders:\n input.sandwishTotalHolders === undefined\n ? undefined\n : parseInt(input.sandwishTotalHolders),\n sandwichHoldings: input.sandwishTotalHoldings,\n sandwichHoldingsRatio: input.sandwishHoldingsRatio,\n freshHolders:\n input.freshTotalHolders === undefined\n ? undefined\n : parseInt(input.freshTotalHolders),\n freshHoldings: input.freshTotalHoldings,\n freshHoldingsRatio: input.freshHoldingsRatio,\n bundleHolders:\n input.bundleTotalHolders === undefined\n ? undefined\n : parseInt(input.bundleTotalHolders),\n bundleHoldings: input.bundleTotalHoldings,\n bundleHoldingsRatio: input.bundleHoldingsRatio,\n devHolders:\n input.devTotalHolders === undefined\n ? undefined\n : parseInt(input.devTotalHolders),\n devHoldings: input.devTotalHoldings,\n devHoldingsRatio: input.devHoldingsRatio,\n };\n}\n\nexport function fromTokenCandle(input: Candle): TokenCandle {\n return {\n open: input.open,\n close: input.close,\n high: input.high,\n low: input.low,\n volume: input.volume,\n resolution: fromResolutionDTO(input.resolution),\n timestamp: new Date(input.time),\n };\n}\n\nfunction fromResolutionDTO(resolution: string): TokenResolution {\n if (resolution === \"1d\") return \"24h\";\n return resolution as TokenResolution;\n}\n\nexport function fromTokenSecurity(\n input: Record<string, unknown>,\n): TokenSecurity {\n return {\n hasTransferFee: input.hasTransferFee as boolean | undefined,\n isTransferFeeUpgradable: input.isTransferFeeUpgradable as\n | boolean\n | undefined,\n isTransferable: input.isTransferable as boolean | undefined,\n isFreezable: input.isFreezable as boolean | undefined,\n isClosable: input.isClosable as boolean | undefined,\n };\n}\nexport function toSwapRouteInput(params: API.SwapParams): SwapRouteInput {\n return {\n dex: \"jupiter\" as SwapRouteInput[\"dex\"],\n userAddress: params.userAddress,\n amount: params.amount,\n swapMode: (params.mode === API.SwapMode.EXACT_IN\n ? SwapRouteInputSwapMode.ExactIn\n : SwapRouteInputSwapMode.ExactOut) as SwapRouteInput[\"swapMode\"],\n slippage: params.slippage ?? 1,\n inputMint: params.input,\n outputMint: params.output,\n priorityFee: params.priorityFee,\n };\n}\n\nexport function toSendTxInput(params: API.SendTxParams): SendTxInput {\n return {\n signedTx: params.serializedTx,\n };\n}\n\nexport function fromTokenHolderPage(\n input: TokenHolderPage,\n): API.CursorList<TokenHolder> {\n return {\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n data: input.data.map((holder) => ({\n address: holder.walletAddress,\n amount: holder.amount,\n amountInUsd: holder.amountInUsd,\n ratio: holder.percentage,\n })),\n };\n}\n\nexport function fromTokenPage(\n input: ChainStreamTokenPage,\n): API.SearchTokenCursorList {\n return {\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n total: input.total,\n data: input.data.map(fromTokenDTO),\n extra: input.countsByProtocols,\n };\n}\n\nexport function fromSwapRoute(input: SwapRouteResponse): API.SwapRoute {\n return {\n serializedTx: input.serializedTx,\n plans: [],\n extra: input.routeInfo,\n };\n}\n\nexport function fromSendTxResult(input: SendTxResponse): API.SendTxResult {\n return {\n txHash: input.signature,\n extra: { jobId: input.jobId, elapsedTime: input.elapsedTime },\n };\n}\n\nexport function fromWalletPortfolios(\n chain: Chain,\n input: WalletNetWorthPage,\n): WalletPortfolios {\n const portfolios: Portfolio[] = (input.data ?? []).map((item) => ({\n chain: fromChainDTO(item.chain),\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n priceInUsd: item.priceInUsd,\n priceInNative: item.priceInNative,\n amount: item.amount,\n amountInUsd: item.valueInUsd,\n amountInNative: item.valueInNative,\n decimals: item.decimals,\n }));\n\n return {\n chain: portfolios[0]?.chain ?? chain,\n address: input.walletAddress,\n balanceInUsd: input.totalValueInUsd,\n balanceInNative: input.totalValueInNative,\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n portfolios,\n };\n}\n\nexport function fromWalletPnlSummary(\n chain: Chain,\n address: string,\n input: WalletPnlSummaryDTO,\n): WalletPnl {\n return {\n chain,\n address,\n tokens: input.tokens ? Number(input.tokens) : undefined,\n buys: input.buys ? Number(input.buys) : undefined,\n sells: input.sells ? Number(input.sells) : undefined,\n totalTrades: input.totalTrades ? Number(input.totalTrades) : undefined,\n wins: input.wins ? Number(input.wins) : undefined,\n losses: input.losses ? Number(input.losses) : undefined,\n winRate: input.winRate,\n buyAmountInUsd: input.buyAmountInUsd,\n sellAmountInUsd: input.sellAmountInUsd,\n totalCostInUsd: input.totalCostInUsd,\n realizedProfitInUsd: input.realizedProfitInUsd,\n realizedProfitRatio: input.realizedProfitRatio,\n unrealizedProfitInUsd: input.unrealizedProfitInUsd,\n unrealizedProfitRatio: input.unrealizedProfitRatio,\n totalProfitInUsd: input.totalProfitInUsd,\n totalProfitRatio: input.totalProfitRatio,\n avgProfitPerTradeInUsd: input.avgProfitPerTradeInUsd,\n };\n}\n\nexport function fromPnlDetailsPage(\n chain: Chain,\n address: string,\n input: PnlDetailsPage,\n): WalletPortfolioPnls {\n const portfolios: PortfolioPnl[] = input.data.map((item) => ({\n chain,\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n amount: item.balance,\n amountInUsd: item.currentValue,\n priceInUsd: item.priceInUsd,\n decimals: item.decimals,\n totalTrades: Number(item.totalTrades),\n buys: Number(item.buys),\n buyVolumes: item.buyAmount,\n buyVolumesInUsd: item.buyAmountInUsd,\n buyAvgPriceInUsd: item.avgBuyPriceInUsd,\n sells: Number(item.sells),\n sellVolumes: item.sellAmount,\n sellVolumesInUsd: item.sellAmountInUsd,\n sellAvgPriceInUsd: item.avgSellPriceInUsd,\n realizedProfitInUsd: item.realizedProfitInUsd,\n realizedProfitRatio: item.realizedProfitRatio,\n unrealizedProfitInUsd: item.unrealizedProfitInUsd,\n unrealizedProfitRatio: item.unrealizedProfitRatio,\n totalProfitInUsd: item.totalProfitInUsd,\n totalProfitRatio: item.totalProfitRatio,\n }));\n\n return {\n chain,\n address,\n tokens: Number(input.summary.tokens),\n buys: Number(input.summary.buys),\n sells: Number(input.summary.sells),\n totalTrades: Number(input.summary.totalTrades),\n wins: Number(input.summary.wins),\n losses: Number(input.summary.losses),\n winRate: input.summary.winRate,\n buyAmountInUsd: input.summary.buyAmountInUsd,\n sellAmountInUsd: input.summary.sellAmountInUsd,\n totalCostInUsd: input.summary.totalCostInUsd,\n realizedProfitInUsd: input.summary.realizedProfitInUsd,\n realizedProfitRatio: input.summary.realizedProfitRatio,\n unrealizedProfitInUsd: input.summary.unrealizedProfitInUsd,\n totalProfitInUsd: input.summary.totalProfitInUsd,\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n portfolios,\n };\n}\n\nexport function fromWalletNetWorthByTokens(\n chain: Chain,\n input: WalletNetWorthByTokensResult,\n): Portfolio[] {\n return (input.data ?? []).map((item) => ({\n chain: fromChainDTO(item.chain),\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n priceInUsd: item.priceInUsd,\n priceInNative: item.priceInNative,\n amount: item.amount,\n amountInUsd: item.valueInUsd,\n amountInNative: item.valueInNative,\n decimals: item.decimals,\n }));\n}\n\nexport function fromPnlDetailItems(\n chain: Chain,\n input: PnlDetailsPage,\n): PortfolioPnl[] {\n return input.data.map((item) => ({\n chain,\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n amount: item.balance,\n amountInUsd: item.currentValue,\n priceInUsd: item.priceInUsd,\n decimals: item.decimals,\n totalTrades: Number(item.totalTrades),\n buys: Number(item.buys),\n buyVolumes: item.buyAmount,\n buyVolumesInUsd: item.buyAmountInUsd,\n buyAvgPriceInUsd: item.avgBuyPriceInUsd,\n sells: Number(item.sells),\n sellVolumes: item.sellAmount,\n sellVolumesInUsd: item.sellAmountInUsd,\n sellAvgPriceInUsd: item.avgSellPriceInUsd,\n realizedProfitInUsd: item.realizedProfitInUsd,\n realizedProfitRatio: item.realizedProfitRatio,\n unrealizedProfitInUsd: item.unrealizedProfitInUsd,\n unrealizedProfitRatio: item.unrealizedProfitRatio,\n totalProfitInUsd: item.totalProfitInUsd,\n totalProfitRatio: item.totalProfitRatio,\n }));\n}\n\nexport function fromTradePage(input: TradePage): API.CursorList<TradeActivity> {\n return {\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n data: input.data.map(fromTradeDetailDTO),\n };\n}\n\nfunction fromTradeDetailDTO(input: TradePage[\"data\"][number]): TradeActivity {\n const isBuy = input.type.toLowerCase() === \"buy\";\n return {\n chain: fromChainDTO(input.chain),\n walletAddress: input.accountOwnerAddress,\n txHash: input.transactionSignature,\n type: isBuy ? \"buy\" : \"sell\",\n from: {\n address: isBuy ? input.sideTokenAddress : input.tokenAddress,\n symbol: isBuy ? input.sideTokenSymbol : input.tokenSymbol,\n name: isBuy ? input.sideTokenName : input.tokenName,\n image: isBuy ? input.sideTokenImageUrl : input.tokenImageUrl,\n amount: isBuy ? input.sideTokenAmount : input.tokenAmount,\n amountInUsd: isBuy ? input.sideTokenAmountInUsd : input.tokenAmountInUsd,\n priceInUsd: isBuy ? input.sideTokenPriceInUsd : input.tokenPriceInUsd,\n },\n to: {\n address: isBuy ? input.tokenAddress : input.sideTokenAddress,\n symbol: isBuy ? input.tokenSymbol : input.sideTokenSymbol,\n name: isBuy ? input.tokenName : input.sideTokenName,\n image: isBuy ? input.tokenImageUrl : input.sideTokenImageUrl,\n amount: isBuy ? input.tokenAmount : input.sideTokenAmount,\n amountInUsd: isBuy ? input.tokenAmountInUsd : input.sideTokenAmountInUsd,\n priceInUsd: isBuy ? input.tokenPriceInUsd : input.sideTokenPriceInUsd,\n },\n dex: {\n programAddress: input.dexProgramAddress,\n protocolFamily: input.dexProtocolFamily,\n image: input.dexImage,\n },\n poolAddress: input.poolAddress,\n status: (input.status as TradeActivity[\"status\"]) ?? \"success\",\n time: new Date(input.blockTimestamp * 1000),\n };\n}\n\nexport function fromTokenSubscribed(\n chain: Chain,\n input: WsNewToken,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.tokenAddress,\n name: input.name,\n symbol: input.symbol,\n decimals: input.decimals,\n createdAt: input.createdAtMs ? new Date(input.createdAtMs) : undefined,\n launchedFrom: input.launchFrom\n ? {\n programAddress: input.launchFrom.programAddress,\n protocolFamily: input.launchFrom.protocolFamily,\n }\n : undefined,\n };\n}\n\nexport function fromTokenMetadataSubscribed(\n chain: Chain,\n input: WsTokenMetadata,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.tokenAddress,\n name: input.name,\n symbol: input.symbol,\n decimals: input.decimals,\n image: input.imageUrl,\n description: input.description,\n socialMedias: input.socialMedia ? { ...input.socialMedia } : undefined,\n createdAt: input.createdAtMs ? new Date(input.createdAtMs) : undefined,\n launchedFrom: input.launchFrom\n ? {\n programAddress: input.launchFrom.programAddress,\n protocolFamily: input.launchFrom.protocolFamily,\n }\n : undefined,\n migratedTo: input.migratedTo\n ? {\n programAddress: input.migratedTo.programAddress,\n protocolFamily: input.migratedTo.protocolFamily,\n }\n : undefined,\n };\n}\n\n// ====================================\n// WebSocket data conversion functions\n// ====================================\n\nexport function fromWsCandle(input: WsCandle): TokenCandle {\n return {\n open: input.open,\n close: input.close,\n high: input.high,\n low: input.low,\n volume: input.volume,\n resolution: fromResolutionDTO(input.resolution),\n timestamp: new Date(input.time),\n };\n}\n\nexport function fromWsTokenStats(input: WsTokenStat): TokenStats {\n const timeframes = [\"1m\", \"5m\", \"15m\", \"30m\", \"1h\", \"4h\", \"24h\"] as const;\n const record = input as unknown as Record<\n string,\n number | string | undefined\n >;\n const result: TokenStats = {};\n\n for (const tf of timeframes) {\n const buys = record[`buys${tf}`] as number | undefined;\n const sells = record[`sells${tf}`] as number | undefined;\n const buyers = record[`buyers${tf}`] as number | undefined;\n const sellers = record[`sellers${tf}`] as number | undefined;\n const buyVolumeInUsd = record[`buyVolumeInUsd${tf}`] as string | undefined;\n const sellVolumeInUsd = record[`sellVolumeInUsd${tf}`] as\n | string\n | undefined;\n const trades = record[`trades${tf}`] as number | undefined;\n const price = record[`price${tf}`] as string | undefined;\n const openInUsd = record[`openInUsd${tf}`] as string | undefined;\n const closeInUsd = record[`closeInUsd${tf}`] as string | undefined;\n\n const hasData =\n buys !== undefined ||\n sells !== undefined ||\n trades !== undefined ||\n price !== undefined;\n\n if (!hasData) continue;\n\n const totalTrades =\n trades ??\n (buys !== undefined && sells !== undefined ? buys + sells : undefined);\n const totalTraders =\n buyers !== undefined && sellers !== undefined\n ? buyers + sellers\n : undefined;\n const totalVolumesInUsd =\n buyVolumeInUsd !== undefined && sellVolumeInUsd !== undefined\n ? new SafeBigNumber(buyVolumeInUsd).plus(sellVolumeInUsd).toString()\n : undefined;\n const priceChange =\n openInUsd && closeInUsd && new SafeBigNumber(openInUsd).gt(0)\n ? new SafeBigNumber(closeInUsd)\n .minus(openInUsd)\n .div(openInUsd)\n .toString()\n : undefined;\n\n result[tf] = {\n buys,\n sells,\n trades: totalTrades,\n buyers,\n sellers,\n traders: totalTraders,\n buyVolumesInUsd: buyVolumeInUsd,\n sellVolumesInUsd: sellVolumeInUsd,\n volumesInUsd: totalVolumesInUsd,\n openPriceInUsd: openInUsd,\n closePriceInUsd: closeInUsd,\n priceInUsd: price ?? closeInUsd,\n priceChange,\n };\n }\n\n return result;\n}\n\nexport function fromWsTokenMarketDataFromStats(\n input: WsTokenStat,\n): TokenMarketData {\n return {\n priceInUsd: input.price,\n };\n}\n\nexport function fromWsTokenDataSubscribed(\n chain: Chain,\n input: WsTokenStat,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.address,\n stats: fromWsTokenStats(input),\n marketData: fromWsTokenMarketDataFromStats(input),\n };\n}\n\nexport function fromWsTokenSupplyToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenSupply,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n marketData: {\n totalSupply: input.supply,\n marketCapInUsd: input.marketCapInUsd,\n },\n };\n}\n\nexport function fromWsTokenHolderToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenHolderDTO,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n marketData: fromWsTokenMarketDataFromHolder(input),\n };\n}\n\nexport function fromWsTokenLiquidityToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenLiquidity,\n): API.TokenSubscribed {\n if (input.metricType === WsMetricType.LIQUIDITY_IN_USD) {\n return {\n chain,\n address,\n marketData: { tvlInUsd: input.value },\n };\n }\n if (input.metricType === WsMetricType.MIGRATED_RATIO) {\n return {\n chain,\n address,\n migrateProgress: new SafeBigNumber(input.value).shiftedBy(2).toString(),\n };\n }\n return { chain, address };\n}\n\nexport function fromWsTokenBondingCurveToSubscribed(\n chain: Chain,\n input: WsTokenBondingCurve,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.tokenAddress ?? \"\",\n migrateProgress: input.progressRatio\n ? new SafeBigNumber(input.progressRatio).shiftedBy(2).toString()\n : undefined,\n };\n}\n\nexport function fromWsTokenMaxLiquidityToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenMaxLiquidity,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n liquidities: [\n {\n poolAddress: input.poolAddress,\n tvlInUsd: input.liquidityInUsd,\n tvl: input.liquidityInNative,\n },\n ],\n };\n}\n\nexport function fromWsTokenTotalLiquidityToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenTotalLiquidity,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n marketData: {\n tvlInUsd: input.liquidityInUsd,\n tvl: input.liquidityInNative,\n },\n };\n}\n\nexport function fromWsTokenMarketDataFromHolder(\n input: WsTokenHolderDTO,\n): Partial<TokenMarketData> {\n return {\n holders: input.holders,\n top10Holdings: input.top10HoldersAmount,\n top10HoldingsRatio: input.top10HoldersRatio,\n top50Holdings: input.top50HoldersAmount,\n top50HoldingsRatio: input.top50HoldersRatio,\n top100Holdings: input.top100HoldersAmount,\n top100HoldingsRatio: input.top100HoldersRatio,\n devHolders:\n input.balanceTagDevHolders === undefined\n ? undefined\n : input.balanceTagDevHolders,\n devHoldings: input.balanceTagDevAmount,\n devHoldingsRatio: input.balanceTagDevRatio,\n sniperHolders:\n input.balanceTagSniperHolders === undefined\n ? undefined\n : input.balanceTagSniperHolders,\n sniperHoldings: input.balanceTagSniperAmount,\n sniperHoldingsRatio: input.balanceTagSniperRatio,\n freshHolders:\n input.balanceTagFreshHolders === undefined\n ? undefined\n : input.balanceTagFreshHolders,\n freshHoldings: input.balanceTagFreshAmount,\n freshHoldingsRatio: input.balanceTagFreshRatio,\n bundleHolders:\n input.balanceTagBundleHolders === undefined\n ? undefined\n : input.balanceTagBundleHolders,\n bundleHoldings: input.balanceTagBundleAmount,\n bundleHoldingsRatio: input.balanceTagBundleRatio,\n sandwichHolders:\n input.balanceTagSandwichHolders === undefined\n ? undefined\n : input.balanceTagSandwichHolders,\n sandwichHoldings: input.balanceTagSandwichAmount,\n sandwichHoldingsRatio: input.balanceTagSandwichRatio,\n };\n}\n\nexport function fromWsTradeActivity(\n chain: Chain,\n input: WsTradeActivity,\n): TradeActivity {\n const isBuy = input.kind.toLowerCase() === \"buy\";\n return {\n chain,\n walletAddress: isBuy ? input.buyWalletAddress : input.sellWalletAddress,\n txHash: input.txHash,\n type: isBuy ? \"buy\" : \"sell\",\n from: {\n address: input.sellTokenAddress,\n symbol: input.sellTokenSymbol,\n name: input.sellTokenName,\n amount: input.sellAmount,\n amountInUsd: input.sellAmountInUsd,\n },\n to: {\n address: input.buyTokenAddress,\n symbol: input.buyTokenSymbol,\n name: input.buyTokenName,\n amount: input.buyAmount,\n amountInUsd: input.buyAmountInUsd,\n },\n status: \"success\",\n time: new Date(input.timestamp),\n };\n}\n"]}
|
package/dist/utils.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {ChainSymbol,Resolution,SearchSortBy,GetNewTokensSortBy,SwapRouteInputSwapMode,WsMetricType}from'@chainstream-io/sdk';import {Chain,API}from'@liberfi.io/types';import {SafeBigNumber}from'@liberfi.io/utils';function ze(e){switch(e){case Chain.ETHEREUM:return ChainSymbol.eth;case Chain.BINANCE:return ChainSymbol.bsc;case Chain.SOLANA:return ChainSymbol.sol}throw new Error(`Unsupported chain: ${e}`)}function Ve(e){switch(e){case "1s":return Resolution["1s"];case "15s":return Resolution["15s"];case "30s":return Resolution["30s"];case "1m":return Resolution["1m"];case "5m":return Resolution["5m"];case "15m":return Resolution["15m"];case "30m":case "1h":return Resolution["1h"];case "4h":return Resolution["4h"];case "12h":return Resolution["12h"];case "24h":return Resolution["1d"]}}function pe(e){switch(e){case "asc":return "ASC";case "desc":return "DESC"}}function Be(e){switch(e){case "marketCap":return SearchSortBy.marketCapInUsd;case "tvl":return SearchSortBy.liquidityInUsd;case "price":return SearchSortBy.priceInUsd;case "holders":return SearchSortBy.holderCount;case "volumes24h":return SearchSortBy.h24VolumeInUsd;case "trades24h":return SearchSortBy.h24Transactions;case "createdAt":return SearchSortBy.tokenCreatedAt}throw new Error(`Unsupported search field: ${e}`)}function N(e){switch(e){case "price":return GetNewTokensSortBy.marketDatapriceInUsd;case "priceChange1m":return GetNewTokensSortBy.statspriceChangeRatioInUsd1m;case "priceChange5m":return GetNewTokensSortBy.statspriceChangeRatioInUsd5m;case "priceChange1h":return GetNewTokensSortBy.statspriceChangeRatioInUsd1h;case "priceChange4h":return GetNewTokensSortBy.statspriceChangeRatioInUsd4h;case "priceChange24h":return GetNewTokensSortBy.statspriceChangeRatioInUsd24h;case "marketCap":return GetNewTokensSortBy.marketDatamarketCapInUsd;case "tvl":return GetNewTokensSortBy.marketDatamaxPoolTvlInUsd;case "top10Holdings":return GetNewTokensSortBy.marketDatatop10TotalHoldings;case "top10Ratio":return GetNewTokensSortBy.marketDatatop10HoldingsRatio;case "top100Holdings":return GetNewTokensSortBy.marketDatatop100TotalHoldings;case "top100Ratio":return GetNewTokensSortBy.marketDatatop100HoldingsRatio;case "holders":return GetNewTokensSortBy.marketDataholders;case "creatorsHoldings":return GetNewTokensSortBy.marketDatacreatorHoldings;case "creatorsRatio":return GetNewTokensSortBy.marketDatacreatorHoldingsRatio;case "buys1m":return GetNewTokensSortBy.statsbuys1m;case "buys5m":return GetNewTokensSortBy.statsbuys5m;case "buys15m":return GetNewTokensSortBy.statsbuys15m;case "buys30m":return GetNewTokensSortBy.statsbuys30m;case "buys1h":return GetNewTokensSortBy.statsbuys1h;case "buys4h":return GetNewTokensSortBy.statsbuys4h;case "buys24h":return GetNewTokensSortBy.statsbuys24h;case "sells1m":return GetNewTokensSortBy.statssells1m;case "sells5m":return GetNewTokensSortBy.statssells5m;case "sells15m":return GetNewTokensSortBy.statssells15m;case "sells30m":return GetNewTokensSortBy.statssells30m;case "sells1h":return GetNewTokensSortBy.statssells1h;case "sells4h":return GetNewTokensSortBy.statssells4h;case "sells24h":return GetNewTokensSortBy.statssells24h;case "trades1m":return GetNewTokensSortBy.statstrades1m;case "trades5m":return GetNewTokensSortBy.statstrades5m;case "trades1h":return GetNewTokensSortBy.statstrades1h;case "trades4h":return GetNewTokensSortBy.statstrades4h;case "trades24h":return GetNewTokensSortBy.statstrades24h;case "traders1m":return GetNewTokensSortBy.statstraders1m;case "traders5m":return GetNewTokensSortBy.statstraders5m;case "traders1h":return GetNewTokensSortBy.statstraders1h;case "traders4h":return GetNewTokensSortBy.statstraders4h;case "traders24h":return GetNewTokensSortBy.statstraders24h;case "volumes1m":return GetNewTokensSortBy.statsvolumesInUsd1m;case "volumes5m":return GetNewTokensSortBy.statsvolumesInUsd5m;case "volumes1h":return GetNewTokensSortBy.statsvolumesInUsd1h;case "volumes4h":return GetNewTokensSortBy.statsvolumesInUsd4h;case "volumes24h":return GetNewTokensSortBy.statsvolumesInUsd24h;case "createdAt":return GetNewTokensSortBy.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function qe(e){return e.filter(o=>["gt","gte","lt","lte","between"].indexOf(o.operator)>=0).map(o=>{let s={field:N(o.field)};return ["gt","gte","between"].indexOf(o.operator)>=0&&(s.min=typeof o.value=="number"?new SafeBigNumber(o.value).toString():o.value),["lt","lte","between"].indexOf(o.operator)>=0&&(s.max=typeof o.value=="number"?new SafeBigNumber(o.value).toString():o.value),s})}function h(e){switch(e){case ChainSymbol.eth:return Chain.ETHEREUM;case ChainSymbol.bsc:return Chain.BINANCE;case ChainSymbol.sol:case "solana":return Chain.SOLANA}throw new Error(`Unsupported chain: ${e}`)}function W(e){return {address:e.address,share:e.share,isVerified:e.isVerified}}function F(e){return {chain:h(e.chain),name:e.name,symbol:e.symbol,address:e.address,decimals:e.decimals,image:e.imageUrl,description:e.description,creators:e.tokenCreators?.map(W),launchedFrom:{programAddress:e.extra?.launchFromProgramAddress,protocolFamily:e.extra?.launchFromProtocolFamily},migrateProgress:e.marketData.completionRatio?new SafeBigNumber(e.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:e.extra?.migratedToProgramAddress,protocolFamily:e.extra?.migratedToProtocolFamily,poolAddress:e.extra?.migratedToPoolAddress,migratedAt:e.extra?.migratedAt?new Date(e.extra.migratedAt):void 0},socialMedias:e.socialMedias?{...e.socialMedias}:void 0,stats:e.stats?O(e.stats):void 0,marketData:e.marketData?z(e.marketData):void 0,liquidities:e.liquidity?.map(M),createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function O(e){return {"1m":i(e,"1m"),"5m":i(e,"5m"),"15m":i(e,"15m"),"30m":i(e,"30m"),"1h":i(e,"1h"),"4h":i(e,"4h"),"24h":i(e,"24h")}}function m(e){return e===void 0?void 0:parseInt(e)}function i(e,o){let s=e.periods?.[o];return s?{buys:m(s.buys),sells:m(s.sells),trades:m(s.trades),buyers:m(s.buyers),sellers:m(s.sellers),traders:m(s.traders),buyVolumes:s.buyVolume,sellVolumes:s.sellVolume,volumes:s.totalVolumeInNative,buyVolumesInUsd:s.buyVolumeInUsd,sellVolumesInUsd:s.sellVolumeInUsd,volumesInUsd:s.totalVolumeInUsd,openPriceInUsd:s.openInUsd,closePriceInUsd:s.closeInUsd,highPriceInUsd:s.highInUsd,lowPriceInUsd:s.lowInUsd,priceInUsd:s.closeInUsd,priceChange:s.priceChangeRatioInUsd}:{}}function M(e){return {image:e.image,poolAddress:e.poolAddress,programAddress:e.programAddress,protocolFamily:e.protocolFamily,tvl:e.tvlInSol,tvlInUsd:e.tvlInUsd}}function z(e){return {totalSupply:e.totalSupply,marketCap:e.marketCapInSol,marketCapInUsd:e.marketCapInUsd,price:e.priceInSol,priceInUsd:e.priceInUsd,tvl:e.totalTvlInSol,tvlInUsd:e.totalTvlInUsd,holders:parseInt(e.holders),top10Holdings:e.top10TotalHoldings,top10HoldingsRatio:e.top10HoldingsRatio,top50Holdings:e.top50TotalHoldings,top50HoldingsRatio:e.top50HoldingsRatio,top100Holdings:e.top100TotalHoldings,top100HoldingsRatio:e.top100HoldingsRatio,bluechipHolders:e.bluechipTotalHolders===void 0?void 0:parseInt(e.bluechipTotalHolders),bluechipHoldings:e.bluechipTotalHoldings,bluechipHoldingsRatio:e.bluechipHoldingsRatio,kolHolders:e.kolTotalHolders===void 0?void 0:parseInt(e.kolTotalHolders),kolHoldings:e.kolTotalHoldings,kolHoldingsRatio:e.kolHoldingsRatio,sniperHolders:e.sniperTotalHolders===void 0?void 0:parseInt(e.sniperTotalHolders),sniperHoldings:e.sniperTotalHoldings,sniperHoldingsRatio:e.sniperHoldingsRatio,proHolders:e.proTotalHolders===void 0?void 0:parseInt(e.proTotalHolders),proHoldings:e.proTotalHoldings,proHoldingsRatio:e.proHoldingsRatio,insiderHolders:e.insiderTotalHolders===void 0?void 0:parseInt(e.insiderTotalHolders),insiderHoldings:e.insiderTotalHoldings,insiderHoldingsRatio:e.insiderHoldingsRatio,sandwichHolders:e.sandwishTotalHolders===void 0?void 0:parseInt(e.sandwishTotalHolders),sandwichHoldings:e.sandwishTotalHoldings,sandwichHoldingsRatio:e.sandwishHoldingsRatio,freshHolders:e.freshTotalHolders===void 0?void 0:parseInt(e.freshTotalHolders),freshHoldings:e.freshTotalHoldings,freshHoldingsRatio:e.freshHoldingsRatio,bundleHolders:e.bundleTotalHolders===void 0?void 0:parseInt(e.bundleTotalHolders),bundleHoldings:e.bundleTotalHoldings,bundleHoldingsRatio:e.bundleHoldingsRatio,devHolders:e.devTotalHolders===void 0?void 0:parseInt(e.devTotalHolders),devHoldings:e.devTotalHoldings,devHoldingsRatio:e.devHoldingsRatio}}function Le(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:S(e.resolution),timestamp:new Date(e.time)}}function S(e){return e==="1d"?"24h":e}function Ee(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}function $e(e){return {dex:"jupiter",userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===API.SwapMode.EXACT_IN?SwapRouteInputSwapMode.ExactIn:SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:e.input,outputMint:e.output,priorityFee:e.priorityFee}}function _e(e){return {signedTx:e.serializedTx}}function je(e){return {startCursor:e.startCursor,endCursor:e.endCursor,hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(o=>({address:o.walletAddress,amount:o.amount,amountInUsd:o.amountInUsd,ratio:o.percentage}))}}function Ge(e){return {startCursor:e.startCursor,endCursor:e.endCursor,hasPrev:e.hasPrev,hasNext:e.hasNext,total:e.total,data:e.data.map(F),extra:e.countsByProtocols}}function Qe(e){return {serializedTx:e.serializedTx,plans:[],extra:e.routeInfo}}function Xe(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Ye(e,o){let s=(o.data??[]).map(n=>({chain:h(n.chain),address:n.tokenAddress,name:n.name,symbol:n.symbol,image:n.logoUri,priceInUsd:n.priceInUsd,priceInNative:n.priceInNative,amount:n.amount,amountInUsd:n.valueInUsd,amountInNative:n.valueInNative,decimals:n.decimals}));return {chain:s[0]?.chain??e,address:o.walletAddress,balanceInUsd:o.totalValueInUsd,balanceInNative:o.totalValueInNative,startCursor:o.startCursor,endCursor:o.endCursor,hasPrev:o.hasPrev,hasNext:o.hasNext,portfolios:s}}function Je(e,o,s){return {chain:e,address:o,tokens:s.tokens?Number(s.tokens):void 0,buys:s.buys?Number(s.buys):void 0,sells:s.sells?Number(s.sells):void 0,totalTrades:s.totalTrades?Number(s.totalTrades):void 0,wins:s.wins?Number(s.wins):void 0,losses:s.losses?Number(s.losses):void 0,winRate:s.winRate,buyAmountInUsd:s.buyAmountInUsd,sellAmountInUsd:s.sellAmountInUsd,totalCostInUsd:s.totalCostInUsd,realizedProfitInUsd:s.realizedProfitInUsd,realizedProfitRatio:s.realizedProfitRatio,unrealizedProfitInUsd:s.unrealizedProfitInUsd,unrealizedProfitRatio:s.unrealizedProfitRatio,totalProfitInUsd:s.totalProfitInUsd,totalProfitRatio:s.totalProfitRatio,avgProfitPerTradeInUsd:s.avgProfitPerTradeInUsd}}function Ke(e,o,s){let n=s.data.map(a=>({chain:e,address:a.tokenAddress,name:a.name,symbol:a.symbol,image:a.logoUri,amount:a.balance,amountInUsd:a.currentValue,priceInUsd:a.priceInUsd,decimals:a.decimals,totalTrades:Number(a.totalTrades),buys:Number(a.buys),buyVolumes:a.buyAmount,buyVolumesInUsd:a.buyAmountInUsd,buyAvgPriceInUsd:a.avgBuyPriceInUsd,sells:Number(a.sells),sellVolumes:a.sellAmount,sellVolumesInUsd:a.sellAmountInUsd,sellAvgPriceInUsd:a.avgSellPriceInUsd,realizedProfitInUsd:a.realizedProfitInUsd,realizedProfitRatio:a.realizedProfitRatio,unrealizedProfitInUsd:a.unrealizedProfitInUsd,unrealizedProfitRatio:a.unrealizedProfitRatio,totalProfitInUsd:a.totalProfitInUsd,totalProfitRatio:a.totalProfitRatio}));return {chain:e,address:o,tokens:Number(s.summary.tokens),buys:Number(s.summary.buys),sells:Number(s.summary.sells),totalTrades:Number(s.summary.totalTrades),wins:Number(s.summary.wins),losses:Number(s.summary.losses),winRate:s.summary.winRate,buyAmountInUsd:s.summary.buyAmountInUsd,sellAmountInUsd:s.summary.sellAmountInUsd,totalCostInUsd:s.summary.totalCostInUsd,realizedProfitInUsd:s.summary.realizedProfitInUsd,realizedProfitRatio:s.summary.realizedProfitRatio,unrealizedProfitInUsd:s.summary.unrealizedProfitInUsd,totalProfitInUsd:s.summary.totalProfitInUsd,startCursor:s.startCursor,endCursor:s.endCursor,hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:n}}function Ze(e,o){return (o.data??[]).map(s=>({chain:h(s.chain),address:s.tokenAddress,name:s.name,symbol:s.symbol,image:s.logoUri,priceInUsd:s.priceInUsd,priceInNative:s.priceInNative,amount:s.amount,amountInUsd:s.valueInUsd,amountInNative:s.valueInNative,decimals:s.decimals}))}function es(e,o){return o.data.map(s=>({chain:e,address:s.tokenAddress,name:s.name,symbol:s.symbol,image:s.logoUri,amount:s.balance,amountInUsd:s.currentValue,priceInUsd:s.priceInUsd,decimals:s.decimals,totalTrades:Number(s.totalTrades),buys:Number(s.buys),buyVolumes:s.buyAmount,buyVolumesInUsd:s.buyAmountInUsd,buyAvgPriceInUsd:s.avgBuyPriceInUsd,sells:Number(s.sells),sellVolumes:s.sellAmount,sellVolumesInUsd:s.sellAmountInUsd,sellAvgPriceInUsd:s.avgSellPriceInUsd,realizedProfitInUsd:s.realizedProfitInUsd,realizedProfitRatio:s.realizedProfitRatio,unrealizedProfitInUsd:s.unrealizedProfitInUsd,unrealizedProfitRatio:s.unrealizedProfitRatio,totalProfitInUsd:s.totalProfitInUsd,totalProfitRatio:s.totalProfitRatio}))}function ss(e){return {startCursor:e.startCursor,endCursor:e.endCursor,hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(V)}}function V(e){let o=e.type.toLowerCase()==="buy";return {chain:h(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:o?"buy":"sell",from:{address:o?e.sideTokenAddress:e.tokenAddress,symbol:o?e.sideTokenSymbol:e.tokenSymbol,name:o?e.sideTokenName:e.tokenName,image:o?e.sideTokenImageUrl:e.tokenImageUrl,amount:o?e.sideTokenAmount:e.tokenAmount,amountInUsd:o?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:o?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:o?e.tokenAddress:e.sideTokenAddress,symbol:o?e.tokenSymbol:e.sideTokenSymbol,name:o?e.tokenName:e.sideTokenName,image:o?e.tokenImageUrl:e.sideTokenImageUrl,amount:o?e.tokenAmount:e.sideTokenAmount,amountInUsd:o?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:o?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:e.dexProgramAddress,protocolFamily:e.dexProtocolFamily,image:e.dexImage},poolAddress:e.poolAddress,status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function os(e,o){return {chain:e,address:o.tokenAddress,name:o.name,symbol:o.symbol,decimals:o.decimals,createdAt:o.createdAtMs?new Date(o.createdAtMs):void 0,launchedFrom:o.launchFrom?{programAddress:o.launchFrom.programAddress,protocolFamily:o.launchFrom.protocolFamily}:void 0}}function rs(e,o){return {chain:e,address:o.tokenAddress,name:o.name,symbol:o.symbol,decimals:o.decimals,image:o.imageUrl,description:o.description,socialMedias:o.socialMedia?{...o.socialMedia}:void 0,createdAt:o.createdAtMs?new Date(o.createdAtMs):void 0,launchedFrom:o.launchFrom?{programAddress:o.launchFrom.programAddress,protocolFamily:o.launchFrom.protocolFamily}:void 0,migratedTo:o.migratedTo?{programAddress:o.migratedTo.programAddress,protocolFamily:o.migratedTo.protocolFamily}:void 0}}function as(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:S(e.resolution),timestamp:new Date(e.time)}}function p(e){let o=["1m","5m","15m","30m","1h","4h","24h"],s=e,n={};for(let a of o){let f=s[`buys${a}`],g=s[`sells${a}`],b=s[`buyers${a}`],k=s[`sellers${a}`],y=s[`buyVolumeInUsd${a}`],U=s[`sellVolumeInUsd${a}`],P=s[`trades${a}`],A=s[`price${a}`],T=s[`openInUsd${a}`],I=s[`closeInUsd${a}`];if(!(f!==void 0||g!==void 0||P!==void 0||A!==void 0))continue;let C=P??(f!==void 0&&g!==void 0?f+g:void 0),v=b!==void 0&&k!==void 0?b+k:void 0,x=y!==void 0&&U!==void 0?new SafeBigNumber(y).plus(U).toString():void 0,w=T&&I&&new SafeBigNumber(T).gt(0)?new SafeBigNumber(I).minus(T).div(T).toString():void 0;n[a]={buys:f,sells:g,trades:C,buyers:b,sellers:k,traders:v,buyVolumesInUsd:y,sellVolumesInUsd:U,volumesInUsd:x,openPriceInUsd:T,closePriceInUsd:I,priceInUsd:A??I,priceChange:w};}return n}function B(e){return {priceInUsd:e.price}}function ns(e,o){return {chain:e,address:o.address,stats:p(o),marketData:B(o)}}function ts(e,o,s){return {chain:e,address:o,marketData:{totalSupply:s.supply,marketCapInUsd:s.marketCapInUsd}}}function ds(e,o,s){return {chain:e,address:o,marketData:q(s)}}function ls(e,o,s){return s.metricType===WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:o,marketData:{tvlInUsd:s.value}}:s.metricType===WsMetricType.MIGRATED_RATIO?{chain:e,address:o,migrateProgress:new SafeBigNumber(s.value).shiftedBy(2).toString()}:{chain:e,address:o}}function is(e,o){return {chain:e,address:o.tokenAddress??"",migrateProgress:o.progressRatio?new SafeBigNumber(o.progressRatio).shiftedBy(2).toString():void 0}}function ms(e,o,s){return {chain:e,address:o,liquidities:[{poolAddress:s.poolAddress,tvlInUsd:s.liquidityInUsd,tvl:s.liquidityInNative}]}}function cs(e,o,s){return {chain:e,address:o,marketData:{tvlInUsd:s.liquidityInUsd,tvl:s.liquidityInNative}}}function q(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,devHolders:e.balanceTagDevHolders===void 0?void 0:e.balanceTagDevHolders,devHoldings:e.balanceTagDevAmount,devHoldingsRatio:e.balanceTagDevRatio,sniperHolders:e.balanceTagSniperHolders===void 0?void 0:e.balanceTagSniperHolders,sniperHoldings:e.balanceTagSniperAmount,sniperHoldingsRatio:e.balanceTagSniperRatio,freshHolders:e.balanceTagFreshHolders===void 0?void 0:e.balanceTagFreshHolders,freshHoldings:e.balanceTagFreshAmount,freshHoldingsRatio:e.balanceTagFreshRatio,bundleHolders:e.balanceTagBundleHolders===void 0?void 0:e.balanceTagBundleHolders,bundleHoldings:e.balanceTagBundleAmount,bundleHoldingsRatio:e.balanceTagBundleRatio,sandwichHolders:e.balanceTagSandwichHolders===void 0?void 0:e.balanceTagSandwichHolders,sandwichHoldings:e.balanceTagSandwichAmount,sandwichHoldingsRatio:e.balanceTagSandwichRatio}}function us(e,o){let s=o.kind.toLowerCase()==="buy";return {chain:e,walletAddress:s?o.buyWalletAddress:o.sellWalletAddress,txHash:o.txHash,type:s?"buy":"sell",from:{address:o.sellTokenAddress,symbol:o.sellTokenSymbol,name:o.sellTokenName,amount:o.sellAmount,amountInUsd:o.sellAmountInUsd},to:{address:o.buyTokenAddress,symbol:o.buyTokenSymbol,name:o.buyTokenName,amount:o.buyAmount,amountInUsd:o.buyAmountInUsd},status:"success",time:new Date(o.timestamp)}}export{h as fromChainDTO,es as fromPnlDetailItems,Ke as fromPnlDetailsPage,Xe as fromSendTxResult,Qe as fromSwapRoute,Le as fromTokenCandle,W as fromTokenCreatorDTO,F as fromTokenDTO,je as fromTokenHolderPage,M as fromTokenLiquidityDTO,z as fromTokenMarketDataDTO,rs as fromTokenMetadataSubscribed,Ge as fromTokenPage,Ee as fromTokenSecurity,O as fromTokenStatsDTO,os as fromTokenSubscribed,ss as fromTradePage,Ze as fromWalletNetWorthByTokens,Je as fromWalletPnlSummary,Ye as fromWalletPortfolios,as as fromWsCandle,is as fromWsTokenBondingCurveToSubscribed,ns as fromWsTokenDataSubscribed,ds as fromWsTokenHolderToSubscribed,ls as fromWsTokenLiquidityToSubscribed,q as fromWsTokenMarketDataFromHolder,B as fromWsTokenMarketDataFromStats,ms as fromWsTokenMaxLiquidityToSubscribed,p as fromWsTokenStats,ts as fromWsTokenSupplyToSubscribed,cs as fromWsTokenTotalLiquidityToSubscribed,us as fromWsTradeActivity,ze as toChainDTO,N as toFieldDTO,qe as toRangeFiltersDTO,Ve as toResolutionDTO,Be as toSearchFieldDTO,_e as toSendTxInput,pe as toSortDirectionDTO,$e as toSwapRouteInput};//# sourceMappingURL=utils.mjs.map
|
|
2
|
-
//# sourceMappingURL=utils.mjs.map
|
package/dist/utils.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts"],"names":["toChainDTO","chain","Chain","ChainSymbol","toResolutionDTO","resolution","Resolution","toSortDirectionDTO","direction","toSearchFieldDTO","field","SearchSortBy","toFieldDTO","GetNewTokensSortBy","toRangeFiltersDTO","filters","it","cond","SafeBigNumber","fromChainDTO","fromTokenCreatorDTO","input","fromTokenDTO","fromTokenStatsDTO","fromTokenMarketDataDTO","fromTokenLiquidityDTO","parseTokenStatsByResolution","toOptionalNumber","value","period","fromTokenCandle","fromResolutionDTO","fromTokenSecurity","toSwapRouteInput","params","API","SwapRouteInputSwapMode","toSendTxInput","fromTokenHolderPage","holder","fromTokenPage","fromSwapRoute","fromSendTxResult","fromWalletPortfolios","portfolios","item","fromWalletPnlSummary","address","fromPnlDetailsPage","fromWalletNetWorthByTokens","fromPnlDetailItems","fromTradePage","fromTradeDetailDTO","isBuy","fromTokenSubscribed","fromTokenMetadataSubscribed","fromWsCandle","fromWsTokenStats","timeframes","record","result","tf","buys","sells","buyers","sellers","buyVolumeInUsd","sellVolumeInUsd","trades","price","openInUsd","closeInUsd","totalTrades","totalTraders","totalVolumesInUsd","priceChange","fromWsTokenMarketDataFromStats","fromWsTokenDataSubscribed","fromWsTokenSupplyToSubscribed","fromWsTokenHolderToSubscribed","fromWsTokenMarketDataFromHolder","fromWsTokenLiquidityToSubscribed","WsMetricType","fromWsTokenBondingCurveToSubscribed","fromWsTokenMaxLiquidityToSubscribed","fromWsTokenTotalLiquidityToSubscribed","fromWsTradeActivity"],"mappings":"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","file":"utils.mjs","sourcesContent":["import {\n Token as TokenDTO,\n Resolution,\n Candle,\n TokenStat,\n TokenHolderPage,\n TokenMarketData as TokenMarketDataDTO,\n GetNewTokensSortBy,\n FilterCondition,\n SearchSortBy,\n TokenPage as ChainStreamTokenPage,\n SwapRouteResponse,\n SwapRouteInput,\n SwapRouteInputSwapMode,\n SendTxInput,\n SendTxResponse,\n WalletNetWorthPage,\n TradePage,\n DexPoolDTO,\n ChainSymbol,\n TokenCreatorsDTO,\n WsNewToken,\n WsTokenMetadata,\n WsCandle,\n WsTokenStat,\n WsTradeActivity,\n WsTokenHolder as WsTokenHolderDTO,\n WsTokenSupply,\n WsTokenLiquidity,\n WsTokenMaxLiquidity,\n WsTokenTotalLiquidity,\n WsTokenBondingCurve,\n WsMetricType,\n WalletPnlSummaryDTO,\n PnlDetailsPage,\n WalletNetWorthByTokensResult,\n} from \"@chainstream-io/sdk\";\nimport {\n API,\n Chain,\n Token,\n TokenCandle,\n TokenCreator,\n TokenHolder,\n TokenLiquidity,\n TokenMarketData,\n TokenResolution,\n TokenSecurity,\n TokenStats,\n TokenStatsByResolution,\n TradeActivity,\n Portfolio,\n PortfolioPnl,\n WalletPnl,\n WalletPortfolioPnls,\n WalletPortfolios,\n} from \"@liberfi.io/types\";\nimport { SafeBigNumber } from \"@liberfi.io/utils\";\n\nexport function toChainDTO(chain: Chain): ChainSymbol {\n switch (chain) {\n case Chain.ETHEREUM:\n return ChainSymbol.eth;\n case Chain.BINANCE:\n return ChainSymbol.bsc;\n case Chain.SOLANA:\n return ChainSymbol.sol;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function toResolutionDTO(resolution: TokenResolution): Resolution {\n switch (resolution) {\n case \"1s\":\n return Resolution[\"1s\"];\n case \"15s\":\n return Resolution[\"15s\"];\n case \"30s\":\n return Resolution[\"30s\"];\n case \"1m\":\n return Resolution[\"1m\"];\n case \"5m\":\n return Resolution[\"5m\"];\n case \"15m\":\n return Resolution[\"15m\"];\n case \"30m\":\n case \"1h\":\n return Resolution[\"1h\"];\n case \"4h\":\n return Resolution[\"4h\"];\n case \"12h\":\n return Resolution[\"12h\"];\n case \"24h\":\n return Resolution[\"1d\"];\n }\n}\n\nexport function toSortDirectionDTO(direction: \"asc\" | \"desc\"): string {\n switch (direction) {\n case \"asc\":\n return \"ASC\";\n case \"desc\":\n return \"DESC\";\n }\n}\n\nexport function toSearchFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"marketCap\":\n return SearchSortBy.marketCapInUsd;\n case \"tvl\":\n return SearchSortBy.liquidityInUsd;\n case \"price\":\n return SearchSortBy.priceInUsd;\n case \"holders\":\n return SearchSortBy.holderCount;\n case \"volumes24h\":\n return SearchSortBy.h24VolumeInUsd;\n case \"trades24h\":\n return SearchSortBy.h24Transactions;\n case \"createdAt\":\n return SearchSortBy.tokenCreatedAt;\n }\n throw new Error(`Unsupported search field: ${field}`);\n}\n\nexport function toFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"price\":\n return GetNewTokensSortBy.marketDatapriceInUsd;\n case \"priceChange1m\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd1m;\n case \"priceChange5m\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd5m;\n case \"priceChange1h\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd1h;\n case \"priceChange4h\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd4h;\n case \"priceChange24h\":\n return GetNewTokensSortBy.statspriceChangeRatioInUsd24h;\n case \"marketCap\":\n return GetNewTokensSortBy.marketDatamarketCapInUsd;\n case \"tvl\":\n return GetNewTokensSortBy.marketDatamaxPoolTvlInUsd;\n case \"top10Holdings\":\n return GetNewTokensSortBy.marketDatatop10TotalHoldings;\n case \"top10Ratio\":\n return GetNewTokensSortBy.marketDatatop10HoldingsRatio;\n case \"top100Holdings\":\n return GetNewTokensSortBy.marketDatatop100TotalHoldings;\n case \"top100Ratio\":\n return GetNewTokensSortBy.marketDatatop100HoldingsRatio;\n case \"holders\":\n return GetNewTokensSortBy.marketDataholders;\n case \"creatorsHoldings\":\n return GetNewTokensSortBy.marketDatacreatorHoldings;\n case \"creatorsRatio\":\n return GetNewTokensSortBy.marketDatacreatorHoldingsRatio;\n case \"buys1m\":\n return GetNewTokensSortBy.statsbuys1m;\n case \"buys5m\":\n return GetNewTokensSortBy.statsbuys5m;\n case \"buys15m\":\n return GetNewTokensSortBy.statsbuys15m;\n case \"buys30m\":\n return GetNewTokensSortBy.statsbuys30m;\n case \"buys1h\":\n return GetNewTokensSortBy.statsbuys1h;\n case \"buys4h\":\n return GetNewTokensSortBy.statsbuys4h;\n case \"buys24h\":\n return GetNewTokensSortBy.statsbuys24h;\n case \"sells1m\":\n return GetNewTokensSortBy.statssells1m;\n case \"sells5m\":\n return GetNewTokensSortBy.statssells5m;\n case \"sells15m\":\n return GetNewTokensSortBy.statssells15m;\n case \"sells30m\":\n return GetNewTokensSortBy.statssells30m;\n case \"sells1h\":\n return GetNewTokensSortBy.statssells1h;\n case \"sells4h\":\n return GetNewTokensSortBy.statssells4h;\n case \"sells24h\":\n return GetNewTokensSortBy.statssells24h;\n case \"trades1m\":\n return GetNewTokensSortBy.statstrades1m;\n case \"trades5m\":\n return GetNewTokensSortBy.statstrades5m;\n case \"trades1h\":\n return GetNewTokensSortBy.statstrades1h;\n case \"trades4h\":\n return GetNewTokensSortBy.statstrades4h;\n case \"trades24h\":\n return GetNewTokensSortBy.statstrades24h;\n case \"traders1m\":\n return GetNewTokensSortBy.statstraders1m;\n case \"traders5m\":\n return GetNewTokensSortBy.statstraders5m;\n case \"traders1h\":\n return GetNewTokensSortBy.statstraders1h;\n case \"traders4h\":\n return GetNewTokensSortBy.statstraders4h;\n case \"traders24h\":\n return GetNewTokensSortBy.statstraders24h;\n case \"volumes1m\":\n return GetNewTokensSortBy.statsvolumesInUsd1m;\n case \"volumes5m\":\n return GetNewTokensSortBy.statsvolumesInUsd5m;\n case \"volumes1h\":\n return GetNewTokensSortBy.statsvolumesInUsd1h;\n case \"volumes4h\":\n return GetNewTokensSortBy.statsvolumesInUsd4h;\n case \"volumes24h\":\n return GetNewTokensSortBy.statsvolumesInUsd24h;\n case \"createdAt\":\n return GetNewTokensSortBy.tokenCreatedAt;\n }\n throw new Error(`Unsupported sortBy: ${field}`);\n}\n\nexport function toRangeFiltersDTO(\n filters: Array<API.TokenFilterOption>,\n): Array<FilterCondition> {\n return filters\n .filter(\n (it) => [\"gt\", \"gte\", \"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0,\n )\n .map((it) => {\n const cond = { field: toFieldDTO(it.field) } as FilterCondition;\n if ([\"gt\", \"gte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.min =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n if ([\"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.max =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n return cond;\n });\n}\n\nexport function fromChainDTO(chain: string): Chain {\n switch (chain) {\n case ChainSymbol.eth:\n return Chain.ETHEREUM;\n case ChainSymbol.bsc:\n return Chain.BINANCE;\n case ChainSymbol.sol:\n case \"solana\":\n return Chain.SOLANA;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function fromTokenCreatorDTO(input: TokenCreatorsDTO): TokenCreator {\n return {\n address: input.address,\n share: input.share,\n isVerified: input.isVerified,\n };\n}\n\nexport function fromTokenDTO(input: TokenDTO): Token {\n return {\n chain: fromChainDTO(input.chain),\n name: input.name,\n symbol: input.symbol,\n address: input.address,\n decimals: input.decimals,\n image: input.imageUrl,\n description: input.description,\n creators: input.tokenCreators?.map(fromTokenCreatorDTO),\n launchedFrom: {\n programAddress: input.extra?.launchFromProgramAddress,\n protocolFamily: input.extra?.launchFromProtocolFamily,\n },\n migrateProgress: input.marketData.completionRatio\n ? new SafeBigNumber(input.marketData.completionRatio)\n .shiftedBy(2)\n .toString()\n : undefined,\n migratedTo: {\n programAddress: input.extra?.migratedToProgramAddress,\n protocolFamily: input.extra?.migratedToProtocolFamily,\n poolAddress: input.extra?.migratedToPoolAddress,\n migratedAt: input.extra?.migratedAt\n ? new Date(input.extra.migratedAt)\n : undefined,\n },\n socialMedias: input.socialMedias ? { ...input.socialMedias } : undefined,\n stats: input.stats ? fromTokenStatsDTO(input.stats) : undefined,\n marketData: input.marketData\n ? fromTokenMarketDataDTO(input.marketData)\n : undefined,\n liquidities: input.liquidity?.map(fromTokenLiquidityDTO),\n createdAt: input.tokenCreatedAt\n ? new Date(input.tokenCreatedAt)\n : undefined,\n };\n}\n\nexport function fromTokenStatsDTO(input: TokenStat): TokenStats {\n return {\n [\"1m\"]: parseTokenStatsByResolution(input, \"1m\"),\n [\"5m\"]: parseTokenStatsByResolution(input, \"5m\"),\n [\"15m\"]: parseTokenStatsByResolution(input, \"15m\"),\n [\"30m\"]: parseTokenStatsByResolution(input, \"30m\"),\n [\"1h\"]: parseTokenStatsByResolution(input, \"1h\"),\n [\"4h\"]: parseTokenStatsByResolution(input, \"4h\"),\n [\"24h\"]: parseTokenStatsByResolution(input, \"24h\"),\n };\n}\n\nfunction toOptionalNumber(value: string | undefined): number | undefined {\n return value === undefined ? undefined : parseInt(value);\n}\n\nfunction parseTokenStatsByResolution(\n input: TokenStat,\n resolution: TokenResolution,\n): TokenStatsByResolution {\n const period = input.periods?.[resolution];\n if (!period) {\n return {};\n }\n\n return {\n buys: toOptionalNumber(period.buys),\n sells: toOptionalNumber(period.sells),\n trades: toOptionalNumber(period.trades),\n buyers: toOptionalNumber(period.buyers),\n sellers: toOptionalNumber(period.sellers),\n traders: toOptionalNumber(period.traders),\n buyVolumes: period.buyVolume,\n sellVolumes: period.sellVolume,\n volumes: period.totalVolumeInNative,\n buyVolumesInUsd: period.buyVolumeInUsd,\n sellVolumesInUsd: period.sellVolumeInUsd,\n volumesInUsd: period.totalVolumeInUsd,\n openPriceInUsd: period.openInUsd,\n closePriceInUsd: period.closeInUsd,\n highPriceInUsd: period.highInUsd,\n lowPriceInUsd: period.lowInUsd,\n priceInUsd: period.closeInUsd,\n priceChange: period.priceChangeRatioInUsd,\n };\n}\n\nexport function fromTokenLiquidityDTO(input: DexPoolDTO): TokenLiquidity {\n return {\n image: input.image,\n poolAddress: input.poolAddress,\n programAddress: input.programAddress,\n protocolFamily: input.protocolFamily,\n tvl: input.tvlInSol,\n tvlInUsd: input.tvlInUsd,\n };\n}\n\nexport function fromTokenMarketDataDTO(\n input: TokenMarketDataDTO,\n): TokenMarketData {\n return {\n totalSupply: input.totalSupply,\n marketCap: input.marketCapInSol,\n marketCapInUsd: input.marketCapInUsd,\n price: input.priceInSol,\n priceInUsd: input.priceInUsd,\n tvl: input.totalTvlInSol,\n tvlInUsd: input.totalTvlInUsd,\n holders: parseInt(input.holders),\n top10Holdings: input.top10TotalHoldings,\n top10HoldingsRatio: input.top10HoldingsRatio,\n top50Holdings: input.top50TotalHoldings,\n top50HoldingsRatio: input.top50HoldingsRatio,\n top100Holdings: input.top100TotalHoldings,\n top100HoldingsRatio: input.top100HoldingsRatio,\n bluechipHolders:\n input.bluechipTotalHolders === undefined\n ? undefined\n : parseInt(input.bluechipTotalHolders),\n bluechipHoldings: input.bluechipTotalHoldings,\n bluechipHoldingsRatio: input.bluechipHoldingsRatio,\n kolHolders:\n input.kolTotalHolders === undefined\n ? undefined\n : parseInt(input.kolTotalHolders),\n kolHoldings: input.kolTotalHoldings,\n kolHoldingsRatio: input.kolHoldingsRatio,\n sniperHolders:\n input.sniperTotalHolders === undefined\n ? undefined\n : parseInt(input.sniperTotalHolders),\n sniperHoldings: input.sniperTotalHoldings,\n sniperHoldingsRatio: input.sniperHoldingsRatio,\n proHolders:\n input.proTotalHolders === undefined\n ? undefined\n : parseInt(input.proTotalHolders),\n proHoldings: input.proTotalHoldings,\n proHoldingsRatio: input.proHoldingsRatio,\n insiderHolders:\n input.insiderTotalHolders === undefined\n ? undefined\n : parseInt(input.insiderTotalHolders),\n insiderHoldings: input.insiderTotalHoldings,\n insiderHoldingsRatio: input.insiderHoldingsRatio,\n sandwichHolders:\n input.sandwishTotalHolders === undefined\n ? undefined\n : parseInt(input.sandwishTotalHolders),\n sandwichHoldings: input.sandwishTotalHoldings,\n sandwichHoldingsRatio: input.sandwishHoldingsRatio,\n freshHolders:\n input.freshTotalHolders === undefined\n ? undefined\n : parseInt(input.freshTotalHolders),\n freshHoldings: input.freshTotalHoldings,\n freshHoldingsRatio: input.freshHoldingsRatio,\n bundleHolders:\n input.bundleTotalHolders === undefined\n ? undefined\n : parseInt(input.bundleTotalHolders),\n bundleHoldings: input.bundleTotalHoldings,\n bundleHoldingsRatio: input.bundleHoldingsRatio,\n devHolders:\n input.devTotalHolders === undefined\n ? undefined\n : parseInt(input.devTotalHolders),\n devHoldings: input.devTotalHoldings,\n devHoldingsRatio: input.devHoldingsRatio,\n };\n}\n\nexport function fromTokenCandle(input: Candle): TokenCandle {\n return {\n open: input.open,\n close: input.close,\n high: input.high,\n low: input.low,\n volume: input.volume,\n resolution: fromResolutionDTO(input.resolution),\n timestamp: new Date(input.time),\n };\n}\n\nfunction fromResolutionDTO(resolution: string): TokenResolution {\n if (resolution === \"1d\") return \"24h\";\n return resolution as TokenResolution;\n}\n\nexport function fromTokenSecurity(\n input: Record<string, unknown>,\n): TokenSecurity {\n return {\n hasTransferFee: input.hasTransferFee as boolean | undefined,\n isTransferFeeUpgradable: input.isTransferFeeUpgradable as\n | boolean\n | undefined,\n isTransferable: input.isTransferable as boolean | undefined,\n isFreezable: input.isFreezable as boolean | undefined,\n isClosable: input.isClosable as boolean | undefined,\n };\n}\nexport function toSwapRouteInput(params: API.SwapParams): SwapRouteInput {\n return {\n dex: \"jupiter\" as SwapRouteInput[\"dex\"],\n userAddress: params.userAddress,\n amount: params.amount,\n swapMode: (params.mode === API.SwapMode.EXACT_IN\n ? SwapRouteInputSwapMode.ExactIn\n : SwapRouteInputSwapMode.ExactOut) as SwapRouteInput[\"swapMode\"],\n slippage: params.slippage ?? 1,\n inputMint: params.input,\n outputMint: params.output,\n priorityFee: params.priorityFee,\n };\n}\n\nexport function toSendTxInput(params: API.SendTxParams): SendTxInput {\n return {\n signedTx: params.serializedTx,\n };\n}\n\nexport function fromTokenHolderPage(\n input: TokenHolderPage,\n): API.CursorList<TokenHolder> {\n return {\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n data: input.data.map((holder) => ({\n address: holder.walletAddress,\n amount: holder.amount,\n amountInUsd: holder.amountInUsd,\n ratio: holder.percentage,\n })),\n };\n}\n\nexport function fromTokenPage(\n input: ChainStreamTokenPage,\n): API.SearchTokenCursorList {\n return {\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n total: input.total,\n data: input.data.map(fromTokenDTO),\n extra: input.countsByProtocols,\n };\n}\n\nexport function fromSwapRoute(input: SwapRouteResponse): API.SwapRoute {\n return {\n serializedTx: input.serializedTx,\n plans: [],\n extra: input.routeInfo,\n };\n}\n\nexport function fromSendTxResult(input: SendTxResponse): API.SendTxResult {\n return {\n txHash: input.signature,\n extra: { jobId: input.jobId, elapsedTime: input.elapsedTime },\n };\n}\n\nexport function fromWalletPortfolios(\n chain: Chain,\n input: WalletNetWorthPage,\n): WalletPortfolios {\n const portfolios: Portfolio[] = (input.data ?? []).map((item) => ({\n chain: fromChainDTO(item.chain),\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n priceInUsd: item.priceInUsd,\n priceInNative: item.priceInNative,\n amount: item.amount,\n amountInUsd: item.valueInUsd,\n amountInNative: item.valueInNative,\n decimals: item.decimals,\n }));\n\n return {\n chain: portfolios[0]?.chain ?? chain,\n address: input.walletAddress,\n balanceInUsd: input.totalValueInUsd,\n balanceInNative: input.totalValueInNative,\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n portfolios,\n };\n}\n\nexport function fromWalletPnlSummary(\n chain: Chain,\n address: string,\n input: WalletPnlSummaryDTO,\n): WalletPnl {\n return {\n chain,\n address,\n tokens: input.tokens ? Number(input.tokens) : undefined,\n buys: input.buys ? Number(input.buys) : undefined,\n sells: input.sells ? Number(input.sells) : undefined,\n totalTrades: input.totalTrades ? Number(input.totalTrades) : undefined,\n wins: input.wins ? Number(input.wins) : undefined,\n losses: input.losses ? Number(input.losses) : undefined,\n winRate: input.winRate,\n buyAmountInUsd: input.buyAmountInUsd,\n sellAmountInUsd: input.sellAmountInUsd,\n totalCostInUsd: input.totalCostInUsd,\n realizedProfitInUsd: input.realizedProfitInUsd,\n realizedProfitRatio: input.realizedProfitRatio,\n unrealizedProfitInUsd: input.unrealizedProfitInUsd,\n unrealizedProfitRatio: input.unrealizedProfitRatio,\n totalProfitInUsd: input.totalProfitInUsd,\n totalProfitRatio: input.totalProfitRatio,\n avgProfitPerTradeInUsd: input.avgProfitPerTradeInUsd,\n };\n}\n\nexport function fromPnlDetailsPage(\n chain: Chain,\n address: string,\n input: PnlDetailsPage,\n): WalletPortfolioPnls {\n const portfolios: PortfolioPnl[] = input.data.map((item) => ({\n chain,\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n amount: item.balance,\n amountInUsd: item.currentValue,\n priceInUsd: item.priceInUsd,\n decimals: item.decimals,\n totalTrades: Number(item.totalTrades),\n buys: Number(item.buys),\n buyVolumes: item.buyAmount,\n buyVolumesInUsd: item.buyAmountInUsd,\n buyAvgPriceInUsd: item.avgBuyPriceInUsd,\n sells: Number(item.sells),\n sellVolumes: item.sellAmount,\n sellVolumesInUsd: item.sellAmountInUsd,\n sellAvgPriceInUsd: item.avgSellPriceInUsd,\n realizedProfitInUsd: item.realizedProfitInUsd,\n realizedProfitRatio: item.realizedProfitRatio,\n unrealizedProfitInUsd: item.unrealizedProfitInUsd,\n unrealizedProfitRatio: item.unrealizedProfitRatio,\n totalProfitInUsd: item.totalProfitInUsd,\n totalProfitRatio: item.totalProfitRatio,\n }));\n\n return {\n chain,\n address,\n tokens: Number(input.summary.tokens),\n buys: Number(input.summary.buys),\n sells: Number(input.summary.sells),\n totalTrades: Number(input.summary.totalTrades),\n wins: Number(input.summary.wins),\n losses: Number(input.summary.losses),\n winRate: input.summary.winRate,\n buyAmountInUsd: input.summary.buyAmountInUsd,\n sellAmountInUsd: input.summary.sellAmountInUsd,\n totalCostInUsd: input.summary.totalCostInUsd,\n realizedProfitInUsd: input.summary.realizedProfitInUsd,\n realizedProfitRatio: input.summary.realizedProfitRatio,\n unrealizedProfitInUsd: input.summary.unrealizedProfitInUsd,\n totalProfitInUsd: input.summary.totalProfitInUsd,\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n portfolios,\n };\n}\n\nexport function fromWalletNetWorthByTokens(\n chain: Chain,\n input: WalletNetWorthByTokensResult,\n): Portfolio[] {\n return (input.data ?? []).map((item) => ({\n chain: fromChainDTO(item.chain),\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n priceInUsd: item.priceInUsd,\n priceInNative: item.priceInNative,\n amount: item.amount,\n amountInUsd: item.valueInUsd,\n amountInNative: item.valueInNative,\n decimals: item.decimals,\n }));\n}\n\nexport function fromPnlDetailItems(\n chain: Chain,\n input: PnlDetailsPage,\n): PortfolioPnl[] {\n return input.data.map((item) => ({\n chain,\n address: item.tokenAddress,\n name: item.name,\n symbol: item.symbol,\n image: item.logoUri,\n amount: item.balance,\n amountInUsd: item.currentValue,\n priceInUsd: item.priceInUsd,\n decimals: item.decimals,\n totalTrades: Number(item.totalTrades),\n buys: Number(item.buys),\n buyVolumes: item.buyAmount,\n buyVolumesInUsd: item.buyAmountInUsd,\n buyAvgPriceInUsd: item.avgBuyPriceInUsd,\n sells: Number(item.sells),\n sellVolumes: item.sellAmount,\n sellVolumesInUsd: item.sellAmountInUsd,\n sellAvgPriceInUsd: item.avgSellPriceInUsd,\n realizedProfitInUsd: item.realizedProfitInUsd,\n realizedProfitRatio: item.realizedProfitRatio,\n unrealizedProfitInUsd: item.unrealizedProfitInUsd,\n unrealizedProfitRatio: item.unrealizedProfitRatio,\n totalProfitInUsd: item.totalProfitInUsd,\n totalProfitRatio: item.totalProfitRatio,\n }));\n}\n\nexport function fromTradePage(input: TradePage): API.CursorList<TradeActivity> {\n return {\n startCursor: input.startCursor,\n endCursor: input.endCursor,\n hasPrev: input.hasPrev,\n hasNext: input.hasNext,\n data: input.data.map(fromTradeDetailDTO),\n };\n}\n\nfunction fromTradeDetailDTO(input: TradePage[\"data\"][number]): TradeActivity {\n const isBuy = input.type.toLowerCase() === \"buy\";\n return {\n chain: fromChainDTO(input.chain),\n walletAddress: input.accountOwnerAddress,\n txHash: input.transactionSignature,\n type: isBuy ? \"buy\" : \"sell\",\n from: {\n address: isBuy ? input.sideTokenAddress : input.tokenAddress,\n symbol: isBuy ? input.sideTokenSymbol : input.tokenSymbol,\n name: isBuy ? input.sideTokenName : input.tokenName,\n image: isBuy ? input.sideTokenImageUrl : input.tokenImageUrl,\n amount: isBuy ? input.sideTokenAmount : input.tokenAmount,\n amountInUsd: isBuy ? input.sideTokenAmountInUsd : input.tokenAmountInUsd,\n priceInUsd: isBuy ? input.sideTokenPriceInUsd : input.tokenPriceInUsd,\n },\n to: {\n address: isBuy ? input.tokenAddress : input.sideTokenAddress,\n symbol: isBuy ? input.tokenSymbol : input.sideTokenSymbol,\n name: isBuy ? input.tokenName : input.sideTokenName,\n image: isBuy ? input.tokenImageUrl : input.sideTokenImageUrl,\n amount: isBuy ? input.tokenAmount : input.sideTokenAmount,\n amountInUsd: isBuy ? input.tokenAmountInUsd : input.sideTokenAmountInUsd,\n priceInUsd: isBuy ? input.tokenPriceInUsd : input.sideTokenPriceInUsd,\n },\n dex: {\n programAddress: input.dexProgramAddress,\n protocolFamily: input.dexProtocolFamily,\n image: input.dexImage,\n },\n poolAddress: input.poolAddress,\n status: (input.status as TradeActivity[\"status\"]) ?? \"success\",\n time: new Date(input.blockTimestamp * 1000),\n };\n}\n\nexport function fromTokenSubscribed(\n chain: Chain,\n input: WsNewToken,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.tokenAddress,\n name: input.name,\n symbol: input.symbol,\n decimals: input.decimals,\n createdAt: input.createdAtMs ? new Date(input.createdAtMs) : undefined,\n launchedFrom: input.launchFrom\n ? {\n programAddress: input.launchFrom.programAddress,\n protocolFamily: input.launchFrom.protocolFamily,\n }\n : undefined,\n };\n}\n\nexport function fromTokenMetadataSubscribed(\n chain: Chain,\n input: WsTokenMetadata,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.tokenAddress,\n name: input.name,\n symbol: input.symbol,\n decimals: input.decimals,\n image: input.imageUrl,\n description: input.description,\n socialMedias: input.socialMedia ? { ...input.socialMedia } : undefined,\n createdAt: input.createdAtMs ? new Date(input.createdAtMs) : undefined,\n launchedFrom: input.launchFrom\n ? {\n programAddress: input.launchFrom.programAddress,\n protocolFamily: input.launchFrom.protocolFamily,\n }\n : undefined,\n migratedTo: input.migratedTo\n ? {\n programAddress: input.migratedTo.programAddress,\n protocolFamily: input.migratedTo.protocolFamily,\n }\n : undefined,\n };\n}\n\n// ====================================\n// WebSocket data conversion functions\n// ====================================\n\nexport function fromWsCandle(input: WsCandle): TokenCandle {\n return {\n open: input.open,\n close: input.close,\n high: input.high,\n low: input.low,\n volume: input.volume,\n resolution: fromResolutionDTO(input.resolution),\n timestamp: new Date(input.time),\n };\n}\n\nexport function fromWsTokenStats(input: WsTokenStat): TokenStats {\n const timeframes = [\"1m\", \"5m\", \"15m\", \"30m\", \"1h\", \"4h\", \"24h\"] as const;\n const record = input as unknown as Record<\n string,\n number | string | undefined\n >;\n const result: TokenStats = {};\n\n for (const tf of timeframes) {\n const buys = record[`buys${tf}`] as number | undefined;\n const sells = record[`sells${tf}`] as number | undefined;\n const buyers = record[`buyers${tf}`] as number | undefined;\n const sellers = record[`sellers${tf}`] as number | undefined;\n const buyVolumeInUsd = record[`buyVolumeInUsd${tf}`] as string | undefined;\n const sellVolumeInUsd = record[`sellVolumeInUsd${tf}`] as\n | string\n | undefined;\n const trades = record[`trades${tf}`] as number | undefined;\n const price = record[`price${tf}`] as string | undefined;\n const openInUsd = record[`openInUsd${tf}`] as string | undefined;\n const closeInUsd = record[`closeInUsd${tf}`] as string | undefined;\n\n const hasData =\n buys !== undefined ||\n sells !== undefined ||\n trades !== undefined ||\n price !== undefined;\n\n if (!hasData) continue;\n\n const totalTrades =\n trades ??\n (buys !== undefined && sells !== undefined ? buys + sells : undefined);\n const totalTraders =\n buyers !== undefined && sellers !== undefined\n ? buyers + sellers\n : undefined;\n const totalVolumesInUsd =\n buyVolumeInUsd !== undefined && sellVolumeInUsd !== undefined\n ? new SafeBigNumber(buyVolumeInUsd).plus(sellVolumeInUsd).toString()\n : undefined;\n const priceChange =\n openInUsd && closeInUsd && new SafeBigNumber(openInUsd).gt(0)\n ? new SafeBigNumber(closeInUsd)\n .minus(openInUsd)\n .div(openInUsd)\n .toString()\n : undefined;\n\n result[tf] = {\n buys,\n sells,\n trades: totalTrades,\n buyers,\n sellers,\n traders: totalTraders,\n buyVolumesInUsd: buyVolumeInUsd,\n sellVolumesInUsd: sellVolumeInUsd,\n volumesInUsd: totalVolumesInUsd,\n openPriceInUsd: openInUsd,\n closePriceInUsd: closeInUsd,\n priceInUsd: price ?? closeInUsd,\n priceChange,\n };\n }\n\n return result;\n}\n\nexport function fromWsTokenMarketDataFromStats(\n input: WsTokenStat,\n): TokenMarketData {\n return {\n priceInUsd: input.price,\n };\n}\n\nexport function fromWsTokenDataSubscribed(\n chain: Chain,\n input: WsTokenStat,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.address,\n stats: fromWsTokenStats(input),\n marketData: fromWsTokenMarketDataFromStats(input),\n };\n}\n\nexport function fromWsTokenSupplyToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenSupply,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n marketData: {\n totalSupply: input.supply,\n marketCapInUsd: input.marketCapInUsd,\n },\n };\n}\n\nexport function fromWsTokenHolderToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenHolderDTO,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n marketData: fromWsTokenMarketDataFromHolder(input),\n };\n}\n\nexport function fromWsTokenLiquidityToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenLiquidity,\n): API.TokenSubscribed {\n if (input.metricType === WsMetricType.LIQUIDITY_IN_USD) {\n return {\n chain,\n address,\n marketData: { tvlInUsd: input.value },\n };\n }\n if (input.metricType === WsMetricType.MIGRATED_RATIO) {\n return {\n chain,\n address,\n migrateProgress: new SafeBigNumber(input.value).shiftedBy(2).toString(),\n };\n }\n return { chain, address };\n}\n\nexport function fromWsTokenBondingCurveToSubscribed(\n chain: Chain,\n input: WsTokenBondingCurve,\n): API.TokenSubscribed {\n return {\n chain,\n address: input.tokenAddress ?? \"\",\n migrateProgress: input.progressRatio\n ? new SafeBigNumber(input.progressRatio).shiftedBy(2).toString()\n : undefined,\n };\n}\n\nexport function fromWsTokenMaxLiquidityToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenMaxLiquidity,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n liquidities: [\n {\n poolAddress: input.poolAddress,\n tvlInUsd: input.liquidityInUsd,\n tvl: input.liquidityInNative,\n },\n ],\n };\n}\n\nexport function fromWsTokenTotalLiquidityToSubscribed(\n chain: Chain,\n address: string,\n input: WsTokenTotalLiquidity,\n): API.TokenSubscribed {\n return {\n chain,\n address,\n marketData: {\n tvlInUsd: input.liquidityInUsd,\n tvl: input.liquidityInNative,\n },\n };\n}\n\nexport function fromWsTokenMarketDataFromHolder(\n input: WsTokenHolderDTO,\n): Partial<TokenMarketData> {\n return {\n holders: input.holders,\n top10Holdings: input.top10HoldersAmount,\n top10HoldingsRatio: input.top10HoldersRatio,\n top50Holdings: input.top50HoldersAmount,\n top50HoldingsRatio: input.top50HoldersRatio,\n top100Holdings: input.top100HoldersAmount,\n top100HoldingsRatio: input.top100HoldersRatio,\n devHolders:\n input.balanceTagDevHolders === undefined\n ? undefined\n : input.balanceTagDevHolders,\n devHoldings: input.balanceTagDevAmount,\n devHoldingsRatio: input.balanceTagDevRatio,\n sniperHolders:\n input.balanceTagSniperHolders === undefined\n ? undefined\n : input.balanceTagSniperHolders,\n sniperHoldings: input.balanceTagSniperAmount,\n sniperHoldingsRatio: input.balanceTagSniperRatio,\n freshHolders:\n input.balanceTagFreshHolders === undefined\n ? undefined\n : input.balanceTagFreshHolders,\n freshHoldings: input.balanceTagFreshAmount,\n freshHoldingsRatio: input.balanceTagFreshRatio,\n bundleHolders:\n input.balanceTagBundleHolders === undefined\n ? undefined\n : input.balanceTagBundleHolders,\n bundleHoldings: input.balanceTagBundleAmount,\n bundleHoldingsRatio: input.balanceTagBundleRatio,\n sandwichHolders:\n input.balanceTagSandwichHolders === undefined\n ? undefined\n : input.balanceTagSandwichHolders,\n sandwichHoldings: input.balanceTagSandwichAmount,\n sandwichHoldingsRatio: input.balanceTagSandwichRatio,\n };\n}\n\nexport function fromWsTradeActivity(\n chain: Chain,\n input: WsTradeActivity,\n): TradeActivity {\n const isBuy = input.kind.toLowerCase() === \"buy\";\n return {\n chain,\n walletAddress: isBuy ? input.buyWalletAddress : input.sellWalletAddress,\n txHash: input.txHash,\n type: isBuy ? \"buy\" : \"sell\",\n from: {\n address: input.sellTokenAddress,\n symbol: input.sellTokenSymbol,\n name: input.sellTokenName,\n amount: input.sellAmount,\n amountInUsd: input.sellAmountInUsd,\n },\n to: {\n address: input.buyTokenAddress,\n symbol: input.buyTokenSymbol,\n name: input.buyTokenName,\n amount: input.buyAmount,\n amountInUsd: input.buyAmountInUsd,\n },\n status: \"success\",\n time: new Date(input.timestamp),\n };\n}\n"]}
|