@liberfi.io/client 0.1.181 → 0.1.182
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 +19 -1
- package/dist/index.d.ts +19 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -8,7 +8,7 @@ declare global {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
declare const _default: "0.1.
|
|
11
|
+
declare const _default: "0.1.182";
|
|
12
12
|
|
|
13
13
|
/** Async or sync token provider for authentication. */
|
|
14
14
|
interface ClientTokenProviderFn {
|
|
@@ -20,6 +20,14 @@ interface ClientOptions {
|
|
|
20
20
|
serverUrl?: string;
|
|
21
21
|
streamUrl?: string;
|
|
22
22
|
autoConnectWebSocket?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Temporary fallback: when set, all token balances (native + SPL / ERC-20)
|
|
25
|
+
* are fetched from this URL instead of the upstream wallet API.
|
|
26
|
+
* Expected endpoint: `GET {url}?chain=sol|eth|bnb&address=<wallet>[&tokens=addr1,addr2,...]`
|
|
27
|
+
* Response shape: `{ balances: Array<{ address: string; balance: string; decimals: number }> }`
|
|
28
|
+
* Remove this option once the upstream balance API is fixed.
|
|
29
|
+
*/
|
|
30
|
+
nativeBalanceApiUrl?: string;
|
|
23
31
|
}
|
|
24
32
|
declare class Client implements API.IClient, API.ISubscribeClient {
|
|
25
33
|
private readonly accessToken;
|
|
@@ -72,6 +80,16 @@ declare class Client implements API.IClient, API.ISubscribeClient {
|
|
|
72
80
|
subscribeMigratedTokens(chain: Chain, callback: (data: Array<API.TokenSubscribed>) => void): API.ISubscription;
|
|
73
81
|
subscribeFinalStretchTokens(chain: Chain, callback: (data: Array<API.TokenSubscribed>) => void): API.ISubscription;
|
|
74
82
|
subscribeStockTokens(chain: Chain, callback: (data: Array<API.TokenSubscribed>) => void): API.ISubscription;
|
|
83
|
+
private static readonly _CHAIN_TO_BALANCE_PARAM;
|
|
84
|
+
/**
|
|
85
|
+
* Fetch token balances from the local `/api/balance` RPC proxy and convert
|
|
86
|
+
* the raw `{ address, balance, decimals }` entries into `Portfolio` objects.
|
|
87
|
+
*/
|
|
88
|
+
private _getPortfoliosFromBalanceApi;
|
|
89
|
+
/**
|
|
90
|
+
* Fetch all holdings from the balance API and wrap as `WalletPortfolios`.
|
|
91
|
+
*/
|
|
92
|
+
private _getWalletPortfoliosFromBalanceApi;
|
|
75
93
|
private _buildRankingParams;
|
|
76
94
|
private _getTrades;
|
|
77
95
|
private _getActivities;
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare global {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
declare const _default: "0.1.
|
|
11
|
+
declare const _default: "0.1.182";
|
|
12
12
|
|
|
13
13
|
/** Async or sync token provider for authentication. */
|
|
14
14
|
interface ClientTokenProviderFn {
|
|
@@ -20,6 +20,14 @@ interface ClientOptions {
|
|
|
20
20
|
serverUrl?: string;
|
|
21
21
|
streamUrl?: string;
|
|
22
22
|
autoConnectWebSocket?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Temporary fallback: when set, all token balances (native + SPL / ERC-20)
|
|
25
|
+
* are fetched from this URL instead of the upstream wallet API.
|
|
26
|
+
* Expected endpoint: `GET {url}?chain=sol|eth|bnb&address=<wallet>[&tokens=addr1,addr2,...]`
|
|
27
|
+
* Response shape: `{ balances: Array<{ address: string; balance: string; decimals: number }> }`
|
|
28
|
+
* Remove this option once the upstream balance API is fixed.
|
|
29
|
+
*/
|
|
30
|
+
nativeBalanceApiUrl?: string;
|
|
23
31
|
}
|
|
24
32
|
declare class Client implements API.IClient, API.ISubscribeClient {
|
|
25
33
|
private readonly accessToken;
|
|
@@ -72,6 +80,16 @@ declare class Client implements API.IClient, API.ISubscribeClient {
|
|
|
72
80
|
subscribeMigratedTokens(chain: Chain, callback: (data: Array<API.TokenSubscribed>) => void): API.ISubscription;
|
|
73
81
|
subscribeFinalStretchTokens(chain: Chain, callback: (data: Array<API.TokenSubscribed>) => void): API.ISubscription;
|
|
74
82
|
subscribeStockTokens(chain: Chain, callback: (data: Array<API.TokenSubscribed>) => void): API.ISubscription;
|
|
83
|
+
private static readonly _CHAIN_TO_BALANCE_PARAM;
|
|
84
|
+
/**
|
|
85
|
+
* Fetch token balances from the local `/api/balance` RPC proxy and convert
|
|
86
|
+
* the raw `{ address, balance, decimals }` entries into `Portfolio` objects.
|
|
87
|
+
*/
|
|
88
|
+
private _getPortfoliosFromBalanceApi;
|
|
89
|
+
/**
|
|
90
|
+
* Fetch all holdings from the balance API and wrap as `WalletPortfolios`.
|
|
91
|
+
*/
|
|
92
|
+
private _getWalletPortfoliosFromBalanceApi;
|
|
75
93
|
private _buildRankingParams;
|
|
76
94
|
private _getTrades;
|
|
77
95
|
private _getActivities;
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/client"]="0.1.181");var fe="0.1.181";function t(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 R(e){switch(e){case "1s":return sdk.Resolution["1s"];case "15s":return sdk.Resolution["15s"];case "30s":return sdk.Resolution["30s"];case "1m":return sdk.Resolution["1m"];case "5m":return sdk.Resolution["5m"];case "15m":return sdk.Resolution["15m"];case "30m":case "1h":return sdk.Resolution["1h"];case "4h":return sdk.Resolution["4h"];case "12h":return sdk.Resolution["12h"];case "24h":return sdk.Resolution["1d"]}}function ye(e){return e}function V(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 w(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 q(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let r={field:w(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 I(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 he(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function T(e){return {chain:I(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(he),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?H(e.stats):void 0,marketData:e.marketData?W(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function H(e){return {"1m":f(e,"1m"),"5m":f(e,"5m"),"15m":f(e,"15m"),"30m":f(e,"30m"),"1h":f(e,"1h"),"4h":f(e,"4h"),"24h":f(e,"24h")}}function g(e){return e===void 0?void 0:parseInt(e)}function f(e,s){let r=e.periods?.[s];return r?{buys:g(r.buys),sells:g(r.sells),trades:g(r.trades),buyers:g(r.buyers),sellers:g(r.sellers),traders:g(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 Ds(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function W(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price:e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,holders:e.holders?parseInt(e.holders):void 0,top10Holdings:e.top10TotalHoldings??void 0,top10HoldingsRatio:e.top10HoldingsRatio??void 0,top50Holdings:e.top50TotalHoldings??void 0,top50HoldingsRatio:e.top50HoldingsRatio??void 0,top100Holdings:e.top100TotalHoldings??void 0,top100HoldingsRatio:e.top100HoldingsRatio??void 0,bluechipHolders:e.bluechipTotalHolders?parseInt(e.bluechipTotalHolders):void 0,bluechipHoldings:e.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:e.bluechipHoldingsRatio??void 0,kolHolders:e.kolTotalHolders?parseInt(e.kolTotalHolders):void 0,kolHoldings:e.kolTotalHoldings??void 0,kolHoldingsRatio:e.kolHoldingsRatio??void 0,sniperHolders:e.sniperTotalHolders?parseInt(e.sniperTotalHolders):void 0,sniperHoldings:e.sniperTotalHoldings??void 0,sniperHoldingsRatio:e.sniperHoldingsRatio??void 0,proHolders:e.proTotalHolders?parseInt(e.proTotalHolders):void 0,proHoldings:e.proTotalHoldings??void 0,proHoldingsRatio:e.proHoldingsRatio??void 0,insiderHolders:e.insiderTotalHolders?parseInt(e.insiderTotalHolders):void 0,insiderHoldings:e.insiderTotalHoldings??void 0,insiderHoldingsRatio:e.insiderHoldingsRatio??void 0,sandwichHolders:e.sandwishTotalHolders?parseInt(e.sandwishTotalHolders):void 0,sandwichHoldings:e.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:e.sandwishHoldingsRatio??void 0,freshHolders:e.freshTotalHolders?parseInt(e.freshTotalHolders):void 0,freshHoldings:e.freshTotalHoldings??void 0,freshHoldingsRatio:e.freshHoldingsRatio??void 0,bundleHolders:e.bundleTotalHolders?parseInt(e.bundleTotalHolders):void 0,bundleHoldings:e.bundleTotalHoldings??void 0,bundleHoldingsRatio:e.bundleHoldingsRatio??void 0,devHolders:e.devTotalHolders?parseInt(e.devTotalHolders):void 0,devHoldings:e.devTotalHoldings??void 0,devHoldingsRatio:e.devHoldingsRatio??void 0}}function G(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:s,timestamp:new Date(e.timestamp)}}function Ie(e){return e==="1d"?"24h":e}function $(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}var Ae=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Pe="0x0000000000000000000000000000000000000000",Se="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function Ue(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function Ce(e){return e.toLowerCase()===Pe.toLowerCase()?Se:e}function ve(e){return e.dex?e.dex:Ae.has(e.chain)?"jupiter":"kyberswap"}function v(e,s){return e==="jupiter"?Ue(s):e==="kyberswap"?Ce(s):s}function ps(e,s){return v(e,s)}function j(e){let s=ve(e),r=v(s,e.input),o=v(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.API.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:r,outputMint:o,priorityFee:e.priorityFee,...e.tipFee&&{tipFee:e.tipFee},...e.isAntiMev!=null&&{isAntiMev:e.isAntiMev},...e.permit&&{permit:e.permit},...e.deadline!=null&&{deadline:e.deadline}}}function K(e){return {signedTx:e.serializedTx}}function J(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage}))}}function Y(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(T),extra:t(e.countsByProtocols)}}function Q(e){return {serializedTx:e.serializedTx,plans:[],extra:e.routeInfo}}function X(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Z(e,s){let r=(s.data??[]).map(o=>({chain:I(o.chain),address:o.tokenAddress,name:o.name,symbol:o.symbol,image:t(o.logoUri),priceInUsd:o.priceInUsd,priceInNative:o.priceInNative,amount:o.amount,amountInUsd:o.valueInUsd,amountInNative:o.valueInNative,decimals:o.decimals}));return {chain:r[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:t(s.startCursor),endCursor:t(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:r}}function ee(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:t(r.winRate),buyAmountInUsd:t(r.buyAmountInUsd),sellAmountInUsd:t(r.sellAmountInUsd),totalCostInUsd:t(r.totalCostInUsd),realizedProfitInUsd:t(r.realizedProfitInUsd),realizedProfitRatio:t(r.realizedProfitRatio),unrealizedProfitInUsd:t(r.unrealizedProfitInUsd),unrealizedProfitRatio:t(r.unrealizedProfitRatio),totalProfitInUsd:t(r.totalProfitInUsd),totalProfitRatio:t(r.totalProfitRatio),avgProfitPerTradeInUsd:t(r.avgProfitPerTradeInUsd)}}function se(e,s,r){let o=r.data.map(n=>({chain:e,address:n.tokenAddress,name:n.name??"",symbol:n.symbol??"",image:t(n.logoUri),amount:n.balance,amountInUsd:n.currentValue,priceInUsd:n.priceInUsd,decimals:n.decimals??0,totalTrades:Number(n.totalTrades),buys:Number(n.buys),buyVolumes:n.buyAmount,buyVolumesInUsd:n.buyAmountInUsd,buyAvgPriceInUsd:n.avgBuyPriceInUsd,sells:Number(n.sells),sellVolumes:n.sellAmount,sellVolumesInUsd:n.sellAmountInUsd,sellAvgPriceInUsd:n.avgSellPriceInUsd,realizedProfitInUsd:n.realizedProfitInUsd,realizedProfitRatio:n.realizedProfitRatio,unrealizedProfitInUsd:n.unrealizedProfitInUsd,unrealizedProfitRatio:n.unrealizedProfitRatio,totalProfitInUsd:n.totalProfitInUsd,totalProfitRatio:n.totalProfitRatio}));return {chain:e,address:s,tokens:Number(r.summary.tokens),buys:Number(r.summary.buys),sells:Number(r.summary.sells),totalTrades:Number(r.summary.totalTrades),wins:Number(r.summary.wins),losses:Number(r.summary.losses),winRate:t(r.summary.winRate),buyAmountInUsd:t(r.summary.buyAmountInUsd),sellAmountInUsd:t(r.summary.sellAmountInUsd),totalCostInUsd:r.summary.totalCostInUsd,realizedProfitInUsd:t(r.summary.realizedProfitInUsd),realizedProfitRatio:t(r.summary.realizedProfitRatio),unrealizedProfitInUsd:t(r.summary.unrealizedProfitInUsd),totalProfitInUsd:t(r.summary.totalProfitInUsd),startCursor:t(r.startCursor),endCursor:t(r.endCursor),hasPrev:r.hasPrev,hasNext:r.hasNext,portfolios:o}}function re(e,s){return (s.data??[]).map(r=>({chain:I(r.chain),address:r.tokenAddress,name:r.name,symbol:r.symbol,image:t(r.logoUri),priceInUsd:r.priceInUsd,priceInNative:r.priceInNative,amount:r.amount,amountInUsd:r.valueInUsd,amountInNative:r.valueInNative,decimals:r.decimals}))}function oe(e,s){return s.data.map(r=>({chain:e,address:r.tokenAddress,name:r.name??"",symbol:r.symbol??"",image:t(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 ne(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(Re)}}function Re(e){let s=e.type.toLowerCase()==="buy";return {chain:I(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:t(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:t(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:t(e.dexProgramAddress),protocolFamily:t(e.dexProtocolFamily),image:t(e.dexImage)},poolAddress:t(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function te(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(we)}}function we(e){let s=e.type.toLowerCase().replace(/ /g,"_"),r=s==="buy";return {chain:I(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:t(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:t(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:t(e.dexProgramAddress),protocolFamily:t(e.dexProtocolFamily),image:t(e.dexImage)},poolAddress:t(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function ae(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 ie(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 de(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Ie(e.resolution),timestamp:new Date(e.time)}}function He(e){let s=["1m","5m","15m","30m","1h","4h","24h"],r=e,o={};for(let n of s){let l=r[`buys${n}`],i=r[`sells${n}`],c=r[`buyers${n}`],S=r[`sellers${n}`],U=r[`buyVolumeInUsd${n}`],C=r[`sellVolumeInUsd${n}`],L=r[`trades${n}`],B=r[`price${n}`],h=r[`openInUsd${n}`],P=r[`closeInUsd${n}`];if(!(l!==void 0||i!==void 0||L!==void 0||B!==void 0))continue;let me=L??(l!==void 0&&i!==void 0?l+i:void 0),Te=c!==void 0&&S!==void 0?c+S:void 0,ke=U!==void 0&&C!==void 0?new utils.SafeBigNumber(U).plus(C).toString():void 0,be=h&&P&&new utils.SafeBigNumber(h).gt(0)?new utils.SafeBigNumber(P).minus(h).div(h).toString():void 0;o[n]={buys:l,sells:i,trades:me,buyers:c,sellers:S,traders:Te,buyVolumesInUsd:U,sellVolumesInUsd:C,volumesInUsd:ke,openPriceInUsd:h,closePriceInUsd:P,priceInUsd:B??P,priceChange:be};}return o}function We(e){return {priceInUsd:e.price}}function x(e,s){return {chain:e,address:s.address,stats:He(s),marketData:We(s)}}function D(e,s,r){return {chain:e,address:s,marketData:{totalSupply:r.supply,marketCapInUsd:r.marketCapInUsd}}}function p(e,s,r){return {chain:e,address:s,marketData:xe(r)}}function _(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 N(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function le(e,s,r){return {chain:e,address:s,liquidities:[{poolAddress:r.poolAddress,tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}]}}function ce(e,s,r){return {chain:e,address:s,marketData:{tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}}}function xe(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,devHolders:e.balanceTagDevHolders===void 0?void 0:e.balanceTagDevHolders,devHoldings:e.balanceTagDevAmount,devHoldingsRatio:e.balanceTagDevRatio,sniperHolders:e.balanceTagSniperHolders===void 0?void 0:e.balanceTagSniperHolders,sniperHoldings:e.balanceTagSniperAmount,sniperHoldingsRatio:e.balanceTagSniperRatio,freshHolders:e.balanceTagFreshHolders===void 0?void 0:e.balanceTagFreshHolders,freshHoldings:e.balanceTagFreshAmount,freshHoldingsRatio:e.balanceTagFreshRatio,bundleHolders:e.balanceTagBundleHolders===void 0?void 0:e.balanceTagBundleHolders,bundleHoldings:e.balanceTagBundleAmount,bundleHoldingsRatio:e.balanceTagBundleRatio,sandwichHolders:e.balanceTagSandwichHolders===void 0?void 0:e.balanceTagSandwichHolders,sandwichHoldings:e.balanceTagSandwichAmount,sandwichHoldingsRatio:e.balanceTagSandwichRatio}}function F(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 O(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 ue=class{constructor(s,r){this.accessToken=s;this.options=r;this._client=new sdk.ChainStreamClient(this.accessToken,this.options);}_client;async getToken(s,r){let o=await this._client.token.getToken(d(s),r);return T(o)}async getTokens(s,r){return (await this._client.token.getTokens(d(s),{tokenAddresses:r.join(",")})).map(T)}async getTokenCandles(s,r,o,n){return (await this._client.token.getCandles(d(s),r,{resolution:R(o),from:n?.after?.getTime(),to:n?.before?.getTime(),limit:n?.limit})).map(i=>G(i,o))}async getTokenSecurity(s,r){let o=await this._client.token.getSecurity(d(s),r);return $(o)}async getTokenStats(s,r){let o=await this._client.token.getStats(d(s),r);return H(o)}async getTokenHolders(s,r,o){let n=await this._client.token.getHolders(d(s),r,{cursor:o?.cursor,limit:o?.limit,direction:o?.direction});return J(n)}async getTokenMarketData(s,r){let o=await this._client.token.getMarketData(d(s),r);return W(o)}async getNewTokens(s,r){return (await this._client.ranking.getNewTokens(d(s),this._buildRankingParams(r))).map(T)}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,o){return (await this._client.ranking.getHotTokens(d(s),r,this._buildRankingParams(o))).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?V(s.sortBy):void 0,sort:s?.sortDirection});return Y(r)}async swapRoute(s){let r=await this._client.dex.route(d(s.chain),j(s));return Q(r)}async sendTx(s){let r=await this._client.transaction.send(d(s.chain),K(s));return X(r)}async checkTxSuccess(s,r,o){let{success:n}=await this._client.waitForJob(r,o);return n}async getWalletPortfolios(s,r,o){let n=await this._client.wallet.getNetWorth(d(s),r,{cursor:o?.cursor,limit:o?.limit??100});return Z(s,n)}async getWalletPnl(s,r,o){let n=await this._client.wallet.getPnl(d(s),r,o?{resolution:o}:void 0);return ee(s,r,n)}async getWalletPortfolioPnls(s,r,o){let n=await this._client.wallet.getPnlDetails(d(s),r,{cursor:o?.cursor,limit:o?.limit??100});return se(s,r,n)}async getWalletPortfoliosByTokens(s,r,o){let n=await this._client.wallet.getNetWorthByTokens(d(s),r,{tokenAddresses:o.join(",")});return re(s,n)}async getWalletPortfolioPnlsByTokens(s,r,o){let n=await this._client.wallet.getPnlByToken(d(s),r,{tokenAddresses:o.join(",")});return oe(s,n)}async getWalletTrades(s,r,o){return this._getTrades(s,{walletAddress:r},o)}async getTokenTrades(s,r,o){return this._getTrades(s,{tokenAddress:r},o)}async getWalletActivities(s,r,o){return this._getActivities(s,{walletAddress:r},o)}async getTokenActivities(s,r,o){return this._getActivities(s,{tokenAddress:r},o)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}subscribeToken(s,r,o){let n=d(s),l=[this._client.stream.subscribeTokenStats({chain:n,tokenAddress:r,callback:i=>o([x(s,i)])}),this._client.stream.subscribeTokenSupply({chain:n,tokenAddress:r,callback:i=>o([D(s,r,i)])}),this._client.stream.subscribeTokenHolders({chain:n,tokenAddress:r,callback:i=>o([p(s,r,i)])}),this._client.stream.subscribeTokenLiquidity({chain:n,tokenAddress:r,callback:i=>o([_(s,r,i)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:n,tokenAddress:r,callback:i=>o([le(s,r,i)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:n,tokenAddress:r,callback:i=>o([ce(s,r,i)])})];return {unsubscribe:()=>l.forEach(i=>i.unsubscribe())}}subscribeTokenCandles(s,r,o,n){return this._client.stream.subscribeTokenCandles({chain:d(s),tokenAddress:r,resolution:R(o),callback:l=>n([de(l)])})}subscribeWalletPnl(s,r,o){return this._client.stream.subscribeWalletPnlList({chain:d(s),walletAddress:r,callback:n=>o(n.map(l=>({chain:s,address:l.walletAddress,buys:l.buys,buyAmountInUsd:l.buyAmountInUsd,sells:l.sells,sellAmountInUsd:l.sellAmountInUsd,wins:l.wins,winRate:l.winRatio,totalProfitInUsd:l.pnlInUsd,totalProfitRatio:l.pnlRatio,avgProfitPerTradeInUsd:l.averagePnlInUsd,tokens:l.tokens,resolution:l.resolution})))})}subscribeWalletPortfolios(s,r,o){return this._client.stream.subscribeWalletBalance({chain:d(s),walletAddress:r,callback:n=>o(n.map(l=>({chain:s,walletAddress:l.walletAddress,tokenAddress:l.tokenAddress,priceInUsd:l.tokenPriceInUsd,amount:l.balance})))})}subscribeWalletPortfolioPnls(s,r,o){return this._client.stream.subscribeWalletPnl({chain:d(s),walletAddress:r,callback:n=>o([{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,o){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:r,callback:n=>o([F(s,n)])})}subscribeTokenTrades(s,r,o){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:r,callback:n=>o([F(s,n)])})}subscribeWalletActivities(s,r,o){return this._client.stream.subscribeWalletTrade({chain:d(s),walletAddress:r,callback:n=>o([O(s,n)])})}subscribeTokenActivities(s,r,o){return this._client.stream.subscribeTokenTrade({chain:d(s),tokenAddress:r,callback:n=>o([O(s,n)])})}subscribeNewTokens(s,r){let o=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.New,r),l=[this._client.stream.subscribeNewToken({chain:o,callback:i=>r([ae(s,i)])}),this._client.stream.subscribeNewTokensMetadata({chain:o,callback:i=>r(i.map(c=>ie(s,c)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:i=>r(i.map(c=>N(s,c)))})];return {unsubscribe:()=>{n.unsubscribe(),l.forEach(i=>i.unsubscribe());}}}subscribeTrendingTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.HOT,r)}subscribeMigratedTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,r)}subscribeFinalStretchTokens(s,r){let o=d(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,r),l=this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:i=>r(i.map(c=>N(s,c)))});return {unsubscribe:()=>{n.unsubscribe(),l.unsubscribe();}}}subscribeStockTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.US_STOCKS,r)}_buildRankingParams(s){return {sortBy:s?.sortBy?w(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?q(s.filters):void 0,launchpadPlatform:s?.filters?pe(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,r,o){let n=await this._client.trade.getTrades(d(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return ne(n)}async _getActivities(s,r,o){let n=await this._client.trade.getActivities(d(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return te(n)}_subscribeRankingTokens(s,r,o){let n=d(s),l=[this._client.stream.subscribeRankingTokensStats({chain:n,channelType:r,callback:i=>o(i.map(c=>x(s,c)))}),this._client.stream.subscribeRankingTokensHolders({chain:n,channelType:r,callback:i=>o(i.map(c=>p(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensSupply({chain:n,channelType:r,callback:i=>o(i.map(c=>D(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:n,channelType:r,callback:i=>o(i.map(c=>_(s,c.tokenAddress,c)))})];return {unsubscribe:()=>l.forEach(i=>i.unsubscribe())}}};function pe(e){let s=e.find(r=>r.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}exports.Client=ue;exports.KYBERSWAP_NATIVE_SENTINEL=Se;exports.fromActivityPage=te;exports.fromChainDTO=I;exports.fromPnlDetailItems=oe;exports.fromPnlDetailsPage=se;exports.fromSendTxResult=X;exports.fromSwapRoute=Q;exports.fromTokenCandle=G;exports.fromTokenCreatorDTO=he;exports.fromTokenDTO=T;exports.fromTokenHolderPage=J;exports.fromTokenLiquidityDTO=Ds;exports.fromTokenMarketDataDTO=W;exports.fromTokenMetadataSubscribed=ie;exports.fromTokenPage=Y;exports.fromTokenSecurity=$;exports.fromTokenStatsDTO=H;exports.fromTokenSubscribed=ae;exports.fromTradePage=ne;exports.fromWalletNetWorthByTokens=re;exports.fromWalletPnlSummary=ee;exports.fromWalletPortfolios=Z;exports.fromWsActivity=O;exports.fromWsCandle=de;exports.fromWsTokenBondingCurveToSubscribed=N;exports.fromWsTokenDataSubscribed=x;exports.fromWsTokenHolderToSubscribed=p;exports.fromWsTokenLiquidityToSubscribed=_;exports.fromWsTokenMarketDataFromHolder=xe;exports.fromWsTokenMarketDataFromStats=We;exports.fromWsTokenMaxLiquidityToSubscribed=le;exports.fromWsTokenStats=He;exports.fromWsTokenSupplyToSubscribed=D;exports.fromWsTokenTotalLiquidityToSubscribed=ce;exports.fromWsTradeActivity=F;exports.toChainDTO=d;exports.toFieldDTO=w;exports.toMintForRoute=ps;exports.toRangeFiltersDTO=q;exports.toResolutionDTO=R;exports.toSearchFieldDTO=V;exports.toSendTxInput=K;exports.toSortDirectionDTO=ye;exports.toSwapRouteInput=j;exports.version=fe;//# sourceMappingURL=index.js.map
|
|
1
|
+
'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/client"]="0.1.182");var he="0.1.182";function t(e){return e??void 0}function l(e){switch(e){case types.Chain.ETHEREUM:return sdk.ChainSymbol.eth;case types.Chain.BINANCE:return sdk.ChainSymbol.bsc;case types.Chain.SOLANA:return sdk.ChainSymbol.sol}throw new Error(`Unsupported chain: ${e}`)}function W(e){switch(e){case "1s":return sdk.Resolution["1s"];case "15s":return sdk.Resolution["15s"];case "30s":return sdk.Resolution["30s"];case "1m":return sdk.Resolution["1m"];case "5m":return sdk.Resolution["5m"];case "15m":return sdk.Resolution["15m"];case "30m":case "1h":return sdk.Resolution["1h"];case "4h":return sdk.Resolution["4h"];case "12h":return sdk.Resolution["12h"];case "24h":return sdk.Resolution["1d"]}}function ye(e){return e}function G(e){switch(e){case "marketCap":return sdk.SearchSortBy.marketCapInUsd;case "tvl":return sdk.SearchSortBy.liquidityInUsd;case "price":return sdk.SearchSortBy.priceInUsd;case "holders":return sdk.SearchSortBy.holderCount;case "volumes24h":return sdk.SearchSortBy.h24VolumeInUsd;case "trades24h":return sdk.SearchSortBy.h24Transactions;case "createdAt":return sdk.SearchSortBy.tokenCreatedAt}throw new Error(`Unsupported search field: ${e}`)}function x(e){switch(e){case "price":return sdk.TokenField.marketDatapriceInUsd;case "priceChange1m":return sdk.TokenField.statspriceChangeRatioInUsd1m;case "priceChange5m":return sdk.TokenField.statspriceChangeRatioInUsd5m;case "priceChange1h":return sdk.TokenField.statspriceChangeRatioInUsd1h;case "priceChange4h":return sdk.TokenField.statspriceChangeRatioInUsd4h;case "priceChange24h":return sdk.TokenField.statspriceChangeRatioInUsd24h;case "marketCap":return sdk.TokenField.marketDatamarketCapInUsd;case "tvl":return sdk.TokenField.marketDatamaxPoolTvlInUsd;case "top10Holdings":return sdk.TokenField.marketDatatop10TotalHoldings;case "top10Ratio":return sdk.TokenField.marketDatatop10HoldingsRatio;case "top100Holdings":return sdk.TokenField.marketDatatop100TotalHoldings;case "top100Ratio":return sdk.TokenField.marketDatatop100HoldingsRatio;case "holders":return sdk.TokenField.marketDataholders;case "creatorsHoldings":return sdk.TokenField.marketDatacreatorHoldings;case "creatorsRatio":return sdk.TokenField.marketDatacreatorHoldingsRatio;case "buys1m":return sdk.TokenField.statsbuys1m;case "buys5m":return sdk.TokenField.statsbuys5m;case "buys15m":return sdk.TokenField.statsbuys15m;case "buys30m":return sdk.TokenField.statsbuys30m;case "buys1h":return sdk.TokenField.statsbuys1h;case "buys4h":return sdk.TokenField.statsbuys4h;case "buys24h":return sdk.TokenField.statsbuys24h;case "sells1m":return sdk.TokenField.statssells1m;case "sells5m":return sdk.TokenField.statssells5m;case "sells15m":return sdk.TokenField.statssells15m;case "sells30m":return sdk.TokenField.statssells30m;case "sells1h":return sdk.TokenField.statssells1h;case "sells4h":return sdk.TokenField.statssells4h;case "sells24h":return sdk.TokenField.statssells24h;case "trades1m":return sdk.TokenField.statstrades1m;case "trades5m":return sdk.TokenField.statstrades5m;case "trades1h":return sdk.TokenField.statstrades1h;case "trades4h":return sdk.TokenField.statstrades4h;case "trades24h":return sdk.TokenField.statstrades24h;case "traders1m":return sdk.TokenField.statstraders1m;case "traders5m":return sdk.TokenField.statstraders5m;case "traders1h":return sdk.TokenField.statstraders1h;case "traders4h":return sdk.TokenField.statstraders4h;case "traders24h":return sdk.TokenField.statstraders24h;case "volumes1m":return sdk.TokenField.statsvolumesInUsd1m;case "volumes5m":return sdk.TokenField.statsvolumesInUsd5m;case "volumes1h":return sdk.TokenField.statsvolumesInUsd1h;case "volumes4h":return sdk.TokenField.statsvolumesInUsd4h;case "volumes24h":return sdk.TokenField.statsvolumesInUsd24h;case "createdAt":return sdk.TokenField.tokenCreatedAt}throw new Error(`Unsupported sortBy: ${e}`)}function j(e){return e.filter(s=>["gt","gte","lt","lte","between"].indexOf(s.operator)>=0).map(s=>{let r={field:x(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 C(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 Ie(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function T(e){return {chain:C(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(Ie),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?p(e.stats):void 0,marketData:e.marketData?D(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function p(e){return {"1m":h(e,"1m"),"5m":h(e,"5m"),"15m":h(e,"15m"),"30m":h(e,"30m"),"1h":h(e,"1h"),"4h":h(e,"4h"),"24h":h(e,"24h")}}function y(e){return e===void 0?void 0:parseInt(e)}function h(e,s){let r=e.periods?.[s];return r?{buys:y(r.buys),sells:y(r.sells),trades:y(r.trades),buyers:y(r.buyers),sellers:y(r.sellers),traders:y(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 Ds(e){return {poolAddress:e.poolAddress,programAddress:e.programAddress??void 0,protocolFamily:e.protocolFamily??void 0,tvl:e.tvlInSol??void 0,tvlInUsd:e.tvlInUsd??void 0}}function D(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,price:e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,holders:e.holders?parseInt(e.holders):void 0,top10Holdings:e.top10TotalHoldings??void 0,top10HoldingsRatio:e.top10HoldingsRatio??void 0,top50Holdings:e.top50TotalHoldings??void 0,top50HoldingsRatio:e.top50HoldingsRatio??void 0,top100Holdings:e.top100TotalHoldings??void 0,top100HoldingsRatio:e.top100HoldingsRatio??void 0,bluechipHolders:e.bluechipTotalHolders?parseInt(e.bluechipTotalHolders):void 0,bluechipHoldings:e.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:e.bluechipHoldingsRatio??void 0,kolHolders:e.kolTotalHolders?parseInt(e.kolTotalHolders):void 0,kolHoldings:e.kolTotalHoldings??void 0,kolHoldingsRatio:e.kolHoldingsRatio??void 0,sniperHolders:e.sniperTotalHolders?parseInt(e.sniperTotalHolders):void 0,sniperHoldings:e.sniperTotalHoldings??void 0,sniperHoldingsRatio:e.sniperHoldingsRatio??void 0,proHolders:e.proTotalHolders?parseInt(e.proTotalHolders):void 0,proHoldings:e.proTotalHoldings??void 0,proHoldingsRatio:e.proHoldingsRatio??void 0,insiderHolders:e.insiderTotalHolders?parseInt(e.insiderTotalHolders):void 0,insiderHoldings:e.insiderTotalHoldings??void 0,insiderHoldingsRatio:e.insiderHoldingsRatio??void 0,sandwichHolders:e.sandwishTotalHolders?parseInt(e.sandwishTotalHolders):void 0,sandwichHoldings:e.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:e.sandwishHoldingsRatio??void 0,freshHolders:e.freshTotalHolders?parseInt(e.freshTotalHolders):void 0,freshHoldings:e.freshTotalHoldings??void 0,freshHoldingsRatio:e.freshHoldingsRatio??void 0,bundleHolders:e.bundleTotalHolders?parseInt(e.bundleTotalHolders):void 0,bundleHoldings:e.bundleTotalHoldings??void 0,bundleHoldingsRatio:e.bundleHoldingsRatio??void 0,devHolders:e.devTotalHolders?parseInt(e.devTotalHolders):void 0,devHoldings:e.devTotalHoldings??void 0,devHoldingsRatio:e.devHoldingsRatio??void 0}}function K(e,s){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:s,timestamp:new Date(e.timestamp)}}function Pe(e){return e==="1d"?"24h":e}function J(e){return {hasTransferFee:e.hasTransferFee,isTransferFeeUpgradable:e.isTransferFeeUpgradable,isTransferable:e.isTransferable,isFreezable:e.isFreezable,isClosable:e.isClosable}}var Se=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Ue="0x0000000000000000000000000000000000000000",Ce="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function ve(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function Re(e){return e.toLowerCase()===Ue.toLowerCase()?Ce:e}function we(e){return e.dex?e.dex:Se.has(e.chain)?"jupiter":"kyberswap"}function H(e,s){return e==="jupiter"?ve(s):e==="kyberswap"?Re(s):s}function _s(e,s){return H(e,s)}function Y(e){let s=we(e),r=H(s,e.input),o=H(s,e.output);return {dex:s,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.API.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:r,outputMint:o,priorityFee:e.priorityFee,...e.tipFee&&{tipFee:e.tipFee},...e.isAntiMev!=null&&{isAntiMev:e.isAntiMev},...e.permit&&{permit:e.permit},...e.deadline!=null&&{deadline:e.deadline}}}function Q(e){return {signedTx:e.serializedTx}}function X(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(s=>({address:s.walletAddress,amount:s.amount,amountInUsd:s.amountInUsd,ratio:s.percentage}))}}function Z(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(T),extra:t(e.countsByProtocols)}}function ee(e){return {serializedTx:e.serializedTx,plans:[],extra:e.routeInfo}}function se(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function re(e,s){let r=(s.data??[]).map(o=>({chain:C(o.chain),address:o.tokenAddress,name:o.name,symbol:o.symbol,image:t(o.logoUri),priceInUsd:o.priceInUsd,priceInNative:o.priceInNative,amount:o.amount,amountInUsd:o.valueInUsd,amountInNative:o.valueInNative,decimals:o.decimals}));return {chain:r[0]?.chain??e,address:s.walletAddress,balanceInUsd:s.totalValueInUsd,balanceInNative:s.totalValueInNative,startCursor:t(s.startCursor),endCursor:t(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:r}}function oe(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:t(r.winRate),buyAmountInUsd:t(r.buyAmountInUsd),sellAmountInUsd:t(r.sellAmountInUsd),totalCostInUsd:t(r.totalCostInUsd),realizedProfitInUsd:t(r.realizedProfitInUsd),realizedProfitRatio:t(r.realizedProfitRatio),unrealizedProfitInUsd:t(r.unrealizedProfitInUsd),unrealizedProfitRatio:t(r.unrealizedProfitRatio),totalProfitInUsd:t(r.totalProfitInUsd),totalProfitRatio:t(r.totalProfitRatio),avgProfitPerTradeInUsd:t(r.avgProfitPerTradeInUsd)}}function ne(e,s,r){let o=r.data.map(n=>({chain:e,address:n.tokenAddress,name:n.name??"",symbol:n.symbol??"",image:t(n.logoUri),amount:n.balance,amountInUsd:n.currentValue,priceInUsd:n.priceInUsd,decimals:n.decimals??0,totalTrades:Number(n.totalTrades),buys:Number(n.buys),buyVolumes:n.buyAmount,buyVolumesInUsd:n.buyAmountInUsd,buyAvgPriceInUsd:n.avgBuyPriceInUsd,sells:Number(n.sells),sellVolumes:n.sellAmount,sellVolumesInUsd:n.sellAmountInUsd,sellAvgPriceInUsd:n.avgSellPriceInUsd,realizedProfitInUsd:n.realizedProfitInUsd,realizedProfitRatio:n.realizedProfitRatio,unrealizedProfitInUsd:n.unrealizedProfitInUsd,unrealizedProfitRatio:n.unrealizedProfitRatio,totalProfitInUsd:n.totalProfitInUsd,totalProfitRatio:n.totalProfitRatio}));return {chain:e,address:s,tokens:Number(r.summary.tokens),buys:Number(r.summary.buys),sells:Number(r.summary.sells),totalTrades:Number(r.summary.totalTrades),wins:Number(r.summary.wins),losses:Number(r.summary.losses),winRate:t(r.summary.winRate),buyAmountInUsd:t(r.summary.buyAmountInUsd),sellAmountInUsd:t(r.summary.sellAmountInUsd),totalCostInUsd:r.summary.totalCostInUsd,realizedProfitInUsd:t(r.summary.realizedProfitInUsd),realizedProfitRatio:t(r.summary.realizedProfitRatio),unrealizedProfitInUsd:t(r.summary.unrealizedProfitInUsd),totalProfitInUsd:t(r.summary.totalProfitInUsd),startCursor:t(r.startCursor),endCursor:t(r.endCursor),hasPrev:r.hasPrev,hasNext:r.hasNext,portfolios:o}}function te(e,s){return (s.data??[]).map(r=>({chain:C(r.chain),address:r.tokenAddress,name:r.name,symbol:r.symbol,image:t(r.logoUri),priceInUsd:r.priceInUsd,priceInNative:r.priceInNative,amount:r.amount,amountInUsd:r.valueInUsd,amountInNative:r.valueInNative,decimals:r.decimals}))}function ae(e,s){return s.data.map(r=>({chain:e,address:r.tokenAddress,name:r.name??"",symbol:r.symbol??"",image:t(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 ie(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(He)}}function He(e){let s=e.type.toLowerCase()==="buy";return {chain:C(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:t(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:t(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:t(e.dexProgramAddress),protocolFamily:t(e.dexProtocolFamily),image:t(e.dexImage)},poolAddress:t(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function de(e){return {startCursor:t(e.startCursor),endCursor:t(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(We)}}function We(e){let s=e.type.toLowerCase().replace(/ /g,"_"),r=s==="buy";return {chain:C(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:t(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:t(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:t(e.dexProgramAddress),protocolFamily:t(e.dexProtocolFamily),image:t(e.dexImage)},poolAddress:t(e.poolAddress),status:e.status??"success",time:new Date(e.blockTimestamp*1e3)}}function le(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 ce(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 ue(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:Pe(e.resolution),timestamp:new Date(e.time)}}function xe(e){let s=["1m","5m","15m","30m","1h","4h","24h"],r=e,o={};for(let n of s){let d=r[`buys${n}`],i=r[`sells${n}`],c=r[`buyers${n}`],R=r[`sellers${n}`],k=r[`buyVolumeInUsd${n}`],A=r[`sellVolumeInUsd${n}`],P=r[`trades${n}`],S=r[`price${n}`],f=r[`openInUsd${n}`],U=r[`closeInUsd${n}`];if(!(d!==void 0||i!==void 0||P!==void 0||S!==void 0))continue;let w=P??(d!==void 0&&i!==void 0?d+i:void 0),be=c!==void 0&&R!==void 0?c+R:void 0,fe=k!==void 0&&A!==void 0?new utils.SafeBigNumber(k).plus(A).toString():void 0,ge=f&&U&&new utils.SafeBigNumber(f).gt(0)?new utils.SafeBigNumber(U).minus(f).div(f).toString():void 0;o[n]={buys:d,sells:i,trades:w,buyers:c,sellers:R,traders:be,buyVolumesInUsd:k,sellVolumesInUsd:A,volumesInUsd:fe,openPriceInUsd:f,closePriceInUsd:U,priceInUsd:S??U,priceChange:ge};}return o}function pe(e){return {priceInUsd:e.price}}function _(e,s){return {chain:e,address:s.address,stats:xe(s),marketData:pe(s)}}function N(e,s,r){return {chain:e,address:s,marketData:{totalSupply:r.supply,marketCapInUsd:r.marketCapInUsd}}}function F(e,s,r){return {chain:e,address:s,marketData:De(r)}}function B(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 O(e,s){return {chain:e,address:s.tokenAddress??"",migrateProgress:s.progressRatio?new utils.SafeBigNumber(s.progressRatio).shiftedBy(2).toString():void 0}}function me(e,s,r){return {chain:e,address:s,liquidities:[{poolAddress:r.poolAddress,tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}]}}function Te(e,s,r){return {chain:e,address:s,marketData:{tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}}}function De(e){return {holders:e.holders,top10Holdings:e.top10HoldersAmount,top10HoldingsRatio:e.top10HoldersRatio,top50Holdings:e.top50HoldersAmount,top50HoldingsRatio:e.top50HoldersRatio,top100Holdings:e.top100HoldersAmount,top100HoldingsRatio:e.top100HoldersRatio,devHolders:e.balanceTagDevHolders===void 0?void 0:e.balanceTagDevHolders,devHoldings:e.balanceTagDevAmount,devHoldingsRatio:e.balanceTagDevRatio,sniperHolders:e.balanceTagSniperHolders===void 0?void 0:e.balanceTagSniperHolders,sniperHoldings:e.balanceTagSniperAmount,sniperHoldingsRatio:e.balanceTagSniperRatio,freshHolders:e.balanceTagFreshHolders===void 0?void 0:e.balanceTagFreshHolders,freshHoldings:e.balanceTagFreshAmount,freshHoldingsRatio:e.balanceTagFreshRatio,bundleHolders:e.balanceTagBundleHolders===void 0?void 0:e.balanceTagBundleHolders,bundleHoldings:e.balanceTagBundleAmount,bundleHoldingsRatio:e.balanceTagBundleRatio,sandwichHolders:e.balanceTagSandwichHolders===void 0?void 0:e.balanceTagSandwichHolders,sandwichHoldings:e.balanceTagSandwichAmount,sandwichHoldingsRatio:e.balanceTagSandwichRatio}}function L(e,s){let r=s.kind.toLowerCase()==="buy";return {chain:e,walletAddress:r?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:r?"buy":"sell",from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}function M(e,s){let r=s.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:r==="buy"?s.buyWalletAddress:s.sellWalletAddress,txHash:s.txHash,type:r,from:{address:s.sellTokenAddress,symbol:s.sellTokenSymbol,name:s.sellTokenName,amount:s.sellAmount,amountInUsd:s.sellAmountInUsd},to:{address:s.buyTokenAddress,symbol:s.buyTokenSymbol,name:s.buyTokenName,amount:s.buyAmount,amountInUsd:s.buyAmountInUsd},status:"success",time:new Date(s.timestamp)}}var ke=class e{constructor(s,r){this.accessToken=s;this.options=r;this._client=new sdk.ChainStreamClient(this.accessToken,this.options);}_client;async getToken(s,r){let o=await this._client.token.getToken(l(s),r);return T(o)}async getTokens(s,r){return (await this._client.token.getTokens(l(s),{tokenAddresses:r.join(",")})).map(T)}async getTokenCandles(s,r,o,n){return (await this._client.token.getCandles(l(s),r,{resolution:W(o),from:n?.after?.getTime(),to:n?.before?.getTime(),limit:n?.limit})).map(i=>K(i,o))}async getTokenSecurity(s,r){let o=await this._client.token.getSecurity(l(s),r);return J(o)}async getTokenStats(s,r){let o=await this._client.token.getStats(l(s),r);return p(o)}async getTokenHolders(s,r,o){let n=await this._client.token.getHolders(l(s),r,{cursor:o?.cursor,limit:o?.limit,direction:o?.direction});return X(n)}async getTokenMarketData(s,r){let o=await this._client.token.getMarketData(l(s),r);return D(o)}async getNewTokens(s,r){return (await this._client.ranking.getNewTokens(l(s),this._buildRankingParams(r))).map(T)}async getFinalStretchTokens(s,r){return (await this._client.ranking.getFinalStretchTokens(l(s),this._buildRankingParams(r))).map(T)}async getMigratedTokens(s,r){return (await this._client.ranking.getMigratedTokens(l(s),this._buildRankingParams(r))).map(T)}async getTrendingTokens(s,r,o){return (await this._client.ranking.getHotTokens(l(s),r,this._buildRankingParams(o))).map(T)}async getStockTokens(s,r){return (await this._client.ranking.getStocksTokens(l(s),this._buildRankingParams(r))).map(T)}async searchTokens(s){let r=await this._client.token.search({chains:s?.chains?.map(l),q:s?.keyword,limit:s?.limit,cursor:s?.cursor,sortBy:s?.sortBy?G(s.sortBy):void 0,sort:s?.sortDirection});return Z(r)}async swapRoute(s){let r=await this._client.dex.route(l(s.chain),Y(s));return ee(r)}async sendTx(s){let r=await this._client.transaction.send(l(s.chain),Q(s));return se(r)}async checkTxSuccess(s,r,o){let{success:n}=await this._client.waitForJob(r,o);return n}async getWalletPortfolios(s,r,o){let n=e._CHAIN_TO_BALANCE_PARAM[s];if(n&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(s,n,r);let d=await this._client.wallet.getNetWorth(l(s),r,{cursor:o?.cursor,limit:o?.limit??100});return re(s,d)}async getWalletPnl(s,r,o){let n=await this._client.wallet.getPnl(l(s),r,o?{resolution:o}:void 0);return oe(s,r,n)}async getWalletPortfolioPnls(s,r,o){let n=await this._client.wallet.getPnlDetails(l(s),r,{cursor:o?.cursor,limit:o?.limit??100});return ne(s,r,n)}async getWalletPortfoliosByTokens(s,r,o){let n=e._CHAIN_TO_BALANCE_PARAM[s];if(n&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(s,n,r,o);let d=await this._client.wallet.getNetWorthByTokens(l(s),r,{tokenAddresses:o.join(",")});return te(s,d)}async getWalletPortfolioPnlsByTokens(s,r,o){let n=await this._client.wallet.getPnlByToken(l(s),r,{tokenAddresses:o.join(",")});return ae(s,n)}async getWalletTrades(s,r,o){return this._getTrades(s,{walletAddress:r},o)}async getTokenTrades(s,r,o){return this._getTrades(s,{tokenAddress:r},o)}async getWalletActivities(s,r,o){return this._getActivities(s,{walletAddress:r},o)}async getTokenActivities(s,r,o){return this._getActivities(s,{tokenAddress:r},o)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}subscribeToken(s,r,o){let n=l(s),d=[this._client.stream.subscribeTokenStats({chain:n,tokenAddress:r,callback:i=>o([_(s,i)])}),this._client.stream.subscribeTokenSupply({chain:n,tokenAddress:r,callback:i=>o([N(s,r,i)])}),this._client.stream.subscribeTokenHolders({chain:n,tokenAddress:r,callback:i=>o([F(s,r,i)])}),this._client.stream.subscribeTokenLiquidity({chain:n,tokenAddress:r,callback:i=>o([B(s,r,i)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:n,tokenAddress:r,callback:i=>o([me(s,r,i)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:n,tokenAddress:r,callback:i=>o([Te(s,r,i)])})];return {unsubscribe:()=>d.forEach(i=>i.unsubscribe())}}subscribeTokenCandles(s,r,o,n){return this._client.stream.subscribeTokenCandles({chain:l(s),tokenAddress:r,resolution:W(o),callback:d=>n([ue(d)])})}subscribeWalletPnl(s,r,o){return this._client.stream.subscribeWalletPnlList({chain:l(s),walletAddress:r,callback:n=>o(n.map(d=>({chain:s,address:d.walletAddress,buys:d.buys,buyAmountInUsd:d.buyAmountInUsd,sells:d.sells,sellAmountInUsd:d.sellAmountInUsd,wins:d.wins,winRate:d.winRatio,totalProfitInUsd:d.pnlInUsd,totalProfitRatio:d.pnlRatio,avgProfitPerTradeInUsd:d.averagePnlInUsd,tokens:d.tokens,resolution:d.resolution})))})}subscribeWalletPortfolios(s,r,o){return this._client.stream.subscribeWalletBalance({chain:l(s),walletAddress:r,callback:n=>o(n.map(d=>({chain:s,walletAddress:d.walletAddress,tokenAddress:d.tokenAddress,priceInUsd:d.tokenPriceInUsd,amount:d.balance})))})}subscribeWalletPortfolioPnls(s,r,o){return this._client.stream.subscribeWalletPnl({chain:l(s),walletAddress:r,callback:n=>o([{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,o){return this._client.stream.subscribeWalletTrade({chain:l(s),walletAddress:r,callback:n=>o([L(s,n)])})}subscribeTokenTrades(s,r,o){return this._client.stream.subscribeTokenTrade({chain:l(s),tokenAddress:r,callback:n=>o([L(s,n)])})}subscribeWalletActivities(s,r,o){return this._client.stream.subscribeWalletTrade({chain:l(s),walletAddress:r,callback:n=>o([M(s,n)])})}subscribeTokenActivities(s,r,o){return this._client.stream.subscribeTokenTrade({chain:l(s),tokenAddress:r,callback:n=>o([M(s,n)])})}subscribeNewTokens(s,r){let o=l(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.New,r),d=[this._client.stream.subscribeNewToken({chain:o,callback:i=>r([le(s,i)])}),this._client.stream.subscribeNewTokensMetadata({chain:o,callback:i=>r(i.map(c=>ce(s,c)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:i=>r(i.map(c=>O(s,c)))})];return {unsubscribe:()=>{n.unsubscribe(),d.forEach(i=>i.unsubscribe());}}}subscribeTrendingTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.HOT,r)}subscribeMigratedTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.MIGRATED,r)}subscribeFinalStretchTokens(s,r){let o=l(s),n=this._subscribeRankingTokens(s,sdk.WsChannelType.FINAL_STRETCH,r),d=this._client.stream.subscribeRankingTokensBondingCurve({chain:o,callback:i=>r(i.map(c=>O(s,c)))});return {unsubscribe:()=>{n.unsubscribe(),d.unsubscribe();}}}subscribeStockTokens(s,r){return this._subscribeRankingTokens(s,sdk.WsChannelType.US_STOCKS,r)}static _CHAIN_TO_BALANCE_PARAM={[types.Chain.SOLANA]:"sol",[types.Chain.ETHEREUM]:"eth",[types.Chain.BINANCE]:"bnb"};async _getPortfoliosFromBalanceApi(s,r,o,n){let d=this.options.nativeBalanceApiUrl,i=new URLSearchParams({chain:r,address:o});n?.length&&i.set("tokens",n.join(","));let c=await fetch(`${d}?${i.toString()}`);if(!c.ok)throw new Error(`Balance API returned ${c.status}`);return (await c.json()).balances.map(k=>{let A=BigInt(k.balance),P=k.decimals,S=BigInt(10)**BigInt(P),f=A/S,z=(A%S).toString().padStart(P,"0"),w=`${f}.${z}`.replace(/\.?0+$/,"")||"0";return {chain:s,address:k.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:w,amountInUsd:"0",amountInNative:"0",decimals:k.decimals}})}async _getWalletPortfoliosFromBalanceApi(s,r,o){let n=await this._getPortfoliosFromBalanceApi(s,r,o);return {chain:s,address:o,balanceInUsd:"0",balanceInNative:"0",portfolios:n,hasPrev:false,hasNext:false}}_buildRankingParams(s){return {sortBy:s?.sortBy?x(s.sortBy):void 0,sortDirection:s?.sortDirection?s.sortDirection:void 0,rangeFilters:s?.filters?j(s.filters):void 0,launchpadPlatform:s?.filters?Ne(s.filters):void 0,searchKeywords:s?.keywords,excludeKeywords:s?.excludeKeywords}}async _getTrades(s,r,o){let n=await this._client.trade.getTrades(l(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return ie(n)}async _getActivities(s,r,o){let n=await this._client.trade.getActivities(l(s),{...r,cursor:o?.cursor,limit:o?.limit,direction:o?.direction,beforeTimestamp:o?.before?.getTime(),afterTimestamp:o?.after?.getTime(),beforeBlockHeight:o?.beforeBlockHeight,afterBlockHeight:o?.afterBlockHeight,poolAddress:o?.poolAddress,type:o?.type?o.type.toUpperCase():void 0});return de(n)}_subscribeRankingTokens(s,r,o){let n=l(s),d=[this._client.stream.subscribeRankingTokensStats({chain:n,channelType:r,callback:i=>o(i.map(c=>_(s,c)))}),this._client.stream.subscribeRankingTokensHolders({chain:n,channelType:r,callback:i=>o(i.map(c=>F(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensSupply({chain:n,channelType:r,callback:i=>o(i.map(c=>N(s,c.tokenAddress,c)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:n,channelType:r,callback:i=>o(i.map(c=>B(s,c.tokenAddress,c)))})];return {unsubscribe:()=>d.forEach(i=>i.unsubscribe())}}};function Ne(e){let s=e.find(r=>r.field==="launchedFromProtocolFamily");if(s){if(s.operator==="eq")return [s.value];if(s.operator==="in")return s.value;console.warn("invalid launchedFromProtocolFamily filter",s);}}exports.Client=ke;exports.KYBERSWAP_NATIVE_SENTINEL=Ce;exports.fromActivityPage=de;exports.fromChainDTO=C;exports.fromPnlDetailItems=ae;exports.fromPnlDetailsPage=ne;exports.fromSendTxResult=se;exports.fromSwapRoute=ee;exports.fromTokenCandle=K;exports.fromTokenCreatorDTO=Ie;exports.fromTokenDTO=T;exports.fromTokenHolderPage=X;exports.fromTokenLiquidityDTO=Ds;exports.fromTokenMarketDataDTO=D;exports.fromTokenMetadataSubscribed=ce;exports.fromTokenPage=Z;exports.fromTokenSecurity=J;exports.fromTokenStatsDTO=p;exports.fromTokenSubscribed=le;exports.fromTradePage=ie;exports.fromWalletNetWorthByTokens=te;exports.fromWalletPnlSummary=oe;exports.fromWalletPortfolios=re;exports.fromWsActivity=M;exports.fromWsCandle=ue;exports.fromWsTokenBondingCurveToSubscribed=O;exports.fromWsTokenDataSubscribed=_;exports.fromWsTokenHolderToSubscribed=F;exports.fromWsTokenLiquidityToSubscribed=B;exports.fromWsTokenMarketDataFromHolder=De;exports.fromWsTokenMarketDataFromStats=pe;exports.fromWsTokenMaxLiquidityToSubscribed=me;exports.fromWsTokenStats=xe;exports.fromWsTokenSupplyToSubscribed=N;exports.fromWsTokenTotalLiquidityToSubscribed=Te;exports.fromWsTradeActivity=L;exports.toChainDTO=l;exports.toFieldDTO=x;exports.toMintForRoute=_s;exports.toRangeFiltersDTO=j;exports.toResolutionDTO=W;exports.toSearchFieldDTO=G;exports.toSendTxInput=Q;exports.toSortDirectionDTO=ye;exports.toSwapRouteInput=Y;exports.version=he;//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|