@liberfi.io/client 0.1.188 → 0.1.189
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 +1 -1
- package/dist/index.d.ts +1 -1
- 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 +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {ChainStreamClient,WsChannelType,ChainSymbol,Resolution,SearchSortBy,SwapRouteInputSwapMode,WsMetricType,TokenField}from'@chainstream-io/sdk';import {Chain,API}from'@liberfi.io/types';import {SafeBigNumber,SOLANA_TOKENS}from'@liberfi.io/utils';typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/client"]="0.1.188");var Ae="0.1.188";function n(e){return e??void 0}function l(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 x(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 ye(e){return e}function G(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 p(e){switch(e){case "price":return TokenField.marketDatapriceInUsd;case "priceChange1m":return TokenField.statspriceChangeRatioInUsd1m;case "priceChange5m":return TokenField.statspriceChangeRatioInUsd5m;case "priceChange1h":return TokenField.statspriceChangeRatioInUsd1h;case "priceChange4h":return TokenField.statspriceChangeRatioInUsd4h;case "priceChange24h":return TokenField.statspriceChangeRatioInUsd24h;case "marketCap":return TokenField.marketDatamarketCapInUsd;case "tvl":return TokenField.marketDatamaxPoolTvlInUsd;case "top10Holdings":return TokenField.marketDatatop10TotalHoldings;case "top10Ratio":return TokenField.marketDatatop10HoldingsRatio;case "top100Holdings":return TokenField.marketDatatop100TotalHoldings;case "top100Ratio":return TokenField.marketDatatop100HoldingsRatio;case "holders":return TokenField.marketDataholders;case "creatorsHoldings":return TokenField.marketDatacreatorHoldings;case "creatorsRatio":return TokenField.marketDatacreatorHoldingsRatio;case "buys1m":return TokenField.statsbuys1m;case "buys5m":return TokenField.statsbuys5m;case "buys15m":return TokenField.statsbuys15m;case "buys30m":return TokenField.statsbuys30m;case "buys1h":return TokenField.statsbuys1h;case "buys4h":return TokenField.statsbuys4h;case "buys24h":return TokenField.statsbuys24h;case "sells1m":return TokenField.statssells1m;case "sells5m":return TokenField.statssells5m;case "sells15m":return TokenField.statssells15m;case "sells30m":return TokenField.statssells30m;case "sells1h":return TokenField.statssells1h;case "sells4h":return TokenField.statssells4h;case "sells24h":return TokenField.statssells24h;case "trades1m":return TokenField.statstrades1m;case "trades5m":return TokenField.statstrades5m;case "trades1h":return TokenField.statstrades1h;case "trades4h":return TokenField.statstrades4h;case "trades24h":return TokenField.statstrades24h;case "traders1m":return TokenField.statstraders1m;case "traders5m":return TokenField.statstraders5m;case "traders1h":return TokenField.statstraders1h;case "traders4h":return TokenField.statstraders4h;case "traders24h":return TokenField.statstraders24h;case "volumes1m":return TokenField.statsvolumesInUsd1m;case "volumes5m":return TokenField.statsvolumesInUsd5m;case "volumes1h":return TokenField.statsvolumesInUsd1h;case "volumes4h":return TokenField.statsvolumesInUsd4h;case "volumes24h":return TokenField.statsvolumesInUsd24h;case "createdAt":return TokenField.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function j(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let r={field:p(s.field)};return ["gt","gte","between"].indexOf(s.operator)>=0&&(r.min=typeof s.value=="number"?new SafeBigNumber(s.value).toString():s.value),["lt","lte","between"].indexOf(s.operator)>=0&&(r.max=typeof s.value=="number"?new SafeBigNumber(s.value).toString():s.value),r})}function v(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 Pe(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function T(e){return {chain:v(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(Pe),launchedFrom:{programAddress:e.extra?.launchFromProgramAddress??void 0,protocolFamily:e.extra?.launchFromProtocolFamily??void 0},migrateProgress:e.marketData?.completionRatio?new 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,r])=>[s,r])):void 0,stats:e.stats?D(e.stats):void 0,marketData:e.marketData?_(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function D(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 r=e.periods?.[s];return r?{buys:I(r.buys),sells:I(r.sells),trades:I(r.trades),buyers:I(r.buyers),sellers:I(r.sellers),traders:I(r.traders),buyVolumes:r.buyVolume,sellVolumes:r.sellVolume,volumes:r.totalVolumeInNative,buyVolumesInUsd:r.buyVolumeInUsd,sellVolumesInUsd:r.sellVolumeInUsd,volumesInUsd:r.totalVolumeInUsd,openPriceInUsd:r.openInUsd,closePriceInUsd:r.closeInUsd,highPriceInUsd:r.highInUsd,lowPriceInUsd:r.lowInUsd,priceInUsd:r.closeInUsd,priceChange:r.priceChangeRatioInUsd}:{}}function Ns(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function _(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price: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 K(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:s,timestamp:new Date(e.timestamp)}}function Se(e){return e==="1d"?"24h":e}function J(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}var Ue=new Set([Chain.SOLANA,Chain.SOLANA_TESTNET,Chain.SOLANA_DEVNET]),Ce="0x0000000000000000000000000000000000000000",ve="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function Re(e){return e===SOLANA_TOKENS.native.address?SOLANA_TOKENS.wrapped.address:e}function we(e){return e.toLowerCase()===Ce.toLowerCase()?ve:e}function He(e){return e.dex?e.dex:Ue.has(e.chain)?"jupiter":"kyberswap"}function W(e,s){return e==="jupiter"?Re(s):e==="kyberswap"?we(s):s}function Bs(e,s){return W(e,s)}function Y(e){let s=He(e),r=W(s,e.input),o=W(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===API.SwapMode.EXACT_IN?SwapRouteInputSwapMode.ExactIn:SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:r,outputMint:o,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 Q(e){return {signedTx:e.serializedTx}}function X(e){return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage}))}}function Z(e){let s=e;return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(T),extra:n(s.countsByProtocols)}}function ee(e){return {serializedTx:e.serializedTx,recentBlockhash:n(e.recentBlockhash),lastValidBlockHeight:n(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function se(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function re(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function oe(e,s){let r=(s.data??[]).map(o=>({chain:v(o.chain),address:o.tokenAddress,name:o.name,symbol:o.symbol,image:n(o.logoUri),priceInUsd:o.priceInUsd,priceInNative:o.priceInNative,amount:o.amount,amountInUsd:o.valueInUsd,amountInNative:o.valueInNative,decimals:o.decimals}));return {chain:r[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:n(s.startCursor),endCursor:n(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:r}}function te(e,s,r){return {chain:e,address:s,tokens:r.tokens?Number(r.tokens):void 0,buys:r.buys?Number(r.buys):void 0,sells:r.sells?Number(r.sells):void 0,totalTrades:r.totalTrades?Number(r.totalTrades):void 0,wins:r.wins?Number(r.wins):void 0,losses:r.losses?Number(r.losses):void 0,winRate:n(r.winRate),buyAmountInUsd:n(r.buyAmountInUsd),sellAmountInUsd:n(r.sellAmountInUsd),totalCostInUsd:n(r.totalCostInUsd),realizedProfitInUsd:n(r.realizedProfitInUsd),realizedProfitRatio:n(r.realizedProfitRatio),unrealizedProfitInUsd:n(r.unrealizedProfitInUsd),unrealizedProfitRatio:n(r.unrealizedProfitRatio),totalProfitInUsd:n(r.totalProfitInUsd),totalProfitRatio:n(r.totalProfitRatio),avgProfitPerTradeInUsd:n(r.avgProfitPerTradeInUsd)}}function ne(e,s,r){let o=r.data.map(t=>({chain:e,address:t.tokenAddress,name:t.name??"",symbol:t.symbol??"",image:n(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}));return {chain:e,address:s,tokens:Number(r.summary.tokens),buys:Number(r.summary.buys),sells:Number(r.summary.sells),totalTrades:Number(r.summary.totalTrades),wins:Number(r.summary.wins),losses:Number(r.summary.losses),winRate:n(r.summary.winRate),buyAmountInUsd:n(r.summary.buyAmountInUsd),sellAmountInUsd:n(r.summary.sellAmountInUsd),totalCostInUsd:r.summary.totalCostInUsd,realizedProfitInUsd:n(r.summary.realizedProfitInUsd),realizedProfitRatio:n(r.summary.realizedProfitRatio),unrealizedProfitInUsd:n(r.summary.unrealizedProfitInUsd),totalProfitInUsd:n(r.summary.totalProfitInUsd),startCursor:n(r.startCursor),endCursor:n(r.endCursor),hasPrev:r.hasPrev,hasNext:r.hasNext,portfolios:o}}function ae(e,s){return (s.data??[]).map(r=>({chain:v(r.chain),address:r.tokenAddress,name:r.name,symbol:r.symbol,image:n(r.logoUri),priceInUsd:r.priceInUsd,priceInNative:r.priceInNative,amount:r.amount,amountInUsd:r.valueInUsd,amountInNative:r.valueInNative,decimals:r.decimals}))}function ie(e,s){return s.data.map(r=>({chain:e,address:r.tokenAddress,name:r.name??"",symbol:r.symbol??"",image:n(r.logoUri),amount:r.balance,amountInUsd:r.currentValue,priceInUsd:r.priceInUsd,decimals:r.decimals??0,totalTrades:Number(r.totalTrades),buys:Number(r.buys),buyVolumes:r.buyAmount,buyVolumesInUsd:r.buyAmountInUsd,buyAvgPriceInUsd:r.avgBuyPriceInUsd,sells:Number(r.sells),sellVolumes:r.sellAmount,sellVolumesInUsd:r.sellAmountInUsd,sellAvgPriceInUsd:r.avgSellPriceInUsd,realizedProfitInUsd:r.realizedProfitInUsd,realizedProfitRatio:r.realizedProfitRatio,unrealizedProfitInUsd:r.unrealizedProfitInUsd,unrealizedProfitRatio:r.unrealizedProfitRatio,totalProfitInUsd:r.totalProfitInUsd,totalProfitRatio:r.totalProfitRatio}))}function de(e){return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(We)}}function We(e){let s=e.type.toLowerCase()==="buy";return {chain:v(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:n(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:n(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:n(e.dexProgramAddress),protocolFamily:n(e.dexProtocolFamily),image:n(e.dexImage)},poolAddress:n(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function le(e){return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(xe)}}function xe(e){let s=e.type.toLowerCase().replace(/ /g,"_"),r=s==="buy";return {chain:v(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:s,from:{address:r?e.sideTokenAddress:e.tokenAddress,symbol:r?e.sideTokenSymbol:e.tokenSymbol,name:r?e.sideTokenName:e.tokenName,image:n(r?e.sideTokenImageUrl:e.tokenImageUrl),amount:r?e.sideTokenAmount:e.tokenAmount,amountInUsd:r?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:r?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:r?e.tokenAddress:e.sideTokenAddress,symbol:r?e.tokenSymbol:e.sideTokenSymbol,name:r?e.tokenName:e.sideTokenName,image:n(r?e.tokenImageUrl:e.sideTokenImageUrl),amount:r?e.tokenAmount:e.sideTokenAmount,amountInUsd:r?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:r?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:n(e.dexProgramAddress),protocolFamily:n(e.dexProtocolFamily),image:n(e.dexImage)},poolAddress:n(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function ce(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 ue(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 me(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Se(e.resolution),timestamp:new Date(e.time)}}function pe(e){let s=["1m","5m","15m","30m","1h","4h","24h"],r=e,o={};for(let t of s){let d=r[`buys${t}`],a=r[`sells${t}`],c=r[`buyers${t}`],w=r[`sellers${t}`],k=r[`buyVolumeInUsd${t}`],A=r[`sellVolumeInUsd${t}`],S=r[`trades${t}`],U=r[`price${t}`],f=r[`openInUsd${t}`],C=r[`closeInUsd${t}`];if(!(d!==void 0||a!==void 0||S!==void 0||U!==void 0))continue;let H=S??(d!==void 0&&a!==void 0?d+a:void 0),fe=c!==void 0&&w!==void 0?c+w:void 0,ge=k!==void 0&&A!==void 0?new SafeBigNumber(k).plus(A).toString():void 0,he=f&&C&&new SafeBigNumber(f).gt(0)?new SafeBigNumber(C).minus(f).div(f).toString():void 0;o[t]={buys:d,sells:a,trades:H,buyers:c,sellers:w,traders:fe,buyVolumesInUsd:k,sellVolumesInUsd:A,volumesInUsd:ge,openPriceInUsd:f,closePriceInUsd:C,priceInUsd:U??C,priceChange:he};}return o}function De(e){return {priceInUsd:e.price}}function N(e,s){return {chain:e,address:s.address,stats:pe(s),marketData:De(s)}}function B(e,s,r){return {chain:e,address:s,marketData:{totalSupply:r.supply,marketCapInUsd:r.marketCapInUsd}}}function F(e,s,r){return {chain:e,address:s,marketData:_e(r)}}function O(e,s,r){return r.metricType===WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:s,marketData:{tvlInUsd:r.value}}:r.metricType===WsMetricType.MIGRATED_RATIO?{chain:e,address:s,migrateProgress:new SafeBigNumber(r.value).shiftedBy(2).toString()}:{chain:e,address:s}}function L(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function Te(e,s,r){return {chain:e,address:s,liquidities:[{poolAddress:r.poolAddress,tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}]}}function ke(e,s,r){return {chain:e,address:s,marketData:{tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}}}function _e(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 E(e,s){let r=s.kind.toLowerCase()==="buy";return {chain:e,walletAddress:r?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:r?"buy":"sell",from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}function M(e,s){let r=s.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:r==="buy"?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:r,from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}var be=class e{constructor(s,r){this.accessToken=s;this.options=r;this._client=new ChainStreamClient(this.accessToken,this.options);}_client;async getToken(s,r){let o=await this._client.token.getToken(l(s),r);return T(o)}async getTokens(s,r){return (await this._client.token.getTokens(l(s),{tokenAddresses:r.join(",")})).map(T)}async getTokenCandles(s,r,o,t){return (await this._client.token.getCandles(l(s),r,{resolution:x(o),from:t?.after?.getTime(),to:t?.before?.getTime(),limit:t?.limit})).map(a=>K(a,o))}async getTokenSecurity(s,r){let o=await this._client.token.getSecurity(l(s),r);return J(o)}async getTokenStats(s,r){let o=await this._client.token.getStats(l(s),r);return D(o)}async getTokenHolders(s,r,o){let t=await this._client.token.getHolders(l(s),r,{cursor:o?.cursor,limit:o?.limit,direction:o?.direction});return X(t)}async getTokenMarketData(s,r){let o=await this._client.token.getMarketData(l(s),r);return _(o)}async getNewTokens(s,r){return (await this._client.ranking.getNewTokens(l(s),this._buildRankingParams(r))).map(T)}async getFinalStretchTokens(s,r){return (await this._client.ranking.getFinalStretchTokens(l(s),this._buildRankingParams(r))).map(T)}async getMigratedTokens(s,r){return (await this._client.ranking.getMigratedTokens(l(s),this._buildRankingParams(r))).map(T)}async getTrendingTokens(s,r,o){return (await this._client.ranking.getHotTokens(l(s),r,this._buildRankingParams(o))).map(T)}async getStockTokens(s,r){return (await this._client.ranking.getStocksTokens(l(s),this._buildRankingParams(r))).map(T)}async searchTokens(s){let r=await this._client.token.search({chains:s?.chains?.map(l),q:s?.keyword,limit:s?.limit,cursor:s?.cursor,sortBy:s?.sortBy?G(s.sortBy):void 0,sort:s?.sortDirection});return Z(r)}async swapRoute(s){let r=await this._client.dex.route(l(s.chain),Y(s));return ee(r)}async getLatestBlock(s){let r=await this._client.blockchain.getLatestBlock(l(s.chain));return se(r)}async sendTx(s){let r=await this._client.transaction.send(l(s.chain),Q(s));return re(r)}async checkTxSuccess(s,r,o){let{success:t}=await this._client.waitForJob(r,o);return t}async getWalletPortfolios(s,r,o){let t=e._CHAIN_TO_BALANCE_PARAM[s];if(t&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,t,r);let d=await this._client.wallet.getNetWorth(l(s),r,{cursor:o?.cursor,limit:o?.limit??100});return oe(s,d)}async getWalletPnl(s,r,o){let t=await this._client.wallet.getPnl(l(s),r,o?{resolution:o}:void 0);return te(s,r,t)}async getWalletPortfolioPnls(s,r,o){let t=await this._client.wallet.getPnlDetails(l(s),r,{cursor:o?.cursor,limit:o?.limit??100});return ne(s,r,t)}async getWalletPortfoliosByTokens(s,r,o){let t=e._CHAIN_TO_BALANCE_PARAM[s];if(t&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,t,r,o);let d=await this._client.wallet.getNetWorthByTokens(l(s),r,{tokenAddresses:o.join(",")});return ae(s,d)}async getWalletPortfolioPnlsByTokens(s,r,o){let t=await this._client.wallet.getPnlByToken(l(s),r,{tokenAddresses:o.join(",")});return ie(s,t)}async getWalletTrades(s,r,o){return this._getTrades(s,{walletAddress:r},o)}async getTokenTrades(s,r,o){return this._getTrades(s,{tokenAddress:r},o)}async getWalletActivities(s,r,o){return this._getActivities(s,{walletAddress:r},o)}async getTokenActivities(s,r,o){return this._getActivities(s,{tokenAddress:r},o)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}subscribeToken(s,r,o){let t=l(s),d=[this._client.stream.subscribeTokenStats({chain:t,tokenAddress:r,callback:a=>o([N(s,a)])}),this._client.stream.subscribeTokenSupply({chain:t,tokenAddress:r,callback:a=>o([B(s,r,a)])}),this._client.stream.subscribeTokenHolders({chain:t,tokenAddress:r,callback:a=>o([F(s,r,a)])}),this._client.stream.subscribeTokenLiquidity({chain:t,tokenAddress:r,callback:a=>o([O(s,r,a)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:t,tokenAddress:r,callback:a=>o([Te(s,r,a)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:t,tokenAddress:r,callback:a=>o([ke(s,r,a)])})];return {unsubscribe:()=>d.forEach(a=>a.unsubscribe())}}subscribeTokenCandles(s,r,o,t){return this._client.stream.subscribeTokenCandles({chain:l(s),tokenAddress:r,resolution:x(o),callback:d=>t([me(d)])})}subscribeWalletPnl(s,r,o){return this._client.stream.subscribeWalletPnlList({chain:l(s),walletAddress:r,callback:t=>o(t.map(d=>({chain:s,address:d.walletAddress,buys:d.buys,buyAmountInUsd:d.buyAmountInUsd,sells:d.sells,sellAmountInUsd:d.sellAmountInUsd,wins:d.wins,winRate:d.winRatio,totalProfitInUsd:d.pnlInUsd,totalProfitRatio:d.pnlRatio,avgProfitPerTradeInUsd:d.averagePnlInUsd,tokens:d.tokens,resolution:d.resolution})))})}subscribeWalletPortfolios(s,r,o){return this._client.stream.subscribeWalletBalance({chain:l(s),walletAddress:r,callback:t=>o(t.map(d=>({chain:s,walletAddress:d.walletAddress,tokenAddress:d.tokenAddress,priceInUsd:d.tokenPriceInUsd,amount:d.balance})))})}subscribeWalletPortfolioPnls(s,r,o){return this._client.stream.subscribeWalletPnl({chain:l(s),walletAddress:r,callback:t=>o([{chain:s,walletAddress:t.walletAddress,tokenAddress:t.tokenAddress,openTime:t.opentime?new Date(t.opentime):void 0,closeTime:t.closetime?new Date(t.closetime):void 0,buys:t.buyCount,buyVolumes:t.buyAmount,buyVolumesInUsd:t.buyAmountInUsd,buyAvgPriceInUsd:t.averageBuyPriceInUsd,sells:t.sellCount,sellVolumes:t.sellAmount,sellVolumesInUsd:t.sellAmountInUsd,sellAvgPriceInUsd:t.averageSellPriceInUsd,realizedProfitInUsd:t.realizedProfitInUsd,realizedProfitRatio:t.realizedProfitRatio,unrealizedProfitInUsd:t.unrealizedProfitInUsd,unrealizedProfitRatio:t.unrealizedProfitRatio,totalProfitInUsd:t.totalRealizedProfitInUsd,totalProfitRatio:t.totalRealizedProfitRatio}])})}subscribeWalletTrades(s,r,o){return this._client.stream.subscribeWalletTrade({chain:l(s),walletAddress:r,callback:t=>o([E(s,t)])})}subscribeTokenTrades(s,r,o){return this._client.stream.subscribeTokenTrade({chain:l(s),tokenAddress:r,callback:t=>o([E(s,t)])})}subscribeWalletActivities(s,r,o){return this._client.stream.subscribeWalletTrade({chain:l(s),walletAddress:r,callback:t=>o([M(s,t)])})}subscribeTokenActivities(s,r,o){return this._client.stream.subscribeTokenTrade({chain:l(s),tokenAddress:r,callback:t=>o([M(s,t)])})}subscribeNewTokens(s,r){let o=l(s),t=this._subscribeRankingTokens(s,WsChannelType.New,r),d=[this._client.stream.subscribeNewToken({chain:o,callback:a=>r([ce(s,a)])}),this._client.stream.subscribeNewTokensMetadata({chain:o,callback:a=>r(a.map(c=>ue(s,c)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:a=>r(a.map(c=>L(s,c)))})];return {unsubscribe:()=>{t.unsubscribe(),d.forEach(a=>a.unsubscribe());}}}subscribeTrendingTokens(s,r){return this._subscribeRankingTokens(s,WsChannelType.HOT,r)}subscribeMigratedTokens(s,r){return this._subscribeRankingTokens(s,WsChannelType.MIGRATED,r)}subscribeFinalStretchTokens(s,r){let o=l(s),t=this._subscribeRankingTokens(s,WsChannelType.FINAL_STRETCH,r),d=this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:a=>r(a.map(c=>L(s,c)))});return {unsubscribe:()=>{t.unsubscribe(),d.unsubscribe();}}}subscribeStockTokens(s,r){return this._subscribeRankingTokens(s,WsChannelType.US_STOCKS,r)}static _CHAIN_TO_BALANCE_PARAM={[Chain.SOLANA]:"sol",[Chain.ETHEREUM]:"eth",[Chain.BINANCE]:"bnb"};static _NATIVE_TOKEN_ADDRESS={[Chain.SOLANA]:"11111111111111111111111111111111",[Chain.ETHEREUM]:"0x0000000000000000000000000000000000000000",[Chain.BINANCE]:"0x0000000000000000000000000000000000000000"};async _getPortfoliosFromBalanceApi(s,r,o,t){let d=this.options.nativeBalanceApiUrl,a=new URLSearchParams({chain:r,address:o});t?.length&&a.set("tokens",t.join(","));let c=await fetch(`${d}?${a.toString()}`);if(!c.ok)throw new Error(`Balance API returned ${c.status}`);return (await c.json()).balances.map(k=>{let A=BigInt(k.balance),S=k.decimals,U=BigInt(10)**BigInt(S),f=A/U,V=(A%U).toString().padStart(S,"0"),H=`${f}.${V}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:k.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:H,amountInUsd:"0",amountInNative:"0",decimals:k.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,r,o){let t=await this._getPortfoliosFromBalanceApi(s,r,o),d=e._NATIVE_TOKEN_ADDRESS[s],a=d?t.find(c=>c.address===d):void 0;return {chain:s,address:o,balanceInUsd:"0",balanceInNative:a?.amount??"0",portfolios:t,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?p(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?j(s.filters):void 0,launchpadPlatform:s?.filters?Be(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,r,o){let t=await this._client.trade.getTrades(l(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return de(t)}async _getActivities(s,r,o){let t=await this._client.trade.getActivities(l(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return le(t)}_subscribeRankingTokens(s,r,o){let t=l(s),d=[this._client.stream.subscribeRankingTokensStats({chain:t,channelType:r,callback:a=>o(a.map(c=>N(s,c)))}),this._client.stream.subscribeRankingTokensHolders({chain:t,channelType:r,callback:a=>o(a.map(c=>F(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensSupply({chain:t,channelType:r,callback:a=>o(a.map(c=>B(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:t,channelType:r,callback:a=>o(a.map(c=>O(s,c.tokenAddress,c)))})];return {unsubscribe:()=>d.forEach(a=>a.unsubscribe())}}};function Be(e){let s=e.find(r=>r.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}export{be as Client,ve as KYBERSWAP_NATIVE_SENTINEL,le as fromActivityPage,v as fromChainDTO,se as fromLatestBlock,ie as fromPnlDetailItems,ne as fromPnlDetailsPage,re as fromSendTxResult,ee as fromSwapRoute,K as fromTokenCandle,Pe as fromTokenCreatorDTO,T as fromTokenDTO,X as fromTokenHolderPage,Ns as fromTokenLiquidityDTO,_ as fromTokenMarketDataDTO,ue as fromTokenMetadataSubscribed,Z as fromTokenPage,J as fromTokenSecurity,D as fromTokenStatsDTO,ce as fromTokenSubscribed,de as fromTradePage,ae as fromWalletNetWorthByTokens,te as fromWalletPnlSummary,oe as fromWalletPortfolios,M as fromWsActivity,me as fromWsCandle,L as fromWsTokenBondingCurveToSubscribed,N as fromWsTokenDataSubscribed,F as fromWsTokenHolderToSubscribed,O as fromWsTokenLiquidityToSubscribed,_e as fromWsTokenMarketDataFromHolder,De as fromWsTokenMarketDataFromStats,Te as fromWsTokenMaxLiquidityToSubscribed,pe as fromWsTokenStats,B as fromWsTokenSupplyToSubscribed,ke as fromWsTokenTotalLiquidityToSubscribed,E as fromWsTradeActivity,l as toChainDTO,p as toFieldDTO,Bs as toMintForRoute,j as toRangeFiltersDTO,x as toResolutionDTO,G as toSearchFieldDTO,Q as toSendTxInput,ye as toSortDirectionDTO,Y as toSwapRouteInput,Ae as version};//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import {ChainStreamClient,WsChannelType,ChainSymbol,Resolution,SearchSortBy,SwapRouteInputSwapMode,WsMetricType,TokenField}from'@chainstream-io/sdk';import {Chain,API}from'@liberfi.io/types';import {SafeBigNumber,SOLANA_TOKENS}from'@liberfi.io/utils';typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/client"]="0.1.189");var Ae="0.1.189";function n(e){return e??void 0}function l(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 x(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 ye(e){return e}function G(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 p(e){switch(e){case "price":return TokenField.marketDatapriceInUsd;case "priceChange1m":return TokenField.statspriceChangeRatioInUsd1m;case "priceChange5m":return TokenField.statspriceChangeRatioInUsd5m;case "priceChange1h":return TokenField.statspriceChangeRatioInUsd1h;case "priceChange4h":return TokenField.statspriceChangeRatioInUsd4h;case "priceChange24h":return TokenField.statspriceChangeRatioInUsd24h;case "marketCap":return TokenField.marketDatamarketCapInUsd;case "tvl":return TokenField.marketDatamaxPoolTvlInUsd;case "top10Holdings":return TokenField.marketDatatop10TotalHoldings;case "top10Ratio":return TokenField.marketDatatop10HoldingsRatio;case "top100Holdings":return TokenField.marketDatatop100TotalHoldings;case "top100Ratio":return TokenField.marketDatatop100HoldingsRatio;case "holders":return TokenField.marketDataholders;case "creatorsHoldings":return TokenField.marketDatacreatorHoldings;case "creatorsRatio":return TokenField.marketDatacreatorHoldingsRatio;case "buys1m":return TokenField.statsbuys1m;case "buys5m":return TokenField.statsbuys5m;case "buys15m":return TokenField.statsbuys15m;case "buys30m":return TokenField.statsbuys30m;case "buys1h":return TokenField.statsbuys1h;case "buys4h":return TokenField.statsbuys4h;case "buys24h":return TokenField.statsbuys24h;case "sells1m":return TokenField.statssells1m;case "sells5m":return TokenField.statssells5m;case "sells15m":return TokenField.statssells15m;case "sells30m":return TokenField.statssells30m;case "sells1h":return TokenField.statssells1h;case "sells4h":return TokenField.statssells4h;case "sells24h":return TokenField.statssells24h;case "trades1m":return TokenField.statstrades1m;case "trades5m":return TokenField.statstrades5m;case "trades1h":return TokenField.statstrades1h;case "trades4h":return TokenField.statstrades4h;case "trades24h":return TokenField.statstrades24h;case "traders1m":return TokenField.statstraders1m;case "traders5m":return TokenField.statstraders5m;case "traders1h":return TokenField.statstraders1h;case "traders4h":return TokenField.statstraders4h;case "traders24h":return TokenField.statstraders24h;case "volumes1m":return TokenField.statsvolumesInUsd1m;case "volumes5m":return TokenField.statsvolumesInUsd5m;case "volumes1h":return TokenField.statsvolumesInUsd1h;case "volumes4h":return TokenField.statsvolumesInUsd4h;case "volumes24h":return TokenField.statsvolumesInUsd24h;case "createdAt":return TokenField.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function j(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let r={field:p(s.field)};return ["gt","gte","between"].indexOf(s.operator)>=0&&(r.min=typeof s.value=="number"?new SafeBigNumber(s.value).toString():s.value),["lt","lte","between"].indexOf(s.operator)>=0&&(r.max=typeof s.value=="number"?new SafeBigNumber(s.value).toString():s.value),r})}function v(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 Pe(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function T(e){return {chain:v(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(Pe),launchedFrom:{programAddress:e.extra?.launchFromProgramAddress??void 0,protocolFamily:e.extra?.launchFromProtocolFamily??void 0},migrateProgress:e.marketData?.completionRatio?new 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,r])=>[s,r])):void 0,stats:e.stats?D(e.stats):void 0,marketData:e.marketData?_(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function D(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 r=e.periods?.[s];return r?{buys:I(r.buys),sells:I(r.sells),trades:I(r.trades),buyers:I(r.buyers),sellers:I(r.sellers),traders:I(r.traders),buyVolumes:r.buyVolume,sellVolumes:r.sellVolume,volumes:r.totalVolumeInNative,buyVolumesInUsd:r.buyVolumeInUsd,sellVolumesInUsd:r.sellVolumeInUsd,volumesInUsd:r.totalVolumeInUsd,openPriceInUsd:r.openInUsd,closePriceInUsd:r.closeInUsd,highPriceInUsd:r.highInUsd,lowPriceInUsd:r.lowInUsd,priceInUsd:r.closeInUsd,priceChange:r.priceChangeRatioInUsd}:{}}function Ns(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function _(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price: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 K(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:s,timestamp:new Date(e.timestamp)}}function Se(e){return e==="1d"?"24h":e}function J(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}var Ue=new Set([Chain.SOLANA,Chain.SOLANA_TESTNET,Chain.SOLANA_DEVNET]),Ce="0x0000000000000000000000000000000000000000",ve="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function Re(e){return e===SOLANA_TOKENS.native.address?SOLANA_TOKENS.wrapped.address:e}function we(e){return e.toLowerCase()===Ce.toLowerCase()?ve:e}function He(e){return e.dex?e.dex:Ue.has(e.chain)?"jupiter":"kyberswap"}function W(e,s){return e==="jupiter"?Re(s):e==="kyberswap"?we(s):s}function Bs(e,s){return W(e,s)}function Y(e){let s=He(e),r=W(s,e.input),o=W(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===API.SwapMode.EXACT_IN?SwapRouteInputSwapMode.ExactIn:SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:r,outputMint:o,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 Q(e){return {signedTx:e.serializedTx}}function X(e){return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage}))}}function Z(e){let s=e;return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(T),extra:n(s.countsByProtocols)}}function ee(e){return {serializedTx:e.serializedTx,recentBlockhash:n(e.recentBlockhash),lastValidBlockHeight:n(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function se(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function re(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function oe(e,s){let r=(s.data??[]).map(o=>({chain:v(o.chain),address:o.tokenAddress,name:o.name,symbol:o.symbol,image:n(o.logoUri),priceInUsd:o.priceInUsd,priceInNative:o.priceInNative,amount:o.amount,amountInUsd:o.valueInUsd,amountInNative:o.valueInNative,decimals:o.decimals}));return {chain:r[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:n(s.startCursor),endCursor:n(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:r}}function te(e,s,r){return {chain:e,address:s,tokens:r.tokens?Number(r.tokens):void 0,buys:r.buys?Number(r.buys):void 0,sells:r.sells?Number(r.sells):void 0,totalTrades:r.totalTrades?Number(r.totalTrades):void 0,wins:r.wins?Number(r.wins):void 0,losses:r.losses?Number(r.losses):void 0,winRate:n(r.winRate),buyAmountInUsd:n(r.buyAmountInUsd),sellAmountInUsd:n(r.sellAmountInUsd),totalCostInUsd:n(r.totalCostInUsd),realizedProfitInUsd:n(r.realizedProfitInUsd),realizedProfitRatio:n(r.realizedProfitRatio),unrealizedProfitInUsd:n(r.unrealizedProfitInUsd),unrealizedProfitRatio:n(r.unrealizedProfitRatio),totalProfitInUsd:n(r.totalProfitInUsd),totalProfitRatio:n(r.totalProfitRatio),avgProfitPerTradeInUsd:n(r.avgProfitPerTradeInUsd)}}function ne(e,s,r){let o=r.data.map(t=>({chain:e,address:t.tokenAddress,name:t.name??"",symbol:t.symbol??"",image:n(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}));return {chain:e,address:s,tokens:Number(r.summary.tokens),buys:Number(r.summary.buys),sells:Number(r.summary.sells),totalTrades:Number(r.summary.totalTrades),wins:Number(r.summary.wins),losses:Number(r.summary.losses),winRate:n(r.summary.winRate),buyAmountInUsd:n(r.summary.buyAmountInUsd),sellAmountInUsd:n(r.summary.sellAmountInUsd),totalCostInUsd:r.summary.totalCostInUsd,realizedProfitInUsd:n(r.summary.realizedProfitInUsd),realizedProfitRatio:n(r.summary.realizedProfitRatio),unrealizedProfitInUsd:n(r.summary.unrealizedProfitInUsd),totalProfitInUsd:n(r.summary.totalProfitInUsd),startCursor:n(r.startCursor),endCursor:n(r.endCursor),hasPrev:r.hasPrev,hasNext:r.hasNext,portfolios:o}}function ae(e,s){return (s.data??[]).map(r=>({chain:v(r.chain),address:r.tokenAddress,name:r.name,symbol:r.symbol,image:n(r.logoUri),priceInUsd:r.priceInUsd,priceInNative:r.priceInNative,amount:r.amount,amountInUsd:r.valueInUsd,amountInNative:r.valueInNative,decimals:r.decimals}))}function ie(e,s){return s.data.map(r=>({chain:e,address:r.tokenAddress,name:r.name??"",symbol:r.symbol??"",image:n(r.logoUri),amount:r.balance,amountInUsd:r.currentValue,priceInUsd:r.priceInUsd,decimals:r.decimals??0,totalTrades:Number(r.totalTrades),buys:Number(r.buys),buyVolumes:r.buyAmount,buyVolumesInUsd:r.buyAmountInUsd,buyAvgPriceInUsd:r.avgBuyPriceInUsd,sells:Number(r.sells),sellVolumes:r.sellAmount,sellVolumesInUsd:r.sellAmountInUsd,sellAvgPriceInUsd:r.avgSellPriceInUsd,realizedProfitInUsd:r.realizedProfitInUsd,realizedProfitRatio:r.realizedProfitRatio,unrealizedProfitInUsd:r.unrealizedProfitInUsd,unrealizedProfitRatio:r.unrealizedProfitRatio,totalProfitInUsd:r.totalProfitInUsd,totalProfitRatio:r.totalProfitRatio}))}function de(e){return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(We)}}function We(e){let s=e.type.toLowerCase()==="buy";return {chain:v(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:n(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:n(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:n(e.dexProgramAddress),protocolFamily:n(e.dexProtocolFamily),image:n(e.dexImage)},poolAddress:n(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function le(e){return {startCursor:n(e.startCursor),endCursor:n(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(xe)}}function xe(e){let s=e.type.toLowerCase().replace(/ /g,"_"),r=s==="buy";return {chain:v(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:s,from:{address:r?e.sideTokenAddress:e.tokenAddress,symbol:r?e.sideTokenSymbol:e.tokenSymbol,name:r?e.sideTokenName:e.tokenName,image:n(r?e.sideTokenImageUrl:e.tokenImageUrl),amount:r?e.sideTokenAmount:e.tokenAmount,amountInUsd:r?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:r?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:r?e.tokenAddress:e.sideTokenAddress,symbol:r?e.tokenSymbol:e.sideTokenSymbol,name:r?e.tokenName:e.sideTokenName,image:n(r?e.tokenImageUrl:e.sideTokenImageUrl),amount:r?e.tokenAmount:e.sideTokenAmount,amountInUsd:r?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:r?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:n(e.dexProgramAddress),protocolFamily:n(e.dexProtocolFamily),image:n(e.dexImage)},poolAddress:n(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function ce(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 ue(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 me(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Se(e.resolution),timestamp:new Date(e.time)}}function pe(e){let s=["1m","5m","15m","30m","1h","4h","24h"],r=e,o={};for(let t of s){let d=r[`buys${t}`],a=r[`sells${t}`],c=r[`buyers${t}`],w=r[`sellers${t}`],k=r[`buyVolumeInUsd${t}`],A=r[`sellVolumeInUsd${t}`],S=r[`trades${t}`],U=r[`price${t}`],f=r[`openInUsd${t}`],C=r[`closeInUsd${t}`];if(!(d!==void 0||a!==void 0||S!==void 0||U!==void 0))continue;let H=S??(d!==void 0&&a!==void 0?d+a:void 0),fe=c!==void 0&&w!==void 0?c+w:void 0,ge=k!==void 0&&A!==void 0?new SafeBigNumber(k).plus(A).toString():void 0,he=f&&C&&new SafeBigNumber(f).gt(0)?new SafeBigNumber(C).minus(f).div(f).toString():void 0;o[t]={buys:d,sells:a,trades:H,buyers:c,sellers:w,traders:fe,buyVolumesInUsd:k,sellVolumesInUsd:A,volumesInUsd:ge,openPriceInUsd:f,closePriceInUsd:C,priceInUsd:U??C,priceChange:he};}return o}function De(e){return {priceInUsd:e.price}}function N(e,s){return {chain:e,address:s.address,stats:pe(s),marketData:De(s)}}function B(e,s,r){return {chain:e,address:s,marketData:{totalSupply:r.supply,marketCapInUsd:r.marketCapInUsd}}}function F(e,s,r){return {chain:e,address:s,marketData:_e(r)}}function O(e,s,r){return r.metricType===WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:s,marketData:{tvlInUsd:r.value}}:r.metricType===WsMetricType.MIGRATED_RATIO?{chain:e,address:s,migrateProgress:new SafeBigNumber(r.value).shiftedBy(2).toString()}:{chain:e,address:s}}function L(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function Te(e,s,r){return {chain:e,address:s,liquidities:[{poolAddress:r.poolAddress,tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}]}}function ke(e,s,r){return {chain:e,address:s,marketData:{tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}}}function _e(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 E(e,s){let r=s.kind.toLowerCase()==="buy";return {chain:e,walletAddress:r?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:r?"buy":"sell",from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}function M(e,s){let r=s.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:r==="buy"?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:r,from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}var be=class e{constructor(s,r){this.accessToken=s;this.options=r;this._client=new ChainStreamClient(this.accessToken,this.options);}_client;async getToken(s,r){let o=await this._client.token.getToken(l(s),r);return T(o)}async getTokens(s,r){return (await this._client.token.getTokens(l(s),{tokenAddresses:r.join(",")})).map(T)}async getTokenCandles(s,r,o,t){return (await this._client.token.getCandles(l(s),r,{resolution:x(o),from:t?.after?.getTime(),to:t?.before?.getTime(),limit:t?.limit})).map(a=>K(a,o))}async getTokenSecurity(s,r){let o=await this._client.token.getSecurity(l(s),r);return J(o)}async getTokenStats(s,r){let o=await this._client.token.getStats(l(s),r);return D(o)}async getTokenHolders(s,r,o){let t=await this._client.token.getHolders(l(s),r,{cursor:o?.cursor,limit:o?.limit,direction:o?.direction});return X(t)}async getTokenMarketData(s,r){let o=await this._client.token.getMarketData(l(s),r);return _(o)}async getNewTokens(s,r){return (await this._client.ranking.getNewTokens(l(s),this._buildRankingParams(r))).map(T)}async getFinalStretchTokens(s,r){return (await this._client.ranking.getFinalStretchTokens(l(s),this._buildRankingParams(r))).map(T)}async getMigratedTokens(s,r){return (await this._client.ranking.getMigratedTokens(l(s),this._buildRankingParams(r))).map(T)}async getTrendingTokens(s,r,o){return (await this._client.ranking.getHotTokens(l(s),r,this._buildRankingParams(o))).map(T)}async getStockTokens(s,r){return (await this._client.ranking.getStocksTokens(l(s),this._buildRankingParams(r))).map(T)}async searchTokens(s){let r=await this._client.token.search({chains:s?.chains?.map(l),q:s?.keyword,limit:s?.limit,cursor:s?.cursor,sortBy:s?.sortBy?G(s.sortBy):void 0,sort:s?.sortDirection});return Z(r)}async swapRoute(s){let r=await this._client.dex.route(l(s.chain),Y(s));return ee(r)}async getLatestBlock(s){let r=await this._client.blockchain.getLatestBlock(l(s.chain));return se(r)}async sendTx(s){let r=await this._client.transaction.send(l(s.chain),Q(s));return re(r)}async checkTxSuccess(s,r,o){let{success:t}=await this._client.waitForJob(r,o);return t}async getWalletPortfolios(s,r,o){let t=e._CHAIN_TO_BALANCE_PARAM[s];if(t&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,t,r);let d=await this._client.wallet.getNetWorth(l(s),r,{cursor:o?.cursor,limit:o?.limit??100});return oe(s,d)}async getWalletPnl(s,r,o){let t=await this._client.wallet.getPnl(l(s),r,o?{resolution:o}:void 0);return te(s,r,t)}async getWalletPortfolioPnls(s,r,o){let t=await this._client.wallet.getPnlDetails(l(s),r,{cursor:o?.cursor,limit:o?.limit??100});return ne(s,r,t)}async getWalletPortfoliosByTokens(s,r,o){let t=e._CHAIN_TO_BALANCE_PARAM[s];if(t&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,t,r,o);let d=await this._client.wallet.getNetWorthByTokens(l(s),r,{tokenAddresses:o.join(",")});return ae(s,d)}async getWalletPortfolioPnlsByTokens(s,r,o){let t=await this._client.wallet.getPnlByToken(l(s),r,{tokenAddresses:o.join(",")});return ie(s,t)}async getWalletTrades(s,r,o){return this._getTrades(s,{walletAddress:r},o)}async getTokenTrades(s,r,o){return this._getTrades(s,{tokenAddress:r},o)}async getWalletActivities(s,r,o){return this._getActivities(s,{walletAddress:r},o)}async getTokenActivities(s,r,o){return this._getActivities(s,{tokenAddress:r},o)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}subscribeToken(s,r,o){let t=l(s),d=[this._client.stream.subscribeTokenStats({chain:t,tokenAddress:r,callback:a=>o([N(s,a)])}),this._client.stream.subscribeTokenSupply({chain:t,tokenAddress:r,callback:a=>o([B(s,r,a)])}),this._client.stream.subscribeTokenHolders({chain:t,tokenAddress:r,callback:a=>o([F(s,r,a)])}),this._client.stream.subscribeTokenLiquidity({chain:t,tokenAddress:r,callback:a=>o([O(s,r,a)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:t,tokenAddress:r,callback:a=>o([Te(s,r,a)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:t,tokenAddress:r,callback:a=>o([ke(s,r,a)])})];return {unsubscribe:()=>d.forEach(a=>a.unsubscribe())}}subscribeTokenCandles(s,r,o,t){return this._client.stream.subscribeTokenCandles({chain:l(s),tokenAddress:r,resolution:x(o),callback:d=>t([me(d)])})}subscribeWalletPnl(s,r,o){return this._client.stream.subscribeWalletPnlList({chain:l(s),walletAddress:r,callback:t=>o(t.map(d=>({chain:s,address:d.walletAddress,buys:d.buys,buyAmountInUsd:d.buyAmountInUsd,sells:d.sells,sellAmountInUsd:d.sellAmountInUsd,wins:d.wins,winRate:d.winRatio,totalProfitInUsd:d.pnlInUsd,totalProfitRatio:d.pnlRatio,avgProfitPerTradeInUsd:d.averagePnlInUsd,tokens:d.tokens,resolution:d.resolution})))})}subscribeWalletPortfolios(s,r,o){return this._client.stream.subscribeWalletBalance({chain:l(s),walletAddress:r,callback:t=>o(t.map(d=>({chain:s,walletAddress:d.walletAddress,tokenAddress:d.tokenAddress,priceInUsd:d.tokenPriceInUsd,amount:d.balance})))})}subscribeWalletPortfolioPnls(s,r,o){return this._client.stream.subscribeWalletPnl({chain:l(s),walletAddress:r,callback:t=>o([{chain:s,walletAddress:t.walletAddress,tokenAddress:t.tokenAddress,openTime:t.opentime?new Date(t.opentime):void 0,closeTime:t.closetime?new Date(t.closetime):void 0,buys:t.buyCount,buyVolumes:t.buyAmount,buyVolumesInUsd:t.buyAmountInUsd,buyAvgPriceInUsd:t.averageBuyPriceInUsd,sells:t.sellCount,sellVolumes:t.sellAmount,sellVolumesInUsd:t.sellAmountInUsd,sellAvgPriceInUsd:t.averageSellPriceInUsd,realizedProfitInUsd:t.realizedProfitInUsd,realizedProfitRatio:t.realizedProfitRatio,unrealizedProfitInUsd:t.unrealizedProfitInUsd,unrealizedProfitRatio:t.unrealizedProfitRatio,totalProfitInUsd:t.totalRealizedProfitInUsd,totalProfitRatio:t.totalRealizedProfitRatio}])})}subscribeWalletTrades(s,r,o){return this._client.stream.subscribeWalletTrade({chain:l(s),walletAddress:r,callback:t=>o([E(s,t)])})}subscribeTokenTrades(s,r,o){return this._client.stream.subscribeTokenTrade({chain:l(s),tokenAddress:r,callback:t=>o([E(s,t)])})}subscribeWalletActivities(s,r,o){return this._client.stream.subscribeWalletTrade({chain:l(s),walletAddress:r,callback:t=>o([M(s,t)])})}subscribeTokenActivities(s,r,o){return this._client.stream.subscribeTokenTrade({chain:l(s),tokenAddress:r,callback:t=>o([M(s,t)])})}subscribeNewTokens(s,r){let o=l(s),t=this._subscribeRankingTokens(s,WsChannelType.New,r),d=[this._client.stream.subscribeNewToken({chain:o,callback:a=>r([ce(s,a)])}),this._client.stream.subscribeNewTokensMetadata({chain:o,callback:a=>r(a.map(c=>ue(s,c)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:a=>r(a.map(c=>L(s,c)))})];return {unsubscribe:()=>{t.unsubscribe(),d.forEach(a=>a.unsubscribe());}}}subscribeTrendingTokens(s,r){return this._subscribeRankingTokens(s,WsChannelType.HOT,r)}subscribeMigratedTokens(s,r){return this._subscribeRankingTokens(s,WsChannelType.MIGRATED,r)}subscribeFinalStretchTokens(s,r){let o=l(s),t=this._subscribeRankingTokens(s,WsChannelType.FINAL_STRETCH,r),d=this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:a=>r(a.map(c=>L(s,c)))});return {unsubscribe:()=>{t.unsubscribe(),d.unsubscribe();}}}subscribeStockTokens(s,r){return this._subscribeRankingTokens(s,WsChannelType.US_STOCKS,r)}static _CHAIN_TO_BALANCE_PARAM={[Chain.SOLANA]:"sol",[Chain.ETHEREUM]:"eth",[Chain.BINANCE]:"bnb"};static _NATIVE_TOKEN_ADDRESS={[Chain.SOLANA]:"11111111111111111111111111111111",[Chain.ETHEREUM]:"0x0000000000000000000000000000000000000000",[Chain.BINANCE]:"0x0000000000000000000000000000000000000000"};async _getPortfoliosFromBalanceApi(s,r,o,t){let d=this.options.nativeBalanceApiUrl,a=new URLSearchParams({chain:r,address:o});t?.length&&a.set("tokens",t.join(","));let c=await fetch(`${d}?${a.toString()}`);if(!c.ok)throw new Error(`Balance API returned ${c.status}`);return (await c.json()).balances.map(k=>{let A=BigInt(k.balance),S=k.decimals,U=BigInt(10)**BigInt(S),f=A/U,V=(A%U).toString().padStart(S,"0"),H=`${f}.${V}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:k.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:H,amountInUsd:"0",amountInNative:"0",decimals:k.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,r,o){let t=await this._getPortfoliosFromBalanceApi(s,r,o),d=e._NATIVE_TOKEN_ADDRESS[s],a=d?t.find(c=>c.address===d):void 0;return {chain:s,address:o,balanceInUsd:"0",balanceInNative:a?.amount??"0",portfolios:t,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?p(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?j(s.filters):void 0,launchpadPlatform:s?.filters?Be(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,r,o){let t=await this._client.trade.getTrades(l(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return de(t)}async _getActivities(s,r,o){let t=await this._client.trade.getActivities(l(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return le(t)}_subscribeRankingTokens(s,r,o){let t=l(s),d=[this._client.stream.subscribeRankingTokensStats({chain:t,channelType:r,callback:a=>o(a.map(c=>N(s,c)))}),this._client.stream.subscribeRankingTokensHolders({chain:t,channelType:r,callback:a=>o(a.map(c=>F(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensSupply({chain:t,channelType:r,callback:a=>o(a.map(c=>B(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:t,channelType:r,callback:a=>o(a.map(c=>O(s,c.tokenAddress,c)))})];return {unsubscribe:()=>d.forEach(a=>a.unsubscribe())}}};function Be(e){let s=e.find(r=>r.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}export{be as Client,ve as KYBERSWAP_NATIVE_SENTINEL,le as fromActivityPage,v as fromChainDTO,se as fromLatestBlock,ie as fromPnlDetailItems,ne as fromPnlDetailsPage,re as fromSendTxResult,ee as fromSwapRoute,K as fromTokenCandle,Pe as fromTokenCreatorDTO,T as fromTokenDTO,X as fromTokenHolderPage,Ns as fromTokenLiquidityDTO,_ as fromTokenMarketDataDTO,ue as fromTokenMetadataSubscribed,Z as fromTokenPage,J as fromTokenSecurity,D as fromTokenStatsDTO,ce as fromTokenSubscribed,de as fromTradePage,ae as fromWalletNetWorthByTokens,te as fromWalletPnlSummary,oe as fromWalletPortfolios,M as fromWsActivity,me as fromWsCandle,L as fromWsTokenBondingCurveToSubscribed,N as fromWsTokenDataSubscribed,F as fromWsTokenHolderToSubscribed,O as fromWsTokenLiquidityToSubscribed,_e as fromWsTokenMarketDataFromHolder,De as fromWsTokenMarketDataFromStats,Te as fromWsTokenMaxLiquidityToSubscribed,pe as fromWsTokenStats,B as fromWsTokenSupplyToSubscribed,ke as fromWsTokenTotalLiquidityToSubscribed,E as fromWsTradeActivity,l as toChainDTO,p as toFieldDTO,Bs as toMintForRoute,j as toRangeFiltersDTO,x as toResolutionDTO,G as toSearchFieldDTO,Q as toSendTxInput,ye as toSortDirectionDTO,Y as toSwapRouteInput,Ae as version};//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|