@liberfi.io/client 0.3.37 → 0.3.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _liberfi_io_types from '@liberfi.io/types';
2
- import { IClient, ISubscribeClient, Chain, Token, TokenResolution, GetTokenCandlesOptions, TokenCandle, TokenSecurity, TokenStats, GetTokenHoldersOptions, CursorList, TokenHolder, TokenMarketData, GetTokenListOptions, Pool, SearchTokensOptions, SearchTokenCursorList, SwapParams, SwapRoute, LatestBlockParams, BlockchainLatestBlock, SendTxParams, SendTxResult, WalletPortfolios, WalletPnlResolution, WalletPnl, GetWalletPortfolioPnlsOptions, WalletPortfolioPnls, Portfolio, PortfolioPnl, GetTradesOptions, Trade, GetActivitiesOptions, Activity, GetWalletLimitOrdersOptions, GetTokensByCreatorOptions, TokenSubscribed, ISubscription, WalletPnlSubscribed, PortfolioSubscribed, PortfolioPnlSubscribed, PoolSubscribed, TokenFieldOption, TokenFilterOption, TokenCreator as TokenCreator$1, TokenLiquidity } from '@liberfi.io/types';
3
- import { ChainSymbol, Resolution, RangeFilterCondition, TokenCreator, Token as Token$1, TokenStats as TokenStats$1, DexPool, RankingPool, WsRankingPool, TokenMarketData as TokenMarketData$1, TokenCandle as TokenCandle$1, TokenSecurityResponse, SwapRouteInput, SendTxInput, PageResponseTokenHolder, TokenPage, SwapRouteResponse, BlockchainLatestBlock as BlockchainLatestBlock$1, SendTxResponse, WalletNetWorthPage, WalletPnlSummary, PnlDetailsResult, NetWorthByTokensResult, PageResponseTradeDetail, WsNewToken, WsTokenMetadata, WsCandle, WsTokenStat, WsRankingTokenList, WsTokenSupply, WsTokenHolder, WsTokenLiquidity, WsTokenBondingCurve, WsTokenMaxLiquidity, WsTokenTotalLiquidity, WsTradeActivity } from '@chainstream-io/sdk';
2
+ import { IClient, ISubscribeClient, Chain, Token, TokenResolution, GetTokenCandlesOptions, TokenCandle, TokenSecurity, TokenStats, GetTokenHoldersOptions, CursorList, TokenHolder, GetTokenTopTradersOptions, TokenTopTrader, TokenMarketData, GetTokenListOptions, Pool, SearchTokensOptions, SearchTokenCursorList, SwapParams, SwapRoute, LatestBlockParams, BlockchainLatestBlock, SendTxParams, SendTxResult, WalletPortfolios, WalletPnlResolution, WalletPnl, GetWalletPortfolioPnlsOptions, WalletPortfolioPnls, Portfolio, PortfolioPnl, GetTradesOptions, Trade, GetActivitiesOptions, Activity, GetWalletLimitOrdersOptions, GetTokensByCreatorOptions, TokenSubscribed, ISubscription, WalletPnlSubscribed, PortfolioSubscribed, PortfolioPnlSubscribed, PoolSubscribed, TokenFieldOption, TokenFilterOption, TokenCreator as TokenCreator$1, TokenLiquidity } from '@liberfi.io/types';
3
+ import { ChainSymbol, Resolution, RangeFilterCondition, TokenCreator, Token as Token$1, TokenStats as TokenStats$1, DexPool, RankingPool, WsRankingPool, TokenMarketData as TokenMarketData$1, TokenCandle as TokenCandle$1, TokenSecurityResponse, SwapRouteInput, SendTxInput, PageResponseTokenHolder, PageResponseTokenTopTrader, TokenPage, SwapRouteResponse, BlockchainLatestBlock as BlockchainLatestBlock$1, SendTxResponse, WalletNetWorthPage, WalletPnlSummary, PnlDetailsResult, NetWorthByTokensResult, PageResponseTradeDetail, WsNewToken, WsTokenMetadata, WsCandle, WsTokenStat, WsRankingTokenList, WsTokenSupply, WsTokenHolder, WsTokenLiquidity, WsTokenBondingCurve, WsTokenMaxLiquidity, WsTokenTotalLiquidity, WsTradeActivity } from '@chainstream-io/sdk';
4
4
 
5
5
  /** Async or sync token provider for authentication. */
6
6
  interface ClientTokenProviderFn {
@@ -33,6 +33,7 @@ declare class Client implements IClient, ISubscribeClient {
33
33
  getTokenSecurity(chain: Chain, address: string): Promise<TokenSecurity>;
34
34
  getTokenStats(chain: Chain, address: string): Promise<TokenStats>;
35
35
  getTokenHolders(chain: Chain, address: string, options?: GetTokenHoldersOptions): Promise<CursorList<TokenHolder>>;
36
+ getTokenTopTraders(chain: Chain, address: string, options?: GetTokenTopTradersOptions): Promise<CursorList<TokenTopTrader>>;
36
37
  getTokenMarketData(chain: Chain, address: string): Promise<TokenMarketData>;
37
38
  getNewTokens(chain: Chain, options?: GetTokenListOptions): Promise<Array<Token>>;
38
39
  getNewPools(chain: Chain, _options?: GetTokenListOptions): Promise<Array<Pool>>;
@@ -262,6 +263,7 @@ declare function toSwapRouteInput(params: SwapParams): SwapRouteInput;
262
263
  declare function toSendTxInput(params: SendTxParams): SendTxInput;
263
264
  declare function fromTokenHolderPage(input: CursorPageDTO<Phase3TokenHolderDTO>): CursorList<TokenHolder>;
264
265
  declare function fromSdkTokenHolderPage(input: PageResponseTokenHolder): CursorList<TokenHolder>;
266
+ declare function fromSdkTokenTopTraderPage(input: PageResponseTokenTopTrader): CursorList<TokenTopTrader>;
265
267
  declare function fromTokenPage(input: TokenPage): SearchTokenCursorList;
266
268
  declare function fromSwapRoute(input: SwapRouteResponse): SwapRoute;
267
269
  declare function fromLatestBlock(input: BlockchainLatestBlock$1): BlockchainLatestBlock;
@@ -291,4 +293,4 @@ declare function fromWsTokenMarketDataFromHolder(input: WsTokenHolder): Partial<
291
293
  declare function fromWsTradeActivity(chain: Chain, input: WsTradeActivity): Trade;
292
294
  declare function fromWsActivity(chain: Chain, input: WsTradeActivity): Activity;
293
295
 
294
- export { Client, type ClientOptions, type ClientTokenProvider, type ClientTokenProviderFn, KYBERSWAP_NATIVE_SENTINEL, NotImplementedError, fromActivityPage, fromChainDTO, fromLatestBlock, fromPnlDetailItems, fromPnlDetailsPage, fromRankingPoolDTO, fromSdkActivityPage, fromSdkTokenHolderPage, fromSendTxResult, fromSwapRoute, fromTokenCandle, fromTokenCreatorDTO, fromTokenDTO, fromTokenHolderPage, fromTokenLiquidityDTO, fromTokenMarketDataDTO, fromTokenMetadataSubscribed, fromTokenPage, fromTokenSecurity, fromTokenStatsDTO, fromTokenSubscribed, fromTradePage, fromWalletNetWorthByTokens, fromWalletPnlSummary, fromWalletPortfolios, fromWsActivity, fromWsCandle, fromWsRankingPoolToSubscribed, fromWsRankingTokenListToSubscribed, fromWsTokenBondingCurveToSubscribed, fromWsTokenDataSubscribed, fromWsTokenHolderToSubscribed, fromWsTokenLiquidityToSubscribed, fromWsTokenMarketDataFromHolder, fromWsTokenMarketDataFromStats, fromWsTokenMaxLiquidityToSubscribed, fromWsTokenStats, fromWsTokenSupplyToSubscribed, fromWsTokenTotalLiquidityToSubscribed, fromWsTradeActivity, isNotImplementedError, toChainDTO, toFieldDTO, toMintForRoute, toRangeFiltersDTO, toResolutionDTO, toSearchFieldDTO, toSendTxInput, toSortDirectionDTO, toSwapRouteInput };
296
+ export { Client, type ClientOptions, type ClientTokenProvider, type ClientTokenProviderFn, KYBERSWAP_NATIVE_SENTINEL, NotImplementedError, fromActivityPage, fromChainDTO, fromLatestBlock, fromPnlDetailItems, fromPnlDetailsPage, fromRankingPoolDTO, fromSdkActivityPage, fromSdkTokenHolderPage, fromSdkTokenTopTraderPage, fromSendTxResult, fromSwapRoute, fromTokenCandle, fromTokenCreatorDTO, fromTokenDTO, fromTokenHolderPage, fromTokenLiquidityDTO, fromTokenMarketDataDTO, fromTokenMetadataSubscribed, fromTokenPage, fromTokenSecurity, fromTokenStatsDTO, fromTokenSubscribed, fromTradePage, fromWalletNetWorthByTokens, fromWalletPnlSummary, fromWalletPortfolios, fromWsActivity, fromWsCandle, fromWsRankingPoolToSubscribed, fromWsRankingTokenListToSubscribed, fromWsTokenBondingCurveToSubscribed, fromWsTokenDataSubscribed, fromWsTokenHolderToSubscribed, fromWsTokenLiquidityToSubscribed, fromWsTokenMarketDataFromHolder, fromWsTokenMarketDataFromStats, fromWsTokenMaxLiquidityToSubscribed, fromWsTokenStats, fromWsTokenSupplyToSubscribed, fromWsTokenTotalLiquidityToSubscribed, fromWsTradeActivity, isNotImplementedError, toChainDTO, toFieldDTO, toMintForRoute, toRangeFiltersDTO, toResolutionDTO, toSearchFieldDTO, toSendTxInput, toSortDirectionDTO, toSwapRouteInput };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _liberfi_io_types from '@liberfi.io/types';
2
- import { IClient, ISubscribeClient, Chain, Token, TokenResolution, GetTokenCandlesOptions, TokenCandle, TokenSecurity, TokenStats, GetTokenHoldersOptions, CursorList, TokenHolder, TokenMarketData, GetTokenListOptions, Pool, SearchTokensOptions, SearchTokenCursorList, SwapParams, SwapRoute, LatestBlockParams, BlockchainLatestBlock, SendTxParams, SendTxResult, WalletPortfolios, WalletPnlResolution, WalletPnl, GetWalletPortfolioPnlsOptions, WalletPortfolioPnls, Portfolio, PortfolioPnl, GetTradesOptions, Trade, GetActivitiesOptions, Activity, GetWalletLimitOrdersOptions, GetTokensByCreatorOptions, TokenSubscribed, ISubscription, WalletPnlSubscribed, PortfolioSubscribed, PortfolioPnlSubscribed, PoolSubscribed, TokenFieldOption, TokenFilterOption, TokenCreator as TokenCreator$1, TokenLiquidity } from '@liberfi.io/types';
3
- import { ChainSymbol, Resolution, RangeFilterCondition, TokenCreator, Token as Token$1, TokenStats as TokenStats$1, DexPool, RankingPool, WsRankingPool, TokenMarketData as TokenMarketData$1, TokenCandle as TokenCandle$1, TokenSecurityResponse, SwapRouteInput, SendTxInput, PageResponseTokenHolder, TokenPage, SwapRouteResponse, BlockchainLatestBlock as BlockchainLatestBlock$1, SendTxResponse, WalletNetWorthPage, WalletPnlSummary, PnlDetailsResult, NetWorthByTokensResult, PageResponseTradeDetail, WsNewToken, WsTokenMetadata, WsCandle, WsTokenStat, WsRankingTokenList, WsTokenSupply, WsTokenHolder, WsTokenLiquidity, WsTokenBondingCurve, WsTokenMaxLiquidity, WsTokenTotalLiquidity, WsTradeActivity } from '@chainstream-io/sdk';
2
+ import { IClient, ISubscribeClient, Chain, Token, TokenResolution, GetTokenCandlesOptions, TokenCandle, TokenSecurity, TokenStats, GetTokenHoldersOptions, CursorList, TokenHolder, GetTokenTopTradersOptions, TokenTopTrader, TokenMarketData, GetTokenListOptions, Pool, SearchTokensOptions, SearchTokenCursorList, SwapParams, SwapRoute, LatestBlockParams, BlockchainLatestBlock, SendTxParams, SendTxResult, WalletPortfolios, WalletPnlResolution, WalletPnl, GetWalletPortfolioPnlsOptions, WalletPortfolioPnls, Portfolio, PortfolioPnl, GetTradesOptions, Trade, GetActivitiesOptions, Activity, GetWalletLimitOrdersOptions, GetTokensByCreatorOptions, TokenSubscribed, ISubscription, WalletPnlSubscribed, PortfolioSubscribed, PortfolioPnlSubscribed, PoolSubscribed, TokenFieldOption, TokenFilterOption, TokenCreator as TokenCreator$1, TokenLiquidity } from '@liberfi.io/types';
3
+ import { ChainSymbol, Resolution, RangeFilterCondition, TokenCreator, Token as Token$1, TokenStats as TokenStats$1, DexPool, RankingPool, WsRankingPool, TokenMarketData as TokenMarketData$1, TokenCandle as TokenCandle$1, TokenSecurityResponse, SwapRouteInput, SendTxInput, PageResponseTokenHolder, PageResponseTokenTopTrader, TokenPage, SwapRouteResponse, BlockchainLatestBlock as BlockchainLatestBlock$1, SendTxResponse, WalletNetWorthPage, WalletPnlSummary, PnlDetailsResult, NetWorthByTokensResult, PageResponseTradeDetail, WsNewToken, WsTokenMetadata, WsCandle, WsTokenStat, WsRankingTokenList, WsTokenSupply, WsTokenHolder, WsTokenLiquidity, WsTokenBondingCurve, WsTokenMaxLiquidity, WsTokenTotalLiquidity, WsTradeActivity } from '@chainstream-io/sdk';
4
4
 
5
5
  /** Async or sync token provider for authentication. */
6
6
  interface ClientTokenProviderFn {
@@ -33,6 +33,7 @@ declare class Client implements IClient, ISubscribeClient {
33
33
  getTokenSecurity(chain: Chain, address: string): Promise<TokenSecurity>;
34
34
  getTokenStats(chain: Chain, address: string): Promise<TokenStats>;
35
35
  getTokenHolders(chain: Chain, address: string, options?: GetTokenHoldersOptions): Promise<CursorList<TokenHolder>>;
36
+ getTokenTopTraders(chain: Chain, address: string, options?: GetTokenTopTradersOptions): Promise<CursorList<TokenTopTrader>>;
36
37
  getTokenMarketData(chain: Chain, address: string): Promise<TokenMarketData>;
37
38
  getNewTokens(chain: Chain, options?: GetTokenListOptions): Promise<Array<Token>>;
38
39
  getNewPools(chain: Chain, _options?: GetTokenListOptions): Promise<Array<Pool>>;
@@ -262,6 +263,7 @@ declare function toSwapRouteInput(params: SwapParams): SwapRouteInput;
262
263
  declare function toSendTxInput(params: SendTxParams): SendTxInput;
263
264
  declare function fromTokenHolderPage(input: CursorPageDTO<Phase3TokenHolderDTO>): CursorList<TokenHolder>;
264
265
  declare function fromSdkTokenHolderPage(input: PageResponseTokenHolder): CursorList<TokenHolder>;
266
+ declare function fromSdkTokenTopTraderPage(input: PageResponseTokenTopTrader): CursorList<TokenTopTrader>;
265
267
  declare function fromTokenPage(input: TokenPage): SearchTokenCursorList;
266
268
  declare function fromSwapRoute(input: SwapRouteResponse): SwapRoute;
267
269
  declare function fromLatestBlock(input: BlockchainLatestBlock$1): BlockchainLatestBlock;
@@ -291,4 +293,4 @@ declare function fromWsTokenMarketDataFromHolder(input: WsTokenHolder): Partial<
291
293
  declare function fromWsTradeActivity(chain: Chain, input: WsTradeActivity): Trade;
292
294
  declare function fromWsActivity(chain: Chain, input: WsTradeActivity): Activity;
293
295
 
294
- export { Client, type ClientOptions, type ClientTokenProvider, type ClientTokenProviderFn, KYBERSWAP_NATIVE_SENTINEL, NotImplementedError, fromActivityPage, fromChainDTO, fromLatestBlock, fromPnlDetailItems, fromPnlDetailsPage, fromRankingPoolDTO, fromSdkActivityPage, fromSdkTokenHolderPage, fromSendTxResult, fromSwapRoute, fromTokenCandle, fromTokenCreatorDTO, fromTokenDTO, fromTokenHolderPage, fromTokenLiquidityDTO, fromTokenMarketDataDTO, fromTokenMetadataSubscribed, fromTokenPage, fromTokenSecurity, fromTokenStatsDTO, fromTokenSubscribed, fromTradePage, fromWalletNetWorthByTokens, fromWalletPnlSummary, fromWalletPortfolios, fromWsActivity, fromWsCandle, fromWsRankingPoolToSubscribed, fromWsRankingTokenListToSubscribed, fromWsTokenBondingCurveToSubscribed, fromWsTokenDataSubscribed, fromWsTokenHolderToSubscribed, fromWsTokenLiquidityToSubscribed, fromWsTokenMarketDataFromHolder, fromWsTokenMarketDataFromStats, fromWsTokenMaxLiquidityToSubscribed, fromWsTokenStats, fromWsTokenSupplyToSubscribed, fromWsTokenTotalLiquidityToSubscribed, fromWsTradeActivity, isNotImplementedError, toChainDTO, toFieldDTO, toMintForRoute, toRangeFiltersDTO, toResolutionDTO, toSearchFieldDTO, toSendTxInput, toSortDirectionDTO, toSwapRouteInput };
296
+ export { Client, type ClientOptions, type ClientTokenProvider, type ClientTokenProviderFn, KYBERSWAP_NATIVE_SENTINEL, NotImplementedError, fromActivityPage, fromChainDTO, fromLatestBlock, fromPnlDetailItems, fromPnlDetailsPage, fromRankingPoolDTO, fromSdkActivityPage, fromSdkTokenHolderPage, fromSdkTokenTopTraderPage, fromSendTxResult, fromSwapRoute, fromTokenCandle, fromTokenCreatorDTO, fromTokenDTO, fromTokenHolderPage, fromTokenLiquidityDTO, fromTokenMarketDataDTO, fromTokenMetadataSubscribed, fromTokenPage, fromTokenSecurity, fromTokenStatsDTO, fromTokenSubscribed, fromTradePage, fromWalletNetWorthByTokens, fromWalletPnlSummary, fromWalletPortfolios, fromWsActivity, fromWsCandle, fromWsRankingPoolToSubscribed, fromWsRankingTokenListToSubscribed, fromWsTokenBondingCurveToSubscribed, fromWsTokenDataSubscribed, fromWsTokenHolderToSubscribed, fromWsTokenLiquidityToSubscribed, fromWsTokenMarketDataFromHolder, fromWsTokenMarketDataFromStats, fromWsTokenMaxLiquidityToSubscribed, fromWsTokenStats, fromWsTokenSupplyToSubscribed, fromWsTokenTotalLiquidityToSubscribed, fromWsTradeActivity, isNotImplementedError, toChainDTO, toFieldDTO, toMintForRoute, toRangeFiltersDTO, toResolutionDTO, toSearchFieldDTO, toSendTxInput, toSortDirectionDTO, toSwapRouteInput };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');var w=class extends Error{code="NotImplemented";constructor(s,r){super(r?`${s} is not yet implemented by the backend: ${r}`:`${s} is not yet implemented by the backend`),this.name="NotImplementedError";}};function ds(e){return e instanceof Error&&e.code==="NotImplemented"}var Ee="https://api.chainstream.io";async function Me(e){return typeof e=="string"?e:Promise.resolve(e.getToken())}function ze(e,s,r){if(r!=null){if(r instanceof Date){e.set(s,String(r.getTime()));return}e.set(s,String(r));}}function Ve(e,s){let r=e.endsWith("/")?e.slice(0,-1):e,t=s.startsWith("/")?s:`/${s}`;return r+t}async function Y(e,s,r){let t=new URL(Ve(e.baseUrl,s)),n=new URLSearchParams;for(let[u,m]of Object.entries(r))ze(n,u,m);let a=n.toString();a&&(t.search=a);let c=await Me(e.accessToken),i=await fetch(t.toString(),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});if(!i.ok){let u=await i.text().catch(()=>"");throw new Error(`[phase3Http] ${i.status} ${i.statusText} ${t.pathname}: ${u}`)}return await i.json()}function X(e,s){return {baseUrl:s??Ee,accessToken:e}}function Z(e,s,r,t){return Y(e,`/v2/token/${encodeURIComponent(s)}/${encodeURIComponent(r)}/holders`,t)}function ee(e,s,r,t){return Y(e,`/v2/wallet/${encodeURIComponent(s)}/${encodeURIComponent(r)}/pnl-details`,t)}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 _(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 Ge(e){return e}function ne(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 L(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 oe(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let r={field:L(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 H(e){switch(e){case sdk.ChainSymbol.eth:return types.Chain.ETHEREUM;case sdk.ChainSymbol.bsc:return types.Chain.BINANCE;case sdk.ChainSymbol.sol:case "solana":return types.Chain.SOLANA}throw new Error(`Unsupported chain: ${e}`)}function $e(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function T(e){return {chain:H(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($e),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?F(e.stats):void 0,marketData:e.marketData?E(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function F(e){return {"1m":y(e,"1m"),"5m":y(e,"5m"),"15m":y(e,"15m"),"30m":y(e,"30m"),"1h":y(e,"1h"),"4h":y(e,"4h"),"24h":y(e,"24h")}}function I(e){return e===void 0?void 0:parseInt(e)}function y(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 Hr(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function ae(e){if(e)return {image:"image"in e?e.image??void 0:void 0,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0}}function ie(e){if(e)return {poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenALiquidityInUsd:e.tokenALiquidityInUsd,tokenBAddress:e.tokenBAddress,tokenBLiquidityInUsd:e.tokenBLiquidityInUsd}}function le(e,s){return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:ae(s.dex),token:s.token?T(s.token):void 0,balance:ie(s.balance)}}function je(e){if(e.length!==0)return e.reduce((s,r)=>({...s,...Object.fromEntries(Object.entries(r).filter(([,t])=>t!==void 0)),stats:r.stats??s.stats,marketData:r.marketData?{...s.marketData,...r.marketData}:s.marketData,socialMedias:r.socialMedias?{...s.socialMedias,...r.socialMedias}:s.socialMedias,launchedFrom:r.launchedFrom?{...s.launchedFrom,...r.launchedFrom}:s.launchedFrom,migratedTo:r.migratedTo?{...s.migratedTo,...r.migratedTo}:s.migratedTo}),e[0])}function de(e,s){let r=s.token?je(V(e,s.token)):void 0;return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:ae(s.dex),token:r,balance:ie(s.balance)}}function E(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price:e.priceInNative??e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,holders:e.holders?parseInt(e.holders):void 0,top10Holdings:e.top10TotalHoldings??void 0,top10HoldingsRatio:e.top10HoldingsRatio??void 0,top50Holdings:e.top50TotalHoldings??void 0,top50HoldingsRatio:e.top50HoldingsRatio??void 0,top100Holdings:e.top100TotalHoldings??void 0,top100HoldingsRatio:e.top100HoldingsRatio??void 0,bluechipHolders:e.bluechipTotalHolders?parseInt(e.bluechipTotalHolders):void 0,bluechipHoldings:e.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:e.bluechipHoldingsRatio??void 0,kolHolders:e.kolTotalHolders?parseInt(e.kolTotalHolders):void 0,kolHoldings:e.kolTotalHoldings??void 0,kolHoldingsRatio:e.kolHoldingsRatio??void 0,sniperHolders:e.sniperTotalHolders?parseInt(e.sniperTotalHolders):void 0,sniperHoldings:e.sniperTotalHoldings??void 0,sniperHoldingsRatio:e.sniperHoldingsRatio??void 0,proHolders:e.proTotalHolders?parseInt(e.proTotalHolders):void 0,proHoldings:e.proTotalHoldings??void 0,proHoldingsRatio:e.proHoldingsRatio??void 0,insiderHolders:e.insiderTotalHolders?parseInt(e.insiderTotalHolders):void 0,insiderHoldings:e.insiderTotalHoldings??void 0,insiderHoldingsRatio:e.insiderHoldingsRatio??void 0,sandwichHolders:e.sandwishTotalHolders?parseInt(e.sandwishTotalHolders):void 0,sandwichHoldings:e.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:e.sandwishHoldingsRatio??void 0,freshHolders:e.freshTotalHolders?parseInt(e.freshTotalHolders):void 0,freshHoldings:e.freshTotalHoldings??void 0,freshHoldingsRatio:e.freshHoldingsRatio??void 0,bundleHolders:e.bundleTotalHolders?parseInt(e.bundleTotalHolders):void 0,bundleHoldings:e.bundleTotalHoldings??void 0,bundleHoldingsRatio:e.bundleHoldingsRatio??void 0,devHolders:e.devTotalHolders?parseInt(e.devTotalHolders):void 0,devHoldings:e.devTotalHoldings??void 0,devHoldingsRatio:e.devHoldingsRatio??void 0}}function ce(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,volumeInTokenAmount:o(e.volumeInTokenAmount),trades:e.trades??void 0,resolution:s,timestamp:new Date(e.timestamp)}}function Qe(e){return e==="1d"?"24h":e}function ue(e){let s=e;return {hasTransferFee:s.hasTransferFee,isTransferFeeUpgradable:s.isTransferFeeUpgradable,isTransferable:s.isTransferable,isFreezable:s.isFreezable,isClosable:s.isClosable}}var Ke=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Je="0x0000000000000000000000000000000000000000",Ye="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function Xe(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function Ze(e){return e.toLowerCase()===Je.toLowerCase()?Ye:e}function es(e){return e.dex==="jupiter"?"jupiter":e.dex==="kyberswap"?"kyberswap":Ke.has(e.chain)?"jupiter":"kyberswap"}function O(e,s){return e==="jupiter"?Xe(s):e==="kyberswap"?Ze(s):s}function xr(e,s){return O(e,s)}function me(e){let s=es(e),r=O(s,e.input),t=O(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:r,outputMint:t,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 ke(e){return {signedTx:e.serializedTx}}function P(e){return e==null?void 0:new Date(e)}function Te(e){if(e!=null)return new Date(e<1e12?e*1e3:e)}function x(e){if(!(!e||e.length===0))return e}function ge(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage,tags:x(s.tags),lastActiveAt:P(s.lastActiveAt),startHoldingAt:P(s.startHoldingAt)}))}}function fe(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage,tags:x(s.tags),lastActiveAt:P(s.lastActiveAt),startHoldingAt:P(s.startHoldingAt)}))}}function be(e){let s=e;return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(T),extra:o(s.countsByProtocols)}}function he(e){return {serializedTx:e.serializedTx,recentBlockhash:o(e.recentBlockhash),lastValidBlockHeight:o(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function ye(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function Pe(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Ae(e,s){let r=(s.data??[]).map(t=>({chain:H(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}));return {chain:r[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:r}}function Ie(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:o(r.winRate),buyAmountInUsd:o(r.buyAmountInUsd),sellAmountInUsd:o(r.sellAmountInUsd),totalCostInUsd:o(r.totalCostInUsd),realizedProfitInUsd:o(r.realizedProfitInUsd),realizedProfitRatio:o(r.realizedProfitRatio),unrealizedProfitInUsd:o(r.unrealizedProfitInUsd),unrealizedProfitRatio:o(r.unrealizedProfitRatio),totalProfitInUsd:o(r.totalProfitInUsd),totalProfitRatio:o(r.totalProfitRatio),avgProfitPerTradeInUsd:o(r.avgProfitPerTradeInUsd)}}function ss(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:P(s.firstBuyAt),lastSellAt:P(s.lastSellAt)}}function M(e,s,r){let t=r.summary;return {chain:e,address:s,tokens:r.summary.tokens!=null?Number(r.summary.tokens):void 0,buys:r.summary.buys!=null?Number(r.summary.buys):void 0,sells:r.summary.sells!=null?Number(r.summary.sells):void 0,totalTrades:r.summary.totalTrades!=null?Number(r.summary.totalTrades):void 0,wins:r.summary.wins!=null?Number(r.summary.wins):void 0,losses:r.summary.losses!=null?Number(r.summary.losses):void 0,winRate:o(r.summary.winRate),buyAmountInUsd:o(r.summary.buyAmountInUsd),sellAmountInUsd:o(r.summary.sellAmountInUsd),totalCostInUsd:r.summary.totalCostInUsd,realizedProfitInUsd:o(r.summary.realizedProfitInUsd),unrealizedProfitInUsd:o(r.summary.unrealizedProfitInUsd),totalProfitInUsd:o(r.summary.totalProfitInUsd),totalProfitRatio:o(t.totalProfitRatio),avgProfitPerTradeInUsd:o(r.summary.avgProfitPerTradeInUsd),startCursor:o(r.startCursor),endCursor:o(r.endCursor),hasPrev:r.hasPrev,hasNext:r.hasNext,portfolios:r.data.map(n=>ss(e,n))}}function Se(e,s){return (s.data??[]).map(r=>({chain:H(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,isActive:r.isActive,avgCostUsd:o(r.avgCostUsd),lastActiveAt:P(r.lastActiveAt),walletTokenTags:x(r.walletTokenTags)}))}function Ue(e,s){return s.data.map(r=>({chain:e,address:r.tokenAddress,name:r.name??"",symbol:r.symbol??"",image:o(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 Ce(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(ve)}}function ve(e){let s=e.type.toLowerCase()==="buy";return {chain:H(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:Te(e.blockTimestamp)??new Date(0),gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:x(e.traderTags)}}function Re(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(ve)}}function pr(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(rs)}}function rs(e){let s=e.type.toLowerCase().replace(/ /g,"_"),r=s==="buy",t=Te(e.blockTimestamp)??new Date(0);return {chain:H(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:o(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:o(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:o(e.dexProgramAddress),protocolFamily:o(e.dexProtocolFamily),image:o(e.dexImage)},poolAddress:o(e.poolAddress),status:e.status??"success",time:t,gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:x(e.traderTags)}}function we(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 z(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 He(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Qe(e.resolution),timestamp:new Date(e.time)}}function ts(e){let s=["1m","5m","15m","30m","1h","4h","24h"],r=e,t={};for(let n of s){let a=r[`buys${n}`],c=r[`sells${n}`],i=r[`buyers${n}`],u=r[`sellers${n}`],m=r[`buyVolumeInUsd${n}`],A=r[`sellVolumeInUsd${n}`],C=r[`trades${n}`],v=r[`price${n}`],b=r[`openInUsd${n}`],R=r[`closeInUsd${n}`];if(!(a!==void 0||c!==void 0||C!==void 0||v!==void 0))continue;let N=C??(a!==void 0&&c!==void 0?a+c:void 0),_e=i!==void 0&&u!==void 0?i+u:void 0,Le=m!==void 0&&A!==void 0?new utils.SafeBigNumber(m).plus(A).toString():void 0,Fe=b&&R&&new utils.SafeBigNumber(b).gt(0)?new utils.SafeBigNumber(R).minus(b).div(b).toString():void 0;t[n]={buys:a,sells:c,trades:N,buyers:i,sellers:u,traders:_e,buyVolumesInUsd:m,sellVolumesInUsd:A,volumesInUsd:Le,openPriceInUsd:b,closePriceInUsd:R,priceInUsd:v??R,priceChange:Fe};}return t}function ns(e){return {priceInUsd:e.price}}function p(e,s){return {chain:e,address:s.address,stats:ts(s),marketData:ns(s)}}function V(e,s){let r=[];return s.metadata&&r.push(z(e,s.metadata)),s.stat&&r.push(p(e,s.stat)),s.holder&&r.push(D(e,s.holder.tokenAddress,s.holder)),s.supply&&r.push(W(e,s.supply.tokenAddress,s.supply)),s.bondingCurve&&r.push(B(e,s.bondingCurve)),r.filter(t=>t.address)}function W(e,s,r){return {chain:e,address:s,marketData:{totalSupply:r.supply,marketCapInUsd:r.marketCapInUsd}}}function D(e,s,r){return {chain:e,address:s,marketData:os(r)}}function q(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 B(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function xe(e,s,r){return {chain:e,address:s,liquidities:[{poolAddress:r.poolAddress,tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}]}}function pe(e,s,r){return {chain:e,address:s,marketData:{tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}}}function os(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,bluechipHolders:e.bluechipHolders===void 0?void 0:e.bluechipHolders,bluechipHoldings:e.bluechipHoldersAmount,bluechipHoldingsRatio:e.bluechipHoldersRatio,kolHolders:e.kolHolders===void 0?void 0:e.kolHolders,kolHoldings:e.kolHoldersAmount,kolHoldingsRatio:e.kolHoldersRatio,proHolders:e.proHolders===void 0?void 0:e.proHolders,proHoldings:e.proHoldersAmount,proHoldingsRatio:e.proHoldersRatio,insiderHolders:e.insiderHolders===void 0?void 0:e.insiderHolders,insiderHoldings:e.insiderHoldersAmount,insiderHoldingsRatio:e.insiderHoldersRatio,devHolders:e.devHolders===void 0?void 0:e.devHolders,devHoldings:e.devHoldersAmount,devHoldingsRatio:e.devHoldersRatio,sniperHolders:e.sniperHolders===void 0?void 0:e.sniperHolders,sniperHoldings:e.sniperHoldersAmount,sniperHoldingsRatio:e.sniperHoldersRatio,freshHolders:e.freshHolders===void 0?void 0:e.freshHolders,freshHoldings:e.freshHoldersAmount,freshHoldingsRatio:e.freshHoldersRatio,bundleHolders:e.bundleHolders===void 0?void 0:e.bundleHolders,bundleHoldings:e.bundleHoldersAmount,bundleHoldingsRatio:e.bundleHoldersRatio,sandwichHolders:e.sandwichHolders===void 0?void 0:e.sandwichHolders,sandwichHoldings:e.sandwichHoldersAmount,sandwichHoldingsRatio:e.sandwichHoldersRatio}}function G(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 $(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 Oe=class e{constructor(s,r){this.accessToken=s;this.options=r;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._phase3=X(this.accessToken,this.options?.serverUrl);}_client;_phase3;async getToken(s,r){let t=await this._client.token.getToken(d(s),r);return T(t)}async getTokens(s,r){return (await this._client.token.getTokens(d(s),{tokenAddresses:r.join(",")})).map(T)}async getTokenCandles(s,r,t,n){return (await this._client.token.getCandles(d(s),r,{resolution:_(t),from:n?.after?.getTime(),to:n?.before?.getTime(),limit:n?.limit})).map(c=>ce(c,t))}async getTokenSecurity(s,r){let t=await this._client.token.getSecurity(d(s),r);return ue(t)}async getTokenStats(s,r){let t=await this._client.token.getStats(d(s),r);return F(t)}async getTokenHolders(s,r,t){if(t?.sortBy!=="realizedPnl"){let a=await this._client.token.getHolders(d(s),r,{cursor:t?.cursor,limit:t?.limit,direction:t?.direction,sortBy:t?.sortBy==="lastActiveAt"?sdk.HolderSortBy.lastActiveAt:t?.sortBy==="holdingUsd"?sdk.HolderSortBy.holdingUsd:void 0});return fe(a)}let n=await Z(this._phase3,d(s),r,{cursor:t?.cursor,limit:t?.limit,direction:t?.direction,sortBy:t?.sortBy});return ge(n)}async getTokenMarketData(s,r){let t=await this._client.token.getMarketData(d(s),r);return E(t)}async getNewTokens(s,r){return (await this._client.ranking.getNewTokens(d(s),this._buildRankingParams(r))).map(T)}async getNewPools(s,r){return (await this._client.ranking.getRankingPools(d(s),sdk.RankingPoolType.NewPool)).map(n=>le(s,n))}async getFinalStretchTokens(s,r){return (await this._client.ranking.getFinalStretchTokens(d(s),this._buildRankingParams(r))).map(T)}async getMigratedTokens(s,r){return (await this._client.ranking.getMigratedTokens(d(s),this._buildRankingParams(r))).map(T)}async getTrendingTokens(s,r,t){return (await this._client.ranking.getHotTokens(d(s),r,this._buildRankingParams(t))).map(T)}async getStockTokens(s,r){return (await this._client.ranking.getStocksTokens(d(s),this._buildRankingParams(r))).map(T)}async searchTokens(s){let r=await this._client.token.search({chains:s?.chains?.map(d),q:s?.keyword,limit:s?.limit,cursor:s?.cursor,sortBy:s?.sortBy?ne(s.sortBy):void 0,sort:s?.sortDirection});return be(r)}async swapRoute(s){let r=await this._client.dex.route(d(s.chain),me(s));return he(r)}async getLatestBlock(s){let r=await this._client.blockchain.getLatestBlock(d(s.chain));return ye(r)}async sendTx(s){let r=await this._client.transaction.send(d(s.chain),ke(s));return Pe(r)}async checkTxSuccess(s,r,t){let{success:n}=await this._client.waitForJob(r,t);return n}async getWalletPortfolios(s,r,t){let n=e._CHAIN_TO_BALANCE_PARAM[s];if(n&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,n,r);let a=await this._client.wallet.getNetWorth(d(s),r,{cursor:t?.cursor,limit:t?.limit??100});return Ae(s,a)}async getWalletPnl(s,r,t){let n=await this._client.wallet.getPnl(d(s),r,t?{resolution:t}:void 0);return Ie(s,r,n)}async getWalletPortfolioPnls(s,r,t){if(t?.resolution!=="90d"){let a=await this._client.wallet.getPnlDetails(d(s),r,{resolution:t?.resolution==="7d"?sdk.PnlResolution["7d"]:sdk.PnlResolution["30d"],positionState:t?.positionState==="closed"?sdk.PositionState.closed:t?.positionState==="all"?sdk.PositionState.all:t?.positionState==="open"?sdk.PositionState.open:void 0,sortBy:t?.sortBy==="realizedPnl"?sdk.PnlSortBy.realizedPnl:t?.sortBy==="unrealizedPnl"?sdk.PnlSortBy.unrealizedPnl:t?.sortBy==="totalPnl"?sdk.PnlSortBy.totalPnl:void 0,cursor:t?.cursor,limit:t?.limit??100,direction:t?.direction});return M(s,r,a)}let n=await ee(this._phase3,d(s),r,{resolution:t?.resolution??"30d",positionState:t?.positionState,sortBy:t?.sortBy,cursor:t?.cursor,limit:t?.limit??100,direction:t?.direction});return M(s,r,n)}async getWalletPortfoliosByTokens(s,r,t){let n=e._CHAIN_TO_BALANCE_PARAM[s];if(n&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,n,r,t);let a=await this._client.wallet.getNetWorthByTokens(d(s),r,{tokenAddresses:t.join(",")});return Se(s,a)}async getWalletPortfolioPnlsByTokens(s,r,t){let n=await this._client.wallet.getPnlByToken(d(s),r,{tokenAddresses:t.join(",")});return Ue(s,n)}async getWalletTrades(s,r,t){return this._getTrades(s,{walletAddress:r},t)}async getTokenTrades(s,r,t){return this._getTrades(s,{tokenAddress:r},t)}async getWalletActivities(s,r,t){return this._getActivities(s,{walletAddress:r},t)}async getTokenActivities(s,r,t){return this._getActivities(s,{tokenAddress:r},t)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}async getWalletLimitOrders(s,r,t){throw new w("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getTokensByCreator(s,r,t){throw new w("Client.getTokensByCreator","no creator-index endpoint on the backend yet")}subscribeToken(s,r,t){return this.subscribeTokens(s,[r],t)}subscribeTokens(s,r,t){let n=d(s),a=Array.from(new Set(r.map(i=>i.trim()).filter(Boolean)));if(a.length===0)return {unsubscribe:()=>{}};let c=this._client.stream.batchSubscribe(()=>a.flatMap(i=>[this._client.stream.subscribeTokenStats({chain:n,tokenAddress:i,callback:u=>t([p(s,u)])}),this._client.stream.subscribeTokenHolders({chain:n,tokenAddress:i,callback:u=>t([D(s,i,u)])}),this._client.stream.subscribeTokenSupply({chain:n,tokenAddress:i,callback:u=>t([W(s,i,u)])}),this._client.stream.subscribeTokenLiquidity({chain:n,tokenAddress:i,callback:u=>t([q(s,i,u)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:n,tokenAddress:i,callback:u=>t([xe(s,i,u)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:n,tokenAddress:i,callback:u=>t([pe(s,i,u)])})]));return {unsubscribe:()=>{let i=this._client.stream;if(i.batchUnsubscribe){i.batchUnsubscribe(c);return}c.forEach(u=>u.unsubscribe());}}}subscribeTokenCandles(s,r,t,n){return this._client.stream.subscribeTokenCandles({chain:d(s),tokenAddress:r,resolution:_(t),callback:a=>n([He(a)])})}subscribeWalletPnl(s,r,t){return this._client.stream.subscribeWalletPnlList({chain:d(s),walletAddress:r,callback:n=>t(n.map(a=>({chain:s,address:a.walletAddress,buys:a.buys,buyAmountInUsd:a.buyAmountInUsd,sells:a.sells,sellAmountInUsd:a.sellAmountInUsd,wins:a.wins,winRate:a.winRatio,totalProfitInUsd:a.pnlInUsd,totalProfitRatio:a.pnlRatio,avgProfitPerTradeInUsd:a.averagePnlInUsd,tokens:a.tokens,resolution:a.resolution})))})}subscribeWalletPortfolios(s,r,t){return this._client.stream.subscribeWalletBalance({chain:d(s),walletAddress:r,callback:n=>t(n.map(a=>({chain:s,walletAddress:a.walletAddress,tokenAddress:a.tokenAddress,priceInUsd:a.tokenPriceInUsd,amount:a.balance})))})}subscribeWalletPortfolioPnls(s,r,t){return this._client.stream.subscribeWalletPnl({chain:d(s),walletAddress:r,callback:n=>t([{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,r,t){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:r,callback:n=>t([G(s,n)])})}subscribeTokenTrades(s,r,t){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:r,callback:n=>t([G(s,n)])})}subscribeWalletActivities(s,r,t){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:r,callback:n=>t([$(s,n)])})}subscribeTokenActivities(s,r,t){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:r,callback:n=>t([$(s,n)])})}subscribeNewTokens(s,r){let t=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.New,r),a=[this._client.stream.subscribeNewToken({chain:t,callback:c=>r([we(s,c)])}),this._client.stream.subscribeNewTokensMetadata({chain:t,callback:c=>r(c.map(i=>z(s,i)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:t,callback:c=>r(c.map(i=>B(s,i)))})];return {unsubscribe:()=>{n.unsubscribe(),a.forEach(c=>c.unsubscribe());}}}subscribeNewPools(s,r){return this._client.stream.subscribeNewPool({chain:d(s),callback:t=>r([de(s,t)])})}subscribeTrendingTokens(s,r){return this._subscribeRankingTokenList(s,sdk.WsRankingType.HOT,r)}subscribeMigratedTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,r)}subscribeFinalStretchTokens(s,r){let t=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,r),a=this._client.stream.subscribeRankingTokensBondingCurve({chain:t,callback:c=>r(c.map(i=>B(s,i)))});return {unsubscribe:()=>{n.unsubscribe(),a.unsubscribe();}}}subscribeStockTokens(s,r){return this._subscribeRankingTokenList(s,sdk.WsRankingType.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,t,n){let a=this.options.nativeBalanceApiUrl,c=new URLSearchParams({chain:r,address:t});n?.length&&c.set("tokens",n.join(","));let i=await fetch(`${a}?${c.toString()}`);if(!i.ok)throw new Error(`Balance API returned ${i.status}`);return (await i.json()).balances.map(m=>{let A=BigInt(m.balance),C=m.decimals,v=BigInt(10)**BigInt(C),b=A/v,J=(A%v).toString().padStart(C,"0"),N=`${b}.${J}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:m.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:N,amountInUsd:"0",amountInNative:"0",decimals:m.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,r,t){let n=await this._getPortfoliosFromBalanceApi(s,r,t),a=e._NATIVE_TOKEN_ADDRESS[s],c=a?n.find(i=>i.address===a):void 0;return {chain:s,address:t,balanceInUsd:"0",balanceInNative:c?.amount??"0",portfolios:n,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?L(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?oe(s.filters):void 0,launchpadPlatform:s?.filters?ls(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,r,t){let n=await this._client.trade.getTrades(d(s),{...r,cursor:t?.cursor,limit:t?.limit,direction:t?.direction,beforeTimestamp:t?.before?.getTime(),afterTimestamp:t?.after?.getTime(),beforeBlockHeight:t?.beforeBlockHeight,afterBlockHeight:t?.afterBlockHeight,poolAddress:t?.poolAddress,type:t?.type?t.type.toUpperCase():void 0});return Ce(n)}async _getActivities(s,r,t){let n=await this._client.trade.getActivities(d(s),{...r,cursor:t?.cursor,limit:t?.limit,direction:t?.direction,beforeTimestamp:t?.before?.getTime(),afterTimestamp:t?.after?.getTime(),beforeBlockHeight:t?.beforeBlockHeight,afterBlockHeight:t?.afterBlockHeight,poolAddress:t?.poolAddress,type:t?.type?t.type.toUpperCase():void 0,sortBy:t?.sortBy==="totalUsd"?sdk.ActivitySortBy.totalUsd:t?.sortBy==="timestamp"?sdk.ActivitySortBy.timestamp:void 0});return Re(n)}_subscribeRankingTokens(s,r,t){let n=d(s),a=[this._client.stream.subscribeRankingTokensStats({chain:n,channelType:r,callback:c=>t(c.map(i=>p(s,i)))}),this._client.stream.subscribeRankingTokensHolders({chain:n,channelType:r,callback:c=>t(c.map(i=>D(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensSupply({chain:n,channelType:r,callback:c=>t(c.map(i=>W(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:n,channelType:r,callback:c=>t(c.map(i=>q(s,i.tokenAddress,i)))})];return {unsubscribe:()=>a.forEach(c=>c.unsubscribe())}}_subscribeRankingTokenList(s,r,t){return this._client.stream.subscribeRankingTokensList({chain:d(s),ranking_type:r,callback:n=>{let a=n.flatMap(c=>V(s,c));a.length>0&&t(a);}})}};function ls(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);}}
2
- exports.Client=Oe;exports.KYBERSWAP_NATIVE_SENTINEL=Ye;exports.NotImplementedError=w;exports.fromActivityPage=pr;exports.fromChainDTO=H;exports.fromLatestBlock=ye;exports.fromPnlDetailItems=Ue;exports.fromPnlDetailsPage=M;exports.fromRankingPoolDTO=le;exports.fromSdkActivityPage=Re;exports.fromSdkTokenHolderPage=fe;exports.fromSendTxResult=Pe;exports.fromSwapRoute=he;exports.fromTokenCandle=ce;exports.fromTokenCreatorDTO=$e;exports.fromTokenDTO=T;exports.fromTokenHolderPage=ge;exports.fromTokenLiquidityDTO=Hr;exports.fromTokenMarketDataDTO=E;exports.fromTokenMetadataSubscribed=z;exports.fromTokenPage=be;exports.fromTokenSecurity=ue;exports.fromTokenStatsDTO=F;exports.fromTokenSubscribed=we;exports.fromTradePage=Ce;exports.fromWalletNetWorthByTokens=Se;exports.fromWalletPnlSummary=Ie;exports.fromWalletPortfolios=Ae;exports.fromWsActivity=$;exports.fromWsCandle=He;exports.fromWsRankingPoolToSubscribed=de;exports.fromWsRankingTokenListToSubscribed=V;exports.fromWsTokenBondingCurveToSubscribed=B;exports.fromWsTokenDataSubscribed=p;exports.fromWsTokenHolderToSubscribed=D;exports.fromWsTokenLiquidityToSubscribed=q;exports.fromWsTokenMarketDataFromHolder=os;exports.fromWsTokenMarketDataFromStats=ns;exports.fromWsTokenMaxLiquidityToSubscribed=xe;exports.fromWsTokenStats=ts;exports.fromWsTokenSupplyToSubscribed=W;exports.fromWsTokenTotalLiquidityToSubscribed=pe;exports.fromWsTradeActivity=G;exports.isNotImplementedError=ds;exports.toChainDTO=d;exports.toFieldDTO=L;exports.toMintForRoute=xr;exports.toRangeFiltersDTO=oe;exports.toResolutionDTO=_;exports.toSearchFieldDTO=ne;exports.toSendTxInput=ke;exports.toSortDirectionDTO=Ge;exports.toSwapRouteInput=me;//# sourceMappingURL=index.js.map
1
+ 'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');var H=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 ms(e){return e instanceof Error&&e.code==="NotImplemented"}var Ve="https://api.chainstream.io";async function qe(e){return typeof e=="string"?e:Promise.resolve(e.getToken())}function Ge(e,s,t){if(t!=null){if(t instanceof Date){e.set(s,String(t.getTime()));return}e.set(s,String(t));}}function $e(e,s){let t=e.endsWith("/")?e.slice(0,-1):e,r=s.startsWith("/")?s:`/${s}`;return t+r}async function Z(e,s,t){let r=new URL($e(e.baseUrl,s)),n=new URLSearchParams;for(let[u,m]of Object.entries(t))Ge(n,u,m);let a=n.toString();a&&(r.search=a);let c=await qe(e.accessToken),i=await fetch(r.toString(),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});if(!i.ok){let u=await i.text().catch(()=>"");throw new Error(`[phase3Http] ${i.status} ${i.statusText} ${r.pathname}: ${u}`)}return await i.json()}function ee(e,s){return {baseUrl:s??Ve,accessToken:e}}function se(e,s,t,r){return Z(e,`/v2/token/${encodeURIComponent(s)}/${encodeURIComponent(t)}/holders`,r)}function te(e,s,t,r){return Z(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 F(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 Qe(e){return e}function ae(e){switch(e){case "marketCap":return sdk.SearchSortBy.marketCapInUsd;case "tvl":return sdk.SearchSortBy.liquidityInUsd;case "price":return sdk.SearchSortBy.priceInUsd;case "holders":return sdk.SearchSortBy.holderCount;case "volumes24h":return sdk.SearchSortBy.h24VolumeInUsd;case "trades24h":return sdk.SearchSortBy.h24Transactions;case "createdAt":return sdk.SearchSortBy.tokenCreatedAt}throw new Error(`Unsupported search field: ${e}`)}function E(e){switch(e){case "price":return sdk.TokenField.marketDatapriceInUsd;case "priceChange1m":return sdk.TokenField.statspriceChangeRatioInUsd1m;case "priceChange5m":return sdk.TokenField.statspriceChangeRatioInUsd5m;case "priceChange1h":return sdk.TokenField.statspriceChangeRatioInUsd1h;case "priceChange4h":return sdk.TokenField.statspriceChangeRatioInUsd4h;case "priceChange24h":return sdk.TokenField.statspriceChangeRatioInUsd24h;case "marketCap":return sdk.TokenField.marketDatamarketCapInUsd;case "tvl":return sdk.TokenField.marketDatamaxPoolTvlInUsd;case "top10Holdings":return sdk.TokenField.marketDatatop10TotalHoldings;case "top10Ratio":return sdk.TokenField.marketDatatop10HoldingsRatio;case "top100Holdings":return sdk.TokenField.marketDatatop100TotalHoldings;case "top100Ratio":return sdk.TokenField.marketDatatop100HoldingsRatio;case "holders":return sdk.TokenField.marketDataholders;case "creatorsHoldings":return sdk.TokenField.marketDatacreatorHoldings;case "creatorsRatio":return sdk.TokenField.marketDatacreatorHoldingsRatio;case "buys1m":return sdk.TokenField.statsbuys1m;case "buys5m":return sdk.TokenField.statsbuys5m;case "buys15m":return sdk.TokenField.statsbuys15m;case "buys30m":return sdk.TokenField.statsbuys30m;case "buys1h":return sdk.TokenField.statsbuys1h;case "buys4h":return sdk.TokenField.statsbuys4h;case "buys24h":return sdk.TokenField.statsbuys24h;case "sells1m":return sdk.TokenField.statssells1m;case "sells5m":return sdk.TokenField.statssells5m;case "sells15m":return sdk.TokenField.statssells15m;case "sells30m":return sdk.TokenField.statssells30m;case "sells1h":return sdk.TokenField.statssells1h;case "sells4h":return sdk.TokenField.statssells4h;case "sells24h":return sdk.TokenField.statssells24h;case "trades1m":return sdk.TokenField.statstrades1m;case "trades5m":return sdk.TokenField.statstrades5m;case "trades1h":return sdk.TokenField.statstrades1h;case "trades4h":return sdk.TokenField.statstrades4h;case "trades24h":return sdk.TokenField.statstrades24h;case "traders1m":return sdk.TokenField.statstraders1m;case "traders5m":return sdk.TokenField.statstraders5m;case "traders1h":return sdk.TokenField.statstraders1h;case "traders4h":return sdk.TokenField.statstraders4h;case "traders24h":return sdk.TokenField.statstraders24h;case "volumes1m":return sdk.TokenField.statsvolumesInUsd1m;case "volumes5m":return sdk.TokenField.statsvolumesInUsd5m;case "volumes1h":return sdk.TokenField.statsvolumesInUsd1h;case "volumes4h":return sdk.TokenField.statsvolumesInUsd4h;case "volumes24h":return sdk.TokenField.statsvolumesInUsd24h;case "createdAt":return sdk.TokenField.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function ie(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let t={field:E(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 x(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 Ke(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function g(e){return {chain:x(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(Ke),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?M(e.stats):void 0,marketData:e.marketData?z(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function M(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 I(e){return e===void 0?void 0:parseInt(e)}function P(e,s){let t=e.periods?.[s];return t?{buys:I(t.buys),sells:I(t.sells),trades:I(t.trades),buyers:I(t.buyers),sellers:I(t.sellers),traders:I(t.traders),buyVolumes:t.buyVolume,sellVolumes:t.sellVolume,volumes:t.totalVolumeInNative,buyVolumesInUsd:t.buyVolumeInUsd,sellVolumesInUsd:t.sellVolumeInUsd,volumesInUsd:t.totalVolumeInUsd,openPriceInUsd:t.openInUsd,closePriceInUsd:t.closeInUsd,highPriceInUsd:t.highInUsd,lowPriceInUsd:t.lowInUsd,priceInUsd:t.closeInUsd,priceChange:t.priceChangeRatioInUsd}:{}}function Bt(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function le(e){if(e)return {image:"image"in e?e.image??void 0:void 0,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,protocolName:e.protocolName??void 0}}function de(e){if(e)return {poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenALiquidityInUsd:e.tokenALiquidityInUsd,tokenBAddress:e.tokenBAddress,tokenBLiquidityInUsd:e.tokenBLiquidityInUsd}}function ce(e,s){return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:le(s.dex),token:s.token?g(s.token):void 0,balance:de(s.balance)}}function Je(e){if(e.length!==0)return e.reduce((s,t)=>({...s,...Object.fromEntries(Object.entries(t).filter(([,r])=>r!==void 0)),stats:t.stats??s.stats,marketData:t.marketData?{...s.marketData,...t.marketData}:s.marketData,socialMedias:t.socialMedias?{...s.socialMedias,...t.socialMedias}:s.socialMedias,launchedFrom:t.launchedFrom?{...s.launchedFrom,...t.launchedFrom}:s.launchedFrom,migratedTo:t.migratedTo?{...s.migratedTo,...t.migratedTo}:s.migratedTo}),e[0])}function ue(e,s){let t=s.token?Je(G(e,s.token)):void 0;return {chain:e,poolAddress:s.poolAddress,tokenAAddress:s.tokenAAddress,tokenBAddress:s.tokenBAddress,createdAt:s.createdAtMs?new Date(s.createdAtMs):void 0,dex:le(s.dex),token:t,balance:de(s.balance)}}function z(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price:e.priceInNative??e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,holders:e.holders?parseInt(e.holders):void 0,top10Holdings:e.top10TotalHoldings??void 0,top10HoldingsRatio:e.top10HoldingsRatio??void 0,top50Holdings:e.top50TotalHoldings??void 0,top50HoldingsRatio:e.top50HoldingsRatio??void 0,top100Holdings:e.top100TotalHoldings??void 0,top100HoldingsRatio:e.top100HoldingsRatio??void 0,bluechipHolders:e.bluechipTotalHolders?parseInt(e.bluechipTotalHolders):void 0,bluechipHoldings:e.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:e.bluechipHoldingsRatio??void 0,kolHolders:e.kolTotalHolders?parseInt(e.kolTotalHolders):void 0,kolHoldings:e.kolTotalHoldings??void 0,kolHoldingsRatio:e.kolHoldingsRatio??void 0,sniperHolders:e.sniperTotalHolders?parseInt(e.sniperTotalHolders):void 0,sniperHoldings:e.sniperTotalHoldings??void 0,sniperHoldingsRatio:e.sniperHoldingsRatio??void 0,proHolders:e.proTotalHolders?parseInt(e.proTotalHolders):void 0,proHoldings:e.proTotalHoldings??void 0,proHoldingsRatio:e.proHoldingsRatio??void 0,insiderHolders:e.insiderTotalHolders?parseInt(e.insiderTotalHolders):void 0,insiderHoldings:e.insiderTotalHoldings??void 0,insiderHoldingsRatio:e.insiderHoldingsRatio??void 0,sandwichHolders:e.sandwishTotalHolders?parseInt(e.sandwishTotalHolders):void 0,sandwichHoldings:e.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:e.sandwishHoldingsRatio??void 0,freshHolders:e.freshTotalHolders?parseInt(e.freshTotalHolders):void 0,freshHoldings:e.freshTotalHoldings??void 0,freshHoldingsRatio:e.freshHoldingsRatio??void 0,bundleHolders:e.bundleTotalHolders?parseInt(e.bundleTotalHolders):void 0,bundleHoldings:e.bundleTotalHoldings??void 0,bundleHoldingsRatio:e.bundleHoldingsRatio??void 0,devHolders:e.devTotalHolders?parseInt(e.devTotalHolders):void 0,devHoldings:e.devTotalHoldings??void 0,devHoldingsRatio:e.devHoldingsRatio??void 0}}function me(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,volumeInTokenAmount:o(e.volumeInTokenAmount),trades:e.trades??void 0,resolution:s,timestamp:new Date(e.timestamp)}}function Ye(e){return e==="1d"?"24h":e}function ke(e){let s=e;return {hasTransferFee:s.hasTransferFee,isTransferFeeUpgradable:s.isTransferFeeUpgradable,isTransferable:s.isTransferable,isFreezable:s.isFreezable,isClosable:s.isClosable}}var Xe=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Ze="0x0000000000000000000000000000000000000000",es="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function ss(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function ts(e){return e.toLowerCase()===Ze.toLowerCase()?es:e}function rs(e){return e.dex==="jupiter"?"jupiter":e.dex==="kyberswap"?"kyberswap":Xe.has(e.chain)?"jupiter":"kyberswap"}function L(e,s){return e==="jupiter"?ss(s):e==="kyberswap"?ts(s):s}function Nt(e,s){return L(e,s)}function Te(e){let s=rs(e),t=L(s,e.input),r=L(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:t,outputMint: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 ge(e){return {signedTx:e.serializedTx}}function b(e){return e==null?void 0:new Date(e)}function fe(e){if(e!=null)return new Date(e<1e12?e*1e3:e)}function U(e){if(!(!e||e.length===0))return e}function be(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage,tags:U(s.tags),lastActiveAt:b(s.lastActiveAt),startHoldingAt:b(s.startHoldingAt)}))}}function he(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage,tags:U(s.tags),lastActiveAt:b(s.lastActiveAt),startHoldingAt:b(s.startHoldingAt)}))}}function ye(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,tags:U(s.tags),lastActiveAt:b(s.lastActiveAt),startHoldingAt:b(s.startHoldingAt),averageBuyPriceInUsd:o(s.averageBuyPriceInUsd),averageSellPriceInUsd:o(s.averageSellPriceInUsd),buyAmountCur:o(s.buyAmountCur),sellAmountCur:o(s.sellAmountCur),totalBuyAmountInUsd:o(s.totalBuyAmountInUsd),totalSellAmountInUsd:o(s.totalSellAmountInUsd),realizedPnl:o(s.realizedPnl),totalRealizedPnlInUsd:o(s.totalRealizedPnlInUsd),unrealizedPnl:o(s.unrealizedPnl),unrealizedPnlInUsd:o(s.unrealizedPnlInUsd),roi:o(s.roi),totalPnlInUsd:o(s.totalPnlInUsd),totalBuyCount:o(s.totalBuyCount),totalSellCount:o(s.totalSellCount),transferIn:o(s.transferIn),transferInCount:o(s.transferInCount),transferOutCount:o(s.transferOutCount)}))}}function Pe(e){let s=e;return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(g),extra:o(s.countsByProtocols)}}function Ae(e){return {serializedTx:e.serializedTx,recentBlockhash:o(e.recentBlockhash),lastValidBlockHeight:o(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function Ie(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function Se(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Ue(e,s){let t=(s.data??[]).map(r=>({chain:x(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 Ce(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 ns(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:b(s.firstBuyAt),lastSellAt:b(s.lastSellAt)}}function V(e,s,t){let r=t.summary;return {chain:e,address:s,tokens:t.summary.tokens!=null?Number(t.summary.tokens):void 0,buys:t.summary.buys!=null?Number(t.summary.buys):void 0,sells:t.summary.sells!=null?Number(t.summary.sells):void 0,totalTrades:t.summary.totalTrades!=null?Number(t.summary.totalTrades):void 0,wins:t.summary.wins!=null?Number(t.summary.wins):void 0,losses:t.summary.losses!=null?Number(t.summary.losses):void 0,winRate: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(r.totalProfitRatio),avgProfitPerTradeInUsd:o(t.summary.avgProfitPerTradeInUsd),startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev,hasNext:t.hasNext,portfolios:t.data.map(n=>ns(e,n))}}function ve(e,s){return (s.data??[]).map(t=>({chain:x(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:b(t.lastActiveAt),walletTokenTags:U(t.walletTokenTags)}))}function Re(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 we(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(He)}}function He(e){let s=e.type.toLowerCase()==="buy";return {chain:x(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:fe(e.blockTimestamp)??new Date(0),gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:U(e.traderTags)}}function xe(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(He)}}function Ot(e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(os)}}function os(e){let s=e.type.toLowerCase().replace(/ /g,"_"),t=s==="buy",r=fe(e.blockTimestamp)??new Date(0);return {chain:x(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:r,gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:U(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 q(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 We(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Ye(e.resolution),timestamp:new Date(e.time)}}function as(e){let s=["1m","5m","15m","30m","1h","4h","24h"],t=e,r={};for(let n of s){let a=t[`buys${n}`],c=t[`sells${n}`],i=t[`buyers${n}`],u=t[`sellers${n}`],m=t[`buyVolumeInUsd${n}`],A=t[`sellVolumeInUsd${n}`],v=t[`trades${n}`],R=t[`price${n}`],h=t[`openInUsd${n}`],w=t[`closeInUsd${n}`];if(!(a!==void 0||c!==void 0||v!==void 0||R!==void 0))continue;let _=v??(a!==void 0&&c!==void 0?a+c:void 0),Ee=i!==void 0&&u!==void 0?i+u:void 0,Me=m!==void 0&&A!==void 0?new utils.SafeBigNumber(m).plus(A).toString():void 0,ze=h&&w&&new utils.SafeBigNumber(h).gt(0)?new utils.SafeBigNumber(w).minus(h).div(h).toString():void 0;r[n]={buys:a,sells:c,trades:_,buyers:i,sellers:u,traders:Ee,buyVolumesInUsd:m,sellVolumesInUsd:A,volumesInUsd:Me,openPriceInUsd:h,closePriceInUsd:w,priceInUsd:R??w,priceChange:ze};}return r}function is(e){return {priceInUsd:e.price}}function D(e,s){return {chain:e,address:s.address,stats:as(s),marketData:is(s)}}function G(e,s){let t=[];return s.metadata&&t.push(q(e,s.metadata)),s.stat&&t.push(D(e,s.stat)),s.holder&&t.push(N(e,s.holder.tokenAddress,s.holder)),s.supply&&t.push(B(e,s.supply.tokenAddress,s.supply)),s.bondingCurve&&t.push(O(e,s.bondingCurve)),t.filter(r=>r.address)}function B(e,s,t){return {chain:e,address:s,marketData:{totalSupply:t.supply,marketCapInUsd:t.marketCapInUsd}}}function N(e,s,t){return {chain:e,address:s,marketData:ls(t)}}function $(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 O(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function De(e,s,t){return {chain:e,address:s,liquidities:[{poolAddress:t.poolAddress,tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}]}}function Be(e,s,t){return {chain:e,address:s,marketData:{tvlInUsd:t.liquidityInUsd,tvl:t.liquidityInNative}}}function ls(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,bluechipHolders:e.bluechipHolders===void 0?void 0:e.bluechipHolders,bluechipHoldings:e.bluechipHoldersAmount,bluechipHoldingsRatio:e.bluechipHoldersRatio,kolHolders:e.kolHolders===void 0?void 0:e.kolHolders,kolHoldings:e.kolHoldersAmount,kolHoldingsRatio:e.kolHoldersRatio,proHolders:e.proHolders===void 0?void 0:e.proHolders,proHoldings:e.proHoldersAmount,proHoldingsRatio:e.proHoldersRatio,insiderHolders:e.insiderHolders===void 0?void 0:e.insiderHolders,insiderHoldings:e.insiderHoldersAmount,insiderHoldingsRatio:e.insiderHoldersRatio,devHolders:e.devHolders===void 0?void 0:e.devHolders,devHoldings:e.devHoldersAmount,devHoldingsRatio:e.devHoldersRatio,sniperHolders:e.sniperHolders===void 0?void 0:e.sniperHolders,sniperHoldings:e.sniperHoldersAmount,sniperHoldingsRatio:e.sniperHoldersRatio,freshHolders:e.freshHolders===void 0?void 0:e.freshHolders,freshHoldings:e.freshHoldersAmount,freshHoldingsRatio:e.freshHoldersRatio,bundleHolders:e.bundleHolders===void 0?void 0:e.bundleHolders,bundleHoldings:e.bundleHoldersAmount,bundleHoldingsRatio:e.bundleHoldersRatio,sandwichHolders:e.sandwichHolders===void 0?void 0:e.sandwichHolders,sandwichHoldings:e.sandwichHoldersAmount,sandwichHoldingsRatio:e.sandwichHoldersRatio}}function j(e,s){let t=s.kind.toLowerCase()==="buy";return {chain:e,walletAddress:t?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:t?"buy":"sell",from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd,priceInUsd:W(s.sellAmountInUsd,s.sellAmount)},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd,priceInUsd:W(s.buyAmountInUsd,s.buyAmount)},status:"success",time:new Date(s.timestamp)}}function Q(e,s){let t=s.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:t==="buy"?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:t,from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd,priceInUsd:W(s.sellAmountInUsd,s.sellAmount)},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd,priceInUsd:W(s.buyAmountInUsd,s.buyAmount)},status:"success",time:new Date(s.timestamp)}}function W(e,s){if(e==null||e===""||s==null||s==="")return;let t=new utils.SafeBigNumber(s);if(t.gt(0))return new utils.SafeBigNumber(e).div(t).toString()}var Fe=class e{constructor(s,t){this.accessToken=s;this.options=t;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._phase3=ee(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:F(r),from:n?.after?.getTime(),to:n?.before?.getTime(),limit:n?.limit})).map(c=>me(c,r))}async getTokenSecurity(s,t){let r=await this._client.token.getSecurity(d(s),t);return ke(r)}async getTokenStats(s,t){let r=await this._client.token.getStats(d(s),t);return M(r)}async getTokenHolders(s,t,r){if(r?.sortBy!=="realizedPnl"){let a=await this._client.token.getHolders(d(s),t,{cursor:r?.cursor,limit:r?.limit,direction:r?.direction,sortBy:r?.sortBy==="lastActiveAt"?sdk.HolderSortBy.lastActiveAt:r?.sortBy==="holdingUsd"?sdk.HolderSortBy.holdingUsd:void 0});return he(a)}let n=await se(this._phase3,d(s),t,{cursor:r?.cursor,limit:r?.limit,direction:r?.direction,sortBy:r?.sortBy});return be(n)}async getTokenTopTraders(s,t,r){let n=await this._client.token.getTokenTopTraders(d(s),t,{cursor:r?.cursor,limit:r?.limit,direction:r?.direction,sortBy:r?.sortBy==="buyVolume"?sdk.TraderSortBy.buyVolume:r?.sortBy==="sellVolume"?sdk.TraderSortBy.sellVolume:r?.sortBy==="lastActiveAt"?sdk.TraderSortBy.lastActiveAt:r?.sortBy==="netflowUsd"?sdk.TraderSortBy.netflowUsd:r?.sortBy==="profit"?sdk.TraderSortBy.profit:void 0,tag:r?.tag});return ye(n)}async getTokenMarketData(s,t){let r=await this._client.token.getMarketData(d(s),t);return z(r)}async getNewTokens(s,t){return (await this._client.ranking.getNewTokens(d(s),this._buildRankingParams(t))).map(g)}async getNewPools(s,t){return (await this._client.ranking.getRankingPools(d(s),sdk.RankingPoolType.NewPool)).map(n=>ce(s,n))}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?ae(s.sortBy):void 0,sort:s?.sortDirection});return Pe(t)}async swapRoute(s){let t=await this._client.dex.route(d(s.chain),Te(s));return Ae(t)}async getLatestBlock(s){let t=await this._client.blockchain.getLatestBlock(d(s.chain));return Ie(t)}async sendTx(s){let t=await this._client.transaction.send(d(s.chain),ge(s));return Se(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 a=await this._client.wallet.getNetWorth(d(s),t,{cursor:r?.cursor,limit:r?.limit??100});return Ue(s,a)}async getWalletPnl(s,t,r){let n=await this._client.wallet.getPnl(d(s),t,r?{resolution:r}:void 0);return Ce(s,t,n)}async getWalletPortfolioPnls(s,t,r){if(r?.resolution!=="90d"){let a=await this._client.wallet.getPnlDetails(d(s),t,{resolution:r?.resolution==="7d"?sdk.PnlResolution["7d"]:sdk.PnlResolution["30d"],positionState:r?.positionState==="closed"?sdk.PositionState.closed:r?.positionState==="all"?sdk.PositionState.all:r?.positionState==="open"?sdk.PositionState.open:void 0,sortBy:r?.sortBy==="realizedPnl"?sdk.PnlSortBy.realizedPnl:r?.sortBy==="unrealizedPnl"?sdk.PnlSortBy.unrealizedPnl:r?.sortBy==="totalPnl"?sdk.PnlSortBy.totalPnl:void 0,cursor:r?.cursor,limit:r?.limit??100,direction:r?.direction});return V(s,t,a)}let n=await te(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 V(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 a=await this._client.wallet.getNetWorthByTokens(d(s),t,{tokenAddresses:r.join(",")});return ve(s,a)}async getWalletPortfolioPnlsByTokens(s,t,r){let n=await this._client.wallet.getPnlByToken(d(s),t,{tokenAddresses:r.join(",")});return Re(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 H("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getTokensByCreator(s,t,r){throw new H("Client.getTokensByCreator","no creator-index endpoint on the backend yet")}subscribeToken(s,t,r){return this.subscribeTokens(s,[t],r)}subscribeTokens(s,t,r){let n=d(s),a=Array.from(new Set(t.map(i=>i.trim()).filter(Boolean)));if(a.length===0)return {unsubscribe:()=>{}};let c=this._client.stream.batchSubscribe(()=>a.flatMap(i=>[this._client.stream.subscribeTokenStats({chain:n,tokenAddress:i,callback:u=>r([D(s,u)])}),this._client.stream.subscribeTokenHolders({chain:n,tokenAddress:i,callback:u=>r([N(s,i,u)])}),this._client.stream.subscribeTokenSupply({chain:n,tokenAddress:i,callback:u=>r([B(s,i,u)])}),this._client.stream.subscribeTokenLiquidity({chain:n,tokenAddress:i,callback:u=>r([$(s,i,u)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:n,tokenAddress:i,callback:u=>r([De(s,i,u)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:n,tokenAddress:i,callback:u=>r([Be(s,i,u)])})]));return {unsubscribe:()=>{let i=this._client.stream;if(i.batchUnsubscribe){i.batchUnsubscribe(c);return}c.forEach(u=>u.unsubscribe());}}}subscribeTokenCandles(s,t,r,n){return this._client.stream.subscribeTokenCandles({chain:d(s),tokenAddress:t,resolution:F(r),callback:a=>n([We(a)])})}subscribeWalletPnl(s,t,r){return this._client.stream.subscribeWalletPnlList({chain:d(s),walletAddress:t,callback:n=>r(n.map(a=>({chain:s,address:a.walletAddress,buys:a.buys,buyAmountInUsd:a.buyAmountInUsd,sells:a.sells,sellAmountInUsd:a.sellAmountInUsd,wins:a.wins,winRate:a.winRatio,totalProfitInUsd:a.pnlInUsd,totalProfitRatio:a.pnlRatio,avgProfitPerTradeInUsd:a.averagePnlInUsd,tokens:a.tokens,resolution:a.resolution})))})}subscribeWalletPortfolios(s,t,r){return this._client.stream.subscribeWalletBalance({chain:d(s),walletAddress:t,callback:n=>r(n.map(a=>({chain:s,walletAddress:a.walletAddress,tokenAddress:a.tokenAddress,priceInUsd:a.tokenPriceInUsd,amount:a.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([j(s,n)])})}subscribeTokenTrades(s,t,r){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:n=>r([j(s,n)])})}subscribeWalletActivities(s,t,r){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:t,callback:n=>r([Q(s,n)])})}subscribeTokenActivities(s,t,r){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:t,callback:n=>r([Q(s,n)])})}subscribeNewTokens(s,t){let r=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.New,t),a=[this._client.stream.subscribeNewToken({chain:r,callback:c=>t([pe(s,c)])}),this._client.stream.subscribeNewTokensMetadata({chain:r,callback:c=>t(c.map(i=>q(s,i)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:r,callback:c=>t(c.map(i=>O(s,i)))})];return {unsubscribe:()=>{n.unsubscribe(),a.forEach(c=>c.unsubscribe());}}}subscribeNewPools(s,t){return this._client.stream.subscribeNewPool({chain:d(s),callback:r=>t([ue(s,r)])})}subscribeTrendingTokens(s,t){return this._subscribeRankingTokenList(s,sdk.WsRankingType.HOT,t)}subscribeMigratedTokens(s,t){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,t)}subscribeFinalStretchTokens(s,t){let r=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,t),a=this._client.stream.subscribeRankingTokensBondingCurve({chain:r,callback:c=>t(c.map(i=>O(s,i)))});return {unsubscribe:()=>{n.unsubscribe(),a.unsubscribe();}}}subscribeStockTokens(s,t){return this._subscribeRankingTokenList(s,sdk.WsRankingType.STOCKS,t)}static _CHAIN_TO_BALANCE_PARAM={[types.Chain.SOLANA]:"sol",[types.Chain.ETHEREUM]:"eth",[types.Chain.BINANCE]:"bnb"};static _NATIVE_TOKEN_ADDRESS={[types.Chain.SOLANA]:"11111111111111111111111111111111",[types.Chain.ETHEREUM]:"0x0000000000000000000000000000000000000000",[types.Chain.BINANCE]:"0x0000000000000000000000000000000000000000"};async _getPortfoliosFromBalanceApi(s,t,r,n){let a=this.options.nativeBalanceApiUrl,c=new URLSearchParams({chain:t,address:r});n?.length&&c.set("tokens",n.join(","));let i=await fetch(`${a}?${c.toString()}`);if(!i.ok)throw new Error(`Balance API returned ${i.status}`);return (await i.json()).balances.map(m=>{let A=BigInt(m.balance),v=m.decimals,R=BigInt(10)**BigInt(v),h=A/R,X=(A%R).toString().padStart(v,"0"),_=`${h}.${X}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:m.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:_,amountInUsd:"0",amountInNative:"0",decimals:m.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,t,r){let n=await this._getPortfoliosFromBalanceApi(s,t,r),a=e._NATIVE_TOKEN_ADDRESS[s],c=a?n.find(i=>i.address===a):void 0;return {chain:s,address:r,balanceInUsd:"0",balanceInNative:c?.amount??"0",portfolios:n,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?E(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?ie(s.filters):void 0,launchpadPlatform:s?.filters?us(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,t,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 we(n)}async _getActivities(s,t,r){let n=await this._client.trade.getActivities(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==="totalUsd"?sdk.ActivitySortBy.totalUsd:r?.sortBy==="timestamp"?sdk.ActivitySortBy.timestamp:void 0});return xe(n)}_subscribeRankingTokens(s,t,r){let n=d(s),a=[this._client.stream.subscribeRankingTokensStats({chain:n,channelType:t,callback:c=>r(c.map(i=>D(s,i)))}),this._client.stream.subscribeRankingTokensHolders({chain:n,channelType:t,callback:c=>r(c.map(i=>N(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensSupply({chain:n,channelType:t,callback:c=>r(c.map(i=>B(s,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:n,channelType:t,callback:c=>r(c.map(i=>$(s,i.tokenAddress,i)))})];return {unsubscribe:()=>a.forEach(c=>c.unsubscribe())}}_subscribeRankingTokenList(s,t,r){return this._client.stream.subscribeRankingTokensList({chain:d(s),ranking_type:t,callback:n=>{let a=n.flatMap(c=>G(s,c));a.length>0&&r(a);}})}};function us(e){let s=e.find(t=>t.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}
2
+ exports.Client=Fe;exports.KYBERSWAP_NATIVE_SENTINEL=es;exports.NotImplementedError=H;exports.fromActivityPage=Ot;exports.fromChainDTO=x;exports.fromLatestBlock=Ie;exports.fromPnlDetailItems=Re;exports.fromPnlDetailsPage=V;exports.fromRankingPoolDTO=ce;exports.fromSdkActivityPage=xe;exports.fromSdkTokenHolderPage=he;exports.fromSdkTokenTopTraderPage=ye;exports.fromSendTxResult=Se;exports.fromSwapRoute=Ae;exports.fromTokenCandle=me;exports.fromTokenCreatorDTO=Ke;exports.fromTokenDTO=g;exports.fromTokenHolderPage=be;exports.fromTokenLiquidityDTO=Bt;exports.fromTokenMarketDataDTO=z;exports.fromTokenMetadataSubscribed=q;exports.fromTokenPage=Pe;exports.fromTokenSecurity=ke;exports.fromTokenStatsDTO=M;exports.fromTokenSubscribed=pe;exports.fromTradePage=we;exports.fromWalletNetWorthByTokens=ve;exports.fromWalletPnlSummary=Ce;exports.fromWalletPortfolios=Ue;exports.fromWsActivity=Q;exports.fromWsCandle=We;exports.fromWsRankingPoolToSubscribed=ue;exports.fromWsRankingTokenListToSubscribed=G;exports.fromWsTokenBondingCurveToSubscribed=O;exports.fromWsTokenDataSubscribed=D;exports.fromWsTokenHolderToSubscribed=N;exports.fromWsTokenLiquidityToSubscribed=$;exports.fromWsTokenMarketDataFromHolder=ls;exports.fromWsTokenMarketDataFromStats=is;exports.fromWsTokenMaxLiquidityToSubscribed=De;exports.fromWsTokenStats=as;exports.fromWsTokenSupplyToSubscribed=B;exports.fromWsTokenTotalLiquidityToSubscribed=Be;exports.fromWsTradeActivity=j;exports.isNotImplementedError=ms;exports.toChainDTO=d;exports.toFieldDTO=E;exports.toMintForRoute=Nt;exports.toRangeFiltersDTO=ie;exports.toResolutionDTO=F;exports.toSearchFieldDTO=ae;exports.toSendTxInput=ge;exports.toSortDirectionDTO=Qe;exports.toSwapRouteInput=Te;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map