@liberfi.io/client 0.3.40 → 0.3.42

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 CHANGED
@@ -72,6 +72,7 @@ declare class Client implements IClient, ISubscribeClient {
72
72
  subscribeWalletActivities(chain: Chain, address: string, callback: (activities: Array<Activity>) => void): ISubscription;
73
73
  subscribeTokenActivities(chain: Chain, address: string, callback: (activities: Array<Activity>) => void): ISubscription;
74
74
  subscribeNewTokens(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
75
+ subscribeNewTokensMetadata(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
75
76
  subscribeNewPools(chain: Chain, callback: (data: Array<PoolSubscribed>) => void): ISubscription;
76
77
  subscribeTrendingTokens(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
77
78
  subscribeMigratedTokens(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
package/dist/index.d.ts CHANGED
@@ -72,6 +72,7 @@ declare class Client implements IClient, ISubscribeClient {
72
72
  subscribeWalletActivities(chain: Chain, address: string, callback: (activities: Array<Activity>) => void): ISubscription;
73
73
  subscribeTokenActivities(chain: Chain, address: string, callback: (activities: Array<Activity>) => void): ISubscription;
74
74
  subscribeNewTokens(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
75
+ subscribeNewTokensMetadata(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
75
76
  subscribeNewPools(chain: Chain, callback: (data: Array<PoolSubscribed>) => void): ISubscription;
76
77
  subscribeTrendingTokens(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
77
78
  subscribeMigratedTokens(chain: Chain, callback: (data: Array<TokenSubscribed>) => void): ISubscription;
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');var w=class extends Error{code="NotImplemented";constructor(s,t){super(t?`${s} is not yet implemented by the backend: ${t}`:`${s} is not yet implemented by the backend`),this.name="NotImplementedError";}};function cs(e){return e instanceof Error&&e.code==="NotImplemented"}var Me="https://api.chainstream.io";async function ze(e){return typeof e=="string"?e:Promise.resolve(e.getToken())}function Ve(e,s,t){if(t!=null){if(t instanceof Date){e.set(s,String(t.getTime()));return}e.set(s,String(t));}}function qe(e,s){let t=e.endsWith("/")?e.slice(0,-1):e,n=s.startsWith("/")?s:`/${s}`;return t+n}async function Ge(e,s,t){let n=new URL(qe(e.baseUrl,s)),o=new URLSearchParams;for(let[c,m]of Object.entries(t))Ve(o,c,m);let a=o.toString();a&&(n.search=a);let u=await ze(e.accessToken),i=await fetch(n.toString(),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${u}`}});if(!i.ok){let c=await i.text().catch(()=>"");throw new Error(`[phase3Http] ${i.status} ${i.statusText} ${n.pathname}: ${c}`)}return await i.json()}function se(e,s){return {baseUrl:s??Me,accessToken:e}}function te(e,s,t,n){return Ge(e,`/v2/wallet/${encodeURIComponent(s)}/${encodeURIComponent(t)}/pnl-details`,n)}function r(e){return e??void 0}function d(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 M(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 je(e){return e}function ae(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 z(e){switch(e){case "price":return sdk.TokenField.marketDatapriceInUsd;case "priceChange1m":return sdk.TokenField.statspriceChangeRatioInUsd1m;case "priceChange5m":return sdk.TokenField.statspriceChangeRatioInUsd5m;case "priceChange1h":return sdk.TokenField.statspriceChangeRatioInUsd1h;case "priceChange4h":return sdk.TokenField.statspriceChangeRatioInUsd4h;case "priceChange24h":return sdk.TokenField.statspriceChangeRatioInUsd24h;case "marketCap":return sdk.TokenField.marketDatamarketCapInUsd;case "tvl":return sdk.TokenField.marketDatamaxPoolTvlInUsd;case "top10Holdings":return sdk.TokenField.marketDatatop10TotalHoldings;case "top10Ratio":return sdk.TokenField.marketDatatop10HoldingsRatio;case "top100Holdings":return sdk.TokenField.marketDatatop100TotalHoldings;case "top100Ratio":return sdk.TokenField.marketDatatop100HoldingsRatio;case "holders":return sdk.TokenField.marketDataholders;case "creatorsHoldings":return sdk.TokenField.marketDatacreatorHoldings;case "creatorsRatio":return sdk.TokenField.marketDatacreatorHoldingsRatio;case "buys1m":return sdk.TokenField.statsbuys1m;case "buys5m":return sdk.TokenField.statsbuys5m;case "buys15m":return sdk.TokenField.statsbuys15m;case "buys30m":return sdk.TokenField.statsbuys30m;case "buys1h":return sdk.TokenField.statsbuys1h;case "buys4h":return sdk.TokenField.statsbuys4h;case "buys24h":return sdk.TokenField.statsbuys24h;case "sells1m":return sdk.TokenField.statssells1m;case "sells5m":return sdk.TokenField.statssells5m;case "sells15m":return sdk.TokenField.statssells15m;case "sells30m":return sdk.TokenField.statssells30m;case "sells1h":return sdk.TokenField.statssells1h;case "sells4h":return sdk.TokenField.statssells4h;case "sells24h":return sdk.TokenField.statssells24h;case "trades1m":return sdk.TokenField.statstrades1m;case "trades5m":return sdk.TokenField.statstrades5m;case "trades1h":return sdk.TokenField.statstrades1h;case "trades4h":return sdk.TokenField.statstrades4h;case "trades24h":return sdk.TokenField.statstrades24h;case "traders1m":return sdk.TokenField.statstraders1m;case "traders5m":return sdk.TokenField.statstraders5m;case "traders1h":return sdk.TokenField.statstraders1h;case "traders4h":return sdk.TokenField.statstraders4h;case "traders24h":return sdk.TokenField.statstraders24h;case "volumes1m":return sdk.TokenField.statsvolumesInUsd1m;case "volumes5m":return sdk.TokenField.statsvolumesInUsd5m;case "volumes1h":return sdk.TokenField.statsvolumesInUsd1h;case "volumes4h":return sdk.TokenField.statsvolumesInUsd4h;case "volumes24h":return sdk.TokenField.statsvolumesInUsd24h;case "createdAt":return sdk.TokenField.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function ie(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let t={field:z(s.field)};return ["gt","gte","between"].indexOf(s.operator)>=0&&(t.min=typeof s.value=="number"?new utils.SafeBigNumber(s.value).toString():s.value),["lt","lte","between"].indexOf(s.operator)>=0&&(t.max=typeof s.value=="number"?new utils.SafeBigNumber(s.value).toString():s.value),t})}function p(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 Qe(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function g(e){return {chain:p(e.chain),name:e.name,symbol:e.symbol,address:e.address,decimals:e.decimals,image:e.imageUrl??void 0,description:e.description??void 0,creators:e.tokenCreators?.map(Qe),launchedFrom:{programAddress:e.extra?.launchFromProgramAddress??void 0,protocolFamily:e.extra?.launchFromProtocolFamily??void 0},migrateProgress:e.marketData?.completionRatio?new utils.SafeBigNumber(e.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:e.extra?.migratedToProgramAddress??void 0,protocolFamily:e.extra?.migratedToProtocolFamily??void 0,poolAddress:e.extra?.migratedToPoolAddress??void 0,migratedAt:e.extra?.migratedAt?new Date(e.extra.migratedAt):void 0},socialMedias:e.socialMedias?Object.fromEntries(Object.entries(e.socialMedias).filter(([,s])=>s!=null).map(([s,t])=>[s,t])):void 0,stats:e.stats?V(e.stats):void 0,marketData:e.marketData?q(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function V(e){return {"1m":h(e,"1m"),"5m":h(e,"5m"),"15m":h(e,"15m"),"30m":h(e,"30m"),"1h":h(e,"1h"),"4h":h(e,"4h"),"24h":h(e,"24h")}}function I(e){return e===void 0?void 0:parseInt(e)}function h(e,s){let t=e.periods?.[s];return t?{buys:I(t.buys),sells:I(t.sells),trades:I(t.trades),buyers:I(t.buyers),sellers:I(t.sellers),traders:I(t.traders),buyVolumes:t.buyVolume,sellVolumes:t.sellVolume,volumes:t.totalVolumeInNative,buyVolumesInUsd:t.buyVolumeInUsd,sellVolumesInUsd:t.sellVolumeInUsd,volumesInUsd:t.totalVolumeInUsd,openPriceInUsd:t.openInUsd,closePriceInUsd:t.closeInUsd,highPriceInUsd:t.highInUsd,lowPriceInUsd:t.lowInUsd,priceInUsd:t.closeInUsd,priceChange:t.priceChangeRatioInUsd}:{}}function Dt(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function le(e){if(e)return {image:"image"in e?e.image??void 0:void 0,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0}}function de(e){if(e)return {poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenALiquidityInUsd:e.tokenALiquidityInUsd,tokenBAddress:e.tokenBAddress,tokenBLiquidityInUsd:e.tokenBLiquidityInUsd}}function ue(e,s){return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:le(s.dex),token:s.token?g(s.token):void 0,balance:de(s.balance)}}function Ke(e){if(e.length!==0)return e.reduce((s,t)=>({...s,...Object.fromEntries(Object.entries(t).filter(([,n])=>n!==void 0)),stats:t.stats??s.stats,marketData:t.marketData?{...s.marketData,...t.marketData}:s.marketData,socialMedias:t.socialMedias?{...s.socialMedias,...t.socialMedias}:s.socialMedias,launchedFrom:t.launchedFrom?{...s.launchedFrom,...t.launchedFrom}:s.launchedFrom,migratedTo:t.migratedTo?{...s.migratedTo,...t.migratedTo}:s.migratedTo}),e[0])}function ce(e,s){let t=s.token?Ke(j(e,s.token)):void 0;return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:le(s.dex),token:t,balance:de(s.balance)}}function q(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price:e.priceInNative??e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,holders:e.holders?parseInt(e.holders):void 0,top10Holdings:e.top10TotalHoldings??void 0,top10HoldingsRatio:e.top10HoldingsRatio??void 0,top50Holdings:e.top50TotalHoldings??void 0,top50HoldingsRatio:e.top50HoldingsRatio??void 0,top100Holdings:e.top100TotalHoldings??void 0,top100HoldingsRatio:e.top100HoldingsRatio??void 0,bluechipHolders:e.bluechipTotalHolders?parseInt(e.bluechipTotalHolders):void 0,bluechipHoldings:e.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:e.bluechipHoldingsRatio??void 0,kolHolders:e.kolTotalHolders?parseInt(e.kolTotalHolders):void 0,kolHoldings:e.kolTotalHoldings??void 0,kolHoldingsRatio:e.kolHoldingsRatio??void 0,sniperHolders:e.sniperTotalHolders?parseInt(e.sniperTotalHolders):void 0,sniperHoldings:e.sniperTotalHoldings??void 0,sniperHoldingsRatio:e.sniperHoldingsRatio??void 0,proHolders:e.proTotalHolders?parseInt(e.proTotalHolders):void 0,proHoldings:e.proTotalHoldings??void 0,proHoldingsRatio:e.proHoldingsRatio??void 0,insiderHolders:e.insiderTotalHolders?parseInt(e.insiderTotalHolders):void 0,insiderHoldings:e.insiderTotalHoldings??void 0,insiderHoldingsRatio:e.insiderHoldingsRatio??void 0,sandwichHolders:e.sandwishTotalHolders?parseInt(e.sandwishTotalHolders):void 0,sandwichHoldings:e.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:e.sandwishHoldingsRatio??void 0,freshHolders:e.freshTotalHolders?parseInt(e.freshTotalHolders):void 0,freshHoldings:e.freshTotalHoldings??void 0,freshHoldingsRatio:e.freshHoldingsRatio??void 0,bundleHolders:e.bundleTotalHolders?parseInt(e.bundleTotalHolders):void 0,bundleHoldings:e.bundleTotalHoldings??void 0,bundleHoldingsRatio:e.bundleHoldingsRatio??void 0,devHolders:e.devTotalHolders?parseInt(e.devTotalHolders):void 0,devHoldings:e.devTotalHoldings??void 0,devHoldingsRatio:e.devHoldingsRatio??void 0}}function me(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,volumeInTokenAmount:r(e.volumeInTokenAmount),trades:e.trades??void 0,resolution:s,timestamp:new Date(e.timestamp)}}function Je(e){return e==="1d"?"24h":e}function Te(e){let s=e;return {hasTransferFee:s.hasTransferFee,isTransferFeeUpgradable:s.isTransferFeeUpgradable,isTransferable:s.isTransferable,isFreezable:s.isFreezable,isClosable:s.isClosable}}var Ye=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Xe="0x0000000000000000000000000000000000000000",Ze="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function es(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function ss(e){return e.toLowerCase()===Xe.toLowerCase()?Ze:e}function ts(e){return e.dex==="jupiter"?"jupiter":e.dex==="kyberswap"?"kyberswap":Ye.has(e.chain)?"jupiter":"kyberswap"}function E(e,s){return e==="jupiter"?es(s):e==="kyberswap"?ss(s):s}function Bt(e,s){return E(e,s)}function ke(e){let s=ts(e),t=E(s,e.input),n=E(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:t,outputMint:n,priorityFee:e.priorityFee,...e.tipFee&&{tipFee:e.tipFee},...e.isAntiMev!=null&&{isAntiMev:e.isAntiMev},...e.permit&&{permit:e.permit},...e.deadline!=null&&{deadline:e.deadline}}}function ge(e){return {signedTx:e.serializedTx}}function H(e){return e==null?void 0:new Date(e)}function P(e){if(e!=null)return new Date(e<1e12?e*1e3:e)}function x(e){if(!(!e||e.length===0))return e}function fe(e){return {accountAddress:r(e.accountAddress),address:e.walletAddress,accuAmount:r(e.accuAmount),accuCost:r(e.accuCost),addrType:r(e.addrType),addressLabel:r(e.addressLabel),amount:e.amount,amountInUsd:e.amountInUsd,ratio:e.percentage,avgBuyPriceUsd:r(e.avgBuyPriceUsd),avgCostUsd:r(e.avgCostUsd),avgSellPriceUsd:r(e.avgSellPriceUsd),buyAmountCur:r(e.buyAmountCur),buyVolumeNative:r(e.buyVolumeNative),buyVolumeUsd:r(e.buyVolumeUsd),createdAt:P(e.createdAt),endHoldingAt:P(e.endHoldingAt),exchange:r(e.exchange),firstBuyTime:P(e.firstBuyTime),historyBoughtCost:r(e.historyBoughtCost),historyBoughtFee:r(e.historyBoughtFee),historySoldFee:r(e.historySoldFee),historySoldIncome:r(e.historySoldIncome),historyTransferInAmount:r(e.historyTransferInAmount),historyTransferInCost:r(e.historyTransferInCost),historyTransferOutAmount:r(e.historyTransferOutAmount),historyTransferOutFee:r(e.historyTransferOutFee),historyTransferOutIncome:r(e.historyTransferOutIncome),isClosed:r(e.isClosed),isNew:r(e.isNew),isTransferIn:r(e.isTransferIn),lastActiveAt:P(e.lastActiveAt),lastBlock:r(e.lastBlock),lossCount:r(e.lossCount),makerTokenTags:r(e.makerTokenTags),nativeBalance:r(e.nativeBalance),netflowAmount:r(e.netflowAmount),netflowAmountUsd:r(e.netflowAmountUsd),netflowUsd:r(e.netflowUsd),positionCostUsd:r(e.positionCostUsd),realizedPnlRatio:r(e.realizedPnlRatio),realizedProfit:r(e.realizedProfit),roi:r(e.roi),sellAmountCur:r(e.sellAmountCur),sellAmountPercentage:r(e.sellAmountPercentage),sellVolumeNative:r(e.sellVolumeNative),sellVolumeUsd:r(e.sellVolumeUsd),startHoldingAt:P(e.startHoldingAt),tags:x(e.tags),tokenTransferIn:r(e.tokenTransferIn),tokenTransferOut:r(e.tokenTransferOut),totalBuyCount:r(e.totalBuyCount),totalCostUsd:r(e.totalCostUsd),totalProfit:r(e.totalProfit),totalSellCount:r(e.totalSellCount),transferInAmount7d:r(e.transferInAmount7d),transferInCount:r(e.transferInCount),transferOutAmount7d:r(e.transferOutAmount7d),transferOutCount:r(e.transferOutCount),unrealizedPnlRatio:r(e.unrealizedPnlRatio),unrealizedProfit:r(e.unrealizedProfit),walletTagV2:r(e.walletTagV2),winCount:r(e.winCount)}}function Ot(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>fe(s))}}function be(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>fe(s))}}function ye(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,tags:x(s.tags),lastActiveAt:H(s.lastActiveAt),startHoldingAt:H(s.startHoldingAt),averageBuyPriceInUsd:r(s.averageBuyPriceInUsd),averageSellPriceInUsd:r(s.averageSellPriceInUsd),buyAmountCur:r(s.buyAmountCur),sellAmountCur:r(s.sellAmountCur),totalBuyAmountInUsd:r(s.totalBuyAmountInUsd),totalSellAmountInUsd:r(s.totalSellAmountInUsd),realizedPnl:r(s.realizedPnl),totalRealizedPnlInUsd:r(s.totalRealizedPnlInUsd),unrealizedPnl:r(s.unrealizedPnl),unrealizedPnlInUsd:r(s.unrealizedPnlInUsd),roi:r(s.roi),totalPnlInUsd:r(s.totalPnlInUsd),totalBuyCount:r(s.totalBuyCount),totalSellCount:r(s.totalSellCount),transferIn:r(s.transferIn),transferInCount:r(s.transferInCount),transferOutCount:r(s.transferOutCount)}))}}function he(e){let s=e;return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(g),extra:r(s.countsByProtocols)}}function Pe(e){return {serializedTx:e.serializedTx,recentBlockhash:r(e.recentBlockhash),lastValidBlockHeight:r(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function Ae(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function Ie(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Ce(e,s){let t=(s.data??[]).map(n=>({chain:p(n.chain),address:n.tokenAddress,name:n.name,symbol:n.symbol,image:r(n.logoUri),priceInUsd:n.priceInUsd,priceInNative:n.priceInNative,amount:n.amount,amountInUsd:n.valueInUsd,amountInNative:n.valueInNative,decimals:n.decimals}));return {chain:t[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:r(s.startCursor),endCursor:r(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:t}}function Ue(e,s,t){return {chain:e,address:s,tokens:t.tokens?Number(t.tokens):void 0,buys:t.buys?Number(t.buys):void 0,sells:t.sells?Number(t.sells):void 0,totalTrades:t.totalTrades?Number(t.totalTrades):void 0,wins:t.wins?Number(t.wins):void 0,losses:t.losses?Number(t.losses):void 0,winRate:r(t.winRate),buyAmountInUsd:r(t.buyAmountInUsd),sellAmountInUsd:r(t.sellAmountInUsd),totalCostInUsd:r(t.totalCostInUsd),realizedProfitInUsd:r(t.realizedProfitInUsd),realizedProfitRatio:r(t.realizedProfitRatio),unrealizedProfitInUsd:r(t.unrealizedProfitInUsd),unrealizedProfitRatio:r(t.unrealizedProfitRatio),totalProfitInUsd:r(t.totalProfitInUsd),totalProfitRatio:r(t.totalProfitRatio),avgProfitPerTradeInUsd:r(t.avgProfitPerTradeInUsd)}}function ns(e,s){return {chain:e,address:s.tokenAddress,name:s.name??"",symbol:s.symbol??"",image:r(s.logoUri),amount:s.balance,amountInUsd:s.currentValue,priceInUsd:s.priceInUsd,decimals:s.decimals??0,totalTrades:s.totalTrades!=null?Number(s.totalTrades):void 0,buys:s.buys!=null?Number(s.buys):void 0,buyVolumes:s.buyAmount,buyVolumesInUsd:s.buyAmountInUsd,buyAvgPriceInUsd:s.avgBuyPriceInUsd,sells:s.sells!=null?Number(s.sells):void 0,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,isClosed:s.isClosed,firstBuyAt:H(s.firstBuyAt),lastSellAt:H(s.lastSellAt)}}function G(e,s,t){let n=t.summary;return {chain:e,address:s,tokens:t.summary.tokens!=null?Number(t.summary.tokens):void 0,buys:t.summary.buys!=null?Number(t.summary.buys):void 0,sells:t.summary.sells!=null?Number(t.summary.sells):void 0,totalTrades:t.summary.totalTrades!=null?Number(t.summary.totalTrades):void 0,wins:t.summary.wins!=null?Number(t.summary.wins):void 0,losses:t.summary.losses!=null?Number(t.summary.losses):void 0,winRate:r(t.summary.winRate),buyAmountInUsd:r(t.summary.buyAmountInUsd),sellAmountInUsd:r(t.summary.sellAmountInUsd),totalCostInUsd:t.summary.totalCostInUsd,realizedProfitInUsd:r(t.summary.realizedProfitInUsd),unrealizedProfitInUsd:r(t.summary.unrealizedProfitInUsd),totalProfitInUsd:r(t.summary.totalProfitInUsd),totalProfitRatio:r(n.totalProfitRatio),avgProfitPerTradeInUsd:r(t.summary.avgProfitPerTradeInUsd),startCursor:r(t.startCursor),endCursor:r(t.endCursor),hasPrev:t.hasPrev,hasNext:t.hasNext,portfolios:t.data.map(o=>ns(e,o))}}function Se(e,s){return (s.data??[]).map(t=>({chain:p(t.chain),address:t.tokenAddress,name:t.name,symbol:t.symbol,image:r(t.logoUri),priceInUsd:t.priceInUsd,priceInNative:t.priceInNative,amount:t.amount,amountInUsd:t.valueInUsd,amountInNative:t.valueInNative,decimals:t.decimals,isActive:t.isActive,avgCostUsd:r(t.avgCostUsd),lastActiveAt:H(t.lastActiveAt),walletTokenTags:x(t.walletTokenTags)}))}function ve(e,s){return s.data.map(t=>({chain:e,address:t.tokenAddress,name:t.name??"",symbol:t.symbol??"",image:r(t.logoUri),amount:t.balance,amountInUsd:t.currentValue,priceInUsd:t.priceInUsd,decimals:t.decimals??0,totalTrades:Number(t.totalTrades),buys:Number(t.buys),buyVolumes:t.buyAmount,buyVolumesInUsd:t.buyAmountInUsd,buyAvgPriceInUsd:t.avgBuyPriceInUsd,sells:Number(t.sells),sellVolumes:t.sellAmount,sellVolumesInUsd:t.sellAmountInUsd,sellAvgPriceInUsd:t.avgSellPriceInUsd,realizedProfitInUsd:t.realizedProfitInUsd,realizedProfitRatio:t.realizedProfitRatio,unrealizedProfitInUsd:t.unrealizedProfitInUsd,unrealizedProfitRatio:t.unrealizedProfitRatio,totalProfitInUsd:t.totalProfitInUsd,totalProfitRatio:t.totalProfitRatio}))}function Re(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(we)}}function we(e){let s=e.type.toLowerCase()==="buy";return {chain:p(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:s?"buy":"sell",from:{address:s?e.sideTokenAddress:e.tokenAddress,symbol:s?e.sideTokenSymbol:e.tokenSymbol,name:s?e.sideTokenName:e.tokenName,image:r(s?e.sideTokenImageUrl:e.tokenImageUrl),amount:s?e.sideTokenAmount:e.tokenAmount,amountInUsd:s?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:s?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:s?e.tokenAddress:e.sideTokenAddress,symbol:s?e.tokenSymbol:e.sideTokenSymbol,name:s?e.tokenName:e.sideTokenName,image:r(s?e.tokenImageUrl:e.sideTokenImageUrl),amount:s?e.tokenAmount:e.sideTokenAmount,amountInUsd:s?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:s?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:r(e.dexProgramAddress),protocolFamily:r(e.dexProtocolFamily),image:r(e.dexImage)},poolAddress:r(e.poolAddress),status:e.status??"success",time:P(e.blockTimestamp)??new Date(0),gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:x(e.traderTags)}}function He(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(we)}}function Nt(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(rs)}}function rs(e){let s=e.type.toLowerCase().replace(/ /g,"_"),t=s==="buy",n=P(e.blockTimestamp)??new Date(0);return {chain:p(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:s,from:{address:t?e.sideTokenAddress:e.tokenAddress,symbol:t?e.sideTokenSymbol:e.tokenSymbol,name:t?e.sideTokenName:e.tokenName,image:r(t?e.sideTokenImageUrl:e.tokenImageUrl),amount:t?e.sideTokenAmount:e.tokenAmount,amountInUsd:t?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:t?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:t?e.tokenAddress:e.sideTokenAddress,symbol:t?e.tokenSymbol:e.sideTokenSymbol,name:t?e.tokenName:e.sideTokenName,image:r(t?e.tokenImageUrl:e.sideTokenImageUrl),amount:t?e.tokenAmount:e.sideTokenAmount,amountInUsd:t?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:t?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:r(e.dexProgramAddress),protocolFamily:r(e.dexProtocolFamily),image:r(e.dexImage)},poolAddress:r(e.poolAddress),status:e.status??"success",time:n,gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:x(e.traderTags)}}function pe(e,s){return {chain:e,address:s.tokenAddress,name:s.name,symbol:s.symbol,decimals:s.decimals,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,launchedFrom:s.launchFrom?{programAddress:s.launchFrom.programAddress,protocolFamily:s.launchFrom.protocolFamily}:void 0}}function $(e,s){return {chain:e,address:s.tokenAddress,name:s.name,symbol:s.symbol,decimals:s.decimals,image:s.imageUrl,description:s.description,socialMedias:s.socialMedia?{...s.socialMedia}:void 0,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,launchedFrom:s.launchFrom?{programAddress:s.launchFrom.programAddress,protocolFamily:s.launchFrom.protocolFamily}:void 0,migratedTo:s.migratedTo?{programAddress:s.migratedTo.programAddress,protocolFamily:s.migratedTo.protocolFamily}:void 0}}function xe(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Je(e.resolution),timestamp:new Date(e.time)}}function os(e){let s=["1m","5m","15m","30m","1h","4h","24h"],t=e,n={};for(let o of s){let a=t[`buys${o}`],u=t[`sells${o}`],i=t[`buyers${o}`],c=t[`sellers${o}`],m=t[`buyVolumeInUsd${o}`],A=t[`sellVolumeInUsd${o}`],S=t[`trades${o}`],v=t[`price${o}`],b=t[`openInUsd${o}`],R=t[`closeInUsd${o}`];if(!(a!==void 0||u!==void 0||S!==void 0||v!==void 0))continue;let F=S??(a!==void 0&&u!==void 0?a+u:void 0),Le=i!==void 0&&c!==void 0?i+c:void 0,Fe=m!==void 0&&A!==void 0?new utils.SafeBigNumber(m).plus(A).toString():void 0,Ee=b&&R&&new utils.SafeBigNumber(b).gt(0)?new utils.SafeBigNumber(R).minus(b).div(b).toString():void 0;n[o]={buys:a,sells:u,trades:F,buyers:i,sellers:c,traders:Le,buyVolumesInUsd:m,sellVolumesInUsd:A,volumesInUsd:Fe,openPriceInUsd:b,closePriceInUsd:R,priceInUsd:v??R,priceChange:Ee};}return n}function as(e){return {priceInUsd:e.price}}function O(e,s){return {chain:e,address:s.address,stats:os(s),marketData:as(s)}}function j(e,s){let t=[];return s.metadata&&t.push($(e,s.metadata)),s.stat&&t.push(O(e,s.stat)),s.holder&&t.push(_(e,s.holder.tokenAddress,s.holder)),s.supply&&t.push(N(e,s.supply.tokenAddress,s.supply)),s.bondingCurve&&t.push(L(e,s.bondingCurve)),t.filter(n=>n.address)}function N(e,s,t){return {chain:e,address:s,marketData:{totalSupply:t.supply,marketCapInUsd:t.marketCapInUsd}}}function _(e,s,t){return {chain:e,address:s,marketData:is(t)}}function Q(e,s,t){return t.metricType===sdk.WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:s,marketData:{tvlInUsd:t.value}}:t.metricType===sdk.WsMetricType.MIGRATED_RATIO?{chain:e,address:s,migrateProgress:new utils.SafeBigNumber(t.value).shiftedBy(2).toString()}:{chain:e,address:s}}function L(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function We(e,s,t){return {chain:e,address:s,liquidities:[{poolAddress:t.poolAddress,tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}]}}function De(e,s,t){return {chain:e,address:s,marketData:{tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}}}function is(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,bluechipHolders:e.bluechipHolders===void 0?void 0:e.bluechipHolders,bluechipHoldings:e.bluechipHoldersAmount,bluechipHoldingsRatio:e.bluechipHoldersRatio,kolHolders:e.kolHolders===void 0?void 0:e.kolHolders,kolHoldings:e.kolHoldersAmount,kolHoldingsRatio:e.kolHoldersRatio,proHolders:e.proHolders===void 0?void 0:e.proHolders,proHoldings:e.proHoldersAmount,proHoldingsRatio:e.proHoldersRatio,insiderHolders:e.insiderHolders===void 0?void 0:e.insiderHolders,insiderHoldings:e.insiderHoldersAmount,insiderHoldingsRatio:e.insiderHoldersRatio,devHolders:e.devHolders===void 0?void 0:e.devHolders,devHoldings:e.devHoldersAmount,devHoldingsRatio:e.devHoldersRatio,sniperHolders:e.sniperHolders===void 0?void 0:e.sniperHolders,sniperHoldings:e.sniperHoldersAmount,sniperHoldingsRatio:e.sniperHoldersRatio,freshHolders:e.freshHolders===void 0?void 0:e.freshHolders,freshHoldings:e.freshHoldersAmount,freshHoldingsRatio:e.freshHoldersRatio,bundleHolders:e.bundleHolders===void 0?void 0:e.bundleHolders,bundleHoldings:e.bundleHoldersAmount,bundleHoldingsRatio:e.bundleHoldersRatio,sandwichHolders:e.sandwichHolders===void 0?void 0:e.sandwichHolders,sandwichHoldings:e.sandwichHoldersAmount,sandwichHoldingsRatio:e.sandwichHoldersRatio}}function K(e,s){let t=s.kind.toLowerCase()==="buy";return {chain:e,walletAddress:t?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:t?"buy":"sell",from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd,priceInUsd:B(s.sellAmountInUsd,s.sellAmount)},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd,priceInUsd:B(s.buyAmountInUsd,s.buyAmount)},status:"success",time:new Date(s.timestamp)}}function J(e,s){let t=s.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:t==="buy"?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:t,from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd,priceInUsd:B(s.sellAmountInUsd,s.sellAmount)},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd,priceInUsd:B(s.buyAmountInUsd,s.buyAmount)},status:"success",time:new Date(s.timestamp)}}function B(e,s){if(e==null||e===""||s==null||s==="")return;let t=new utils.SafeBigNumber(s);if(t.gt(0))return new utils.SafeBigNumber(e).div(t).toString()}var _e=class e{constructor(s,t){this.accessToken=s;this.options=t;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._phase3=se(this.accessToken,this.options?.serverUrl);}_client;_phase3;async getToken(s,t){let n=await this._client.token.getToken(d(s),t);return g(n)}async getTokens(s,t){return (await this._client.token.getTokens(d(s),{tokenAddresses:t.join(",")})).map(g)}async getTokenCandles(s,t,n,o){return (await this._client.token.getCandles(d(s),t,{resolution:M(n),from:o?.after?.getTime(),to:o?.before?.getTime(),limit:o?.limit})).map(u=>me(u,n))}async getTokenSecurity(s,t){let n=await this._client.token.getSecurity(d(s),t);return Te(n)}async getTokenStats(s,t){let n=await this._client.token.getStats(d(s),t);return V(n)}async getTokenHolders(s,t,n){let o=await this._client.token.getHolders(d(s),t,{cursor:n?.cursor,limit:n?.limit,direction:n?.direction,sortBy:n?.sortBy==="lastActiveAt"?sdk.HolderSortBy.lastActiveAt:n?.sortBy==="holdingUsd"?sdk.HolderSortBy.holdingUsd:n?.sortBy==="realizedPnl"?sdk.HolderSortBy.profit:n?.sortBy==="buyVolume"?sdk.HolderSortBy.buyVolume:n?.sortBy==="sellVolume"?sdk.HolderSortBy.sellVolume:void 0});return be(o)}async getTokenTopTraders(s,t,n){let o=await this._client.token.getTokenTopTraders(d(s),t,{cursor:n?.cursor,limit:n?.limit,direction:n?.direction,sortBy:n?.sortBy==="buyVolume"?sdk.TraderSortBy.buyVolume:n?.sortBy==="sellVolume"?sdk.TraderSortBy.sellVolume:n?.sortBy==="lastActiveAt"?sdk.TraderSortBy.lastActiveAt:n?.sortBy==="netflowUsd"?sdk.TraderSortBy.netflowUsd:n?.sortBy==="profit"?sdk.TraderSortBy.profit:void 0,tag:n?.tag});return ye(o)}async getTokenMarketData(s,t){let n=await this._client.token.getMarketData(d(s),t);return q(n)}async getNewTokens(s,t){return (await this._client.ranking.getNewTokens(d(s),this._buildRankingParams(t))).map(g)}async getNewPools(s,t){return (await this._client.ranking.getRankingPools(d(s),sdk.RankingPoolType.NewPool)).map(o=>ue(s,o))}async getFinalStretchTokens(s,t){return (await this._client.ranking.getFinalStretchTokens(d(s),this._buildRankingParams(t))).map(g)}async getMigratedTokens(s,t){return (await this._client.ranking.getMigratedTokens(d(s),this._buildRankingParams(t))).map(g)}async getTrendingTokens(s,t,n){return (await this._client.ranking.getHotTokens(d(s),t,this._buildRankingParams(n))).map(g)}async getStockTokens(s,t){return (await this._client.ranking.getStocksTokens(d(s),this._buildRankingParams(t))).map(g)}async searchTokens(s){let t=await this._client.token.search({chains:s?.chains?.map(d),q:s?.keyword,limit:s?.limit,cursor:s?.cursor,sortBy:s?.sortBy?ae(s.sortBy):void 0,sort:s?.sortDirection});return he(t)}async swapRoute(s){let t=await this._client.dex.route(d(s.chain),ke(s));return Pe(t)}async getLatestBlock(s){let t=await this._client.blockchain.getLatestBlock(d(s.chain));return Ae(t)}async sendTx(s){let t=await this._client.transaction.send(d(s.chain),ge(s));return Ie(t)}async checkTxSuccess(s,t,n){let{success:o}=await this._client.waitForJob(t,n);return o}async getWalletPortfolios(s,t,n){let o=e._CHAIN_TO_BALANCE_PARAM[s];if(o&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,o,t);let a=await this._client.wallet.getNetWorth(d(s),t,{cursor:n?.cursor,limit:n?.limit??100});return Ce(s,a)}async getWalletPnl(s,t,n){let o=await this._client.wallet.getPnl(d(s),t,n?{resolution:n}:void 0);return Ue(s,t,o)}async getWalletPortfolioPnls(s,t,n){if(n?.resolution!=="90d"){let a=await this._client.wallet.getPnlDetails(d(s),t,{resolution:n?.resolution==="7d"?sdk.PnlResolution["7d"]:sdk.PnlResolution["30d"],positionState:n?.positionState==="closed"?sdk.PositionState.closed:n?.positionState==="all"?sdk.PositionState.all:n?.positionState==="open"?sdk.PositionState.open:void 0,sortBy:n?.sortBy==="realizedPnl"?sdk.PnlSortBy.realizedPnl:n?.sortBy==="unrealizedPnl"?sdk.PnlSortBy.unrealizedPnl:n?.sortBy==="totalPnl"?sdk.PnlSortBy.totalPnl:void 0,cursor:n?.cursor,limit:n?.limit??100,direction:n?.direction});return G(s,t,a)}let o=await te(this._phase3,d(s),t,{resolution:n?.resolution??"30d",positionState:n?.positionState,sortBy:n?.sortBy,cursor:n?.cursor,limit:n?.limit??100,direction:n?.direction});return G(s,t,o)}async getWalletPortfoliosByTokens(s,t,n){let o=e._CHAIN_TO_BALANCE_PARAM[s];if(o&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,o,t,n);let a=await this._client.wallet.getNetWorthByTokens(d(s),t,{tokenAddresses:n.join(",")});return Se(s,a)}async getWalletPortfolioPnlsByTokens(s,t,n){let o=await this._client.wallet.getPnlByToken(d(s),t,{tokenAddresses:n.join(",")});return ve(s,o)}async getWalletTrades(s,t,n){return this._getTrades(s,{walletAddress:t},n)}async getTokenTrades(s,t,n){return this._getTrades(s,{tokenAddress:t},n)}async getWalletActivities(s,t,n){return this._getActivities(s,{walletAddress:t},n)}async getTokenActivities(s,t,n){return this._getActivities(s,{tokenAddress:t},n)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}async getWalletLimitOrders(s,t,n){throw new w("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getTokensByCreator(s,t,n){throw new w("Client.getTokensByCreator","no creator-index endpoint on the backend yet")}subscribeToken(s,t,n){return this.subscribeTokens(s,[t],n)}subscribeTokens(s,t,n){let o=d(s),a=Array.from(new Set(t.map(i=>i.trim()).filter(Boolean)));if(a.length===0)return {unsubscribe:()=>{}};let u=this._client.stream.batchSubscribe(()=>a.flatMap(i=>[this._client.stream.subscribeTokenStats({chain:o,tokenAddress:i,callback:c=>n([O(s,c)])}),this._client.stream.subscribeTokenHolders({chain:o,tokenAddress:i,callback:c=>n([_(s,i,c)])}),this._client.stream.subscribeTokenSupply({chain:o,tokenAddress:i,callback:c=>n([N(s,i,c)])}),this._client.stream.subscribeTokenLiquidity({chain:o,tokenAddress:i,callback:c=>n([Q(s,i,c)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:o,tokenAddress:i,callback:c=>n([We(s,i,c)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:o,tokenAddress:i,callback:c=>n([De(s,i,c)])})]));return {unsubscribe:()=>{let i=this._client.stream;if(i.batchUnsubscribe){i.batchUnsubscribe(u);return}u.forEach(c=>c.unsubscribe());}}}subscribeTokenCandles(s,t,n,o){return this._client.stream.subscribeTokenCandles({chain:d(s),tokenAddress:t,resolution:M(n),callback:a=>o([xe(a)])})}subscribeWalletPnl(s,t,n){return this._client.stream.subscribeWalletPnlList({chain:d(s),walletAddress:t,callback:o=>n(o.map(a=>({chain:s,address:a.walletAddress,buys:a.buys,buyAmountInUsd:a.buyAmountInUsd,sells:a.sells,sellAmountInUsd:a.sellAmountInUsd,wins:a.wins,winRate:a.winRatio,totalProfitInUsd:a.pnlInUsd,totalProfitRatio:a.pnlRatio,avgProfitPerTradeInUsd:a.averagePnlInUsd,tokens:a.tokens,resolution:a.resolution})))})}subscribeWalletPortfolios(s,t,n){return this._client.stream.subscribeWalletBalance({chain:d(s),walletAddress:t,callback:o=>n(o.map(a=>({chain:s,walletAddress:a.walletAddress,tokenAddress:a.tokenAddress,priceInUsd:a.tokenPriceInUsd,amount:a.balance})))})}subscribeWalletPortfolioPnls(s,t,n){return this._client.stream.subscribeWalletPnl({chain:d(s),walletAddress:t,callback:o=>n([{chain:s,walletAddress:o.walletAddress,tokenAddress:o.tokenAddress,openTime:o.opentime?new Date(o.opentime):void 0,closeTime:o.closetime?new Date(o.closetime):void 0,buys:o.buyCount,buyVolumes:o.buyAmount,buyVolumesInUsd:o.buyAmountInUsd,buyAvgPriceInUsd:o.averageBuyPriceInUsd,sells:o.sellCount,sellVolumes:o.sellAmount,sellVolumesInUsd:o.sellAmountInUsd,sellAvgPriceInUsd:o.averageSellPriceInUsd,realizedProfitInUsd:o.realizedProfitInUsd,realizedProfitRatio:o.realizedProfitRatio,unrealizedProfitInUsd:o.unrealizedProfitInUsd,unrealizedProfitRatio:o.unrealizedProfitRatio,totalProfitInUsd:o.totalRealizedProfitInUsd,totalProfitRatio:o.totalRealizedProfitRatio}])})}subscribeWalletTrades(s,t,n){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:o=>n([K(s,o)])})}subscribeTokenTrades(s,t,n){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:o=>n([K(s,o)])})}subscribeWalletActivities(s,t,n){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:o=>n([J(s,o)])})}subscribeTokenActivities(s,t,n){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:o=>n([J(s,o)])})}subscribeNewTokens(s,t){let n=d(s),o=this._subscribeRankingTokens(s,sdk.WsChannelType.New,t),a=[this._client.stream.subscribeNewToken({chain:n,callback:u=>t([pe(s,u)])}),this._client.stream.subscribeNewTokensMetadata({chain:n,callback:u=>t(u.map(i=>$(s,i)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:n,callback:u=>t(u.map(i=>L(s,i)))})];return {unsubscribe:()=>{o.unsubscribe(),a.forEach(u=>u.unsubscribe());}}}subscribeNewPools(s,t){return this._client.stream.subscribeNewPool({chain:d(s),callback:n=>t([ce(s,n)])})}subscribeTrendingTokens(s,t){return this._subscribeRankingTokenList(s,sdk.WsRankingType.HOT,t)}subscribeMigratedTokens(s,t){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,t)}subscribeFinalStretchTokens(s,t){let n=d(s),o=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,t),a=this._client.stream.subscribeRankingTokensBondingCurve({chain:n,callback:u=>t(u.map(i=>L(s,i)))});return {unsubscribe:()=>{o.unsubscribe(),a.unsubscribe();}}}subscribeStockTokens(s,t){return this._subscribeRankingTokenList(s,sdk.WsRankingType.STOCKS,t)}static _CHAIN_TO_BALANCE_PARAM={[types.Chain.SOLANA]:"sol",[types.Chain.ETHEREUM]:"eth",[types.Chain.BINANCE]:"bnb"};static _NATIVE_TOKEN_ADDRESS={[types.Chain.SOLANA]:"11111111111111111111111111111111",[types.Chain.ETHEREUM]:"0x0000000000000000000000000000000000000000",[types.Chain.BINANCE]:"0x0000000000000000000000000000000000000000"};async _getPortfoliosFromBalanceApi(s,t,n,o){let a=this.options.nativeBalanceApiUrl,u=new URLSearchParams({chain:t,address:n});o?.length&&u.set("tokens",o.join(","));let i=await fetch(`${a}?${u.toString()}`);if(!i.ok)throw new Error(`Balance API returned ${i.status}`);return (await i.json()).balances.map(m=>{let A=BigInt(m.balance),S=m.decimals,v=BigInt(10)**BigInt(S),b=A/v,ee=(A%v).toString().padStart(S,"0"),F=`${b}.${ee}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:m.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:F,amountInUsd:"0",amountInNative:"0",decimals:m.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,t,n){let o=await this._getPortfoliosFromBalanceApi(s,t,n),a=e._NATIVE_TOKEN_ADDRESS[s],u=a?o.find(i=>i.address===a):void 0;return {chain:s,address:n,balanceInUsd:"0",balanceInNative:u?.amount??"0",portfolios:o,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?z(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?ie(s.filters):void 0,launchpadPlatform:s?.filters?us(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,t,n){let o=await this._client.trade.getTrades(d(s),{...t,cursor:n?.cursor,limit:n?.limit,direction:n?.direction,beforeTimestamp:n?.before?.getTime(),afterTimestamp:n?.after?.getTime(),beforeBlockHeight:n?.beforeBlockHeight,afterBlockHeight:n?.afterBlockHeight,poolAddress:n?.poolAddress,type:n?.type?n.type.toUpperCase():void 0});return Re(o)}async _getActivities(s,t,n){let o=await this._client.trade.getActivities(d(s),{...t,cursor:n?.cursor,limit:n?.limit,direction:n?.direction,beforeTimestamp:n?.before?.getTime(),afterTimestamp:n?.after?.getTime(),beforeBlockHeight:n?.beforeBlockHeight,afterBlockHeight:n?.afterBlockHeight,poolAddress:n?.poolAddress,type:n?.type?n.type.toUpperCase():void 0,sortBy:n?.sortBy==="totalUsd"?sdk.ActivitySortBy.totalUsd:n?.sortBy==="timestamp"?sdk.ActivitySortBy.timestamp:void 0});return He(o)}_subscribeRankingTokens(s,t,n){let o=d(s),a=[this._client.stream.subscribeRankingTokensStats({chain:o,channelType:t,callback:u=>n(u.map(i=>O(s,i)))}),this._client.stream.subscribeRankingTokensHolders({chain:o,channelType:t,callback:u=>n(u.map(i=>_(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensSupply({chain:o,channelType:t,callback:u=>n(u.map(i=>N(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:o,channelType:t,callback:u=>n(u.map(i=>Q(s,i.tokenAddress,i)))})];return {unsubscribe:()=>a.forEach(u=>u.unsubscribe())}}_subscribeRankingTokenList(s,t,n){return this._client.stream.subscribeRankingTokensList({chain:d(s),ranking_type:t,callback:o=>{let a=o.flatMap(u=>j(s,u));a.length>0&&n(a);}})}};function us(e){let s=e.find(t=>t.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}
2
- exports.Client=_e;exports.KYBERSWAP_NATIVE_SENTINEL=Ze;exports.NotImplementedError=w;exports.fromActivityPage=Nt;exports.fromChainDTO=p;exports.fromLatestBlock=Ae;exports.fromPnlDetailItems=ve;exports.fromPnlDetailsPage=G;exports.fromRankingPoolDTO=ue;exports.fromSdkActivityPage=He;exports.fromSdkTokenHolderPage=be;exports.fromSdkTokenTopTraderPage=ye;exports.fromSendTxResult=Ie;exports.fromSwapRoute=Pe;exports.fromTokenCandle=me;exports.fromTokenCreatorDTO=Qe;exports.fromTokenDTO=g;exports.fromTokenHolderPage=Ot;exports.fromTokenLiquidityDTO=Dt;exports.fromTokenMarketDataDTO=q;exports.fromTokenMetadataSubscribed=$;exports.fromTokenPage=he;exports.fromTokenSecurity=Te;exports.fromTokenStatsDTO=V;exports.fromTokenSubscribed=pe;exports.fromTradePage=Re;exports.fromWalletNetWorthByTokens=Se;exports.fromWalletPnlSummary=Ue;exports.fromWalletPortfolios=Ce;exports.fromWsActivity=J;exports.fromWsCandle=xe;exports.fromWsRankingPoolToSubscribed=ce;exports.fromWsRankingTokenListToSubscribed=j;exports.fromWsTokenBondingCurveToSubscribed=L;exports.fromWsTokenDataSubscribed=O;exports.fromWsTokenHolderToSubscribed=_;exports.fromWsTokenLiquidityToSubscribed=Q;exports.fromWsTokenMarketDataFromHolder=is;exports.fromWsTokenMarketDataFromStats=as;exports.fromWsTokenMaxLiquidityToSubscribed=We;exports.fromWsTokenStats=os;exports.fromWsTokenSupplyToSubscribed=N;exports.fromWsTokenTotalLiquidityToSubscribed=De;exports.fromWsTradeActivity=K;exports.isNotImplementedError=cs;exports.toChainDTO=d;exports.toFieldDTO=z;exports.toMintForRoute=Bt;exports.toRangeFiltersDTO=ie;exports.toResolutionDTO=M;exports.toSearchFieldDTO=ae;exports.toSendTxInput=ge;exports.toSortDirectionDTO=je;exports.toSwapRouteInput=ke;//# sourceMappingURL=index.js.map
1
+ 'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');var w=class extends Error{code="NotImplemented";constructor(s,t){super(t?`${s} is not yet implemented by the backend: ${t}`:`${s} is not yet implemented by the backend`),this.name="NotImplementedError";}};function cs(e){return e instanceof Error&&e.code==="NotImplemented"}var Ee="https://api.chainstream.io";async function ze(e){return typeof e=="string"?e:Promise.resolve(e.getToken())}function Ve(e,s,t){if(t!=null){if(t instanceof Date){e.set(s,String(t.getTime()));return}e.set(s,String(t));}}function qe(e,s){let t=e.endsWith("/")?e.slice(0,-1):e,n=s.startsWith("/")?s:`/${s}`;return t+n}async function Ge(e,s,t){let n=new URL(qe(e.baseUrl,s)),o=new URLSearchParams;for(let[c,m]of Object.entries(t))Ve(o,c,m);let a=o.toString();a&&(n.search=a);let u=await ze(e.accessToken),i=await fetch(n.toString(),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${u}`}});if(!i.ok){let c=await i.text().catch(()=>"");throw new Error(`[phase3Http] ${i.status} ${i.statusText} ${n.pathname}: ${c}`)}return await i.json()}function se(e,s){return {baseUrl:s??Ee,accessToken:e}}function te(e,s,t,n){return Ge(e,`/v2/wallet/${encodeURIComponent(s)}/${encodeURIComponent(t)}/pnl-details`,n)}function r(e){return e??void 0}function d(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 z(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 je(e){return e}function ae(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 V(e){switch(e){case "price":return sdk.TokenField.marketDatapriceInUsd;case "priceChange1m":return sdk.TokenField.statspriceChangeRatioInUsd1m;case "priceChange5m":return sdk.TokenField.statspriceChangeRatioInUsd5m;case "priceChange1h":return sdk.TokenField.statspriceChangeRatioInUsd1h;case "priceChange4h":return sdk.TokenField.statspriceChangeRatioInUsd4h;case "priceChange24h":return sdk.TokenField.statspriceChangeRatioInUsd24h;case "marketCap":return sdk.TokenField.marketDatamarketCapInUsd;case "tvl":return sdk.TokenField.marketDatamaxPoolTvlInUsd;case "top10Holdings":return sdk.TokenField.marketDatatop10TotalHoldings;case "top10Ratio":return sdk.TokenField.marketDatatop10HoldingsRatio;case "top100Holdings":return sdk.TokenField.marketDatatop100TotalHoldings;case "top100Ratio":return sdk.TokenField.marketDatatop100HoldingsRatio;case "holders":return sdk.TokenField.marketDataholders;case "creatorsHoldings":return sdk.TokenField.marketDatacreatorHoldings;case "creatorsRatio":return sdk.TokenField.marketDatacreatorHoldingsRatio;case "buys1m":return sdk.TokenField.statsbuys1m;case "buys5m":return sdk.TokenField.statsbuys5m;case "buys15m":return sdk.TokenField.statsbuys15m;case "buys30m":return sdk.TokenField.statsbuys30m;case "buys1h":return sdk.TokenField.statsbuys1h;case "buys4h":return sdk.TokenField.statsbuys4h;case "buys24h":return sdk.TokenField.statsbuys24h;case "sells1m":return sdk.TokenField.statssells1m;case "sells5m":return sdk.TokenField.statssells5m;case "sells15m":return sdk.TokenField.statssells15m;case "sells30m":return sdk.TokenField.statssells30m;case "sells1h":return sdk.TokenField.statssells1h;case "sells4h":return sdk.TokenField.statssells4h;case "sells24h":return sdk.TokenField.statssells24h;case "trades1m":return sdk.TokenField.statstrades1m;case "trades5m":return sdk.TokenField.statstrades5m;case "trades1h":return sdk.TokenField.statstrades1h;case "trades4h":return sdk.TokenField.statstrades4h;case "trades24h":return sdk.TokenField.statstrades24h;case "traders1m":return sdk.TokenField.statstraders1m;case "traders5m":return sdk.TokenField.statstraders5m;case "traders1h":return sdk.TokenField.statstraders1h;case "traders4h":return sdk.TokenField.statstraders4h;case "traders24h":return sdk.TokenField.statstraders24h;case "volumes1m":return sdk.TokenField.statsvolumesInUsd1m;case "volumes5m":return sdk.TokenField.statsvolumesInUsd5m;case "volumes1h":return sdk.TokenField.statsvolumesInUsd1h;case "volumes4h":return sdk.TokenField.statsvolumesInUsd4h;case "volumes24h":return sdk.TokenField.statsvolumesInUsd24h;case "createdAt":return sdk.TokenField.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function ie(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let t={field:V(s.field)};return ["gt","gte","between"].indexOf(s.operator)>=0&&(t.min=typeof s.value=="number"?new utils.SafeBigNumber(s.value).toString():s.value),["lt","lte","between"].indexOf(s.operator)>=0&&(t.max=typeof s.value=="number"?new utils.SafeBigNumber(s.value).toString():s.value),t})}function p(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 Qe(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function g(e){return {chain:p(e.chain),name:e.name,symbol:e.symbol,address:e.address,decimals:e.decimals,image:e.imageUrl??void 0,description:e.description??void 0,creators:e.tokenCreators?.map(Qe),launchedFrom:{programAddress:e.extra?.launchFromProgramAddress??void 0,protocolFamily:e.extra?.launchFromProtocolFamily??void 0},migrateProgress:e.marketData?.completionRatio?new utils.SafeBigNumber(e.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:e.extra?.migratedToProgramAddress??void 0,protocolFamily:e.extra?.migratedToProtocolFamily??void 0,poolAddress:e.extra?.migratedToPoolAddress??void 0,migratedAt:e.extra?.migratedAt?new Date(e.extra.migratedAt):void 0},socialMedias:e.socialMedias?Object.fromEntries(Object.entries(e.socialMedias).filter(([,s])=>s!=null).map(([s,t])=>[s,t])):void 0,stats:e.stats?q(e.stats):void 0,marketData:e.marketData?G(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function q(e){return {"1m":h(e,"1m"),"5m":h(e,"5m"),"15m":h(e,"15m"),"30m":h(e,"30m"),"1h":h(e,"1h"),"4h":h(e,"4h"),"24h":h(e,"24h")}}function I(e){return e===void 0?void 0:parseInt(e)}function h(e,s){let t=e.periods?.[s];return t?{buys:I(t.buys),sells:I(t.sells),trades:I(t.trades),buyers:I(t.buyers),sellers:I(t.sellers),traders:I(t.traders),buyVolumes:t.buyVolume,sellVolumes:t.sellVolume,volumes:t.totalVolumeInNative,buyVolumesInUsd:t.buyVolumeInUsd,sellVolumesInUsd:t.sellVolumeInUsd,volumesInUsd:t.totalVolumeInUsd,openPriceInUsd:t.openInUsd,closePriceInUsd:t.closeInUsd,highPriceInUsd:t.highInUsd,lowPriceInUsd:t.lowInUsd,priceInUsd:t.closeInUsd,priceChange:t.priceChangeRatioInUsd}:{}}function Dt(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function le(e){if(e)return {image:"image"in e?e.image??void 0:void 0,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0}}function de(e){if(e)return {poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenALiquidityInUsd:e.tokenALiquidityInUsd,tokenBAddress:e.tokenBAddress,tokenBLiquidityInUsd:e.tokenBLiquidityInUsd}}function ue(e,s){return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:le(s.dex),token:s.token?g(s.token):void 0,balance:de(s.balance)}}function Ke(e){if(e.length!==0)return e.reduce((s,t)=>({...s,...Object.fromEntries(Object.entries(t).filter(([,n])=>n!==void 0)),stats:t.stats??s.stats,marketData:t.marketData?{...s.marketData,...t.marketData}:s.marketData,socialMedias:t.socialMedias?{...s.socialMedias,...t.socialMedias}:s.socialMedias,launchedFrom:t.launchedFrom?{...s.launchedFrom,...t.launchedFrom}:s.launchedFrom,migratedTo:t.migratedTo?{...s.migratedTo,...t.migratedTo}:s.migratedTo}),e[0])}function ce(e,s){let t=s.token?Ke(j(e,s.token)):void 0;return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:le(s.dex),token:t,balance:de(s.balance)}}function G(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price:e.priceInNative??e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,holders:e.holders?parseInt(e.holders):void 0,top10Holdings:e.top10TotalHoldings??void 0,top10HoldingsRatio:e.top10HoldingsRatio??void 0,top50Holdings:e.top50TotalHoldings??void 0,top50HoldingsRatio:e.top50HoldingsRatio??void 0,top100Holdings:e.top100TotalHoldings??void 0,top100HoldingsRatio:e.top100HoldingsRatio??void 0,bluechipHolders:e.bluechipTotalHolders?parseInt(e.bluechipTotalHolders):void 0,bluechipHoldings:e.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:e.bluechipHoldingsRatio??void 0,kolHolders:e.kolTotalHolders?parseInt(e.kolTotalHolders):void 0,kolHoldings:e.kolTotalHoldings??void 0,kolHoldingsRatio:e.kolHoldingsRatio??void 0,sniperHolders:e.sniperTotalHolders?parseInt(e.sniperTotalHolders):void 0,sniperHoldings:e.sniperTotalHoldings??void 0,sniperHoldingsRatio:e.sniperHoldingsRatio??void 0,proHolders:e.proTotalHolders?parseInt(e.proTotalHolders):void 0,proHoldings:e.proTotalHoldings??void 0,proHoldingsRatio:e.proHoldingsRatio??void 0,insiderHolders:e.insiderTotalHolders?parseInt(e.insiderTotalHolders):void 0,insiderHoldings:e.insiderTotalHoldings??void 0,insiderHoldingsRatio:e.insiderHoldingsRatio??void 0,sandwichHolders:e.sandwishTotalHolders?parseInt(e.sandwishTotalHolders):void 0,sandwichHoldings:e.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:e.sandwishHoldingsRatio??void 0,freshHolders:e.freshTotalHolders?parseInt(e.freshTotalHolders):void 0,freshHoldings:e.freshTotalHoldings??void 0,freshHoldingsRatio:e.freshHoldingsRatio??void 0,bundleHolders:e.bundleTotalHolders?parseInt(e.bundleTotalHolders):void 0,bundleHoldings:e.bundleTotalHoldings??void 0,bundleHoldingsRatio:e.bundleHoldingsRatio??void 0,devHolders:e.devTotalHolders?parseInt(e.devTotalHolders):void 0,devHoldings:e.devTotalHoldings??void 0,devHoldingsRatio:e.devHoldingsRatio??void 0}}function me(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,volumeInTokenAmount:r(e.volumeInTokenAmount),trades:e.trades??void 0,resolution:s,timestamp:new Date(e.timestamp)}}function Je(e){return e==="1d"?"24h":e}function Te(e){let s=e;return {hasTransferFee:s.hasTransferFee,isTransferFeeUpgradable:s.isTransferFeeUpgradable,isTransferable:s.isTransferable,isFreezable:s.isFreezable,isClosable:s.isClosable}}var Ye=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Xe="0x0000000000000000000000000000000000000000",Ze="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function es(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function ss(e){return e.toLowerCase()===Xe.toLowerCase()?Ze:e}function ts(e){return e.dex==="jupiter"?"jupiter":e.dex==="kyberswap"?"kyberswap":Ye.has(e.chain)?"jupiter":"kyberswap"}function E(e,s){return e==="jupiter"?es(s):e==="kyberswap"?ss(s):s}function Bt(e,s){return E(e,s)}function ke(e){let s=ts(e),t=E(s,e.input),n=E(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:t,outputMint:n,priorityFee:e.priorityFee,...e.tipFee&&{tipFee:e.tipFee},...e.isAntiMev!=null&&{isAntiMev:e.isAntiMev},...e.permit&&{permit:e.permit},...e.deadline!=null&&{deadline:e.deadline}}}function ge(e){return {signedTx:e.serializedTx}}function H(e){return e==null?void 0:new Date(e)}function P(e){if(e!=null)return new Date(e<1e12?e*1e3:e)}function x(e){if(!(!e||e.length===0))return e}function fe(e){return {accountAddress:r(e.accountAddress),address:e.walletAddress,accuAmount:r(e.accuAmount),accuCost:r(e.accuCost),addrType:r(e.addrType),addressLabel:r(e.addressLabel),amount:e.amount,amountInUsd:e.amountInUsd,ratio:e.percentage,avgBuyPriceUsd:r(e.avgBuyPriceUsd),avgCostUsd:r(e.avgCostUsd),avgSellPriceUsd:r(e.avgSellPriceUsd),buyAmountCur:r(e.buyAmountCur),buyVolumeNative:r(e.buyVolumeNative),buyVolumeUsd:r(e.buyVolumeUsd),createdAt:P(e.createdAt),endHoldingAt:P(e.endHoldingAt),exchange:r(e.exchange),firstBuyTime:P(e.firstBuyTime),historyBoughtCost:r(e.historyBoughtCost),historyBoughtFee:r(e.historyBoughtFee),historySoldFee:r(e.historySoldFee),historySoldIncome:r(e.historySoldIncome),historyTransferInAmount:r(e.historyTransferInAmount),historyTransferInCost:r(e.historyTransferInCost),historyTransferOutAmount:r(e.historyTransferOutAmount),historyTransferOutFee:r(e.historyTransferOutFee),historyTransferOutIncome:r(e.historyTransferOutIncome),isClosed:r(e.isClosed),isNew:r(e.isNew),isTransferIn:r(e.isTransferIn),lastActiveAt:P(e.lastActiveAt),lastBlock:r(e.lastBlock),lossCount:r(e.lossCount),makerTokenTags:r(e.makerTokenTags),nativeBalance:r(e.nativeBalance),netflowAmount:r(e.netflowAmount),netflowAmountUsd:r(e.netflowAmountUsd),netflowUsd:r(e.netflowUsd),positionCostUsd:r(e.positionCostUsd),realizedPnlRatio:r(e.realizedPnlRatio),realizedProfit:r(e.realizedProfit),roi:r(e.roi),sellAmountCur:r(e.sellAmountCur),sellAmountPercentage:r(e.sellAmountPercentage),sellVolumeNative:r(e.sellVolumeNative),sellVolumeUsd:r(e.sellVolumeUsd),startHoldingAt:P(e.startHoldingAt),tags:x(e.tags),tokenTransferIn:r(e.tokenTransferIn),tokenTransferOut:r(e.tokenTransferOut),totalBuyCount:r(e.totalBuyCount),totalCostUsd:r(e.totalCostUsd),totalProfit:r(e.totalProfit),totalSellCount:r(e.totalSellCount),transferInAmount7d:r(e.transferInAmount7d),transferInCount:r(e.transferInCount),transferOutAmount7d:r(e.transferOutAmount7d),transferOutCount:r(e.transferOutCount),unrealizedPnlRatio:r(e.unrealizedPnlRatio),unrealizedProfit:r(e.unrealizedProfit),walletTagV2:r(e.walletTagV2),winCount:r(e.winCount)}}function Nt(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>fe(s))}}function be(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>fe(s))}}function ye(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,tags:x(s.tags),lastActiveAt:H(s.lastActiveAt),startHoldingAt:H(s.startHoldingAt),averageBuyPriceInUsd:r(s.averageBuyPriceInUsd),averageSellPriceInUsd:r(s.averageSellPriceInUsd),buyAmountCur:r(s.buyAmountCur),sellAmountCur:r(s.sellAmountCur),totalBuyAmountInUsd:r(s.totalBuyAmountInUsd),totalSellAmountInUsd:r(s.totalSellAmountInUsd),realizedPnl:r(s.realizedPnl),totalRealizedPnlInUsd:r(s.totalRealizedPnlInUsd),unrealizedPnl:r(s.unrealizedPnl),unrealizedPnlInUsd:r(s.unrealizedPnlInUsd),roi:r(s.roi),totalPnlInUsd:r(s.totalPnlInUsd),totalBuyCount:r(s.totalBuyCount),totalSellCount:r(s.totalSellCount),transferIn:r(s.transferIn),transferInCount:r(s.transferInCount),transferOutCount:r(s.transferOutCount)}))}}function he(e){let s=e;return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(g),extra:r(s.countsByProtocols)}}function Pe(e){return {serializedTx:e.serializedTx,recentBlockhash:r(e.recentBlockhash),lastValidBlockHeight:r(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function Ae(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function Ie(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Ce(e,s){let t=(s.data??[]).map(n=>({chain:p(n.chain),address:n.tokenAddress,name:n.name,symbol:n.symbol,image:r(n.logoUri),priceInUsd:n.priceInUsd,priceInNative:n.priceInNative,amount:n.amount,amountInUsd:n.valueInUsd,amountInNative:n.valueInNative,decimals:n.decimals}));return {chain:t[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:r(s.startCursor),endCursor:r(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:t}}function Ue(e,s,t){return {chain:e,address:s,tokens:t.tokens?Number(t.tokens):void 0,buys:t.buys?Number(t.buys):void 0,sells:t.sells?Number(t.sells):void 0,totalTrades:t.totalTrades?Number(t.totalTrades):void 0,wins:t.wins?Number(t.wins):void 0,losses:t.losses?Number(t.losses):void 0,winRate:r(t.winRate),buyAmountInUsd:r(t.buyAmountInUsd),sellAmountInUsd:r(t.sellAmountInUsd),totalCostInUsd:r(t.totalCostInUsd),realizedProfitInUsd:r(t.realizedProfitInUsd),realizedProfitRatio:r(t.realizedProfitRatio),unrealizedProfitInUsd:r(t.unrealizedProfitInUsd),unrealizedProfitRatio:r(t.unrealizedProfitRatio),totalProfitInUsd:r(t.totalProfitInUsd),totalProfitRatio:r(t.totalProfitRatio),avgProfitPerTradeInUsd:r(t.avgProfitPerTradeInUsd)}}function ns(e,s){return {chain:e,address:s.tokenAddress,name:s.name??"",symbol:s.symbol??"",image:r(s.logoUri),amount:s.balance,amountInUsd:s.currentValue,priceInUsd:s.priceInUsd,decimals:s.decimals??0,totalTrades:s.totalTrades!=null?Number(s.totalTrades):void 0,buys:s.buys!=null?Number(s.buys):void 0,buyVolumes:s.buyAmount,buyVolumesInUsd:s.buyAmountInUsd,buyAvgPriceInUsd:s.avgBuyPriceInUsd,sells:s.sells!=null?Number(s.sells):void 0,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,isClosed:s.isClosed,firstBuyAt:H(s.firstBuyAt),lastSellAt:H(s.lastSellAt)}}function $(e,s,t){let n=t.summary;return {chain:e,address:s,tokens:t.summary.tokens!=null?Number(t.summary.tokens):void 0,buys:t.summary.buys!=null?Number(t.summary.buys):void 0,sells:t.summary.sells!=null?Number(t.summary.sells):void 0,totalTrades:t.summary.totalTrades!=null?Number(t.summary.totalTrades):void 0,wins:t.summary.wins!=null?Number(t.summary.wins):void 0,losses:t.summary.losses!=null?Number(t.summary.losses):void 0,winRate:r(t.summary.winRate),buyAmountInUsd:r(t.summary.buyAmountInUsd),sellAmountInUsd:r(t.summary.sellAmountInUsd),totalCostInUsd:t.summary.totalCostInUsd,realizedProfitInUsd:r(t.summary.realizedProfitInUsd),unrealizedProfitInUsd:r(t.summary.unrealizedProfitInUsd),totalProfitInUsd:r(t.summary.totalProfitInUsd),totalProfitRatio:r(n.totalProfitRatio),avgProfitPerTradeInUsd:r(t.summary.avgProfitPerTradeInUsd),startCursor:r(t.startCursor),endCursor:r(t.endCursor),hasPrev:t.hasPrev,hasNext:t.hasNext,portfolios:t.data.map(o=>ns(e,o))}}function Se(e,s){return (s.data??[]).map(t=>({chain:p(t.chain),address:t.tokenAddress,name:t.name,symbol:t.symbol,image:r(t.logoUri),priceInUsd:t.priceInUsd,priceInNative:t.priceInNative,amount:t.amount,amountInUsd:t.valueInUsd,amountInNative:t.valueInNative,decimals:t.decimals,isActive:t.isActive,avgCostUsd:r(t.avgCostUsd),lastActiveAt:H(t.lastActiveAt),walletTokenTags:x(t.walletTokenTags)}))}function ve(e,s){return s.data.map(t=>({chain:e,address:t.tokenAddress,name:t.name??"",symbol:t.symbol??"",image:r(t.logoUri),amount:t.balance,amountInUsd:t.currentValue,priceInUsd:t.priceInUsd,decimals:t.decimals??0,totalTrades:Number(t.totalTrades),buys:Number(t.buys),buyVolumes:t.buyAmount,buyVolumesInUsd:t.buyAmountInUsd,buyAvgPriceInUsd:t.avgBuyPriceInUsd,sells:Number(t.sells),sellVolumes:t.sellAmount,sellVolumesInUsd:t.sellAmountInUsd,sellAvgPriceInUsd:t.avgSellPriceInUsd,realizedProfitInUsd:t.realizedProfitInUsd,realizedProfitRatio:t.realizedProfitRatio,unrealizedProfitInUsd:t.unrealizedProfitInUsd,unrealizedProfitRatio:t.unrealizedProfitRatio,totalProfitInUsd:t.totalProfitInUsd,totalProfitRatio:t.totalProfitRatio}))}function Re(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(we)}}function we(e){let s=e.type.toLowerCase()==="buy";return {chain:p(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:s?"buy":"sell",from:{address:s?e.sideTokenAddress:e.tokenAddress,symbol:s?e.sideTokenSymbol:e.tokenSymbol,name:s?e.sideTokenName:e.tokenName,image:r(s?e.sideTokenImageUrl:e.tokenImageUrl),amount:s?e.sideTokenAmount:e.tokenAmount,amountInUsd:s?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:s?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:s?e.tokenAddress:e.sideTokenAddress,symbol:s?e.tokenSymbol:e.sideTokenSymbol,name:s?e.tokenName:e.sideTokenName,image:r(s?e.tokenImageUrl:e.sideTokenImageUrl),amount:s?e.tokenAmount:e.sideTokenAmount,amountInUsd:s?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:s?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:r(e.dexProgramAddress),protocolFamily:r(e.dexProtocolFamily),image:r(e.dexImage)},poolAddress:r(e.poolAddress),status:e.status??"success",time:P(e.blockTimestamp)??new Date(0),gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:x(e.traderTags)}}function He(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(we)}}function Ot(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(rs)}}function rs(e){let s=e.type.toLowerCase().replace(/ /g,"_"),t=s==="buy",n=P(e.blockTimestamp)??new Date(0);return {chain:p(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:s,from:{address:t?e.sideTokenAddress:e.tokenAddress,symbol:t?e.sideTokenSymbol:e.tokenSymbol,name:t?e.sideTokenName:e.tokenName,image:r(t?e.sideTokenImageUrl:e.tokenImageUrl),amount:t?e.sideTokenAmount:e.tokenAmount,amountInUsd:t?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:t?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:t?e.tokenAddress:e.sideTokenAddress,symbol:t?e.tokenSymbol:e.sideTokenSymbol,name:t?e.tokenName:e.sideTokenName,image:r(t?e.tokenImageUrl:e.sideTokenImageUrl),amount:t?e.tokenAmount:e.sideTokenAmount,amountInUsd:t?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:t?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:r(e.dexProgramAddress),protocolFamily:r(e.dexProtocolFamily),image:r(e.dexImage)},poolAddress:r(e.poolAddress),status:e.status??"success",time:n,gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:x(e.traderTags)}}function pe(e,s){return {chain:e,address:s.tokenAddress,name:s.name,symbol:s.symbol,decimals:s.decimals,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,launchedFrom:s.launchFrom?{programAddress:s.launchFrom.programAddress,protocolFamily:s.launchFrom.protocolFamily}:void 0}}function N(e,s){return {chain:e,address:s.tokenAddress,name:s.name,symbol:s.symbol,decimals:s.decimals,image:s.imageUrl,description:s.description,socialMedias:s.socialMedia?{...s.socialMedia}:void 0,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,launchedFrom:s.launchFrom?{programAddress:s.launchFrom.programAddress,protocolFamily:s.launchFrom.protocolFamily}:void 0,migratedTo:s.migratedTo?{programAddress:s.migratedTo.programAddress,protocolFamily:s.migratedTo.protocolFamily}:void 0}}function xe(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Je(e.resolution),timestamp:new Date(e.time)}}function os(e){let s=["1m","5m","15m","30m","1h","4h","24h"],t=e,n={};for(let o of s){let a=t[`buys${o}`],u=t[`sells${o}`],i=t[`buyers${o}`],c=t[`sellers${o}`],m=t[`buyVolumeInUsd${o}`],A=t[`sellVolumeInUsd${o}`],S=t[`trades${o}`],v=t[`price${o}`],b=t[`openInUsd${o}`],R=t[`closeInUsd${o}`];if(!(a!==void 0||u!==void 0||S!==void 0||v!==void 0))continue;let M=S??(a!==void 0&&u!==void 0?a+u:void 0),Le=i!==void 0&&c!==void 0?i+c:void 0,Fe=m!==void 0&&A!==void 0?new utils.SafeBigNumber(m).plus(A).toString():void 0,Me=b&&R&&new utils.SafeBigNumber(b).gt(0)?new utils.SafeBigNumber(R).minus(b).div(b).toString():void 0;n[o]={buys:a,sells:u,trades:M,buyers:i,sellers:c,traders:Le,buyVolumesInUsd:m,sellVolumesInUsd:A,volumesInUsd:Fe,openPriceInUsd:b,closePriceInUsd:R,priceInUsd:v??R,priceChange:Me};}return n}function as(e){return {priceInUsd:e.price}}function O(e,s){return {chain:e,address:s.address,stats:os(s),marketData:as(s)}}function j(e,s){let t=[];return s.metadata&&t.push(N(e,s.metadata)),s.stat&&t.push(O(e,s.stat)),s.holder&&t.push(L(e,s.holder.tokenAddress,s.holder)),s.supply&&t.push(_(e,s.supply.tokenAddress,s.supply)),s.bondingCurve&&t.push(F(e,s.bondingCurve)),t.filter(n=>n.address)}function _(e,s,t){return {chain:e,address:s,marketData:{totalSupply:t.supply,marketCapInUsd:t.marketCapInUsd}}}function L(e,s,t){return {chain:e,address:s,marketData:is(t)}}function Q(e,s,t){return t.metricType===sdk.WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:s,marketData:{tvlInUsd:t.value}}:t.metricType===sdk.WsMetricType.MIGRATED_RATIO?{chain:e,address:s,migrateProgress:new utils.SafeBigNumber(t.value).shiftedBy(2).toString()}:{chain:e,address:s}}function F(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function We(e,s,t){return {chain:e,address:s,liquidities:[{poolAddress:t.poolAddress,tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}]}}function De(e,s,t){return {chain:e,address:s,marketData:{tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}}}function is(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,bluechipHolders:e.bluechipHolders===void 0?void 0:e.bluechipHolders,bluechipHoldings:e.bluechipHoldersAmount,bluechipHoldingsRatio:e.bluechipHoldersRatio,kolHolders:e.kolHolders===void 0?void 0:e.kolHolders,kolHoldings:e.kolHoldersAmount,kolHoldingsRatio:e.kolHoldersRatio,proHolders:e.proHolders===void 0?void 0:e.proHolders,proHoldings:e.proHoldersAmount,proHoldingsRatio:e.proHoldersRatio,insiderHolders:e.insiderHolders===void 0?void 0:e.insiderHolders,insiderHoldings:e.insiderHoldersAmount,insiderHoldingsRatio:e.insiderHoldersRatio,devHolders:e.devHolders===void 0?void 0:e.devHolders,devHoldings:e.devHoldersAmount,devHoldingsRatio:e.devHoldersRatio,sniperHolders:e.sniperHolders===void 0?void 0:e.sniperHolders,sniperHoldings:e.sniperHoldersAmount,sniperHoldingsRatio:e.sniperHoldersRatio,freshHolders:e.freshHolders===void 0?void 0:e.freshHolders,freshHoldings:e.freshHoldersAmount,freshHoldingsRatio:e.freshHoldersRatio,bundleHolders:e.bundleHolders===void 0?void 0:e.bundleHolders,bundleHoldings:e.bundleHoldersAmount,bundleHoldingsRatio:e.bundleHoldersRatio,sandwichHolders:e.sandwichHolders===void 0?void 0:e.sandwichHolders,sandwichHoldings:e.sandwichHoldersAmount,sandwichHoldingsRatio:e.sandwichHoldersRatio}}function K(e,s){let t=s.kind.toLowerCase()==="buy";return {chain:e,walletAddress:t?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:t?"buy":"sell",from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd,priceInUsd:B(s.sellAmountInUsd,s.sellAmount)},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd,priceInUsd:B(s.buyAmountInUsd,s.buyAmount)},status:"success",time:new Date(s.timestamp)}}function J(e,s){let t=s.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:t==="buy"?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:t,from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd,priceInUsd:B(s.sellAmountInUsd,s.sellAmount)},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd,priceInUsd:B(s.buyAmountInUsd,s.buyAmount)},status:"success",time:new Date(s.timestamp)}}function B(e,s){if(e==null||e===""||s==null||s==="")return;let t=new utils.SafeBigNumber(s);if(t.gt(0))return new utils.SafeBigNumber(e).div(t).toString()}var _e=class e{constructor(s,t){this.accessToken=s;this.options=t;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._phase3=se(this.accessToken,this.options?.serverUrl);}_client;_phase3;async getToken(s,t){let n=await this._client.token.getToken(d(s),t);return g(n)}async getTokens(s,t){return (await this._client.token.getTokens(d(s),{tokenAddresses:t.join(",")})).map(g)}async getTokenCandles(s,t,n,o){return (await this._client.token.getCandles(d(s),t,{resolution:z(n),from:o?.after?.getTime(),to:o?.before?.getTime(),limit:o?.limit})).map(u=>me(u,n))}async getTokenSecurity(s,t){let n=await this._client.token.getSecurity(d(s),t);return Te(n)}async getTokenStats(s,t){let n=await this._client.token.getStats(d(s),t);return q(n)}async getTokenHolders(s,t,n){let o=await this._client.token.getHolders(d(s),t,{cursor:n?.cursor,limit:n?.limit,direction:n?.direction,sortBy:n?.sortBy==="lastActiveAt"?sdk.HolderSortBy.lastActiveAt:n?.sortBy==="holdingUsd"?sdk.HolderSortBy.holdingUsd:n?.sortBy==="realizedPnl"?sdk.HolderSortBy.profit:n?.sortBy==="buyVolume"?sdk.HolderSortBy.buyVolume:n?.sortBy==="sellVolume"?sdk.HolderSortBy.sellVolume:void 0});return be(o)}async getTokenTopTraders(s,t,n){let o=await this._client.token.getTokenTopTraders(d(s),t,{cursor:n?.cursor,limit:n?.limit,direction:n?.direction,sortBy:n?.sortBy==="buyVolume"?sdk.TraderSortBy.buyVolume:n?.sortBy==="sellVolume"?sdk.TraderSortBy.sellVolume:n?.sortBy==="lastActiveAt"?sdk.TraderSortBy.lastActiveAt:n?.sortBy==="netflowUsd"?sdk.TraderSortBy.netflowUsd:n?.sortBy==="profit"?sdk.TraderSortBy.profit:void 0,tag:n?.tag});return ye(o)}async getTokenMarketData(s,t){let n=await this._client.token.getMarketData(d(s),t);return G(n)}async getNewTokens(s,t){return (await this._client.ranking.getNewTokens(d(s),this._buildRankingParams(t))).map(g)}async getNewPools(s,t){return (await this._client.ranking.getRankingPools(d(s),sdk.RankingPoolType.NewPool)).map(o=>ue(s,o))}async getFinalStretchTokens(s,t){return (await this._client.ranking.getFinalStretchTokens(d(s),this._buildRankingParams(t))).map(g)}async getMigratedTokens(s,t){return (await this._client.ranking.getMigratedTokens(d(s),this._buildRankingParams(t))).map(g)}async getTrendingTokens(s,t,n){return (await this._client.ranking.getHotTokens(d(s),t,this._buildRankingParams(n))).map(g)}async getStockTokens(s,t){return (await this._client.ranking.getStocksTokens(d(s),this._buildRankingParams(t))).map(g)}async searchTokens(s){let t=await this._client.token.search({chains:s?.chains?.map(d),q:s?.keyword,limit:s?.limit,cursor:s?.cursor,sortBy:s?.sortBy?ae(s.sortBy):void 0,sort:s?.sortDirection});return he(t)}async swapRoute(s){let t=await this._client.dex.route(d(s.chain),ke(s));return Pe(t)}async getLatestBlock(s){let t=await this._client.blockchain.getLatestBlock(d(s.chain));return Ae(t)}async sendTx(s){let t=await this._client.transaction.send(d(s.chain),ge(s));return Ie(t)}async checkTxSuccess(s,t,n){let{success:o}=await this._client.waitForJob(t,n);return o}async getWalletPortfolios(s,t,n){let o=e._CHAIN_TO_BALANCE_PARAM[s];if(o&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,o,t);let a=await this._client.wallet.getNetWorth(d(s),t,{cursor:n?.cursor,limit:n?.limit??100});return Ce(s,a)}async getWalletPnl(s,t,n){let o=await this._client.wallet.getPnl(d(s),t,n?{resolution:n}:void 0);return Ue(s,t,o)}async getWalletPortfolioPnls(s,t,n){if(n?.resolution!=="90d"){let a=await this._client.wallet.getPnlDetails(d(s),t,{resolution:n?.resolution==="7d"?sdk.PnlResolution["7d"]:sdk.PnlResolution["30d"],positionState:n?.positionState==="closed"?sdk.PositionState.closed:n?.positionState==="all"?sdk.PositionState.all:n?.positionState==="open"?sdk.PositionState.open:void 0,sortBy:n?.sortBy==="realizedPnl"?sdk.PnlSortBy.realizedPnl:n?.sortBy==="unrealizedPnl"?sdk.PnlSortBy.unrealizedPnl:n?.sortBy==="totalPnl"?sdk.PnlSortBy.totalPnl:void 0,cursor:n?.cursor,limit:n?.limit??100,direction:n?.direction});return $(s,t,a)}let o=await te(this._phase3,d(s),t,{resolution:n?.resolution??"30d",positionState:n?.positionState,sortBy:n?.sortBy,cursor:n?.cursor,limit:n?.limit??100,direction:n?.direction});return $(s,t,o)}async getWalletPortfoliosByTokens(s,t,n){let o=e._CHAIN_TO_BALANCE_PARAM[s];if(o&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,o,t,n);let a=await this._client.wallet.getNetWorthByTokens(d(s),t,{tokenAddresses:n.join(",")});return Se(s,a)}async getWalletPortfolioPnlsByTokens(s,t,n){let o=await this._client.wallet.getPnlByToken(d(s),t,{tokenAddresses:n.join(",")});return ve(s,o)}async getWalletTrades(s,t,n){return this._getTrades(s,{walletAddress:t},n)}async getTokenTrades(s,t,n){return this._getTrades(s,{tokenAddress:t},n)}async getWalletActivities(s,t,n){return this._getActivities(s,{walletAddress:t},n)}async getTokenActivities(s,t,n){return this._getActivities(s,{tokenAddress:t},n)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}async getWalletLimitOrders(s,t,n){throw new w("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getTokensByCreator(s,t,n){throw new w("Client.getTokensByCreator","no creator-index endpoint on the backend yet")}subscribeToken(s,t,n){return this.subscribeTokens(s,[t],n)}subscribeTokens(s,t,n){let o=d(s),a=Array.from(new Set(t.map(i=>i.trim()).filter(Boolean)));if(a.length===0)return {unsubscribe:()=>{}};let u=this._client.stream.batchSubscribe(()=>a.flatMap(i=>[this._client.stream.subscribeTokenStats({chain:o,tokenAddress:i,callback:c=>n([O(s,c)])}),this._client.stream.subscribeTokenHolders({chain:o,tokenAddress:i,callback:c=>n([L(s,i,c)])}),this._client.stream.subscribeTokenSupply({chain:o,tokenAddress:i,callback:c=>n([_(s,i,c)])}),this._client.stream.subscribeTokenLiquidity({chain:o,tokenAddress:i,callback:c=>n([Q(s,i,c)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:o,tokenAddress:i,callback:c=>n([We(s,i,c)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:o,tokenAddress:i,callback:c=>n([De(s,i,c)])})]));return {unsubscribe:()=>{let i=this._client.stream;if(i.batchUnsubscribe){i.batchUnsubscribe(u);return}u.forEach(c=>c.unsubscribe());}}}subscribeTokenCandles(s,t,n,o){return this._client.stream.subscribeTokenCandles({chain:d(s),tokenAddress:t,resolution:z(n),callback:a=>o([xe(a)])})}subscribeWalletPnl(s,t,n){return this._client.stream.subscribeWalletPnlList({chain:d(s),walletAddress:t,callback:o=>n(o.map(a=>({chain:s,address:a.walletAddress,buys:a.buys,buyAmountInUsd:a.buyAmountInUsd,sells:a.sells,sellAmountInUsd:a.sellAmountInUsd,wins:a.wins,winRate:a.winRatio,totalProfitInUsd:a.pnlInUsd,totalProfitRatio:a.pnlRatio,avgProfitPerTradeInUsd:a.averagePnlInUsd,tokens:a.tokens,resolution:a.resolution})))})}subscribeWalletPortfolios(s,t,n){return this._client.stream.subscribeWalletBalance({chain:d(s),walletAddress:t,callback:o=>n(o.map(a=>({chain:s,walletAddress:a.walletAddress,tokenAddress:a.tokenAddress,priceInUsd:a.tokenPriceInUsd,amount:a.balance})))})}subscribeWalletPortfolioPnls(s,t,n){return this._client.stream.subscribeWalletPnl({chain:d(s),walletAddress:t,callback:o=>n([{chain:s,walletAddress:o.walletAddress,tokenAddress:o.tokenAddress,openTime:o.opentime?new Date(o.opentime):void 0,closeTime:o.closetime?new Date(o.closetime):void 0,buys:o.buyCount,buyVolumes:o.buyAmount,buyVolumesInUsd:o.buyAmountInUsd,buyAvgPriceInUsd:o.averageBuyPriceInUsd,sells:o.sellCount,sellVolumes:o.sellAmount,sellVolumesInUsd:o.sellAmountInUsd,sellAvgPriceInUsd:o.averageSellPriceInUsd,realizedProfitInUsd:o.realizedProfitInUsd,realizedProfitRatio:o.realizedProfitRatio,unrealizedProfitInUsd:o.unrealizedProfitInUsd,unrealizedProfitRatio:o.unrealizedProfitRatio,totalProfitInUsd:o.totalRealizedProfitInUsd,totalProfitRatio:o.totalRealizedProfitRatio}])})}subscribeWalletTrades(s,t,n){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:o=>n([K(s,o)])})}subscribeTokenTrades(s,t,n){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:o=>n([K(s,o)])})}subscribeWalletActivities(s,t,n){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:o=>n([J(s,o)])})}subscribeTokenActivities(s,t,n){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:o=>n([J(s,o)])})}subscribeNewTokens(s,t){let n=d(s),o=this._subscribeRankingTokens(s,sdk.WsChannelType.New,t),a=[this._client.stream.subscribeNewToken({chain:n,callback:u=>t([pe(s,u)])}),this._client.stream.subscribeNewTokensMetadata({chain:n,callback:u=>t(u.map(i=>N(s,i)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:n,callback:u=>t(u.map(i=>F(s,i)))})];return {unsubscribe:()=>{o.unsubscribe(),a.forEach(u=>u.unsubscribe());}}}subscribeNewTokensMetadata(s,t){return this._client.stream.subscribeNewTokensMetadata({chain:d(s),callback:n=>t(n.map(o=>N(s,o)))})}subscribeNewPools(s,t){return this._client.stream.subscribeNewPool({chain:d(s),callback:n=>t([ce(s,n)])})}subscribeTrendingTokens(s,t){return this._subscribeRankingTokenList(s,sdk.WsRankingType.HOT,t)}subscribeMigratedTokens(s,t){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,t)}subscribeFinalStretchTokens(s,t){let n=d(s),o=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,t),a=this._client.stream.subscribeRankingTokensBondingCurve({chain:n,callback:u=>t(u.map(i=>F(s,i)))});return {unsubscribe:()=>{o.unsubscribe(),a.unsubscribe();}}}subscribeStockTokens(s,t){return this._subscribeRankingTokenList(s,sdk.WsRankingType.STOCKS,t)}static _CHAIN_TO_BALANCE_PARAM={[types.Chain.SOLANA]:"sol",[types.Chain.ETHEREUM]:"eth",[types.Chain.BINANCE]:"bnb"};static _NATIVE_TOKEN_ADDRESS={[types.Chain.SOLANA]:"11111111111111111111111111111111",[types.Chain.ETHEREUM]:"0x0000000000000000000000000000000000000000",[types.Chain.BINANCE]:"0x0000000000000000000000000000000000000000"};async _getPortfoliosFromBalanceApi(s,t,n,o){let a=this.options.nativeBalanceApiUrl,u=new URLSearchParams({chain:t,address:n});o?.length&&u.set("tokens",o.join(","));let i=await fetch(`${a}?${u.toString()}`);if(!i.ok)throw new Error(`Balance API returned ${i.status}`);return (await i.json()).balances.map(m=>{let A=BigInt(m.balance),S=m.decimals,v=BigInt(10)**BigInt(S),b=A/v,ee=(A%v).toString().padStart(S,"0"),M=`${b}.${ee}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:m.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:M,amountInUsd:"0",amountInNative:"0",decimals:m.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,t,n){let o=await this._getPortfoliosFromBalanceApi(s,t,n),a=e._NATIVE_TOKEN_ADDRESS[s],u=a?o.find(i=>i.address===a):void 0;return {chain:s,address:n,balanceInUsd:"0",balanceInNative:u?.amount??"0",portfolios:o,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?V(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?ie(s.filters):void 0,launchpadPlatform:s?.filters?us(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,t,n){let o=await this._client.trade.getTrades(d(s),{...t,cursor:n?.cursor,limit:n?.limit,direction:n?.direction,beforeTimestamp:n?.before?.getTime(),afterTimestamp:n?.after?.getTime(),beforeBlockHeight:n?.beforeBlockHeight,afterBlockHeight:n?.afterBlockHeight,poolAddress:n?.poolAddress,type:n?.type?n.type.toUpperCase():void 0});return Re(o)}async _getActivities(s,t,n){let o=await this._client.trade.getActivities(d(s),{...t,cursor:n?.cursor,limit:n?.limit,direction:n?.direction,beforeTimestamp:n?.before?.getTime(),afterTimestamp:n?.after?.getTime(),beforeBlockHeight:n?.beforeBlockHeight,afterBlockHeight:n?.afterBlockHeight,poolAddress:n?.poolAddress,type:n?.type?n.type.toUpperCase():void 0,sortBy:n?.sortBy==="totalUsd"?sdk.ActivitySortBy.totalUsd:n?.sortBy==="timestamp"?sdk.ActivitySortBy.timestamp:void 0});return He(o)}_subscribeRankingTokens(s,t,n){let o=d(s),a=[this._client.stream.subscribeRankingTokensStats({chain:o,channelType:t,callback:u=>n(u.map(i=>O(s,i)))}),this._client.stream.subscribeRankingTokensHolders({chain:o,channelType:t,callback:u=>n(u.map(i=>L(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensSupply({chain:o,channelType:t,callback:u=>n(u.map(i=>_(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:o,channelType:t,callback:u=>n(u.map(i=>Q(s,i.tokenAddress,i)))})];return {unsubscribe:()=>a.forEach(u=>u.unsubscribe())}}_subscribeRankingTokenList(s,t,n){return this._client.stream.subscribeRankingTokensList({chain:d(s),ranking_type:t,callback:o=>{let a=o.flatMap(u=>j(s,u));a.length>0&&n(a);}})}};function us(e){let s=e.find(t=>t.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}
2
+ exports.Client=_e;exports.KYBERSWAP_NATIVE_SENTINEL=Ze;exports.NotImplementedError=w;exports.fromActivityPage=Ot;exports.fromChainDTO=p;exports.fromLatestBlock=Ae;exports.fromPnlDetailItems=ve;exports.fromPnlDetailsPage=$;exports.fromRankingPoolDTO=ue;exports.fromSdkActivityPage=He;exports.fromSdkTokenHolderPage=be;exports.fromSdkTokenTopTraderPage=ye;exports.fromSendTxResult=Ie;exports.fromSwapRoute=Pe;exports.fromTokenCandle=me;exports.fromTokenCreatorDTO=Qe;exports.fromTokenDTO=g;exports.fromTokenHolderPage=Nt;exports.fromTokenLiquidityDTO=Dt;exports.fromTokenMarketDataDTO=G;exports.fromTokenMetadataSubscribed=N;exports.fromTokenPage=he;exports.fromTokenSecurity=Te;exports.fromTokenStatsDTO=q;exports.fromTokenSubscribed=pe;exports.fromTradePage=Re;exports.fromWalletNetWorthByTokens=Se;exports.fromWalletPnlSummary=Ue;exports.fromWalletPortfolios=Ce;exports.fromWsActivity=J;exports.fromWsCandle=xe;exports.fromWsRankingPoolToSubscribed=ce;exports.fromWsRankingTokenListToSubscribed=j;exports.fromWsTokenBondingCurveToSubscribed=F;exports.fromWsTokenDataSubscribed=O;exports.fromWsTokenHolderToSubscribed=L;exports.fromWsTokenLiquidityToSubscribed=Q;exports.fromWsTokenMarketDataFromHolder=is;exports.fromWsTokenMarketDataFromStats=as;exports.fromWsTokenMaxLiquidityToSubscribed=We;exports.fromWsTokenStats=os;exports.fromWsTokenSupplyToSubscribed=_;exports.fromWsTokenTotalLiquidityToSubscribed=De;exports.fromWsTradeActivity=K;exports.isNotImplementedError=cs;exports.toChainDTO=d;exports.toFieldDTO=V;exports.toMintForRoute=Bt;exports.toRangeFiltersDTO=ie;exports.toResolutionDTO=z;exports.toSearchFieldDTO=ae;exports.toSendTxInput=ge;exports.toSortDirectionDTO=je;exports.toSwapRouteInput=ke;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map