@liberfi.io/client 0.1.189 → 0.3.0
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/README.md +1 -0
- package/dist/index.d.mts +174 -12
- package/dist/index.d.ts +174 -12
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@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 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 x(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 ye(e){return e}function G(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 p(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 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 utils.SafeBigNumber(s.value).toString():s.value),["lt","lte","between"].indexOf(s.operator)>=0&&(r.max=typeof s.value=="number"?new utils.SafeBigNumber(s.value).toString():s.value),r})}function v(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 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 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,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([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Ce="0x0000000000000000000000000000000000000000",ve="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function Re(e){return e===utils.SOLANA_TOKENS.native.address?utils.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===types.API.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.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 utils.SafeBigNumber(k).plus(A).toString():void 0,he=f&&C&&new utils.SafeBigNumber(f).gt(0)?new utils.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===sdk.WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:s,marketData:{tvlInUsd:r.value}}:r.metricType===sdk.WsMetricType.MIGRATED_RATIO?{chain:e,address:s,migrateProgress:new utils.SafeBigNumber(r.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 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 sdk.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,sdk.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,sdk.WsChannelType.HOT,r)}subscribeMigratedTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,r)}subscribeFinalStretchTokens(s,r){let o=l(s),t=this._subscribeRankingTokens(s,sdk.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,sdk.WsChannelType.US_STOCKS,r)}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,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);}}exports.Client=be;exports.KYBERSWAP_NATIVE_SENTINEL=ve;exports.fromActivityPage=le;exports.fromChainDTO=v;exports.fromLatestBlock=se;exports.fromPnlDetailItems=ie;exports.fromPnlDetailsPage=ne;exports.fromSendTxResult=re;exports.fromSwapRoute=ee;exports.fromTokenCandle=K;exports.fromTokenCreatorDTO=Pe;exports.fromTokenDTO=T;exports.fromTokenHolderPage=X;exports.fromTokenLiquidityDTO=Ns;exports.fromTokenMarketDataDTO=_;exports.fromTokenMetadataSubscribed=ue;exports.fromTokenPage=Z;exports.fromTokenSecurity=J;exports.fromTokenStatsDTO=D;exports.fromTokenSubscribed=ce;exports.fromTradePage=de;exports.fromWalletNetWorthByTokens=ae;exports.fromWalletPnlSummary=te;exports.fromWalletPortfolios=oe;exports.fromWsActivity=M;exports.fromWsCandle=me;exports.fromWsTokenBondingCurveToSubscribed=L;exports.fromWsTokenDataSubscribed=N;exports.fromWsTokenHolderToSubscribed=F;exports.fromWsTokenLiquidityToSubscribed=O;exports.fromWsTokenMarketDataFromHolder=_e;exports.fromWsTokenMarketDataFromStats=De;exports.fromWsTokenMaxLiquidityToSubscribed=Te;exports.fromWsTokenStats=pe;exports.fromWsTokenSupplyToSubscribed=B;exports.fromWsTokenTotalLiquidityToSubscribed=ke;exports.fromWsTradeActivity=E;exports.toChainDTO=l;exports.toFieldDTO=p;exports.toMintForRoute=Bs;exports.toRangeFiltersDTO=j;exports.toResolutionDTO=x;exports.toSearchFieldDTO=G;exports.toSendTxInput=Q;exports.toSortDirectionDTO=ye;exports.toSwapRouteInput=Y;exports.version=Ae;//# sourceMappingURL=index.js.map
|
|
1
|
+
'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/client"]="0.3.0");var Re="0.3.0";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 Ye(e){return e instanceof Error&&e.code==="NotImplemented"}var pe="https://api.chainstream.io";async function He(e){return typeof e=="string"?e:Promise.resolve(e.getToken())}function xe(e,s,t){if(t!=null){if(t instanceof Date){e.set(s,String(t.getTime()));return}e.set(s,String(t));}}async function x(e,s,t){let r=new URL(s,e.baseUrl),n=new URLSearchParams;for(let[k,u]of Object.entries(t))xe(n,k,u);let i=n.toString();i&&(r.search=i);let a=await He(e.accessToken),c=await fetch(r.toString(),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${a}`}});if(!c.ok){let k=await c.text().catch(()=>"");throw new Error(`[phase3Http] ${c.status} ${c.statusText} ${r.pathname}: ${k}`)}return await c.json()}function j(e,s){return {baseUrl:s??pe,accessToken:e}}function Q(e,s,t,r){return x(e,`/v2/token/${encodeURIComponent(s)}/${encodeURIComponent(t)}/holders`,r)}function K(e,s,t){return x(e,`/v2/trade/${encodeURIComponent(s)}/activities`,t)}function J(e,s,t,r){return x(e,`/v2/wallet/${encodeURIComponent(s)}/${encodeURIComponent(t)}/net-worth/tokens`,r)}function Y(e,s,t,r){return x(e,`/v2/wallet/${encodeURIComponent(s)}/${encodeURIComponent(t)}/pnl-details`,r)}function o(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 N(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 De(e){return e}function se(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 B(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 te(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let t={field:B(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 Ne(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(Ne),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?_(e.stats):void 0,marketData:e.marketData?O(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function _(e){return {"1m":P(e,"1m"),"5m":P(e,"5m"),"15m":P(e,"15m"),"30m":P(e,"30m"),"1h":P(e,"1h"),"4h":P(e,"4h"),"24h":P(e,"24h")}}function y(e){return e===void 0?void 0:parseInt(e)}function P(e,s){let t=e.periods?.[s];return t?{buys:y(t.buys),sells:y(t.sells),trades:y(t.trades),buyers:y(t.buyers),sellers:y(t.sellers),traders:y(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 Zs(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 O(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 re(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 Be(e){return e==="1d"?"24h":e}function ne(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}var _e=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Oe="0x0000000000000000000000000000000000000000",Fe="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function Le(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function Ee(e){return e.toLowerCase()===Oe.toLowerCase()?Fe:e}function Me(e){return e.dex?e.dex:_e.has(e.chain)?"jupiter":"kyberswap"}function D(e,s){return e==="jupiter"?Le(s):e==="kyberswap"?Ee(s):s}function et(e,s){return D(e,s)}function oe(e){let s=Me(e),t=D(s,e.input),r=D(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.API.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:t,outputMint:r,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 ae(e){return {signedTx:e.serializedTx}}function R(e){return e==null?void 0:new Date(e)}function F(e){if(!(!e||e.length===0))return e}function ie(e){return {startCursor:o(e.startCursor),endCursor:o(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,tags:F(s.tags),lastActiveAt:R(s.lastActiveAt),startHoldingAt:R(s.startHoldingAt)}))}}function le(e){let s=e;return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(g),extra:o(s.countsByProtocols)}}function de(e){return {serializedTx:e.serializedTx,recentBlockhash:o(e.recentBlockhash),lastValidBlockHeight:o(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function ce(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function ue(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function me(e,s){let t=(s.data??[]).map(r=>({chain:p(r.chain),address:r.tokenAddress,name:r.name,symbol:r.symbol,image:o(r.logoUri),priceInUsd:r.priceInUsd,priceInNative:r.priceInNative,amount:r.amount,amountInUsd:r.valueInUsd,amountInNative:r.valueInNative,decimals:r.decimals}));return {chain:t[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:o(s.startCursor),endCursor:o(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:t}}function Te(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:o(t.winRate),buyAmountInUsd:o(t.buyAmountInUsd),sellAmountInUsd:o(t.sellAmountInUsd),totalCostInUsd:o(t.totalCostInUsd),realizedProfitInUsd:o(t.realizedProfitInUsd),realizedProfitRatio:o(t.realizedProfitRatio),unrealizedProfitInUsd:o(t.unrealizedProfitInUsd),unrealizedProfitRatio:o(t.unrealizedProfitRatio),totalProfitInUsd:o(t.totalProfitInUsd),totalProfitRatio:o(t.totalProfitRatio),avgProfitPerTradeInUsd:o(t.avgProfitPerTradeInUsd)}}function Ve(e,s){return {chain:e,address:s.tokenAddress,name:s.name??"",symbol:s.symbol??"",image:o(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:R(s.firstBuyAt),lastSellAt:R(s.lastSellAt)}}function ge(e,s,t){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:o(t.summary.winRate),buyAmountInUsd:o(t.summary.buyAmountInUsd),sellAmountInUsd:o(t.summary.sellAmountInUsd),totalCostInUsd:t.summary.totalCostInUsd,realizedProfitInUsd:o(t.summary.realizedProfitInUsd),unrealizedProfitInUsd:o(t.summary.unrealizedProfitInUsd),totalProfitInUsd:o(t.summary.totalProfitInUsd),totalProfitRatio:o(t.summary.totalProfitRatio),avgProfitPerTradeInUsd:o(t.summary.avgProfitPerTradeInUsd),startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev,hasNext:t.hasNext,portfolios:t.data.map(r=>Ve(e,r))}}function ke(e,s){return (s.data??[]).map(t=>({chain:p(t.chain),address:t.tokenAddress,name:t.name,symbol:t.symbol,image:o(t.logoUri),priceInUsd:t.priceInUsd,priceInNative:t.priceInNative,amount:t.amount,amountInUsd:t.valueInUsd,amountInNative:t.valueInNative,decimals:t.decimals,isActive:t.isActive,avgCostUsd:o(t.avgCostUsd),lastActiveAt:R(t.lastActiveAt),walletTokenTags:F(t.walletTokenTags)}))}function fe(e,s){return s.data.map(t=>({chain:e,address:t.tokenAddress,name:t.name??"",symbol:t.symbol??"",image:o(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 be(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(ze)}}function ze(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:o(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:o(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:o(e.dexProgramAddress),protocolFamily:o(e.dexProtocolFamily),image:o(e.dexImage)},poolAddress:o(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function he(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(qe)}}function qe(e){let s=e.type.toLowerCase().replace(/ /g,"_"),t=s==="buy",r=e.blockTimestamp<1e12?e.blockTimestamp*1e3:e.blockTimestamp;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:o(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:o(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:o(e.dexProgramAddress),protocolFamily:o(e.dexProtocolFamily),image:o(e.dexImage)},poolAddress:o(e.poolAddress),status:e.status??"success",time:new Date(r),gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:F(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 Ae(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 ye(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Be(e.resolution),timestamp:new Date(e.time)}}function $e(e){let s=["1m","5m","15m","30m","1h","4h","24h"],t=e,r={};for(let n of s){let i=t[`buys${n}`],a=t[`sells${n}`],c=t[`buyers${n}`],k=t[`sellers${n}`],u=t[`buyVolumeInUsd${n}`],A=t[`sellVolumeInUsd${n}`],S=t[`trades${n}`],C=t[`price${n}`],b=t[`openInUsd${n}`],v=t[`closeInUsd${n}`];if(!(i!==void 0||a!==void 0||S!==void 0||C!==void 0))continue;let W=S??(i!==void 0&&a!==void 0?i+a:void 0),Ce=c!==void 0&&k!==void 0?c+k:void 0,ve=u!==void 0&&A!==void 0?new utils.SafeBigNumber(u).plus(A).toString():void 0,we=b&&v&&new utils.SafeBigNumber(b).gt(0)?new utils.SafeBigNumber(v).minus(b).div(b).toString():void 0;r[n]={buys:i,sells:a,trades:W,buyers:c,sellers:k,traders:Ce,buyVolumesInUsd:u,sellVolumesInUsd:A,volumesInUsd:ve,openPriceInUsd:b,closePriceInUsd:v,priceInUsd:C??v,priceChange:we};}return r}function Ge(e){return {priceInUsd:e.price}}function L(e,s){return {chain:e,address:s.address,stats:$e(s),marketData:Ge(s)}}function E(e,s,t){return {chain:e,address:s,marketData:{totalSupply:t.supply,marketCapInUsd:t.marketCapInUsd}}}function M(e,s,t){return {chain:e,address:s,marketData:je(t)}}function V(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 z(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function Ie(e,s,t){return {chain:e,address:s,liquidities:[{poolAddress:t.poolAddress,tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}]}}function Ue(e,s,t){return {chain:e,address:s,marketData:{tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}}}function je(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 q(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},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}function $(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},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}var Se=class e{constructor(s,t){this.accessToken=s;this.options=t;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._phase3=j(this.accessToken,this.options?.serverUrl);}_client;_phase3;async getToken(s,t){let r=await this._client.token.getToken(d(s),t);return g(r)}async getTokens(s,t){return (await this._client.token.getTokens(d(s),{tokenAddresses:t.join(",")})).map(g)}async getTokenCandles(s,t,r,n){return (await this._client.token.getCandles(d(s),t,{resolution:N(r),from:n?.after?.getTime(),to:n?.before?.getTime(),limit:n?.limit})).map(a=>re(a,r))}async getTokenSecurity(s,t){let r=await this._client.token.getSecurity(d(s),t);return ne(r)}async getTokenStats(s,t){let r=await this._client.token.getStats(d(s),t);return _(r)}async getTokenHolders(s,t,r){let n=await Q(this._phase3,d(s),t,{cursor:r?.cursor,limit:r?.limit,direction:r?.direction,sortBy:r?.sortBy});return ie(n)}async getTokenMarketData(s,t){let r=await this._client.token.getMarketData(d(s),t);return O(r)}async getNewTokens(s,t){return (await this._client.ranking.getNewTokens(d(s),this._buildRankingParams(t))).map(g)}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,r){return (await this._client.ranking.getHotTokens(d(s),t,this._buildRankingParams(r))).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?se(s.sortBy):void 0,sort:s?.sortDirection});return le(t)}async swapRoute(s){let t=await this._client.dex.route(d(s.chain),oe(s));return de(t)}async getLatestBlock(s){let t=await this._client.blockchain.getLatestBlock(d(s.chain));return ce(t)}async sendTx(s){let t=await this._client.transaction.send(d(s.chain),ae(s));return ue(t)}async checkTxSuccess(s,t,r){let{success:n}=await this._client.waitForJob(t,r);return n}async getWalletPortfolios(s,t,r){let n=e._CHAIN_TO_BALANCE_PARAM[s];if(n&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,n,t);let i=await this._client.wallet.getNetWorth(d(s),t,{cursor:r?.cursor,limit:r?.limit??100});return me(s,i)}async getWalletPnl(s,t,r){let n=await this._client.wallet.getPnl(d(s),t,r?{resolution:r}:void 0);return Te(s,t,n)}async getWalletPortfolioPnls(s,t,r){let n=await Y(this._phase3,d(s),t,{resolution:r?.resolution??"30d",positionState:r?.positionState,sortBy:r?.sortBy,cursor:r?.cursor,limit:r?.limit??100,direction:r?.direction});return ge(s,t,n)}async getWalletPortfoliosByTokens(s,t,r){let n=e._CHAIN_TO_BALANCE_PARAM[s];if(n&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,n,t,r);let i=await J(this._phase3,d(s),t,{tokenAddresses:r.join(",")});return ke(s,i)}async getWalletPortfolioPnlsByTokens(s,t,r){let n=await this._client.wallet.getPnlByToken(d(s),t,{tokenAddresses:r.join(",")});return fe(s,n)}async getWalletTrades(s,t,r){return this._getTrades(s,{walletAddress:t},r)}async getTokenTrades(s,t,r){return this._getTrades(s,{tokenAddress:t},r)}async getWalletActivities(s,t,r){return this._getActivities(s,{walletAddress:t},r)}async getTokenActivities(s,t,r){return this._getActivities(s,{tokenAddress:t},r)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}async getWalletLimitOrders(s,t,r){throw new w("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getTokensByCreator(s,t,r){throw new w("Client.getTokensByCreator","no creator-index endpoint on the backend yet")}subscribeToken(s,t,r){let n=d(s),i=[this._client.stream.subscribeTokenStats({chain:n,tokenAddress:t,callback:a=>r([L(s,a)])}),this._client.stream.subscribeTokenSupply({chain:n,tokenAddress:t,callback:a=>r([E(s,t,a)])}),this._client.stream.subscribeTokenHolders({chain:n,tokenAddress:t,callback:a=>r([M(s,t,a)])}),this._client.stream.subscribeTokenLiquidity({chain:n,tokenAddress:t,callback:a=>r([V(s,t,a)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:n,tokenAddress:t,callback:a=>r([Ie(s,t,a)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:n,tokenAddress:t,callback:a=>r([Ue(s,t,a)])})];return {unsubscribe:()=>i.forEach(a=>a.unsubscribe())}}subscribeTokenCandles(s,t,r,n){return this._client.stream.subscribeTokenCandles({chain:d(s),tokenAddress:t,resolution:N(r),callback:i=>n([ye(i)])})}subscribeWalletPnl(s,t,r){return this._client.stream.subscribeWalletPnlList({chain:d(s),walletAddress:t,callback:n=>r(n.map(i=>({chain:s,address:i.walletAddress,buys:i.buys,buyAmountInUsd:i.buyAmountInUsd,sells:i.sells,sellAmountInUsd:i.sellAmountInUsd,wins:i.wins,winRate:i.winRatio,totalProfitInUsd:i.pnlInUsd,totalProfitRatio:i.pnlRatio,avgProfitPerTradeInUsd:i.averagePnlInUsd,tokens:i.tokens,resolution:i.resolution})))})}subscribeWalletPortfolios(s,t,r){return this._client.stream.subscribeWalletBalance({chain:d(s),walletAddress:t,callback:n=>r(n.map(i=>({chain:s,walletAddress:i.walletAddress,tokenAddress:i.tokenAddress,priceInUsd:i.tokenPriceInUsd,amount:i.balance})))})}subscribeWalletPortfolioPnls(s,t,r){return this._client.stream.subscribeWalletPnl({chain:d(s),walletAddress:t,callback:n=>r([{chain:s,walletAddress:n.walletAddress,tokenAddress:n.tokenAddress,openTime:n.opentime?new Date(n.opentime):void 0,closeTime:n.closetime?new Date(n.closetime):void 0,buys:n.buyCount,buyVolumes:n.buyAmount,buyVolumesInUsd:n.buyAmountInUsd,buyAvgPriceInUsd:n.averageBuyPriceInUsd,sells:n.sellCount,sellVolumes:n.sellAmount,sellVolumesInUsd:n.sellAmountInUsd,sellAvgPriceInUsd:n.averageSellPriceInUsd,realizedProfitInUsd:n.realizedProfitInUsd,realizedProfitRatio:n.realizedProfitRatio,unrealizedProfitInUsd:n.unrealizedProfitInUsd,unrealizedProfitRatio:n.unrealizedProfitRatio,totalProfitInUsd:n.totalRealizedProfitInUsd,totalProfitRatio:n.totalRealizedProfitRatio}])})}subscribeWalletTrades(s,t,r){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:n=>r([q(s,n)])})}subscribeTokenTrades(s,t,r){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:n=>r([q(s,n)])})}subscribeWalletActivities(s,t,r){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:n=>r([$(s,n)])})}subscribeTokenActivities(s,t,r){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:n=>r([$(s,n)])})}subscribeNewTokens(s,t){let r=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.New,t),i=[this._client.stream.subscribeNewToken({chain:r,callback:a=>t([Pe(s,a)])}),this._client.stream.subscribeNewTokensMetadata({chain:r,callback:a=>t(a.map(c=>Ae(s,c)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:r,callback:a=>t(a.map(c=>z(s,c)))})];return {unsubscribe:()=>{n.unsubscribe(),i.forEach(a=>a.unsubscribe());}}}subscribeTrendingTokens(s,t){return this._subscribeRankingTokens(s,sdk.WsChannelType.HOT,t)}subscribeMigratedTokens(s,t){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,t)}subscribeFinalStretchTokens(s,t){let r=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,t),i=this._client.stream.subscribeRankingTokensBondingCurve({chain:r,callback:a=>t(a.map(c=>z(s,c)))});return {unsubscribe:()=>{n.unsubscribe(),i.unsubscribe();}}}subscribeStockTokens(s,t){return this._subscribeRankingTokens(s,sdk.WsChannelType.US_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,r,n){let i=this.options.nativeBalanceApiUrl,a=new URLSearchParams({chain:t,address:r});n?.length&&a.set("tokens",n.join(","));let c=await fetch(`${i}?${a.toString()}`);if(!c.ok)throw new Error(`Balance API returned ${c.status}`);return (await c.json()).balances.map(u=>{let A=BigInt(u.balance),S=u.decimals,C=BigInt(10)**BigInt(S),b=A/C,G=(A%C).toString().padStart(S,"0"),W=`${b}.${G}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:u.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:W,amountInUsd:"0",amountInNative:"0",decimals:u.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,t,r){let n=await this._getPortfoliosFromBalanceApi(s,t,r),i=e._NATIVE_TOKEN_ADDRESS[s],a=i?n.find(c=>c.address===i):void 0;return {chain:s,address:r,balanceInUsd:"0",balanceInNative:a?.amount??"0",portfolios:n,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?B(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?te(s.filters):void 0,launchpadPlatform:s?.filters?Ke(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,t,r){let n=await this._client.trade.getTrades(d(s),{...t,cursor:r?.cursor,limit:r?.limit,direction:r?.direction,beforeTimestamp:r?.before?.getTime(),afterTimestamp:r?.after?.getTime(),beforeBlockHeight:r?.beforeBlockHeight,afterBlockHeight:r?.afterBlockHeight,poolAddress:r?.poolAddress,type:r?.type?r.type.toUpperCase():void 0});return be(n)}async _getActivities(s,t,r){let n=await K(this._phase3,d(s),{...t,cursor:r?.cursor,limit:r?.limit,direction:r?.direction,beforeTimestamp:r?.before?.getTime(),afterTimestamp:r?.after?.getTime(),beforeBlockHeight:r?.beforeBlockHeight,afterBlockHeight:r?.afterBlockHeight,poolAddress:r?.poolAddress,type:r?.type?r.type.toUpperCase():void 0,sortBy:r?.sortBy});return he(n)}_subscribeRankingTokens(s,t,r){let n=d(s),i=[this._client.stream.subscribeRankingTokensStats({chain:n,channelType:t,callback:a=>r(a.map(c=>L(s,c)))}),this._client.stream.subscribeRankingTokensHolders({chain:n,channelType:t,callback:a=>r(a.map(c=>M(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensSupply({chain:n,channelType:t,callback:a=>r(a.map(c=>E(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:n,channelType:t,callback:a=>r(a.map(c=>V(s,c.tokenAddress,c)))})];return {unsubscribe:()=>i.forEach(a=>a.unsubscribe())}}};function Ke(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=Se;exports.KYBERSWAP_NATIVE_SENTINEL=Fe;exports.NotImplementedError=w;exports.fromActivityPage=he;exports.fromChainDTO=p;exports.fromLatestBlock=ce;exports.fromPnlDetailItems=fe;exports.fromPnlDetailsPage=ge;exports.fromSendTxResult=ue;exports.fromSwapRoute=de;exports.fromTokenCandle=re;exports.fromTokenCreatorDTO=Ne;exports.fromTokenDTO=g;exports.fromTokenHolderPage=ie;exports.fromTokenLiquidityDTO=Zs;exports.fromTokenMarketDataDTO=O;exports.fromTokenMetadataSubscribed=Ae;exports.fromTokenPage=le;exports.fromTokenSecurity=ne;exports.fromTokenStatsDTO=_;exports.fromTokenSubscribed=Pe;exports.fromTradePage=be;exports.fromWalletNetWorthByTokens=ke;exports.fromWalletPnlSummary=Te;exports.fromWalletPortfolios=me;exports.fromWsActivity=$;exports.fromWsCandle=ye;exports.fromWsTokenBondingCurveToSubscribed=z;exports.fromWsTokenDataSubscribed=L;exports.fromWsTokenHolderToSubscribed=M;exports.fromWsTokenLiquidityToSubscribed=V;exports.fromWsTokenMarketDataFromHolder=je;exports.fromWsTokenMarketDataFromStats=Ge;exports.fromWsTokenMaxLiquidityToSubscribed=Ie;exports.fromWsTokenStats=$e;exports.fromWsTokenSupplyToSubscribed=E;exports.fromWsTokenTotalLiquidityToSubscribed=Ue;exports.fromWsTradeActivity=q;exports.isNotImplementedError=Ye;exports.toChainDTO=d;exports.toFieldDTO=B;exports.toMintForRoute=et;exports.toRangeFiltersDTO=te;exports.toResolutionDTO=N;exports.toSearchFieldDTO=se;exports.toSendTxInput=ae;exports.toSortDirectionDTO=De;exports.toSwapRouteInput=oe;exports.version=Re;//# sourceMappingURL=index.js.map
|
|
2
3
|
//# sourceMappingURL=index.js.map
|