@liberfi.io/client 0.3.87 → 0.3.89

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.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 E=class extends Error{code="NotImplemented";constructor(n,s){super(s?`${n} is not yet implemented by the backend: ${s}`:`${n} is not yet implemented by the backend`),this.name="NotImplementedError";}};function Mn(e){return e instanceof Error&&e.code==="NotImplemented"}var nn="https://api.chainstream.io";async function sn(e){return typeof e=="string"?e:Promise.resolve(e.getToken())}function tn(e,n,s){if(s!=null){if(s instanceof Date){e.set(n,String(s.getTime()));return}e.set(n,String(s));}}function rn(e,n){let s=e.endsWith("/")?e.slice(0,-1):e,t=n.startsWith("/")?n:`/${n}`;return s+t}async function on(e,n,s){let t=new URL(rn(e.baseUrl,n)),o=new URLSearchParams;for(let[m,g]of Object.entries(s))tn(o,m,g);let a=o.toString();a&&(t.search=a);let l=await sn(e.accessToken),i=await fetch(t.toString(),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${l}`}});if(!i.ok){let m=await i.text().catch(()=>"");throw new Error(`[phase3Http] ${i.status} ${i.statusText} ${t.pathname}: ${m}`)}return await i.json()}function ue(e,n){return {baseUrl:n??nn,accessToken:e}}function ce(e,n,s,t){return on(e,`/v2/wallet/${encodeURIComponent(n)}/${encodeURIComponent(s)}/pnl-details`,t)}function r(e){return e??void 0}function X(e,...n){if(e)for(let s of n){let t=e[s];if(typeof t=="string"&&t.length>0)return t}}function Te(e){if(!e||typeof e!="object")return;let n=e,s=n.extra,t=n.extension;return X(n,"developerAddress","devAddress","creatorAddress","creator","deployerAddress","deployer","mintAuthority","updateAuthority")??X(s&&typeof s=="object"?s:void 0,"developerAddress","devAddress","creatorAddress","creator","deployerAddress","deployer")??X(t&&typeof t=="object"?t:void 0,"developerAddress","devAddress","creatorAddress","creator","deployerAddress","deployer")}function u(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 ee(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 dn(e){return e}function ge(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 ne(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 be(e){return e.filter(n=>["gt","gte","lt","lte","between"].indexOf(n.operator)>=0).map(n=>{let s={field:ne(n.field)};return ["gt","gte","between"].indexOf(n.operator)>=0&&(s.min=typeof n.value=="number"?new utils.SafeBigNumber(n.value).toString():n.value),["lt","lte","between"].indexOf(n.operator)>=0&&(s.max=typeof n.value=="number"?new utils.SafeBigNumber(n.value).toString():n.value),s})}function _(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 ye(e){return {address:e.address??void 0,share:e.share??void 0,isVerified:e.isVerified??void 0}}function h(e){return {chain:_(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(ye),developerAddress:Te(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(([,n])=>n!=null).map(([n,s])=>[n,s])):void 0,stats:e.stats?G(e.stats):void 0,marketData:e.marketData?q(e.marketData):void 0,createdAt:e.tokenCreatedAt?new Date(e.tokenCreatedAt):void 0}}function ln(e,n){let s=n.metadata,t=s.extra;return {chain:e,name:s.name||n.address,symbol:s.symbol||n.address,address:n.address,decimals:s.decimals?parseInt(s.decimals):0,image:s.imageUrl??void 0,description:s.description??void 0,creators:s.tokenCreators?.map(ye),developerAddress:Te(s),launchedFrom:{programAddress:t?.launchFromProgramAddress??void 0,protocolFamily:t?.launchFromProtocolFamily??void 0},migrateProgress:n.marketData?.completionRatio?new utils.SafeBigNumber(n.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:t?.migratedToProgramAddress??void 0,protocolFamily:t?.migratedToProtocolFamily??void 0,poolAddress:t?.migratedToPoolAddress??void 0,migratedAt:t?.migratedAt?new Date(t.migratedAt):void 0},socialMedias:s.socialMedias?Object.fromEntries(Object.entries(s.socialMedias).filter(([,o])=>o!=null).map(([o,a])=>[o,a])):void 0,stats:n.stats?G(n.stats):void 0,marketData:n.marketData?q(n.marketData):void 0,createdAt:s.tokenCreatedAt?new Date(s.tokenCreatedAt):void 0}}function G(e){return {"1m":w(e,"1m"),"5m":w(e,"5m"),"15m":w(e,"15m"),"30m":w(e,"30m"),"1h":w(e,"1h"),"4h":w(e,"4h"),"24h":w(e,"24h")}}function p(e){return e===void 0?void 0:parseInt(e)}function w(e,n){let s=e.periods?.[n];return s?{buys:p(s.buys),sells:p(s.sells),trades:p(s.trades),buyers:p(s.buyers),sellers:p(s.sellers),traders:p(s.traders),buyVolumes:s.buyVolume,sellVolumes:s.sellVolume,volumes:s.totalVolumeInNative,buyVolumesInUsd:s.buyVolumeInUsd,sellVolumesInUsd:s.sellVolumeInUsd,volumesInUsd:s.totalVolumeInUsd,openPriceInUsd:s.openInUsd,closePriceInUsd:s.closeInUsd,highPriceInUsd:s.highInUsd,lowPriceInUsd:s.lowInUsd,priceInUsd:s.closeInUsd,priceChange:s.priceChangeRatioInUsd}:{}}function At(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 he(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 Ae(e){if(e)return {poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenALiquidityInUsd:e.tokenALiquidityInUsd,tokenBAddress:e.tokenBAddress,tokenBLiquidityInUsd:e.tokenBLiquidityInUsd}}function Pe(e,n){return {chain:e,poolAddress:n.poolAddress,tokenAAddress:n.tokenAAddress,tokenBAddress:n.tokenBAddress,createdAt:n.createdAtMs?new Date(n.createdAtMs):void 0,dex:he(n.dex),token:n.token?h(n.token):void 0,balance:Ae(n.balance)}}function un(e){if(e.length!==0)return e.reduce((n,s)=>({...n,...Object.fromEntries(Object.entries(s).filter(([,t])=>t!==void 0)),stats:s.stats??n.stats,marketData:s.marketData?{...n.marketData,...s.marketData}:n.marketData,socialMedias:s.socialMedias?{...n.socialMedias,...s.socialMedias}:n.socialMedias,launchedFrom:s.launchedFrom?{...n.launchedFrom,...s.launchedFrom}:n.launchedFrom,migratedTo:s.migratedTo?{...n.migratedTo,...s.migratedTo}:n.migratedTo}),e[0])}function Ie(e,n){let s=n.token?un(te(e,n.token)):void 0;return {chain:e,poolAddress:n.poolAddress,tokenAAddress:n.tokenAAddress,tokenBAddress:n.tokenBAddress,createdAt:n.createdAtMs?new Date(n.createdAtMs):void 0,dex:he(n.dex),token:s,balance:Ae(n.balance)}}function q(e){return {totalSupply:e.totalSupply??void 0,marketCap:e.marketCapInSol??void 0,marketCapInUsd:e.marketCapInUsd??void 0,athMarketCapInUsd:e.athMarketCapInUsd??void 0,price:e.priceInNative??e.priceInSol??void 0,priceInUsd:e.priceInUsd??void 0,tvl:e.totalTvlInSol??void 0,tvlInUsd:e.totalTvlInUsd??void 0,maxPoolTvl:e.maxPoolTvlInSol??void 0,maxPoolTvlInUsd:e.maxPoolTvlInUsd??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 Se(e,n){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,volumeInTokenAmount:r(e.volumeInTokenAmount),trades:e.trades??void 0,resolution:n,timestamp:new Date(e.timestamp)}}function cn(e){return e==="1d"?"24h":e}function c(e){return e??void 0}function f(e){return e??void 0}function N(e){return e??void 0}function k(...e){return e.find(n=>n!==void 0)}function W(e){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return true;if(e===0)return false}if(typeof e=="string"){if(e==="1"||e.toLowerCase()==="true")return true;if(e==="0"||e.toLowerCase()==="false")return false}}function Ce(e){if(e!==void 0)return new utils.SafeBigNumber(e).gt(0)}function F(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return e}function Re(e){return Array.isArray(e)?e:void 0}function x(e){let s=F(e)?.status;if(s==="1"||s===1||s===true)return true;if(s==="0"||s===0||s===false)return false}function mn(e){let n=F(e);if(n)return Object.keys(n).length>0}function fn(e){if(e==="0"||e===0||e===false)return true;if(e==="1"||e===1||e===true)return false}function kn(e){let n=Re(e.dex);if(!n)return;let s;for(let t of n){let o=F(t)?.burn_percent;if(o==null||typeof o!="number"&&typeof o!="string")continue;let a=new utils.SafeBigNumber(o).div(100);(!s||a.gt(s))&&(s=a);}return s?.toString()}function Tn(e){let n=Re(e.holders);if(!n)return;let s=n.slice(0,10);if(s.length===0)return;let t=new utils.SafeBigNumber(0);for(let o of s){let a=F(o)?.percent;typeof a!="string"&&typeof a!="number"||(t=t.plus(a));}return t.toString()}function gn(e){return x(e.metadata_mutable)}function bn(e){try{let n=F(e);if(!n)return;let s=x(n.mintable),t=x(n.freezable),o=x(n.closable),a=mn(n.transfer_fee),l=kn(n);return {hasTransferFee:a,isTransferFeeUpgradable:x(n.transfer_fee_upgradable),isTransferable:fn(n.non_transferable),isFreezable:t,isClosable:o,isBalanceMutableAuthorityActive:x(n.balance_mutable_authority),isMetadataMutable:gn(n),isMintable:s,isMintAuthorityRenounced:s===void 0?void 0:!s,isLpBurned:Ce(l),lpBurnRatio:l,top10HoldersRatio:Tn(n)}}catch{return}}function yn(e){if(e)return {available:e.available,buyTaxRatio:c(e.buyTax),sellTaxRatio:c(e.sellTax),chainSupported:f(e.chainSupported),holderCount:c(e.holderCount),hasBlacklist:f(e.isBlacklisted),isFreezable:f(e.isFreezable),isHoneypot:f(e.isHoneypot),isMintable:f(e.isMintable),isOpenSource:f(e.isOpenSource),isProxy:f(e.isProxy),isRenounced:f(e.isRenounced),lastRefreshedAt:c(e.lastRefreshedAt),lpHolderCount:c(e.lpHolderCount),ownerAddress:c(e.ownerAddress),raw:e.raw,totalSupply:c(e.totalSupply)}}function hn(e){if(e)return {available:e.available,averageTaxRatio:c(e.averageTax),buyTaxRatio:c(e.buyTax),canNotSell:N(e.canNotSell),canSell:N(e.canSell),chainSupported:f(e.chainSupported),highTaxRatio:c(e.highTax),honeypotResult:c(e.honeypotResult),isHoneypot:f(e.isHoneypot),isOpenSource:f(e.isOpenSource),isRenounced:f(e.isRenounced),lastRefreshedAt:c(e.lastRefreshedAt),raw:e.raw,sellTaxRatio:c(e.sellTax)}}function An(e){if(e)return {available:e.available,chainSupported:f(e.chainSupported),isOpenSource:f(e.isOpenSource),isProxy:f(e.isProxy),isRenounced:f(e.isRenounced),isSafe:f(e.isSafe),lastRefreshedAt:c(e.lastRefreshedAt),launchpadName:c(e.launchpadName),ownerAddress:c(e.ownerAddress),raw:e.raw,sourceType:c(e.sourceType),vulnCount:N(e.vulnCount),vulnCriticalCount:N(e.vulnCriticalCount),vulnMitigatedCount:N(e.vulnMitigatedCount)}}function Pn(e){if(e)return {isLocked:f(e.isLocked),leftLockPercentRatio:c(e.leftLockPercent),lockDetail:c(e.lockDetail),lockPercentRatio:c(e.lockPercent),lockTags:e.lockTags}}function In(e){return {address:c(e.address),isRenounced:f(e.isRenounced),name:c(e.name)}}function Sn(e){return e?.find(n=>n.name?.toLowerCase().includes("mint"))}function Ue(e){let n=e,s=e,t=yn(n.goplus),o=hn(n.honeypot),a=An(n.serialized),l=Pn(n.lockInfo),i=bn(n.goplus?.raw),m=n.privileges?.map(In)??void 0,g=Sn(m),A=k(c(n.devTokenBurnRatio),i?.lpBurnRatio),C=k(t?.hasBlacklist),R=k(o?.isHoneypot,t?.isHoneypot),P=k(a?.isOpenSource,o?.isOpenSource,t?.isOpenSource),U=k(a?.isRenounced,o?.isRenounced,t?.isRenounced),z=k(o?.buyTaxRatio,t?.buyTaxRatio),O=k(o?.sellTaxRatio,t?.sellTaxRatio);return {address:c(n.address),chain:c(n.chain),sourcesAvailable:n.sourcesAvailable??void 0,goplus:t,honeypot:o,serialized:a,lockInfo:l,privileges:m,devTokenBurnAmount:c(n.devTokenBurnAmount),devTokenBurnRatio:A,lpBurnRatio:i?.lpBurnRatio,top10HoldersRatio:i?.top10HoldersRatio,isShowAlert:f(n.isShowAlert),hasTransferFee:k(W(s.hasTransferFee),i?.hasTransferFee),isTransferFeeUpgradable:k(W(s.isTransferFeeUpgradable),i?.isTransferFeeUpgradable),isTransferable:k(W(s.isTransferable),i?.isTransferable),isFreezable:k(f(n.isFreezable),t?.isFreezable,W(s.isFreezable),i?.isFreezable),isClosable:k(W(s.isClosable),i?.isClosable),isBalanceMutableAuthorityActive:i?.isBalanceMutableAuthorityActive,isMetadataMutable:i?.isMetadataMutable,isMintable:k(f(n.isMintable),t?.isMintable,i?.isMintable),isMintAuthorityRenounced:k(g?.isRenounced,i?.isMintAuthorityRenounced),hasBlacklist:C,isLpBurned:k(i?.isLpBurned,Ce(A)),isOpenSource:P,isHoneypot:R,isOwnershipRenounced:U,isLpLocked:l?.isLocked,buyTaxRatio:z,sellTaxRatio:O,averageTaxRatio:o?.averageTaxRatio,maxTaxRatio:o?.highTaxRatio,isSerializedSafe:a?.isSafe,serializedVulnCount:a?.vulnCount,serializedCriticalVulnCount:a?.vulnCriticalCount}}var Cn=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),Rn="0x0000000000000000000000000000000000000000",Un="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function vn(e){return e===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:e}function wn(e){return e.toLowerCase()===Rn.toLowerCase()?Un:e}function Hn(e){return e.dex==="jupiter"?"jupiter":e.dex==="kyberswap"?"kyberswap":Cn.has(e.chain)?"jupiter":"kyberswap"}function Z(e,n){return e==="jupiter"?vn(n):e==="kyberswap"?wn(n):n}function Pt(e,n){return Z(e,n)}function ve(e){let n=Hn(e),s=Z(n,e.input),t=Z(n,e.output);return {dex:n,userAddress:e.userAddress,amount:e.amount,swapMode:e.mode===types.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:e.slippage??1,inputMint:s,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 we(e){return {signedTx:e.serializedTx}}function L(e){return e==null?void 0:new Date(e)}function H(e){if(e!=null)return new Date(e<1e12?e*1e3:e)}function M(e){if(!(!e||e.length===0))return e}function He(e){return {accountAddress:r(e.accountAddress),address:e.walletAddress,accuAmount:r(e.accuAmount),accuCost:r(e.accuCost),addrType:r(e.addrType),addressLabel:r(e.addressLabel),amount:e.amount,amountInUsd:e.amountInUsd,amountInNative:r(e.amountInNative),ratio:e.percentage,avgBuyPriceUsd:r(e.avgBuyPriceUsd),avgCostUsd:r(e.avgCostUsd),avgSellPriceUsd:r(e.avgSellPriceUsd),buyAmountCur:r(e.buyAmountCur),buyVolumeNative:r(e.buyVolumeNative),buyVolumeUsd:r(e.buyVolumeUsd),createdAt:H(e.createdAt),endHoldingAt:H(e.endHoldingAt),exchange:r(e.exchange),firstBuyTime:H(e.firstBuyTime),historyBoughtCost:r(e.historyBoughtCost),historyBoughtFee:r(e.historyBoughtFee),historySoldFee:r(e.historySoldFee),historySoldIncome:r(e.historySoldIncome),historyTransferInAmount:r(e.historyTransferInAmount),historyTransferInCost:r(e.historyTransferInCost),historyTransferOutAmount:r(e.historyTransferOutAmount),historyTransferOutFee:r(e.historyTransferOutFee),historyTransferOutIncome:r(e.historyTransferOutIncome),isClosed:r(e.isClosed),isNew:r(e.isNew),isTransferIn:r(e.isTransferIn),lastActiveAt:H(e.lastActiveAt),lastBlock:r(e.lastBlock),lossCount:r(e.lossCount),makerTokenTags:r(e.makerTokenTags),nativeBalance:r(e.nativeBalance),netflowAmount:r(e.netflowAmount),netflowAmountUsd:r(e.netflowAmountUsd),netflowUsd:r(e.netflowUsd),positionCostUsd:r(e.positionCostUsd),realizedPnlRatio:r(e.realizedPnlRatio),realizedProfit:r(e.realizedProfit),roi:r(e.roi),sellAmountCur:r(e.sellAmountCur),sellAmountPercentage:r(e.sellAmountPercentage),sellVolumeNative:r(e.sellVolumeNative),sellVolumeUsd:r(e.sellVolumeUsd),startHoldingAt:H(e.startHoldingAt),tags:M(e.tags),tokenTransferIn:r(e.tokenTransferIn),tokenTransferOut:r(e.tokenTransferOut),totalBuyCount:r(e.totalBuyCount),totalCostUsd:r(e.totalCostUsd),totalProfit:r(e.totalProfit),totalSellCount:r(e.totalSellCount),transferInAmount7d:r(e.transferInAmount7d),transferInCount:r(e.transferInCount),transferOutAmount7d:r(e.transferOutAmount7d),transferOutCount:r(e.transferOutCount),unrealizedPnlRatio:r(e.unrealizedPnlRatio),unrealizedProfit:r(e.unrealizedProfit),walletTagV2:r(e.walletTagV2),winCount:r(e.winCount)}}function It(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(n=>He(n))}}function pe(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(n=>He(n))}}function xe(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(n=>({address:n.walletAddress,amount:n.amount,amountInUsd:n.amountInUsd,tags:M(n.tags),lastActiveAt:L(n.lastActiveAt),startHoldingAt:L(n.startHoldingAt),averageBuyPriceInUsd:r(n.averageBuyPriceInUsd),averageSellPriceInUsd:r(n.averageSellPriceInUsd),buyAmountCur:r(n.buyAmountCur),sellAmountCur:r(n.sellAmountCur),totalBuyAmountInUsd:r(n.totalBuyAmountInUsd),totalSellAmountInUsd:r(n.totalSellAmountInUsd),realizedPnl:r(n.realizedPnl),totalRealizedPnlInUsd:r(n.totalRealizedPnlInUsd),unrealizedPnl:r(n.unrealizedPnl),unrealizedPnlInUsd:r(n.unrealizedPnlInUsd),roi:r(n.roi),totalPnlInUsd:r(n.totalPnlInUsd),totalBuyCount:r(n.totalBuyCount),totalSellCount:r(n.totalSellCount),transferIn:r(n.transferIn),transferInCount:r(n.transferInCount),transferOutCount:r(n.transferOutCount)}))}}function De(e,n){return {startCursor:r(n.startCursor),endCursor:r(n.endCursor),hasPrev:n.hasPrev??false,hasNext:n.hasNext??false,data:n.data.map(s=>ln(e,s))}}function Be(e){let n=e;return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(h),extra:r(n.countsByProtocols)}}function Oe(e){return {serializedTx:e.serializedTx,recentBlockhash:r(e.recentBlockhash),lastValidBlockHeight:r(e.lastValidBlockHeight),plans:[],extra:e.routeInfo}}function We(e){return {blockhash:e.blockhash,lastValidBlockHeight:e.lastValidBlockHeight}}function Ne(e){return {txHash:e.signature,extra:{jobId:e.jobId,elapsedTime:e.elapsedTime}}}function Le(e,n){let s=(n.data??[]).map(t=>({chain:_(t.chain),address:t.tokenAddress,name:t.name,symbol:t.symbol,image:r(t.logoUri),priceInUsd:t.priceInUsd,priceInNative:t.priceInNative,amount:t.amount,amountInUsd:t.valueInUsd,amountInNative:t.valueInNative,decimals:t.decimals}));return {chain:s[0]?.chain??e,address:n.walletAddress,balanceInUsd:n.totalValueInUsd,balanceInNative:n.totalValueInNative,startCursor:r(n.startCursor),endCursor:r(n.endCursor),hasPrev:n.hasPrev,hasNext:n.hasNext,portfolios:s}}function _e(e,n,s){return {chain:e,address:n,tokens:s.tokens?Number(s.tokens):void 0,buys:s.buys?Number(s.buys):void 0,sells:s.sells?Number(s.sells):void 0,totalTrades:s.totalTrades?Number(s.totalTrades):void 0,wins:s.wins?Number(s.wins):void 0,losses:s.losses?Number(s.losses):void 0,winRate:r(s.winRate),buyAmountInUsd:r(s.buyAmountInUsd),sellAmountInUsd:r(s.sellAmountInUsd),totalCostInUsd:r(s.totalCostInUsd),realizedProfitInUsd:r(s.realizedProfitInUsd),realizedProfitRatio:r(s.realizedProfitRatio),unrealizedProfitInUsd:r(s.unrealizedProfitInUsd),unrealizedProfitRatio:r(s.unrealizedProfitRatio),totalProfitInUsd:r(s.totalProfitInUsd),totalProfitRatio:r(s.totalProfitRatio),avgProfitPerTradeInUsd:r(s.avgProfitPerTradeInUsd)}}function Fe(e,n){return {chain:e,address:n.tokenAddress,name:n.name??"",symbol:n.symbol??"",image:r(n.logoUri),amount:n.balance,amountInUsd:n.currentValue,priceInUsd:n.priceInUsd,decimals:n.decimals??0,totalTrades:n.totalTrades!=null?Number(n.totalTrades):void 0,buys:n.buys!=null?Number(n.buys):void 0,buyVolumes:n.buyAmount,buyVolumesInUsd:n.buyAmountInUsd,buyAvgPriceInUsd:n.avgBuyPriceInUsd,sells:n.sells!=null?Number(n.sells):void 0,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,transferInAmountInUsd:r(n.transferInAmountInUsd),transferInCount:n.transferInCount!=null?Number(n.transferInCount):void 0,transferOutAmountInUsd:r(n.transferOutAmountInUsd),transferOutCount:n.transferOutCount!=null?Number(n.transferOutCount):void 0,isClosed:n.isClosed,firstBuyAt:L(n.firstBuyAt),lastSellAt:L(n.lastSellAt)}}function se(e,n,s){let t=s.summary;return {chain:e,address:n,tokens:s.summary.tokens!=null?Number(s.summary.tokens):void 0,buys:s.summary.buys!=null?Number(s.summary.buys):void 0,sells:s.summary.sells!=null?Number(s.summary.sells):void 0,totalTrades:s.summary.totalTrades!=null?Number(s.summary.totalTrades):void 0,wins:s.summary.wins!=null?Number(s.summary.wins):void 0,losses:s.summary.losses!=null?Number(s.summary.losses):void 0,winRate:r(s.summary.winRate),buyAmountInUsd:r(s.summary.buyAmountInUsd),sellAmountInUsd:r(s.summary.sellAmountInUsd),totalCostInUsd:s.summary.totalCostInUsd,realizedProfitInUsd:r(s.summary.realizedProfitInUsd),unrealizedProfitInUsd:r(s.summary.unrealizedProfitInUsd),totalProfitInUsd:r(s.summary.totalProfitInUsd),totalProfitRatio:r(t.totalProfitRatio),avgProfitPerTradeInUsd:r(s.summary.avgProfitPerTradeInUsd),transferInAmountInUsd:r(s.summary.transferInAmountInUsd),transferInCount:s.summary.transferInCount!=null?Number(s.summary.transferInCount):void 0,transferOutAmountInUsd:r(s.summary.transferOutAmountInUsd),transferOutCount:s.summary.transferOutCount!=null?Number(s.summary.transferOutCount):void 0,startCursor:r(s.startCursor),endCursor:r(s.endCursor),hasPrev:s.hasPrev,hasNext:s.hasNext,portfolios:s.data.map(o=>Fe(e,o))}}function Me(e,n){return (n.data??[]).map(s=>({chain:_(s.chain),address:s.tokenAddress,name:s.name,symbol:s.symbol,image:r(s.logoUri),priceInUsd:s.priceInUsd,priceInNative:s.priceInNative,amount:s.amount,amountInUsd:s.valueInUsd,amountInNative:s.valueInNative,decimals:s.decimals,isActive:s.isActive,avgCostUsd:r(s.avgCostUsd),lastActiveAt:L(s.lastActiveAt),walletTokenTags:M(s.walletTokenTags)}))}function ze(e,n){return n.data.map(s=>Fe(e,s))}function Ee(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(Ve)}}function Ve(e){let n=e.type.toLowerCase()==="buy";return {chain:_(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:n?"buy":"sell",from:{address:n?e.sideTokenAddress:e.tokenAddress,symbol:n?e.sideTokenSymbol:e.tokenSymbol,name:n?e.sideTokenName:e.tokenName,image:r(n?e.sideTokenImageUrl:e.tokenImageUrl),amount:n?e.sideTokenAmount:e.tokenAmount,amountInUsd:n?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:n?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:n?e.tokenAddress:e.sideTokenAddress,symbol:n?e.tokenSymbol:e.sideTokenSymbol,name:n?e.tokenName:e.sideTokenName,image:r(n?e.tokenImageUrl:e.sideTokenImageUrl),amount:n?e.tokenAmount:e.sideTokenAmount,amountInUsd:n?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:n?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:r(e.dexProgramAddress),protocolFamily:r(e.dexProtocolFamily),image:r(e.dexImage)},poolAddress:r(e.poolAddress),status:e.status??"success",time:H(e.blockTimestamp)??new Date(0),gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:M(e.traderTags)}}function Ge(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(Ve)}}function St(e){return {startCursor:r(e.startCursor),endCursor:r(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,data:e.data.map(pn)}}function pn(e){let n=e.type.toLowerCase().replace(/ /g,"_"),s=n==="buy",t=H(e.blockTimestamp)??new Date(0);return {chain:_(e.chain),walletAddress:e.accountOwnerAddress,txHash:e.transactionSignature,type:n,from:{address:s?e.sideTokenAddress:e.tokenAddress,symbol:s?e.sideTokenSymbol:e.tokenSymbol,name:s?e.sideTokenName:e.tokenName,image:r(s?e.sideTokenImageUrl:e.tokenImageUrl),amount:s?e.sideTokenAmount:e.tokenAmount,amountInUsd:s?e.sideTokenAmountInUsd:e.tokenAmountInUsd,priceInUsd:s?e.sideTokenPriceInUsd:e.tokenPriceInUsd},to:{address:s?e.tokenAddress:e.sideTokenAddress,symbol:s?e.tokenSymbol:e.sideTokenSymbol,name:s?e.tokenName:e.sideTokenName,image:r(s?e.tokenImageUrl:e.sideTokenImageUrl),amount:s?e.tokenAmount:e.sideTokenAmount,amountInUsd:s?e.tokenAmountInUsd:e.sideTokenAmountInUsd,priceInUsd:s?e.tokenPriceInUsd:e.sideTokenPriceInUsd},dex:{programAddress:r(e.dexProgramAddress),protocolFamily:r(e.dexProtocolFamily),image:r(e.dexImage)},poolAddress:r(e.poolAddress),status:e.status??"success",time:t,gasFee:e.gasFee!=null?String(e.gasFee):void 0,traderTags:M(e.traderTags)}}function qe(e,n){return {chain:e,address:n.tokenAddress,name:n.name,symbol:n.symbol,decimals:n.decimals,createdAt:n.createdAtMs?new Date(n.createdAtMs):void 0,launchedFrom:n.launchFrom?{programAddress:n.launchFrom.programAddress,protocolFamily:n.launchFrom.protocolFamily}:void 0}}function $(e,n){return {chain:e,address:n.tokenAddress,name:n.name,symbol:n.symbol,decimals:n.decimals,image:n.imageUrl,description:n.description,socialMedias:n.socialMedia?{...n.socialMedia}:void 0,createdAt:n.createdAtMs?new Date(n.createdAtMs):void 0,launchedFrom:n.launchFrom?{programAddress:n.launchFrom.programAddress,protocolFamily:n.launchFrom.protocolFamily}:void 0,migratedTo:n.migratedTo?{programAddress:n.migratedTo.programAddress,protocolFamily:n.migratedTo.protocolFamily}:void 0}}function $e(e){return {open:e.open,close:e.close,high:e.high,low:e.low,volume:e.volume,resolution:cn(e.resolution),timestamp:new Date(e.time)}}function xn(e){let n=["1m","5m","15m","30m","1h","4h","24h"],s=e,t={};for(let o of n){let a=s[`buys${o}`],l=s[`sells${o}`],i=s[`buyers${o}`],m=s[`sellers${o}`],g=s[`buyVolumeInUsd${o}`],A=s[`sellVolumeInUsd${o}`],C=s[`trades${o}`],R=s[`price${o}`],P=s[`openInUsd${o}`],U=s[`closeInUsd${o}`];if(!(a!==void 0||l!==void 0||C!==void 0||R!==void 0))continue;let O=C??(a!==void 0&&l!==void 0?a+l:void 0),Xe=i!==void 0&&m!==void 0?i+m:void 0,Ze=g!==void 0&&A!==void 0?new utils.SafeBigNumber(g).plus(A).toString():void 0,en=P&&U&&new utils.SafeBigNumber(P).gt(0)?new utils.SafeBigNumber(U).minus(P).div(P).toString():void 0;t[o]={buys:a,sells:l,trades:O,buyers:i,sellers:m,traders:Xe,buyVolumesInUsd:g,sellVolumesInUsd:A,volumesInUsd:Ze,openPriceInUsd:P,closePriceInUsd:U,priceInUsd:R??U,priceChange:en};}return t}function Dn(e){return {priceInUsd:e.price}}function j(e,n){return {chain:e,address:n.address,stats:xn(n),marketData:Dn(n)}}function te(e,n){let s=[];return n.metadata&&s.push($(e,n.metadata)),n.stat&&s.push(j(e,n.stat)),n.holder&&s.push(K(e,n.holder.tokenAddress,n.holder)),n.supply&&s.push(Q(e,n.supply.tokenAddress,n.supply)),n.bondingCurve&&s.push(J(e,n.bondingCurve)),s.filter(t=>t.address)}function Q(e,n,s){return {chain:e,address:n,marketData:{totalSupply:s.supply,marketCapInUsd:s.marketCapInUsd}}}function K(e,n,s){return {chain:e,address:n,marketData:Bn(s)}}function re(e,n,s){return s.metricType===sdk.WsMetricType.LIQUIDITY_IN_USD?{chain:e,address:n,marketData:{tvlInUsd:s.value}}:s.metricType===sdk.WsMetricType.MIGRATED_RATIO?{chain:e,address:n,migrateProgress:new utils.SafeBigNumber(s.value).shiftedBy(2).toString()}:{chain:e,address:n}}function J(e,n){return {chain:e,address:n.tokenAddress??"",migrateProgress:n.progressRatio?new utils.SafeBigNumber(n.progressRatio).shiftedBy(2).toString():void 0}}function je(e,n,s){return {chain:e,address:n,liquidities:[{poolAddress:s.poolAddress,tvlInUsd:s.liquidityInUsd,tvl:s.liquidityInNative}]}}function Qe(e,n,s){return {chain:e,address:n,marketData:{tvlInUsd:s.liquidityInUsd,tvl:s.liquidityInNative}}}function Bn(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 oe(e,n){let s=n.kind.toLowerCase()==="buy";return {chain:e,walletAddress:s?n.buyWalletAddress:n.sellWalletAddress,txHash:n.txHash,type:s?"buy":"sell",from:{address:n.sellTokenAddress,symbol:n.sellTokenSymbol,name:n.sellTokenName,amount:n.sellAmount,amountInUsd:n.sellAmountInUsd,priceInUsd:V(n.sellAmountInUsd,n.sellAmount)},to:{address:n.buyTokenAddress,symbol:n.buyTokenSymbol,name:n.buyTokenName,amount:n.buyAmount,amountInUsd:n.buyAmountInUsd,priceInUsd:V(n.buyAmountInUsd,n.buyAmount)},status:"success",time:new Date(n.timestamp)}}function ae(e,n){let s=n.kind.toLowerCase().replace(/ /g,"_");return {chain:e,walletAddress:s==="buy"?n.buyWalletAddress:n.sellWalletAddress,txHash:n.txHash,type:s,from:{address:n.sellTokenAddress,symbol:n.sellTokenSymbol,name:n.sellTokenName,amount:n.sellAmount,amountInUsd:n.sellAmountInUsd,priceInUsd:V(n.sellAmountInUsd,n.sellAmount)},to:{address:n.buyTokenAddress,symbol:n.buyTokenSymbol,name:n.buyTokenName,amount:n.buyAmount,amountInUsd:n.buyAmountInUsd,priceInUsd:V(n.buyAmountInUsd,n.buyAmount)},status:"success",time:new Date(n.timestamp)}}function V(e,n){if(e==null||e===""||n==null||n==="")return;let s=new utils.SafeBigNumber(n);if(s.gt(0))return new utils.SafeBigNumber(e).div(s).toString()}function Nn(e,n="desc"){if(e)return e==="totalUsd"?n==="asc"?sdk.ActivitySortBy.totalUsdAsc:sdk.ActivitySortBy.totalUsdDesc:n==="asc"?sdk.ActivitySortBy.timestampAsc:sdk.ActivitySortBy.timestampDesc}function Ln(e){switch(e){case "amountPercentage":return sdk.HolderSortBy.amountPercentage;case "holdingUsd":return sdk.HolderSortBy.holdingUsd;case "usdValue":return sdk.HolderSortBy.usdValue;case "totalPnl":return sdk.HolderSortBy.totalPnl;case "lastActiveAt":return sdk.HolderSortBy.lastActiveAt;case "realizedPnl":return sdk.HolderSortBy.realizedPnl;case "unrealizedPnl":return sdk.HolderSortBy.unrealizedPnl;case "buyVolume":return sdk.HolderSortBy.buyVolume;case "sellVolume":return sdk.HolderSortBy.sellVolume;case "netflowUsd":return sdk.HolderSortBy.netflowUsd;case "createdAt":return sdk.HolderSortBy.createdAt;default:return}}function _n(e){return e?e:void 0}var Ye=class e{constructor(n,s){this.accessToken=n;this.options=s;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._phase3=ue(this.accessToken,this.options?.serverUrl);}_client;_phase3;async getToken(n,s){let t=await this._client.token.getToken(u(n),s);return h(t)}async getTokens(n,s){return (await this._client.token.getTokens(u(n),{tokenAddresses:s.join(",")})).map(h)}async getTokenCandles(n,s,t,o){return (await this._client.token.getCandles(u(n),s,{resolution:ee(t),from:o?.after?.getTime(),to:o?.before?.getTime(),limit:o?.limit})).map(l=>Se(l,t))}async getTokenSecurity(n,s){let t=await this._client.token.getSecurity(u(n),s);return Ue(t)}async getTokenStats(n,s){let t=await this._client.token.getStats(u(n),s);return G(t)}async getTokenHolders(n,s,t){let o=await this._client.token.getHolders(u(n),s,{cursor:t?.cursor,limit:t?.limit,direction:t?.direction,sortBy:Ln(t?.sortBy),sortDirection:_n(t?.sortDirection)});return pe(o)}async getTokenTopTraders(n,s,t){let o=await this._client.token.getTokenTopTraders(u(n),s,{cursor:t?.cursor,limit:t?.limit,direction:t?.direction,sortBy:t?.sortBy==="totalPnl"||t?.sortBy==="profit"?sdk.TraderSortBy.totalPnl:t?.sortBy==="realizedPnl"?sdk.TraderSortBy.realizedPnl:t?.sortBy==="unrealizedPnl"?sdk.TraderSortBy.unrealizedPnl:t?.sortBy==="buyVolume"?sdk.TraderSortBy.buyVolume:t?.sortBy==="sellVolume"?sdk.TraderSortBy.sellVolume:t?.sortBy==="lastActiveAt"?sdk.TraderSortBy.lastActiveAt:t?.sortBy==="netflowUsd"?sdk.TraderSortBy.netflowUsd:t?.sortBy==="createdAt"?sdk.TraderSortBy.createdAt:void 0,sortDirection:t?.sortDirection?t.sortDirection:void 0,tag:t?.tag});return xe(o)}async getTokenMarketData(n,s){let t=await this._client.token.getMarketData(u(n),s);return q(t)}async getNewTokens(n,s){return (await this._client.ranking.getNewTokens(u(n),this._buildRankingParams(s))).map(h)}async getNewPools(n,s){return (await this._client.ranking.getRankingPools(u(n),sdk.RankingPoolType["new-pool"])).map(o=>Pe(n,o))}async getFinalStretchTokens(n,s){return (await this._client.ranking.getFinalStretchTokens(u(n),this._buildRankingParams(s))).map(h)}async getMigratedTokens(n,s){return (await this._client.ranking.getMigratedTokens(u(n),this._buildRankingParams(s))).map(h)}async getTrendingTokens(n,s,t){return (await this._client.ranking.getHotTokens(u(n),s,this._buildRankingParams(t))).map(h)}async getStockTokens(n,s){return (await this._client.ranking.getStocksTokens(u(n),this._buildRankingParams(s))).map(h)}async searchTokens(n){let s=await this._client.token.search({chains:n?.chains?.map(u),q:n?.keyword,limit:n?.limit,cursor:n?.cursor,sortBy:n?.sortBy?ge(n.sortBy):void 0,sort:n?.sortDirection});return Be(s)}async swapRoute(n){let s=await this._client.dex.route(u(n.chain),ve(n));return Oe(s)}async getLatestBlock(n){let s=await this._client.blockchain.getLatestBlock(u(n.chain));return We(s)}async sendTx(n){let s=await this._client.transaction.send(u(n.chain),we(n));return Ne(s)}async checkTxSuccess(n,s,t){let{success:o}=await this._client.waitForJob(s,t);return o}async getWalletPortfolios(n,s,t){let o=e._CHAIN_TO_BALANCE_PARAM[n];if(o&&this.options?.nativeBalanceApiUrl)return this._getWalletPortfoliosFromBalanceApi(n,o,s);let a=await this._client.wallet.getNetWorth(u(n),s,{cursor:t?.cursor,limit:t?.limit??100});return Le(n,a)}async getWalletPnl(n,s,t){let o=await this._client.wallet.getPnl(u(n),s,t?{resolution:t}:void 0);return _e(n,s,o)}async getWalletPortfolioPnls(n,s,t){if(t?.resolution!=="90d"){let a=await this._client.wallet.getPnlDetails(u(n),s,{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 se(n,s,a)}let o=await ce(this._phase3,u(n),s,{resolution:t?.resolution??"30d",positionState:t?.positionState,sortBy:t?.sortBy,cursor:t?.cursor,limit:t?.limit??100,direction:t?.direction});return se(n,s,o)}async getWalletPortfoliosByTokens(n,s,t){let o=e._CHAIN_TO_BALANCE_PARAM[n];if(o&&this.options?.nativeBalanceApiUrl)return this._getPortfoliosFromBalanceApi(n,o,s,t);let a=await this._client.wallet.getNetWorthByTokens(u(n),s,{tokenAddresses:t.join(",")});return Me(n,a)}async getWalletPortfolioPnlsByTokens(n,s,t){let o=await this._client.wallet.getPnlByToken(u(n),s,{tokenAddresses:t.join(",")});return ze(n,o)}async getWalletTrades(n,s,t){return this._getTrades(n,{walletAddress:s},t)}async getTokenTrades(n,s,t){return this._getTrades(n,{tokenAddress:s},t)}async getWalletActivities(n,s,t){return this._getActivities(n,{walletAddress:s},t)}async getTokenActivities(n,s,t){return this._getActivities(n,{tokenAddress:s},t)}async getPresignedUploadUrl(){return (await this._client.ipfs.presign()).presignUrl}async getWalletLimitOrders(n,s,t){throw new E("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getTokensByCreator(n,s,t){let o=await this._client.token.getDevTokens(u(n),s,{cursor:t?.cursor,limit:t?.limit,direction:t?.direction});return De(n,o)}subscribeToken(n,s,t){return this.subscribeTokens(n,[s],t)}subscribeTokens(n,s,t){let o=u(n),a=Array.from(new Set(s.map(i=>i.trim()).filter(Boolean)));if(a.length===0)return {unsubscribe:()=>{}};let l=this._client.stream.batchSubscribe(()=>a.flatMap(i=>[this._client.stream.subscribeTokenStats({chain:o,tokenAddress:i,callback:m=>t([j(n,m)])}),this._client.stream.subscribeTokenHolders({chain:o,tokenAddress:i,callback:m=>t([K(n,i,m)])}),this._client.stream.subscribeTokenSupply({chain:o,tokenAddress:i,callback:m=>t([Q(n,i,m)])}),this._client.stream.subscribeTokenLiquidity({chain:o,tokenAddress:i,callback:m=>t([re(n,i,m)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:o,tokenAddress:i,callback:m=>t([je(n,i,m)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:o,tokenAddress:i,callback:m=>t([Qe(n,i,m)])})]));return {unsubscribe:()=>{let i=this._client.stream;if(i.batchUnsubscribe){i.batchUnsubscribe(l);return}l.forEach(m=>m.unsubscribe());}}}subscribeTokenCandles(n,s,t,o){return this._client.stream.subscribeTokenCandles({chain:u(n),tokenAddress:s,resolution:ee(t),callback:a=>o([$e(a)])})}subscribeWalletPnl(n,s,t){return this._client.stream.subscribeWalletPnlList({chain:u(n),walletAddress:s,callback:o=>t(o.map(a=>({chain:n,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(n,s,t){return this._client.stream.subscribeWalletBalance({chain:u(n),walletAddress:s,callback:o=>t(o.map(a=>({chain:n,walletAddress:a.walletAddress,tokenAddress:a.tokenAddress,priceInUsd:a.tokenPriceInUsd,amount:a.balance})))})}subscribeWalletPortfolioPnls(n,s,t){return this._client.stream.subscribeWalletPnl({chain:u(n),walletAddress:s,callback:o=>t([{chain:n,walletAddress:o.walletAddress,tokenAddress:o.tokenAddress,openTime:o.opentime?new Date(o.opentime):void 0,closeTime:o.closetime?new Date(o.closetime):void 0,buys:o.buyCount,buyVolumes:o.buyAmount,buyVolumesInUsd:o.buyAmountInUsd,buyAvgPriceInUsd:o.averageBuyPriceInUsd,sells:o.sellCount,sellVolumes:o.sellAmount,sellVolumesInUsd:o.sellAmountInUsd,sellAvgPriceInUsd:o.averageSellPriceInUsd,realizedProfitInUsd:o.realizedProfitInUsd,realizedProfitRatio:o.realizedProfitRatio,unrealizedProfitInUsd:o.unrealizedProfitInUsd,unrealizedProfitRatio:o.unrealizedProfitRatio,totalProfitInUsd:o.totalRealizedProfitInUsd,totalProfitRatio:o.totalRealizedProfitRatio}])})}subscribeWalletTrades(n,s,t){return this._client.stream.subscribeWalletTrade({chain:u(n),walletAddress:s,callback:o=>t([oe(n,o)])})}subscribeTokenTrades(n,s,t){return this._client.stream.subscribeTokenTrade({chain:u(n),tokenAddress:s,callback:o=>t([oe(n,o)])})}subscribeWalletActivities(n,s,t){return this._client.stream.subscribeWalletTrade({chain:u(n),walletAddress:s,callback:o=>t([ae(n,o)])})}subscribeTokenActivities(n,s,t){return this._client.stream.subscribeTokenTrade({chain:u(n),tokenAddress:s,callback:o=>t([ae(n,o)])})}subscribeNewTokens(n,s){let t=u(n),o=this._subscribeRankingTokens(n,sdk.WsChannelType.New,s),a=[this._client.stream.subscribeNewToken({chain:t,callback:l=>s([qe(n,l)])}),this._client.stream.subscribeNewTokensMetadata({chain:t,callback:l=>s(l.map(i=>$(n,i)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:t,callback:l=>s(l.map(i=>J(n,i)))})];return {unsubscribe:()=>{o.unsubscribe(),a.forEach(l=>l.unsubscribe());}}}subscribeNewTokensMetadata(n,s){return this._client.stream.subscribeNewTokensMetadata({chain:u(n),callback:t=>s(t.map(o=>$(n,o)))})}subscribeNewPools(n,s){return this._client.stream.subscribeNewPool({chain:u(n),callback:t=>s([Ie(n,t)])})}subscribeTrendingTokens(n,s){return this._subscribeRankingTokenList(n,sdk.WsRankingType.HOT,s)}subscribeMigratedTokens(n,s){return this._subscribeRankingTokens(n,sdk.WsChannelType.MIGRATED,s)}subscribeFinalStretchTokens(n,s){let t=u(n),o=this._subscribeRankingTokens(n,sdk.WsChannelType.FINAL_STRETCH,s),a=this._client.stream.subscribeRankingTokensBondingCurve({chain:t,callback:l=>s(l.map(i=>J(n,i)))});return {unsubscribe:()=>{o.unsubscribe(),a.unsubscribe();}}}subscribeStockTokens(n,s){return this._subscribeRankingTokenList(n,sdk.WsRankingType.STOCKS,s)}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(n,s,t,o){let a=this.options.nativeBalanceApiUrl,l=new URLSearchParams({chain:s,address:t});o?.length&&l.set("tokens",o.join(","));let i=await fetch(`${a}?${l.toString()}`);if(!i.ok)throw new Error(`Balance API returned ${i.status}`);return (await i.json()).balances.map(g=>{let A=BigInt(g.balance),C=g.decimals,R=BigInt(10)**BigInt(C),P=A/R,z=(A%R).toString().padStart(C,"0"),O=`${P}.${z}`.replace(/\.?0+$/,"")||"0";return {chain:n,address:g.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:O,amountInUsd:"0",amountInNative:"0",decimals:g.decimals}})}async _getWalletPortfoliosFromBalanceApi(n,s,t){let o=await this._getPortfoliosFromBalanceApi(n,s,t),a=e._NATIVE_TOKEN_ADDRESS[n],l=a?o.find(i=>i.address===a):void 0;return {chain:n,address:t,balanceInUsd:"0",balanceInNative:l?.amount??"0",portfolios:o,hasPrev:false,hasNext:false}}_buildRankingParams(n){return {sortBy:n?.sortBy?ne(n.sortBy):void 0,sortDirection:n?.sortDirection?n.sortDirection:void 0,rangeFilters:n?.filters?be(n.filters):void 0,launchpadPlatform:n?.filters?Fn(n.filters):void 0,searchKeywords:n?.keywords,excludeKeywords:n?.excludeKeywords}}async _getTrades(n,s,t){let o=await this._client.trade.getTrades(u(n),{...s,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 Ee(o)}async _getActivities(n,s,t){let o=await this._client.trade.getActivities(u(n),{...s,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:Nn(t?.sortBy,t?.sortDirection)});return Ge(o)}_subscribeRankingTokens(n,s,t){let o=u(n),a=[this._client.stream.subscribeRankingTokensStats({chain:o,channelType:s,callback:l=>t(l.map(i=>j(n,i)))}),this._client.stream.subscribeRankingTokensHolders({chain:o,channelType:s,callback:l=>t(l.map(i=>K(n,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensSupply({chain:o,channelType:s,callback:l=>t(l.map(i=>Q(n,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:o,channelType:s,callback:l=>t(l.map(i=>re(n,i.tokenAddress,i)))})];return {unsubscribe:()=>a.forEach(l=>l.unsubscribe())}}_subscribeRankingTokenList(n,s,t){return this._client.stream.subscribeRankingTokensList({chain:u(n),ranking_type:s,callback:o=>{let a=o.flatMap(l=>te(n,l));a.length>0&&t(a);}})}};function Fn(e){let n=e.find(s=>s.field==="launchedFromProtocolFamily");if(n){if(n.operator==="eq")return [n.value];if(n.operator==="in")return n.value;console.warn("invalid launchedFromProtocolFamily filter",n);}}
2
- exports.Client=Ye;exports.KYBERSWAP_NATIVE_SENTINEL=Un;exports.NotImplementedError=E;exports.fromActivityPage=St;exports.fromChainDTO=_;exports.fromLatestBlock=We;exports.fromPnlDetailItems=ze;exports.fromPnlDetailsPage=se;exports.fromRankingPoolDTO=Pe;exports.fromSdkActivityPage=Ge;exports.fromSdkDevTokenDTO=ln;exports.fromSdkDevTokenPage=De;exports.fromSdkTokenHolderPage=pe;exports.fromSdkTokenTopTraderPage=xe;exports.fromSendTxResult=Ne;exports.fromSwapRoute=Oe;exports.fromTokenCandle=Se;exports.fromTokenCreatorDTO=ye;exports.fromTokenDTO=h;exports.fromTokenHolderPage=It;exports.fromTokenLiquidityDTO=At;exports.fromTokenMarketDataDTO=q;exports.fromTokenMetadataSubscribed=$;exports.fromTokenPage=Be;exports.fromTokenSecurity=Ue;exports.fromTokenStatsDTO=G;exports.fromTokenSubscribed=qe;exports.fromTradePage=Ee;exports.fromWalletNetWorthByTokens=Me;exports.fromWalletPnlSummary=_e;exports.fromWalletPortfolios=Le;exports.fromWsActivity=ae;exports.fromWsCandle=$e;exports.fromWsRankingPoolToSubscribed=Ie;exports.fromWsRankingTokenListToSubscribed=te;exports.fromWsTokenBondingCurveToSubscribed=J;exports.fromWsTokenDataSubscribed=j;exports.fromWsTokenHolderToSubscribed=K;exports.fromWsTokenLiquidityToSubscribed=re;exports.fromWsTokenMarketDataFromHolder=Bn;exports.fromWsTokenMarketDataFromStats=Dn;exports.fromWsTokenMaxLiquidityToSubscribed=je;exports.fromWsTokenStats=xn;exports.fromWsTokenSupplyToSubscribed=Q;exports.fromWsTokenTotalLiquidityToSubscribed=Qe;exports.fromWsTradeActivity=oe;exports.isNotImplementedError=Mn;exports.toChainDTO=u;exports.toFieldDTO=ne;exports.toMintForRoute=Pt;exports.toRangeFiltersDTO=be;exports.toResolutionDTO=ee;exports.toSearchFieldDTO=ge;exports.toSendTxInput=we;exports.toSortDirectionDTO=dn;exports.toSwapRouteInput=ve;//# sourceMappingURL=index.js.map
1
+ 'use strict';var sdk=require('@chainstream-io/sdk'),types=require('@liberfi.io/types'),utils=require('@liberfi.io/utils');function o(t){return t??void 0}function Ce(t,...e){if(t)for(let r of e){let s=t[r];if(typeof s=="string"&&s.length>0)return s}}function Ze(t){if(!t||typeof t!="object")return;let e=t,r=e.extra,s=e.extension;return Ce(e,"developerAddress","devAddress","creatorAddress","creator","deployerAddress","deployer","mintAuthority","updateAuthority")??Ce(r&&typeof r=="object"?r:void 0,"developerAddress","devAddress","creatorAddress","creator","deployerAddress","deployer")??Ce(s&&typeof s=="object"?s:void 0,"developerAddress","devAddress","creatorAddress","creator","deployerAddress","deployer")}function l(t){switch(t){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: ${t}`)}function F(t){switch(t){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 et(t){return t}function xe(t){switch(t){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: ${t}`)}function te(t){switch(t){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: ${t}`)}function we(t){return t.filter(e=>["gt","gte","lt","lte","between"].indexOf(e.operator)>=0).map(e=>{let r={field:te(e.field)};return ["gt","gte","between"].indexOf(e.operator)>=0&&(r.min=typeof e.value=="number"?new utils.SafeBigNumber(e.value).toString():e.value),["lt","lte","between"].indexOf(e.operator)>=0&&(r.max=typeof e.value=="number"?new utils.SafeBigNumber(e.value).toString():e.value),r})}function G(t){switch(t){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: ${t}`)}function tt(t){return {address:t.address??void 0,share:t.share??void 0,isVerified:t.isVerified??void 0}}function P(t){return {chain:G(t.chain),name:t.name,symbol:t.symbol,address:t.address,decimals:t.decimals,image:t.imageUrl??void 0,description:t.description??void 0,creators:t.tokenCreators?.map(tt),developerAddress:Ze(t),launchedFrom:{programAddress:t.extra?.launchFromProgramAddress??void 0,protocolFamily:t.extra?.launchFromProtocolFamily??void 0},migrateProgress:t.marketData?.completionRatio?new utils.SafeBigNumber(t.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:t.extra?.migratedToProgramAddress??void 0,protocolFamily:t.extra?.migratedToProtocolFamily??void 0,poolAddress:t.extra?.migratedToPoolAddress??void 0,migratedAt:t.extra?.migratedAt?new Date(t.extra.migratedAt):void 0},socialMedias:t.socialMedias?Object.fromEntries(Object.entries(t.socialMedias).filter(([,e])=>e!=null).map(([e,r])=>[e,r])):void 0,stats:t.stats?z(t.stats):void 0,marketData:t.marketData?q(t.marketData):void 0,createdAt:t.tokenCreatedAt?new Date(t.tokenCreatedAt):void 0}}function Gt(t,e){let r=e.metadata,s=r.extra;return {chain:t,name:r.name||e.address,symbol:r.symbol||e.address,address:e.address,decimals:r.decimals?parseInt(r.decimals):0,image:r.imageUrl??void 0,description:r.description??void 0,creators:r.tokenCreators?.map(tt),developerAddress:Ze(r),launchedFrom:{programAddress:s?.launchFromProgramAddress??void 0,protocolFamily:s?.launchFromProtocolFamily??void 0},migrateProgress:e.marketData?.completionRatio?new utils.SafeBigNumber(e.marketData.completionRatio).shiftedBy(2).toString():void 0,migratedTo:{programAddress:s?.migratedToProgramAddress??void 0,protocolFamily:s?.migratedToProtocolFamily??void 0,poolAddress:s?.migratedToPoolAddress??void 0,migratedAt:s?.migratedAt?new Date(s.migratedAt):void 0},socialMedias:r.socialMedias?Object.fromEntries(Object.entries(r.socialMedias).filter(([,n])=>n!=null).map(([n,a])=>[n,a])):void 0,stats:e.stats?z(e.stats):void 0,marketData:e.marketData?q(e.marketData):void 0,createdAt:r.tokenCreatedAt?new Date(r.tokenCreatedAt):void 0}}function z(t){return {"1m":R(t,"1m"),"5m":R(t,"5m"),"15m":R(t,"15m"),"30m":R(t,"30m"),"1h":R(t,"1h"),"4h":R(t,"4h"),"24h":R(t,"24h")}}function O(t){return t===void 0?void 0:parseInt(t)}function R(t,e){let r=t.periods?.[e];return r?{buys:O(r.buys),sells:O(r.sells),trades:O(r.trades),buyers:O(r.buyers),sellers:O(r.sellers),traders:O(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 mn(t){return {poolAddress:t.poolAddress,programAddress:t.programAddress??void 0,protocolFamily:t.protocolFamily??void 0,protocolName:t.protocolName??void 0,tvl:t.tvlInSol??void 0,tvlInUsd:t.tvlInUsd??void 0}}function rt(t){if(t)return {image:"image"in t?t.image??void 0:void 0,programAddress:t.programAddress??void 0,protocolFamily:t.protocolFamily??void 0,protocolName:t.protocolName??void 0}}function st(t){if(t)return {poolAddress:t.poolAddress,tokenAAddress:t.tokenAAddress,tokenALiquidityInUsd:t.tokenALiquidityInUsd,tokenBAddress:t.tokenBAddress,tokenBLiquidityInUsd:t.tokenBLiquidityInUsd}}function ve(t,e){return {chain:t,poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenBAddress:e.tokenBAddress,createdAt:e.createdAtMs?new Date(e.createdAtMs):void 0,dex:rt(e.dex),token:e.token?P(e.token):void 0,balance:st(e.balance)}}function zt(t){if(t.length!==0)return t.reduce((e,r)=>({...e,...Object.fromEntries(Object.entries(r).filter(([,s])=>s!==void 0)),stats:r.stats??e.stats,marketData:r.marketData?{...e.marketData,...r.marketData}:e.marketData,socialMedias:r.socialMedias?{...e.socialMedias,...r.socialMedias}:e.socialMedias,launchedFrom:r.launchedFrom?{...e.launchedFrom,...r.launchedFrom}:e.launchedFrom,migratedTo:r.migratedTo?{...e.migratedTo,...r.migratedTo}:e.migratedTo}),t[0])}function nt(t,e){let r=e.token?zt(Me(t,e.token)):void 0;return {chain:t,poolAddress:e.poolAddress,tokenAAddress:e.tokenAAddress,tokenBAddress:e.tokenBAddress,createdAt:e.createdAtMs?new Date(e.createdAtMs):void 0,dex:rt(e.dex),token:r,balance:st(e.balance)}}function q(t){return {totalSupply:t.totalSupply??void 0,marketCap:t.marketCapInSol??void 0,marketCapInUsd:t.marketCapInUsd??void 0,athMarketCapInUsd:t.athMarketCapInUsd??void 0,price:t.priceInNative??t.priceInSol??void 0,priceInUsd:t.priceInUsd??void 0,tvl:t.totalTvlInSol??void 0,tvlInUsd:t.totalTvlInUsd??void 0,maxPoolTvl:t.maxPoolTvlInSol??void 0,maxPoolTvlInUsd:t.maxPoolTvlInUsd??void 0,holders:t.holders?parseInt(t.holders):void 0,top10Holdings:t.top10TotalHoldings??void 0,top10HoldingsRatio:t.top10HoldingsRatio??void 0,top50Holdings:t.top50TotalHoldings??void 0,top50HoldingsRatio:t.top50HoldingsRatio??void 0,top100Holdings:t.top100TotalHoldings??void 0,top100HoldingsRatio:t.top100HoldingsRatio??void 0,bluechipHolders:t.bluechipTotalHolders?parseInt(t.bluechipTotalHolders):void 0,bluechipHoldings:t.bluechipTotalHoldings??void 0,bluechipHoldingsRatio:t.bluechipHoldingsRatio??void 0,kolHolders:t.kolTotalHolders?parseInt(t.kolTotalHolders):void 0,kolHoldings:t.kolTotalHoldings??void 0,kolHoldingsRatio:t.kolHoldingsRatio??void 0,sniperHolders:t.sniperTotalHolders?parseInt(t.sniperTotalHolders):void 0,sniperHoldings:t.sniperTotalHoldings??void 0,sniperHoldingsRatio:t.sniperHoldingsRatio??void 0,proHolders:t.proTotalHolders?parseInt(t.proTotalHolders):void 0,proHoldings:t.proTotalHoldings??void 0,proHoldingsRatio:t.proHoldingsRatio??void 0,insiderHolders:t.insiderTotalHolders?parseInt(t.insiderTotalHolders):void 0,insiderHoldings:t.insiderTotalHoldings??void 0,insiderHoldingsRatio:t.insiderHoldingsRatio??void 0,sandwichHolders:t.sandwishTotalHolders?parseInt(t.sandwishTotalHolders):void 0,sandwichHoldings:t.sandwishTotalHoldings??void 0,sandwichHoldingsRatio:t.sandwishHoldingsRatio??void 0,freshHolders:t.freshTotalHolders?parseInt(t.freshTotalHolders):void 0,freshHoldings:t.freshTotalHoldings??void 0,freshHoldingsRatio:t.freshHoldingsRatio??void 0,bundleHolders:t.bundleTotalHolders?parseInt(t.bundleTotalHolders):void 0,bundleHoldings:t.bundleTotalHoldings??void 0,bundleHoldingsRatio:t.bundleHoldingsRatio??void 0,devHolders:t.devTotalHolders?parseInt(t.devTotalHolders):void 0,devHoldings:t.devTotalHoldings??void 0,devHoldingsRatio:t.devHoldingsRatio??void 0}}function Re(t,e){return {open:t.open,close:t.close,high:t.high,low:t.low,volume:t.volume,volumeInTokenAmount:o(t.volumeInTokenAmount),trades:t.trades??void 0,resolution:e,timestamp:new Date(t.timestamp)}}function qt(t){return t==="1d"?"24h":t}function m(t){return t??void 0}function k(t){return t??void 0}function L(t){return t??void 0}function h(...t){return t.find(e=>e!==void 0)}function D(t){if(typeof t=="boolean")return t;if(typeof t=="number"){if(t===1)return true;if(t===0)return false}if(typeof t=="string"){if(t==="1"||t.toLowerCase()==="true")return true;if(t==="0"||t.toLowerCase()==="false")return false}}function ot(t){if(t!==void 0)return new utils.SafeBigNumber(t).gt(0)}function V(t){if(!(!t||typeof t!="object"||Array.isArray(t)))return t}function at(t){return Array.isArray(t)?t:void 0}function W(t){let r=V(t)?.status;if(r==="1"||r===1||r===true)return true;if(r==="0"||r===0||r===false)return false}function Vt(t){let e=V(t);if(e)return Object.keys(e).length>0}function jt(t){if(t==="0"||t===0||t===false)return true;if(t==="1"||t===1||t===true)return false}function Kt(t){let e=at(t.dex);if(!e)return;let r;for(let s of e){let n=V(s)?.burn_percent;if(n==null||typeof n!="number"&&typeof n!="string")continue;let a=new utils.SafeBigNumber(n).div(100);(!r||a.gt(r))&&(r=a);}return r?.toString()}function $t(t){let e=at(t.holders);if(!e)return;let r=e.slice(0,10);if(r.length===0)return;let s=new utils.SafeBigNumber(0);for(let n of r){let a=V(n)?.percent;typeof a!="string"&&typeof a!="number"||(s=s.plus(a));}return s.toString()}function Qt(t){return W(t.metadata_mutable)}function Yt(t){try{let e=V(t);if(!e)return;let r=W(e.mintable),s=W(e.freezable),n=W(e.closable),a=Vt(e.transfer_fee),d=Kt(e);return {hasTransferFee:a,isTransferFeeUpgradable:W(e.transfer_fee_upgradable),isTransferable:jt(e.non_transferable),isFreezable:s,isClosable:n,isBalanceMutableAuthorityActive:W(e.balance_mutable_authority),isMetadataMutable:Qt(e),isMintable:r,isMintAuthorityRenounced:r===void 0?void 0:!r,isLpBurned:ot(d),lpBurnRatio:d,top10HoldersRatio:$t(e)}}catch{return}}function Jt(t){if(t)return {available:t.available,buyTaxRatio:m(t.buyTax),sellTaxRatio:m(t.sellTax),chainSupported:k(t.chainSupported),holderCount:m(t.holderCount),hasBlacklist:k(t.isBlacklisted),isFreezable:k(t.isFreezable),isHoneypot:k(t.isHoneypot),isMintable:k(t.isMintable),isOpenSource:k(t.isOpenSource),isProxy:k(t.isProxy),isRenounced:k(t.isRenounced),lastRefreshedAt:m(t.lastRefreshedAt),lpHolderCount:m(t.lpHolderCount),ownerAddress:m(t.ownerAddress),raw:t.raw,totalSupply:m(t.totalSupply)}}function Xt(t){if(t)return {available:t.available,averageTaxRatio:m(t.averageTax),buyTaxRatio:m(t.buyTax),canNotSell:L(t.canNotSell),canSell:L(t.canSell),chainSupported:k(t.chainSupported),highTaxRatio:m(t.highTax),honeypotResult:m(t.honeypotResult),isHoneypot:k(t.isHoneypot),isOpenSource:k(t.isOpenSource),isRenounced:k(t.isRenounced),lastRefreshedAt:m(t.lastRefreshedAt),raw:t.raw,sellTaxRatio:m(t.sellTax)}}function Zt(t){if(t)return {available:t.available,chainSupported:k(t.chainSupported),isOpenSource:k(t.isOpenSource),isProxy:k(t.isProxy),isRenounced:k(t.isRenounced),isSafe:k(t.isSafe),lastRefreshedAt:m(t.lastRefreshedAt),launchpadName:m(t.launchpadName),ownerAddress:m(t.ownerAddress),raw:t.raw,sourceType:m(t.sourceType),vulnCount:L(t.vulnCount),vulnCriticalCount:L(t.vulnCriticalCount),vulnMitigatedCount:L(t.vulnMitigatedCount)}}function er(t){if(t)return {isLocked:k(t.isLocked),leftLockPercentRatio:m(t.leftLockPercent),lockDetail:m(t.lockDetail),lockPercentRatio:m(t.lockPercent),lockTags:t.lockTags}}function tr(t){return {address:m(t.address),isRenounced:k(t.isRenounced),name:m(t.name)}}function rr(t){return t?.find(e=>e.name?.toLowerCase().includes("mint"))}function Ue(t){let e=t,r=t,s=Jt(e.goplus),n=Xt(e.honeypot),a=Zt(e.serialized),d=er(e.lockInfo),i=Yt(e.goplus?.raw),T=e.privileges?.map(tr)??void 0,b=rr(T),u=h(m(e.devTokenBurnRatio),i?.lpBurnRatio),f=h(s?.hasBlacklist),x=h(n?.isHoneypot,s?.isHoneypot),w=h(a?.isOpenSource,n?.isOpenSource,s?.isOpenSource),B=h(a?.isRenounced,n?.isRenounced,s?.isRenounced),Qe=h(n?.buyTaxRatio,s?.buyTaxRatio),Se=h(n?.sellTaxRatio,s?.sellTaxRatio);return {address:m(e.address),chain:m(e.chain),sourcesAvailable:e.sourcesAvailable??void 0,goplus:s,honeypot:n,serialized:a,lockInfo:d,privileges:T,devTokenBurnAmount:m(e.devTokenBurnAmount),devTokenBurnRatio:u,lpBurnRatio:i?.lpBurnRatio,top10HoldersRatio:i?.top10HoldersRatio,isShowAlert:k(e.isShowAlert),hasTransferFee:h(D(r.hasTransferFee),i?.hasTransferFee),isTransferFeeUpgradable:h(D(r.isTransferFeeUpgradable),i?.isTransferFeeUpgradable),isTransferable:h(D(r.isTransferable),i?.isTransferable),isFreezable:h(k(e.isFreezable),s?.isFreezable,D(r.isFreezable),i?.isFreezable),isClosable:h(D(r.isClosable),i?.isClosable),isBalanceMutableAuthorityActive:i?.isBalanceMutableAuthorityActive,isMetadataMutable:i?.isMetadataMutable,isMintable:h(k(e.isMintable),s?.isMintable,i?.isMintable),isMintAuthorityRenounced:h(b?.isRenounced,i?.isMintAuthorityRenounced),hasBlacklist:f,isLpBurned:h(i?.isLpBurned,ot(u)),isOpenSource:w,isHoneypot:x,isOwnershipRenounced:B,isLpLocked:d?.isLocked,buyTaxRatio:Qe,sellTaxRatio:Se,averageTaxRatio:n?.averageTaxRatio,maxTaxRatio:n?.highTaxRatio,isSerializedSafe:a?.isSafe,serializedVulnCount:a?.vulnCount,serializedCriticalVulnCount:a?.vulnCriticalCount}}var sr=new Set([types.Chain.SOLANA,types.Chain.SOLANA_TESTNET,types.Chain.SOLANA_DEVNET]),nr="0x0000000000000000000000000000000000000000",or="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";function ar(t){return t===utils.SOLANA_TOKENS.native.address?utils.SOLANA_TOKENS.wrapped.address:t}function ir(t){return t.toLowerCase()===nr.toLowerCase()?or:t}function dr(t){return t.dex==="jupiter"?"jupiter":t.dex==="kyberswap"?"kyberswap":sr.has(t.chain)?"jupiter":"kyberswap"}function Ie(t,e){return t==="jupiter"?ar(e):t==="kyberswap"?ir(e):e}function kn(t,e){return Ie(t,e)}function it(t){let e=dr(t),r=Ie(e,t.input),s=Ie(e,t.output);return {dex:e,userAddress:t.userAddress,amount:t.amount,swapMode:t.mode===types.SwapMode.EXACT_IN?sdk.SwapRouteInputSwapMode.ExactIn:sdk.SwapRouteInputSwapMode.ExactOut,slippage:t.slippage??1,inputMint:r,outputMint:s,priorityFee:t.priorityFee,...t.tipFee&&{tipFee:t.tipFee},...t.isAntiMev!=null&&{isAntiMev:t.isAntiMev},...t.permit&&{permit:t.permit},...t.deadline!=null&&{deadline:t.deadline}}}function dt(t){return {signedTx:t.serializedTx}}function N(t){return t==null?void 0:new Date(t)}function U(t){if(t!=null)return new Date(t<1e12?t*1e3:t)}function j(t){if(!(!t||t.length===0))return t}function lt(t){return {accountAddress:o(t.accountAddress),address:t.walletAddress,accuAmount:o(t.accuAmount),accuCost:o(t.accuCost),addrType:o(t.addrType),addressLabel:o(t.addressLabel),amount:t.amount,amountInUsd:t.amountInUsd,amountInNative:o(t.amountInNative),ratio:t.percentage,avgBuyPriceUsd:o(t.avgBuyPriceUsd),avgCostUsd:o(t.avgCostUsd),avgSellPriceUsd:o(t.avgSellPriceUsd),buyAmountCur:o(t.buyAmountCur),buyVolumeNative:o(t.buyVolumeNative),buyVolumeUsd:o(t.buyVolumeUsd),createdAt:U(t.createdAt),endHoldingAt:U(t.endHoldingAt),exchange:o(t.exchange),firstBuyTime:U(t.firstBuyTime),historyBoughtCost:o(t.historyBoughtCost),historyBoughtFee:o(t.historyBoughtFee),historySoldFee:o(t.historySoldFee),historySoldIncome:o(t.historySoldIncome),historyTransferInAmount:o(t.historyTransferInAmount),historyTransferInCost:o(t.historyTransferInCost),historyTransferOutAmount:o(t.historyTransferOutAmount),historyTransferOutFee:o(t.historyTransferOutFee),historyTransferOutIncome:o(t.historyTransferOutIncome),isClosed:o(t.isClosed),isNew:o(t.isNew),isTransferIn:o(t.isTransferIn),lastActiveAt:U(t.lastActiveAt),lastBlock:o(t.lastBlock),lossCount:o(t.lossCount),makerTokenTags:o(t.makerTokenTags),nativeBalance:o(t.nativeBalance),netflowAmount:o(t.netflowAmount),netflowAmountUsd:o(t.netflowAmountUsd),netflowUsd:o(t.netflowUsd),positionCostUsd:o(t.positionCostUsd),realizedPnlRatio:o(t.realizedPnlRatio),realizedProfit:o(t.realizedProfit),roi:o(t.roi),sellAmountCur:o(t.sellAmountCur),sellAmountPercentage:o(t.sellAmountPercentage),sellVolumeNative:o(t.sellVolumeNative),sellVolumeUsd:o(t.sellVolumeUsd),startHoldingAt:U(t.startHoldingAt),tags:j(t.tags),tokenTransferIn:o(t.tokenTransferIn),tokenTransferOut:o(t.tokenTransferOut),totalBuyCount:o(t.totalBuyCount),totalCostUsd:o(t.totalCostUsd),totalProfit:o(t.totalProfit),totalSellCount:o(t.totalSellCount),transferInAmount7d:o(t.transferInAmount7d),transferInCount:o(t.transferInCount),transferOutAmount7d:o(t.transferOutAmount7d),transferOutCount:o(t.transferOutCount),unrealizedPnlRatio:o(t.unrealizedPnlRatio),unrealizedProfit:o(t.unrealizedProfit),walletTagV2:o(t.walletTagV2),winCount:o(t.winCount)}}function fn(t){return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev??false,hasNext:t.hasNext??false,data:t.data.map(e=>lt(e))}}function He(t){return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev??false,hasNext:t.hasNext??false,data:t.data.map(e=>lt(e))}}function Ee(t){return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev??false,hasNext:t.hasNext??false,data:t.data.map(e=>({address:e.walletAddress,amount:e.amount,amountInUsd:e.amountInUsd,tags:j(e.tags),lastActiveAt:N(e.lastActiveAt),startHoldingAt:N(e.startHoldingAt),averageBuyPriceInUsd:o(e.averageBuyPriceInUsd),averageSellPriceInUsd:o(e.averageSellPriceInUsd),buyAmountCur:o(e.buyAmountCur),sellAmountCur:o(e.sellAmountCur),totalBuyAmountInUsd:o(e.totalBuyAmountInUsd),totalSellAmountInUsd:o(e.totalSellAmountInUsd),realizedPnl:o(e.realizedPnl),totalRealizedPnlInUsd:o(e.totalRealizedPnlInUsd),unrealizedPnl:o(e.unrealizedPnl),unrealizedPnlInUsd:o(e.unrealizedPnlInUsd),roi:o(e.roi),totalPnlInUsd:o(e.totalPnlInUsd),totalBuyCount:o(e.totalBuyCount),totalSellCount:o(e.totalSellCount),transferIn:o(e.transferIn),transferInCount:o(e.transferInCount),transferOutCount:o(e.transferOutCount)}))}}function Be(t,e){return {startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev??false,hasNext:e.hasNext??false,data:e.data.map(r=>Gt(t,r))}}function Oe(t){let e=t;return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev??false,hasNext:t.hasNext??false,data:t.data.map(P),extra:o(e.countsByProtocols)}}function ct(t){return {serializedTx:t.serializedTx,recentBlockhash:o(t.recentBlockhash),lastValidBlockHeight:o(t.lastValidBlockHeight),plans:[],extra:t.routeInfo}}function ut(t){return {blockhash:t.blockhash,lastValidBlockHeight:t.lastValidBlockHeight}}function Tt(t){return {txHash:t.signature,extra:{jobId:t.jobId,elapsedTime:t.elapsedTime}}}function mt(t,e){let r=(e.data??[]).map(s=>({chain:G(s.chain),address:s.tokenAddress,name:s.name,symbol:s.symbol,image:o(s.logoUri),priceInUsd:s.priceInUsd,priceInNative:s.priceInNative,amount:s.amount,amountInUsd:s.valueInUsd,amountInNative:s.valueInNative,decimals:s.decimals}));return {chain:r[0]?.chain??t,address:e.walletAddress,balanceInUsd:e.totalValueInUsd,balanceInNative:e.totalValueInNative,startCursor:o(e.startCursor),endCursor:o(e.endCursor),hasPrev:e.hasPrev,hasNext:e.hasNext,portfolios:r}}function kt(t,e,r){return {chain:t,address:e,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 ft(t,e){return {chain:t,address:e.tokenAddress,name:e.name??"",symbol:e.symbol??"",image:o(e.logoUri),amount:e.balance,amountInUsd:e.currentValue,priceInUsd:e.priceInUsd,decimals:e.decimals??0,totalTrades:e.totalTrades!=null?Number(e.totalTrades):void 0,buys:e.buys!=null?Number(e.buys):void 0,buyVolumes:e.buyAmount,buyVolumesInUsd:e.buyAmountInUsd,buyAvgPriceInUsd:e.avgBuyPriceInUsd,sells:e.sells!=null?Number(e.sells):void 0,sellVolumes:e.sellAmount,sellVolumesInUsd:e.sellAmountInUsd,sellAvgPriceInUsd:e.avgSellPriceInUsd,realizedProfitInUsd:e.realizedProfitInUsd,realizedProfitRatio:e.realizedProfitRatio,unrealizedProfitInUsd:e.unrealizedProfitInUsd,unrealizedProfitRatio:e.unrealizedProfitRatio,totalProfitInUsd:e.totalProfitInUsd,totalProfitRatio:e.totalProfitRatio,transferInAmountInUsd:o(e.transferInAmountInUsd),transferInCount:e.transferInCount!=null?Number(e.transferInCount):void 0,transferOutAmountInUsd:o(e.transferOutAmountInUsd),transferOutCount:e.transferOutCount!=null?Number(e.transferOutCount):void 0,isClosed:e.isClosed,firstBuyAt:N(e.firstBuyAt),lastSellAt:N(e.lastSellAt)}}function We(t,e,r){let s=r.summary;return {chain:t,address:e,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(s.totalProfitRatio),avgProfitPerTradeInUsd:o(r.summary.avgProfitPerTradeInUsd),transferInAmountInUsd:o(r.summary.transferInAmountInUsd),transferInCount:r.summary.transferInCount!=null?Number(r.summary.transferInCount):void 0,transferOutAmountInUsd:o(r.summary.transferOutAmountInUsd),transferOutCount:r.summary.transferOutCount!=null?Number(r.summary.transferOutCount):void 0,startCursor:o(r.startCursor),endCursor:o(r.endCursor),hasPrev:r.hasPrev,hasNext:r.hasNext,portfolios:r.data.map(n=>ft(t,n))}}function bt(t,e){return (e.data??[]).map(r=>({chain:G(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:N(r.lastActiveAt),walletTokenTags:j(r.walletTokenTags)}))}function ht(t,e){return e.data.map(r=>ft(t,r))}function gt(t){return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev,hasNext:t.hasNext,data:t.data.map(yt)}}function yt(t){let e=t.type.toLowerCase()==="buy";return {chain:G(t.chain),walletAddress:t.accountOwnerAddress,txHash:t.transactionSignature,type:e?"buy":"sell",from:{address:e?t.sideTokenAddress:t.tokenAddress,symbol:e?t.sideTokenSymbol:t.tokenSymbol,name:e?t.sideTokenName:t.tokenName,image:o(e?t.sideTokenImageUrl:t.tokenImageUrl),amount:e?t.sideTokenAmount:t.tokenAmount,amountInUsd:e?t.sideTokenAmountInUsd:t.tokenAmountInUsd,priceInUsd:e?t.sideTokenPriceInUsd:t.tokenPriceInUsd},to:{address:e?t.tokenAddress:t.sideTokenAddress,symbol:e?t.tokenSymbol:t.sideTokenSymbol,name:e?t.tokenName:t.sideTokenName,image:o(e?t.tokenImageUrl:t.sideTokenImageUrl),amount:e?t.tokenAmount:t.sideTokenAmount,amountInUsd:e?t.tokenAmountInUsd:t.sideTokenAmountInUsd,priceInUsd:e?t.tokenPriceInUsd:t.sideTokenPriceInUsd},dex:{programAddress:o(t.dexProgramAddress),protocolFamily:o(t.dexProtocolFamily),image:o(t.dexImage)},poolAddress:o(t.poolAddress),status:t.status??"success",time:U(t.blockTimestamp)??new Date(0),gasFee:t.gasFee!=null?String(t.gasFee):void 0,traderTags:j(t.traderTags)}}function pt(t){return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev??false,hasNext:t.hasNext??false,data:t.data.map(yt)}}function bn(t){return {startCursor:o(t.startCursor),endCursor:o(t.endCursor),hasPrev:t.hasPrev,hasNext:t.hasNext,data:t.data.map(lr)}}function lr(t){let e=t.type.toLowerCase().replace(/ /g,"_"),r=e==="buy",s=U(t.blockTimestamp)??new Date(0);return {chain:G(t.chain),walletAddress:t.accountOwnerAddress,txHash:t.transactionSignature,type:e,from:{address:r?t.sideTokenAddress:t.tokenAddress,symbol:r?t.sideTokenSymbol:t.tokenSymbol,name:r?t.sideTokenName:t.tokenName,image:o(r?t.sideTokenImageUrl:t.tokenImageUrl),amount:r?t.sideTokenAmount:t.tokenAmount,amountInUsd:r?t.sideTokenAmountInUsd:t.tokenAmountInUsd,priceInUsd:r?t.sideTokenPriceInUsd:t.tokenPriceInUsd},to:{address:r?t.tokenAddress:t.sideTokenAddress,symbol:r?t.tokenSymbol:t.sideTokenSymbol,name:r?t.tokenName:t.sideTokenName,image:o(r?t.tokenImageUrl:t.sideTokenImageUrl),amount:r?t.tokenAmount:t.sideTokenAmount,amountInUsd:r?t.tokenAmountInUsd:t.sideTokenAmountInUsd,priceInUsd:r?t.tokenPriceInUsd:t.sideTokenPriceInUsd},dex:{programAddress:o(t.dexProgramAddress),protocolFamily:o(t.dexProtocolFamily),image:o(t.dexImage)},poolAddress:o(t.poolAddress),status:t.status??"success",time:s,gasFee:t.gasFee!=null?String(t.gasFee):void 0,traderTags:j(t.traderTags)}}function Pt(t,e){return {chain:t,address:e.tokenAddress,name:e.name,symbol:e.symbol,decimals:e.decimals,createdAt:e.createdAtMs?new Date(e.createdAtMs):void 0,launchedFrom:e.launchFrom?{programAddress:e.launchFrom.programAddress,protocolFamily:e.launchFrom.protocolFamily}:void 0}}function re(t,e){return {chain:t,address:e.tokenAddress,name:e.name,symbol:e.symbol,decimals:e.decimals,image:e.imageUrl,description:e.description,socialMedias:e.socialMedia?{...e.socialMedia}:void 0,createdAt:e.createdAtMs?new Date(e.createdAtMs):void 0,launchedFrom:e.launchFrom?{programAddress:e.launchFrom.programAddress,protocolFamily:e.launchFrom.protocolFamily}:void 0,migratedTo:e.migratedTo?{programAddress:e.migratedTo.programAddress,protocolFamily:e.migratedTo.protocolFamily}:void 0}}function At(t){return {open:t.open,close:t.close,high:t.high,low:t.low,volume:t.volume,resolution:qt(t.resolution),timestamp:new Date(t.time)}}function cr(t){let e=["1m","5m","15m","30m","1h","4h","24h"],r=t,s={};for(let n of e){let a=r[`buys${n}`],d=r[`sells${n}`],i=r[`buyers${n}`],T=r[`sellers${n}`],b=r[`buyVolumeInUsd${n}`],u=r[`sellVolumeInUsd${n}`],f=r[`trades${n}`],x=r[`price${n}`],w=r[`openInUsd${n}`],B=r[`closeInUsd${n}`];if(!(a!==void 0||d!==void 0||f!==void 0||x!==void 0))continue;let Se=f??(a!==void 0&&d!==void 0?a+d:void 0),Dt=i!==void 0&&T!==void 0?i+T:void 0,Lt=b!==void 0&&u!==void 0?new utils.SafeBigNumber(b).plus(u).toString():void 0,Nt=w&&B&&new utils.SafeBigNumber(w).gt(0)?new utils.SafeBigNumber(B).minus(w).div(w).toString():void 0;s[n]={buys:a,sells:d,trades:Se,buyers:i,sellers:T,traders:Dt,buyVolumesInUsd:b,sellVolumesInUsd:u,volumesInUsd:Lt,openPriceInUsd:w,closePriceInUsd:B,priceInUsd:x??B,priceChange:Nt};}return s}function ur(t){return {priceInUsd:t.price}}function se(t,e){return {chain:t,address:e.address,stats:cr(e),marketData:ur(e)}}function Me(t,e){let r=[];return e.metadata&&r.push(re(t,e.metadata)),e.stat&&r.push(se(t,e.stat)),e.holder&&r.push(oe(t,e.holder.tokenAddress,e.holder)),e.supply&&r.push(ne(t,e.supply.tokenAddress,e.supply)),e.bondingCurve&&r.push(ae(t,e.bondingCurve)),r.filter(s=>s.address)}function ne(t,e,r){return {chain:t,address:e,marketData:{totalSupply:r.supply,marketCapInUsd:r.marketCapInUsd}}}function oe(t,e,r){return {chain:t,address:e,marketData:Tr(r)}}function _e(t,e,r){return r.metricType===sdk.WsMetricType.LIQUIDITY_IN_USD?{chain:t,address:e,marketData:{tvlInUsd:r.value}}:r.metricType===sdk.WsMetricType.MIGRATED_RATIO?{chain:t,address:e,migrateProgress:new utils.SafeBigNumber(r.value).shiftedBy(2).toString()}:{chain:t,address:e}}function ae(t,e){return {chain:t,address:e.tokenAddress??"",migrateProgress:e.progressRatio?new utils.SafeBigNumber(e.progressRatio).shiftedBy(2).toString():void 0}}function St(t,e,r){return {chain:t,address:e,liquidities:[{poolAddress:r.poolAddress,tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}]}}function Ct(t,e,r){return {chain:t,address:e,marketData:{tvlInUsd:r.liquidityInUsd,tvl:r.liquidityInNative}}}function Tr(t){return {holders:t.holders,top10Holdings:t.top10HoldersAmount,top10HoldingsRatio:t.top10HoldersRatio,top50Holdings:t.top50HoldersAmount,top50HoldingsRatio:t.top50HoldersRatio,top100Holdings:t.top100HoldersAmount,top100HoldingsRatio:t.top100HoldersRatio,bluechipHolders:t.bluechipHolders===void 0?void 0:t.bluechipHolders,bluechipHoldings:t.bluechipHoldersAmount,bluechipHoldingsRatio:t.bluechipHoldersRatio,kolHolders:t.kolHolders===void 0?void 0:t.kolHolders,kolHoldings:t.kolHoldersAmount,kolHoldingsRatio:t.kolHoldersRatio,proHolders:t.proHolders===void 0?void 0:t.proHolders,proHoldings:t.proHoldersAmount,proHoldingsRatio:t.proHoldersRatio,insiderHolders:t.insiderHolders===void 0?void 0:t.insiderHolders,insiderHoldings:t.insiderHoldersAmount,insiderHoldingsRatio:t.insiderHoldersRatio,devHolders:t.devHolders===void 0?void 0:t.devHolders,devHoldings:t.devHoldersAmount,devHoldingsRatio:t.devHoldersRatio,sniperHolders:t.sniperHolders===void 0?void 0:t.sniperHolders,sniperHoldings:t.sniperHoldersAmount,sniperHoldingsRatio:t.sniperHoldersRatio,freshHolders:t.freshHolders===void 0?void 0:t.freshHolders,freshHoldings:t.freshHoldersAmount,freshHoldingsRatio:t.freshHoldersRatio,bundleHolders:t.bundleHolders===void 0?void 0:t.bundleHolders,bundleHoldings:t.bundleHoldersAmount,bundleHoldingsRatio:t.bundleHoldersRatio,sandwichHolders:t.sandwichHolders===void 0?void 0:t.sandwichHolders,sandwichHoldings:t.sandwichHoldersAmount,sandwichHoldingsRatio:t.sandwichHoldersRatio}}function De(t,e){let r=e.kind.toLowerCase()==="buy";return {chain:t,walletAddress:r?e.buyWalletAddress:e.sellWalletAddress,txHash:e.txHash,type:r?"buy":"sell",from:{address:e.sellTokenAddress,symbol:e.sellTokenSymbol,name:e.sellTokenName,amount:e.sellAmount,amountInUsd:e.sellAmountInUsd,priceInUsd:ee(e.sellAmountInUsd,e.sellAmount)},to:{address:e.buyTokenAddress,symbol:e.buyTokenSymbol,name:e.buyTokenName,amount:e.buyAmount,amountInUsd:e.buyAmountInUsd,priceInUsd:ee(e.buyAmountInUsd,e.buyAmount)},status:"success",time:new Date(e.timestamp)}}function Le(t,e){let r=e.kind.toLowerCase().replace(/ /g,"_");return {chain:t,walletAddress:r==="buy"?e.buyWalletAddress:e.sellWalletAddress,txHash:e.txHash,type:r,from:{address:e.sellTokenAddress,symbol:e.sellTokenSymbol,name:e.sellTokenName,amount:e.sellAmount,amountInUsd:e.sellAmountInUsd,priceInUsd:ee(e.sellAmountInUsd,e.sellAmount)},to:{address:e.buyTokenAddress,symbol:e.buyTokenSymbol,name:e.buyTokenName,amount:e.buyAmount,amountInUsd:e.buyAmountInUsd,priceInUsd:ee(e.buyAmountInUsd,e.buyAmount)},status:"success",time:new Date(e.timestamp)}}function ee(t,e){if(t==null||t===""||e==null||e==="")return;let r=new utils.SafeBigNumber(e);if(r.gt(0))return new utils.SafeBigNumber(t).div(r).toString()}function mr(t){if(t?.sortBy)return t.sortBy==="totalUsd"?t.sortDirection==="asc"?sdk.ActivitySortBy.totalUsdAsc:sdk.ActivitySortBy.totalUsdDesc:t.sortDirection==="asc"?sdk.ActivitySortBy.timestampAsc:sdk.ActivitySortBy.timestampDesc}var K=class{constructor(e){this.sdk=e;}getWalletTrades(e,r,s){return this.getTrades(e,{walletAddress:r},s)}getTokenTrades(e,r,s){return this.getTrades(e,{tokenAddress:r},s)}getWalletActivities(e,r,s){return this.getActivities(e,{walletAddress:r},s)}getTokenActivities(e,r,s){return this.getActivities(e,{tokenAddress:r},s)}async getTrades(e,r,s){let n=await this.sdk.trade.getTrades(l(e),{...r,cursor:s?.cursor,limit:s?.limit,direction:s?.direction,beforeTimestamp:s?.before?.getTime(),afterTimestamp:s?.after?.getTime(),beforeBlockHeight:s?.beforeBlockHeight,afterBlockHeight:s?.afterBlockHeight,poolAddress:s?.poolAddress,type:s?.type?s.type.toUpperCase():void 0});return gt(n)}async getActivities(e,r,s){let n=await this.sdk.trade.getActivities(l(e),{...r,cursor:s?.cursor,limit:s?.limit,direction:s?.direction,beforeTimestamp:s?.before?.getTime(),afterTimestamp:s?.after?.getTime(),beforeBlockHeight:s?.beforeBlockHeight,afterBlockHeight:s?.afterBlockHeight,poolAddress:s?.poolAddress,type:s?.type?s.type.toUpperCase():void 0,sortBy:mr(s)});return pt(n)}};var $=class{constructor(e){this.sdk=e;}async getPresignedUploadUrl(){return (await this.sdk.ipfs.presign()).presignUrl}};var de=class extends Error{constructor(r,s,n){super(r,n);this.operation=s;this.name="ClientTransportError";}},le=class extends de{constructor(r,s,n){super(`Operation ${r} timed out after ${s}ms`,r,{cause:n});this.timeoutMs=s;this.name="ClientTimeoutError";}code="Timeout"},ce=class extends de{constructor(r,s,n){super(`Operation ${r} failed with HTTP ${s}`,r);this.status=s;this.responseBody=n;this.name="ClientHttpError";}code="HttpError"},It=class extends Error{constructor(r,s,n){super(`Unable to map ${r}: ${s}`,n);this.operation=r;this.name="ClientMappingError";}code="MappingError"};function kr(t){if(t)try{return JSON.parse(t)}catch{return t}}var ue=class{async request(e){let r=new AbortController,s=e.timeoutMs?setTimeout(()=>r.abort(),e.timeoutMs):void 0,n=e.signal?AbortSignal.any([e.signal,r.signal]):r.signal;try{let a=await fetch(e.url,{method:e.method??"GET",headers:e.headers,body:e.body===void 0?void 0:JSON.stringify(e.body),signal:n});if(!a.ok){let d=await a.text().catch(()=>"");throw new ce(e.operation,a.status,kr(d))}return await a.json()}catch(a){throw r.signal.aborted&&!e.signal?.aborted?new le(e.operation,e.timeoutMs??0,a):a}finally{s!==void 0&&clearTimeout(s);}}};var fr="https://api.chainstream.io";async function br(t){return typeof t=="string"?t:Promise.resolve(t.getToken())}function hr(t,e,r){if(r!=null){if(r instanceof Date){t.set(e,String(r.getTime()));return}t.set(e,String(r));}}function gr(t,e){let r=t.endsWith("/")?t.slice(0,-1):t,s=e.startsWith("/")?e:`/${e}`;return r+s}async function yr(t,e,r,s){let n=new URL(gr(t.baseUrl,r)),a=new URLSearchParams;for(let[T,b]of Object.entries(s))hr(a,T,b);let d=a.toString();d&&(n.search=d);let i=await br(t.accessToken);return t.transport.request({operation:e,url:n.toString(),method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${i}`}})}function xt(t,e,r=new ue){return {baseUrl:e??fr,accessToken:t,transport:r}}function wt(t,e,r,s){return yr(t,"getWalletPnlDetails",`/v2/wallet/${encodeURIComponent(e)}/${encodeURIComponent(r)}/pnl-details`,s)}var Q=class{subscribeToken;subscribeTokens;subscribeTokenCandles;subscribeNewTokens;subscribeNewTokensMetadata;subscribeNewPools;subscribeTrendingTokens;subscribeMigratedTokens;subscribeFinalStretchTokens;subscribeStockTokens;subscribeWalletPnl;subscribeWalletPortfolios;subscribeWalletPortfolioPnls;subscribeWalletTrades;subscribeTokenTrades;subscribeWalletActivities;subscribeTokenActivities;constructor(e){this.subscribeToken=e.subscribeToken.bind(e),this.subscribeTokens=e.subscribeTokens.bind(e),this.subscribeTokenCandles=e.subscribeTokenCandles.bind(e),this.subscribeNewTokens=e.subscribeNewTokens.bind(e),this.subscribeNewTokensMetadata=e.subscribeNewTokensMetadata.bind(e),this.subscribeNewPools=e.subscribeNewPools.bind(e),this.subscribeTrendingTokens=e.subscribeTrendingTokens.bind(e),this.subscribeMigratedTokens=e.subscribeMigratedTokens.bind(e),this.subscribeFinalStretchTokens=e.subscribeFinalStretchTokens.bind(e),this.subscribeStockTokens=e.subscribeStockTokens.bind(e),this.subscribeWalletPnl=e.subscribeWalletPnl.bind(e),this.subscribeWalletPortfolios=e.subscribeWalletPortfolios.bind(e),this.subscribeWalletPortfolioPnls=e.subscribeWalletPortfolioPnls.bind(e),this.subscribeWalletTrades=e.subscribeWalletTrades.bind(e),this.subscribeTokenTrades=e.subscribeTokenTrades.bind(e),this.subscribeWalletActivities=e.subscribeWalletActivities.bind(e),this.subscribeTokenActivities=e.subscribeTokenActivities.bind(e);}};function Pr(t){let e={amountPercentage:sdk.HolderSortBy.amountPercentage,holdingUsd:sdk.HolderSortBy.holdingUsd,usdValue:sdk.HolderSortBy.usdValue,totalPnl:sdk.HolderSortBy.totalPnl,lastActiveAt:sdk.HolderSortBy.lastActiveAt,realizedPnl:sdk.HolderSortBy.realizedPnl,unrealizedPnl:sdk.HolderSortBy.unrealizedPnl,buyVolume:sdk.HolderSortBy.buyVolume,sellVolume:sdk.HolderSortBy.sellVolume,netflowUsd:sdk.HolderSortBy.netflowUsd,createdAt:sdk.HolderSortBy.createdAt};return t?e[t]:void 0}function Ar(t){if(t==="totalPnl"||t==="profit")return sdk.TraderSortBy.totalPnl;let e={realizedPnl:sdk.TraderSortBy.realizedPnl,unrealizedPnl:sdk.TraderSortBy.unrealizedPnl,buyVolume:sdk.TraderSortBy.buyVolume,sellVolume:sdk.TraderSortBy.sellVolume,lastActiveAt:sdk.TraderSortBy.lastActiveAt,netflowUsd:sdk.TraderSortBy.netflowUsd,createdAt:sdk.TraderSortBy.createdAt};return t?e[t]:void 0}function Sr(t){let e=t?.find(r=>r.field==="launchedFromProtocolFamily");if(e){if(e.operator==="eq")return [e.value];if(e.operator==="in")return e.value;console.warn("invalid launchedFromProtocolFamily filter",e);}}var Y=class{constructor(e){this.sdk=e;}async getToken(e,r){return P(await this.sdk.token.getToken(l(e),r))}async getTokens(e,r){return (await this.sdk.token.getTokens(l(e),{tokenAddresses:r.join(",")})).map(P)}async getTokenCandles(e,r,s,n){return (await this.sdk.token.getCandles(l(e),r,{resolution:F(s),from:n?.after?.getTime(),to:n?.before?.getTime(),limit:n?.limit})).map(d=>Re(d,s))}async getTokenSecurity(e,r){return Ue(await this.sdk.token.getSecurity(l(e),r))}async getTokenStats(e,r){return z(await this.sdk.token.getStats(l(e),r))}async getTokenHolders(e,r,s){let n=await this.sdk.token.getHolders(l(e),r,{cursor:s?.cursor,limit:s?.limit,direction:s?.direction,sortBy:Pr(s?.sortBy),sortDirection:s?.sortDirection?s.sortDirection:void 0});return He(n)}async getTokenTopTraders(e,r,s){let n=await this.sdk.token.getTokenTopTraders(l(e),r,{cursor:s?.cursor,limit:s?.limit,direction:s?.direction,sortBy:Ar(s?.sortBy),sortDirection:s?.sortDirection?s.sortDirection:void 0,tag:s?.tag});return Ee(n)}async getTokenMarketData(e,r){return q(await this.sdk.token.getMarketData(l(e),r))}async getNewTokens(e,r){return (await this.sdk.ranking.getNewTokens(l(e),this.buildRankingParams(r))).map(P)}async getNewPools(e){return (await this.sdk.ranking.getRankingPools(l(e),sdk.RankingPoolType["new-pool"])).map(r=>ve(e,r))}async getFinalStretchTokens(e,r){return (await this.sdk.ranking.getFinalStretchTokens(l(e),this.buildRankingParams(r))).map(P)}async getMigratedTokens(e,r){return (await this.sdk.ranking.getMigratedTokens(l(e),this.buildRankingParams(r))).map(P)}async getTrendingTokens(e,r,s){return (await this.sdk.ranking.getHotTokens(l(e),r,this.buildRankingParams(s))).map(P)}async getStockTokens(e,r){return (await this.sdk.ranking.getStocksTokens(l(e),this.buildRankingParams(r))).map(P)}async searchTokens(e){return Oe(await this.sdk.token.search({chains:e?.chains?.map(l),q:e?.keyword,limit:e?.limit,cursor:e?.cursor,sortBy:e?.sortBy?xe(e.sortBy):void 0,sort:e?.sortDirection}))}async getTokensByCreator(e,r,s){return Be(e,await this.sdk.token.getDevTokens(l(e),r,{cursor:s?.cursor,limit:s?.limit,direction:s?.direction}))}buildRankingParams(e){return {sortBy:e?.sortBy?te(e.sortBy):void 0,sortDirection:e?.sortDirection?e.sortDirection:void 0,rangeFilters:e?.filters?we(e.filters):void 0,launchpadPlatform:e?.filters?Sr(e.filters):void 0,searchKeywords:e?.keywords,excludeKeywords:e?.excludeKeywords}}};var J=class{constructor(e){this.sdk=e;}async swapRoute(e){let r=await this.sdk.dex.route(l(e.chain),it(e));return ct(r)}};var Ir={disconnected:"sign",quote:"route",expired:"expired",sign:"sign",submit:"send",confirm:"confirm",cancelled:void 0},g=class extends Error{reason;phase;cause;constructor(e,r){super(e),this.name="TradeExecutionError",this.reason=r.reason,this.phase=r.phase??Ir[r.reason],this.cause=r.cause;}},y=class extends g{constructor(e="Swap route expired. Please refresh the quote."){super(e,{reason:"expired",phase:"expired"}),this.name="TradeRouteExpiredError";}};function H(t){return t instanceof Error?t:new Error(String(t))}function vt(t){if(t instanceof g&&t.reason==="cancelled")return true;if(typeof t!="object"||t===null)return false;let e=t.name;return e==="AbortError"||e==="CancelledError"}var Ne=150,Fe=12e3,Te=60,me=40,Rt=6e3,Ut=6e3;function Ge(t,e){let r=e-Ne;return t-r}function ke(t,e,r,s,n){if(!utils.isSolanaChain(t)||e.lastValidBlockHeight==null)return;let a=r.dataUpdatedAt??n;if(!r.blockhash||n-a>Fe)throw new y("Latest Solana block data is stale. Please refresh the quote.");if(Ge(e.lastValidBlockHeight,r.lastValidBlockHeight)<s)throw new y("Swap route is close to blockhash expiry. Please refresh the quote.")}function fe(t){let e=(t instanceof Error?t.message:String(t)).toLowerCase();return e.includes("block height exceeded")||e.includes("blockhash not found")||e.includes("blockhashnotfound")}function wr(t,e){return e?.aborted?Promise.reject(be()):new Promise((r,s)=>{let n=setTimeout(()=>{e?.removeEventListener("abort",a),r();},t),a=()=>{clearTimeout(n),s(be());};e?.addEventListener("abort",a,{once:true});})}function be(){let t=new Error("Trade execution cancelled");return t.name="AbortError",t}var ge={now:()=>Date.now(),sleep:wr},he=class{nowMs;sleepers=[];constructor(e=1e4){this.nowMs=e;}now(){return this.nowMs}sleep(e,r){return r?.aborted?Promise.reject(be()):new Promise((s,n)=>{let a={at:this.nowMs+e,resolve:()=>{r?.removeEventListener("abort",d),s();},reject:i=>{r?.removeEventListener("abort",d),n(i);},signal:r},d=()=>{let i=this.sleepers.indexOf(a);i>=0&&this.sleepers.splice(i,1),a.reject(be());};r?.addEventListener("abort",d,{once:true}),this.sleepers.push(a);})}advance(e){this.nowMs+=e;let r=this.sleepers.filter(s=>s.at<=this.nowMs);for(let s of r){let n=this.sleepers.indexOf(s);n>=0&&this.sleepers.splice(n,1),s.resolve();}}};function ze(t){return {chain:t.chain,userAddress:t.userAddress,input:t.input,output:t.output,mode:t.mode??types.SwapMode.EXACT_IN,amount:t.amount,slippage:t.slippage,priorityFee:t.priorityFee,tipFee:t.tipFee,isAntiMev:t.isAntiMev,permit:t.permit,deadline:t.deadline}}function Ht(t){return {quote:e=>t.swapRoute(ze(e)),getLatestBlock:t.getLatestBlock,submit:(e,r)=>t.sendTx({chain:r,serializedTx:e}),confirm:t.checkTxSuccess?async(e,r)=>await t.checkTxSuccess(e,r)?"confirmed":"failed":void 0}}function qe(t){let e=atob(t),r=new Uint8Array(e.length);for(let s=0;s<e.length;s++)r[s]=e.charCodeAt(s);return r}function Ve(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}var Rr={serializedTx:"dW5zaWduZWQtdHg=",lastValidBlockHeight:1090,plans:[]},Ur={blockhash:"latest",lastValidBlockHeight:1150,dataUpdatedAt:1e4},ye=class{quotes=[];latestBlocks=[];signs=[];submits=[];confirms=[];quoteImpl;getLatestBlockImpl;signImpl;submitImpl;confirmImpl;route;latestBlock;txHash;extra;constructor(e={}){this.quoteImpl=e.quote,this.getLatestBlockImpl=e.getLatestBlock,this.signImpl=e.sign,this.submitImpl=e.submit,this.confirmImpl=e.confirm,this.route=e.route??{...Rr,plans:[]},this.latestBlock={...Ur,...e.latestBlock??{}},this.txHash=e.txHash??"tx-hash",this.extra=e.extra;}quote=async(e,r)=>(this.quotes.push(e),this.quoteImpl?this.quoteImpl(e,r):this.route);getLatestBlock=async e=>(this.latestBlocks.push(e),this.getLatestBlockImpl?this.getLatestBlockImpl(e):this.latestBlock);get sign(){if(this.signImpl)return async e=>(this.signs.push(e),this.signImpl(e))}submit=async(e,r)=>(this.submits.push({signedBase64:e,chain:r}),this.submitImpl?this.submitImpl(e,r):{txHash:this.txHash,extra:this.extra});confirm=async(e,r,s)=>(this.confirms.push({chain:e,txHash:r}),this.confirmImpl?this.confirmImpl(e,r,s):"confirmed")};var pe=new Set(["quoting","quoted","signing","submitting","confirming"]);var Et=0;function Er(){return Et+=1,`trade-${Et}`}function E(){return new g("Trade execution cancelled",{reason:"cancelled"})}var Pe=class{adapter;clock;createId;listeners=new Set;snapshot={state:"idle"};controller=null;inFlight=null;lastIntent=null;lastSign;generation=0;constructor(e){this.adapter=e.adapter,this.clock=e.clock??ge,this.createId=e.id??Er;}getSnapshot(){return this.snapshot}subscribe(e){return this.listeners.add(e),e(this.snapshot),()=>{this.listeners.delete(e);}}execute(e,r={}){if(this.inFlight)return this.inFlight;this.lastIntent=e,this.lastSign=r.sign??this.adapter.sign;let s=++this.generation;this.controller=new AbortController;let n=this.run(e,r,s).finally(()=>{this.inFlight===n&&(this.inFlight=null);});return this.inFlight=n,n}cancel(){pe.has(this.snapshot.state)&&(this.controller?.abort(),this.patch({state:"cancelled",error:E(),phase:void 0}));}retry(){return this.snapshot.state==="failed"||this.snapshot.state==="stale"||this.snapshot.state==="cancelled"?this.lastIntent?this.execute(this.lastIntent,{sign:this.lastSign}):Promise.reject(new g("No trade intent to retry",{reason:"quote",phase:"route"})):Promise.reject(new g("retry() is only available from failed, stale, or cancelled",{reason:"quote",phase:"route"}))}async confirm(e){let{txHash:r,intent:s}=this.snapshot;if(!r||!s)throw new g("No submitted trade to confirm",{reason:"confirm",phase:"confirm"});if(!this.adapter.confirm)return this.patch({state:"succeeded"}),"confirmed";let n=this.generation;this.controller=new AbortController,this.patch({state:"confirming",error:void 0,phase:void 0});let a=e?.timeoutMs??6e4,d=this.controller.signal;try{let i=await this.raceAbort(this.raceTimeout(this.adapter.confirm(s.chain,r,d),a,d),n);if(i==="timeout"){let T=new g("Transaction confirmation timed out",{reason:"confirm",phase:"confirm"});throw this.patch({state:"failed",error:T,phase:"confirm"}),T}if(i==="failed"){let T=new g("Transaction failed on-chain",{reason:"confirm",phase:"confirm"});throw this.patch({state:"failed",error:T,phase:"confirm"}),T}return this.patch({state:"succeeded",error:void 0,phase:void 0}),"confirmed"}catch(i){if(this.throwIfCancelled(i),this.snapshot.state==="failed")throw i;let T=H(i);throw this.patch({state:"failed",error:T,phase:"confirm"}),T}}async run(e,r,s){let n=r.sign??this.adapter.sign,a=utils.isSolanaChain(e.chain);if(this.patch({id:this.createId(),state:"idle",intent:e,route:void 0,txHash:void 0,extra:void 0,error:void 0,phase:void 0}),typeof n!="function"){let u=new g("Wallet is disconnected or cannot sign",{reason:"disconnected",phase:"sign"});throw this.patch({state:"failed",error:u,phase:"sign"}),u}this.patch({state:"quoting"});let d=a&&this.adapter.getLatestBlock?this.adapter.getLatestBlock(e.chain).then(u=>({ok:true,value:u}),u=>({ok:false,error:u})):void 0,i;try{i=await this.raceAbort(this.adapter.quote(e,this.controller?.signal),s);}catch(u){this.throwIfCancelled(u);let f=H(u);throw this.patch({state:"failed",error:f,phase:"route"}),f}if(this.patch({state:"quoted",route:i}),a&&i.lastValidBlockHeight!=null)try{let u=await this.raceAbort(d??Promise.resolve({ok:!1,error:new Error("Latest block adapter is not available")}),s);if(!u.ok)throw u.error instanceof y?(this.markStale(u.error),u.error):new y("Unable to validate latest Solana block data. Please refresh the quote.");this.assertFresh(e,i,u.value,Te);}catch(u){this.throwIfCancelled(u);let f=this.toExpiredError(u);throw this.markStale(f),f}this.patch({state:"signing"});let T;try{let u=qe(i.serializedTx);T=await this.raceAbort(n(u),s);}catch(u){this.throwIfCancelled(u);let f=H(u);throw this.patch({state:"failed",error:f,phase:"sign"}),f}if(a&&i.lastValidBlockHeight!=null)try{if(!this.adapter.getLatestBlock)throw new y("Unable to validate latest Solana block data. Please refresh the quote.");let u=await this.raceAbort(this.adapter.getLatestBlock(e.chain),s);this.assertFresh(e,i,u,me);}catch(u){this.throwIfCancelled(u);let f=this.toExpiredError(u);throw this.markStale(f),f}this.patch({state:"submitting"});let b;try{let u=Ve(T);b=await this.raceAbort(this.adapter.submit(u,e.chain),s);}catch(u){if(this.throwIfCancelled(u),a&&fe(u)){let x=new y("Swap route expired before transaction submission. Please refresh the quote.");throw this.markStale(x),x}let f=H(u);throw this.patch({state:"failed",error:f,phase:"send"}),f}return this.patch({state:"succeeded",txHash:b.txHash,extra:b.extra,error:void 0,phase:void 0}),r.confirm&&await this.confirm({timeoutMs:r.confirmTimeoutMs}),{txHash:b.txHash,extra:b.extra}}assertFresh(e,r,s,n){ke(e.chain,r,s,n,this.clock.now());}markStale(e){this.patch({state:"stale",error:e,phase:"expired"});}toExpiredError(e){return e instanceof y?e:e instanceof g&&e.reason==="expired"?new y(e.message):new y("Unable to validate latest Solana block data. Please refresh the quote.")}throwIfCancelled(e){if(this.snapshot.state==="cancelled")throw this.snapshot.error??E();if(vt(e)||this.controller?.signal.aborted){let r=E();throw this.patch({state:"cancelled",error:r,phase:void 0}),r}}raceAbort(e,r){let s=this.controller?.signal;return s?s.aborted||this.generation!==r?Promise.reject(E()):new Promise((n,a)=>{let d=()=>{a(E());};s.addEventListener("abort",d,{once:true}),e.then(i=>{if(s.removeEventListener("abort",d),s.aborted||this.generation!==r){a(E());return}n(i);},i=>{if(s.removeEventListener("abort",d),s.aborted||this.generation!==r){a(E());return}a(i);});}):e}raceTimeout(e,r,s){return this.clock.sleep?Promise.race([e,this.clock.sleep(r,s).then(()=>"timeout")]):e}patch(e){this.snapshot={...this.snapshot,...e};for(let r of this.listeners)r(this.snapshot);}};var X=class{constructor(e){this.sdk=e;}async getLatestBlock(e){return ut(await this.sdk.blockchain.getLatestBlock(l(e.chain)))}async sendTx(e){return Tt(await this.sdk.transaction.send(l(e.chain),dt(e)))}async checkTxSuccess(e,r,s){return (await this.sdk.waitForJob(r,s)).success}};async function Bt(t,e,r,s){return await t(e,r,s)?"confirmed":"failed"}var Ae=class extends Error{code="NotImplemented";constructor(e,r){super(r?`${e} is not yet implemented by the backend: ${r}`:`${e} is not yet implemented by the backend`),this.name="NotImplementedError";}};function No(t){return t instanceof Error&&t.code==="NotImplemented"}var Wt={[types.Chain.SOLANA]:"sol",[types.Chain.ETHEREUM]:"eth",[types.Chain.BINANCE]:"bnb"},Br={[types.Chain.SOLANA]:"11111111111111111111111111111111",[types.Chain.ETHEREUM]:"0x0000000000000000000000000000000000000000",[types.Chain.BINANCE]:"0x0000000000000000000000000000000000000000"},Z=class{constructor(e,r,s){this.sdk=e;this.phase3=r;this.nativeBalanceApiUrl=s;}async getWalletPortfolios(e,r,s){let n=Wt[e];return n&&this.nativeBalanceApiUrl?this.getPortfoliosFromBalanceApi(e,n,r,true):mt(e,await this.sdk.wallet.getNetWorth(l(e),r,{cursor:s?.cursor,limit:s?.limit??100}))}async getWalletPnl(e,r,s){let n=await this.sdk.wallet.getPnl(l(e),r,s?{resolution:s}:void 0);return kt(e,r,n)}async getWalletPortfolioPnls(e,r,s){if(s?.resolution==="90d"){let a=await wt(this.phase3,l(e),r,{resolution:"90d",positionState:s.positionState,sortBy:s.sortBy,cursor:s.cursor,limit:s.limit??100,direction:s.direction});return We(e,r,a)}let n=await this.sdk.wallet.getPnlDetails(l(e),r,{resolution:s?.resolution==="7d"?sdk.PnlResolution["7d"]:sdk.PnlResolution["30d"],positionState:s?.positionState==="closed"?sdk.PositionState.closed:s?.positionState==="all"?sdk.PositionState.all:s?.positionState==="open"?sdk.PositionState.open:void 0,sortBy:s?.sortBy==="realizedPnl"?sdk.PnlSortBy.realizedPnl:s?.sortBy==="unrealizedPnl"?sdk.PnlSortBy.unrealizedPnl:s?.sortBy==="totalPnl"?sdk.PnlSortBy.totalPnl:void 0,cursor:s?.cursor,limit:s?.limit??100,direction:s?.direction});return We(e,r,n)}async getWalletPortfoliosByTokens(e,r,s){let n=Wt[e];return n&&this.nativeBalanceApiUrl?this.getBalancePortfolios(e,n,r,s):bt(e,await this.sdk.wallet.getNetWorthByTokens(l(e),r,{tokenAddresses:s.join(",")}))}async getWalletPortfolioPnlsByTokens(e,r,s){return ht(e,await this.sdk.wallet.getPnlByToken(l(e),r,{tokenAddresses:s.join(",")}))}async getWalletLimitOrders(e,r,s){throw new Ae("Client.getWalletLimitOrders","no limit-orders endpoint on the backend yet")}async getPortfoliosFromBalanceApi(e,r,s,n=false,a){let d=await this.getBalancePortfolios(e,r,s,a);if(!n)return d;let i=d.find(T=>T.address===Br[e]);return {chain:e,address:s,balanceInUsd:"0",balanceInNative:i?.amount??"0",portfolios:d,hasPrev:false,hasNext:false}}async getBalancePortfolios(e,r,s,n){let a=new URLSearchParams({chain:r,address:s});n?.length&&a.set("tokens",n.join(","));let d=await fetch(`${this.nativeBalanceApiUrl}?${a.toString()}`);if(!d.ok)throw new Error(`Balance API returned ${d.status}`);return (await d.json()).balances.map(T=>{let b=BigInt(10)**BigInt(T.decimals),u=BigInt(T.balance),f=`${u/b}.${(u%b).toString().padStart(T.decimals,"0")}`.replace(/\.?0+$/,"")||"0";return {chain:e,address:T.address,name:"",symbol:"",priceInUsd:"0",priceInNative:"0",amount:f,amountInUsd:"0",amountInNative:"0",decimals:T.decimals}})}};var _t=class{constructor(e,r){this.accessToken=e;this.options=r;this._client=new sdk.ChainStreamClient(this.accessToken,this.options),this._token=new Y(this._client),this._phase3=xt(this.accessToken,this.options?.serverUrl),this._wallet=new Z(this._client,this._phase3,this.options?.nativeBalanceApiUrl),this._activity=new K(this._client),this._trade=new J(this._client),this._transaction=new X(this._client),this._media=new $(this._client),this._subscription=new Q({subscribeToken:this._subscribeToken.bind(this),subscribeTokens:this._subscribeTokens.bind(this),subscribeTokenCandles:this._subscribeTokenCandles.bind(this),subscribeNewTokens:this._subscribeNewTokens.bind(this),subscribeNewTokensMetadata:this._subscribeNewTokensMetadata.bind(this),subscribeNewPools:this._subscribeNewPools.bind(this),subscribeTrendingTokens:this._subscribeTrendingTokens.bind(this),subscribeMigratedTokens:this._subscribeMigratedTokens.bind(this),subscribeFinalStretchTokens:this._subscribeFinalStretchTokens.bind(this),subscribeStockTokens:this._subscribeStockTokens.bind(this),subscribeWalletPnl:this._subscribeWalletPnl.bind(this),subscribeWalletPortfolios:this._subscribeWalletPortfolios.bind(this),subscribeWalletPortfolioPnls:this._subscribeWalletPortfolioPnls.bind(this),subscribeWalletTrades:this._subscribeWalletTrades.bind(this),subscribeTokenTrades:this._subscribeTokenTrades.bind(this),subscribeWalletActivities:this._subscribeWalletActivities.bind(this),subscribeTokenActivities:this._subscribeTokenActivities.bind(this)});}_client;_phase3;_token;_wallet;_activity;_trade;_transaction;_media;_subscription;subscribeToken=(...e)=>this._subscription.subscribeToken(...e);subscribeTokens=(...e)=>this._subscription.subscribeTokens(...e);subscribeTokenCandles=(...e)=>this._subscription.subscribeTokenCandles(...e);subscribeNewTokens=(...e)=>this._subscription.subscribeNewTokens(...e);subscribeNewTokensMetadata=(...e)=>this._subscription.subscribeNewTokensMetadata(...e);subscribeNewPools=(...e)=>this._subscription.subscribeNewPools(...e);subscribeTrendingTokens=(...e)=>this._subscription.subscribeTrendingTokens(...e);subscribeMigratedTokens=(...e)=>this._subscription.subscribeMigratedTokens(...e);subscribeFinalStretchTokens=(...e)=>this._subscription.subscribeFinalStretchTokens(...e);subscribeStockTokens=(...e)=>this._subscription.subscribeStockTokens(...e);subscribeWalletPnl=(...e)=>this._subscription.subscribeWalletPnl(...e);subscribeWalletPortfolios=(...e)=>this._subscription.subscribeWalletPortfolios(...e);subscribeWalletPortfolioPnls=(...e)=>this._subscription.subscribeWalletPortfolioPnls(...e);subscribeWalletTrades=(...e)=>this._subscription.subscribeWalletTrades(...e);subscribeTokenTrades=(...e)=>this._subscription.subscribeTokenTrades(...e);subscribeWalletActivities=(...e)=>this._subscription.subscribeWalletActivities(...e);subscribeTokenActivities=(...e)=>this._subscription.subscribeTokenActivities(...e);async getToken(e,r){return this._token.getToken(e,r)}async getTokens(e,r){return this._token.getTokens(e,r)}async getTokenCandles(e,r,s,n){return this._token.getTokenCandles(e,r,s,n)}async getTokenSecurity(e,r){return this._token.getTokenSecurity(e,r)}async getTokenStats(e,r){return this._token.getTokenStats(e,r)}async getTokenHolders(e,r,s){return this._token.getTokenHolders(e,r,s)}async getTokenTopTraders(e,r,s){return this._token.getTokenTopTraders(e,r,s)}async getTokenMarketData(e,r){return this._token.getTokenMarketData(e,r)}async getNewTokens(e,r){return this._token.getNewTokens(e,r)}async getNewPools(e,r){return this._token.getNewPools(e)}async getFinalStretchTokens(e,r){return this._token.getFinalStretchTokens(e,r)}async getMigratedTokens(e,r){return this._token.getMigratedTokens(e,r)}async getTrendingTokens(e,r,s){return this._token.getTrendingTokens(e,r,s)}async getStockTokens(e,r){return this._token.getStockTokens(e,r)}async searchTokens(e){return this._token.searchTokens(e)}async swapRoute(e){return this._trade.swapRoute(e)}async getLatestBlock(e){return this._transaction.getLatestBlock(e)}async sendTx(e){return this._transaction.sendTx(e)}async checkTxSuccess(e,r,s){return this._transaction.checkTxSuccess(e,r,s)}async getWalletPortfolios(e,r,s){return this._wallet.getWalletPortfolios(e,r,s)}async getWalletPnl(e,r,s){return this._wallet.getWalletPnl(e,r,s)}async getWalletPortfolioPnls(e,r,s){return this._wallet.getWalletPortfolioPnls(e,r,s)}async getWalletPortfoliosByTokens(e,r,s){return this._wallet.getWalletPortfoliosByTokens(e,r,s)}async getWalletPortfolioPnlsByTokens(e,r,s){return this._wallet.getWalletPortfolioPnlsByTokens(e,r,s)}async getWalletTrades(e,r,s){return this._activity.getWalletTrades(e,r,s)}async getTokenTrades(e,r,s){return this._activity.getTokenTrades(e,r,s)}async getWalletActivities(e,r,s){return this._activity.getWalletActivities(e,r,s)}async getTokenActivities(e,r,s){return this._activity.getTokenActivities(e,r,s)}async getPresignedUploadUrl(){return this._media.getPresignedUploadUrl()}async getWalletLimitOrders(e,r,s){return this._wallet.getWalletLimitOrders(e,r,s)}async getTokensByCreator(e,r,s){return this._token.getTokensByCreator(e,r,s)}_subscribeToken(e,r,s){return this._subscribeTokens(e,[r],s)}_subscribeTokens(e,r,s){let n=l(e),a=Array.from(new Set(r.map(i=>i.trim()).filter(Boolean)));if(a.length===0)return {unsubscribe:()=>{}};let d=this._client.stream.batchSubscribe(()=>a.flatMap(i=>[this._client.stream.subscribeTokenStats({chain:n,tokenAddress:i,callback:T=>s([se(e,T)])}),this._client.stream.subscribeTokenHolders({chain:n,tokenAddress:i,callback:T=>s([oe(e,i,T)])}),this._client.stream.subscribeTokenSupply({chain:n,tokenAddress:i,callback:T=>s([ne(e,i,T)])}),this._client.stream.subscribeTokenLiquidity({chain:n,tokenAddress:i,callback:T=>s([_e(e,i,T)])}),this._client.stream.subscribeTokenMaxLiquidity({chain:n,tokenAddress:i,callback:T=>s([St(e,i,T)])}),this._client.stream.subscribeTokenTotalLiquidity({chain:n,tokenAddress:i,callback:T=>s([Ct(e,i,T)])})]));return {unsubscribe:()=>{let i=this._client.stream;if(i.batchUnsubscribe){i.batchUnsubscribe(d);return}d.forEach(T=>T.unsubscribe());}}}_subscribeTokenCandles(e,r,s,n){return this._client.stream.subscribeTokenCandles({chain:l(e),tokenAddress:r,resolution:F(s),callback:a=>n([At(a)])})}_subscribeWalletPnl(e,r,s){return this._client.stream.subscribeWalletPnlList({chain:l(e),walletAddress:r,callback:n=>s(n.map(a=>({chain:e,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(e,r,s){return this._client.stream.subscribeWalletBalance({chain:l(e),walletAddress:r,callback:n=>s(n.map(a=>({chain:e,walletAddress:a.walletAddress,tokenAddress:a.tokenAddress,priceInUsd:a.tokenPriceInUsd,amount:a.balance})))})}_subscribeWalletPortfolioPnls(e,r,s){return this._client.stream.subscribeWalletPnl({chain:l(e),walletAddress:r,callback:n=>s([{chain:e,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(e,r,s){return this._client.stream.subscribeWalletTrade({chain:l(e),walletAddress:r,callback:n=>s([De(e,n)])})}_subscribeTokenTrades(e,r,s){return this._client.stream.subscribeTokenTrade({chain:l(e),tokenAddress:r,callback:n=>s([De(e,n)])})}_subscribeWalletActivities(e,r,s){return this._client.stream.subscribeWalletTrade({chain:l(e),walletAddress:r,callback:n=>s([Le(e,n)])})}_subscribeTokenActivities(e,r,s){return this._client.stream.subscribeTokenTrade({chain:l(e),tokenAddress:r,callback:n=>s([Le(e,n)])})}_subscribeNewTokens(e,r){let s=l(e),n=this._subscribeRankingTokens(e,sdk.WsChannelType.New,r),a=[this._client.stream.subscribeNewToken({chain:s,callback:d=>r([Pt(e,d)])}),this._client.stream.subscribeNewTokensMetadata({chain:s,callback:d=>r(d.map(i=>re(e,i)))}),this._client.stream.subscribeRankingTokensBondingCurve({chain:s,callback:d=>r(d.map(i=>ae(e,i)))})];return {unsubscribe:()=>{n.unsubscribe(),a.forEach(d=>d.unsubscribe());}}}_subscribeNewTokensMetadata(e,r){return this._client.stream.subscribeNewTokensMetadata({chain:l(e),callback:s=>r(s.map(n=>re(e,n)))})}_subscribeNewPools(e,r){return this._client.stream.subscribeNewPool({chain:l(e),callback:s=>r([nt(e,s)])})}_subscribeTrendingTokens(e,r){return this._subscribeRankingTokenList(e,sdk.WsRankingType.HOT,r)}_subscribeMigratedTokens(e,r){return this._subscribeRankingTokens(e,sdk.WsChannelType.MIGRATED,r)}_subscribeFinalStretchTokens(e,r){let s=l(e),n=this._subscribeRankingTokens(e,sdk.WsChannelType.FINAL_STRETCH,r),a=this._client.stream.subscribeRankingTokensBondingCurve({chain:s,callback:d=>r(d.map(i=>ae(e,i)))});return {unsubscribe:()=>{n.unsubscribe(),a.unsubscribe();}}}_subscribeStockTokens(e,r){return this._subscribeRankingTokenList(e,sdk.WsRankingType.STOCKS,r)}_subscribeRankingTokens(e,r,s){let n=l(e),a=[this._client.stream.subscribeRankingTokensStats({chain:n,channelType:r,callback:d=>s(d.map(i=>se(e,i)))}),this._client.stream.subscribeRankingTokensHolders({chain:n,channelType:r,callback:d=>s(d.map(i=>oe(e,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensSupply({chain:n,channelType:r,callback:d=>s(d.map(i=>ne(e,i.tokenAddress,i)))}),this._client.stream.subscribeRankingTokensLiquidity({chain:n,channelType:r,callback:d=>s(d.map(i=>_e(e,i.tokenAddress,i)))})];return {unsubscribe:()=>a.forEach(d=>d.unsubscribe())}}_subscribeRankingTokenList(e,r,s){return this._client.stream.subscribeRankingTokensList({chain:l(e),ranking_type:r,callback:n=>{let a=n.flatMap(d=>Me(e,d));a.length>0&&s(a);}})}};
2
+ exports.Client=_t;exports.ClientHttpError=ce;exports.ClientMappingError=It;exports.ClientTimeoutError=le;exports.ClientTransportError=de;exports.FakeTradeExecutionClock=he;exports.IN_FLIGHT_TRADE_STATES=pe;exports.InMemoryTradeExecutionAdapter=ye;exports.KYBERSWAP_NATIVE_SENTINEL=or;exports.LATEST_BLOCK_CACHE_MAX_AGE_MS=Fe;exports.NotImplementedError=Ae;exports.POST_SIGN_MIN_REMAINING_BLOCKS=me;exports.POST_SIGN_STALE_MS=Ut;exports.PRE_SIGN_MIN_REMAINING_BLOCKS=Te;exports.PRE_SIGN_STALE_MS=Rt;exports.SOLANA_BLOCKHASH_VALIDITY_BLOCKS=Ne;exports.TradeExecutionError=g;exports.TradeExecutionRuntime=Pe;exports.TradeRouteExpiredError=y;exports.asError=H;exports.assertTradeRouteBlockhashFresh=ke;exports.confirmTx=Bt;exports.createClientTradeExecutionAdapter=Ht;exports.fromActivityPage=bn;exports.fromChainDTO=G;exports.fromLatestBlock=ut;exports.fromPnlDetailItems=ht;exports.fromPnlDetailsPage=We;exports.fromRankingPoolDTO=ve;exports.fromSdkActivityPage=pt;exports.fromSdkDevTokenDTO=Gt;exports.fromSdkDevTokenPage=Be;exports.fromSdkTokenHolderPage=He;exports.fromSdkTokenTopTraderPage=Ee;exports.fromSendTxResult=Tt;exports.fromSwapRoute=ct;exports.fromTokenCandle=Re;exports.fromTokenCreatorDTO=tt;exports.fromTokenDTO=P;exports.fromTokenHolderPage=fn;exports.fromTokenLiquidityDTO=mn;exports.fromTokenMarketDataDTO=q;exports.fromTokenMetadataSubscribed=re;exports.fromTokenPage=Oe;exports.fromTokenSecurity=Ue;exports.fromTokenStatsDTO=z;exports.fromTokenSubscribed=Pt;exports.fromTradePage=gt;exports.fromWalletNetWorthByTokens=bt;exports.fromWalletPnlSummary=kt;exports.fromWalletPortfolios=mt;exports.fromWsActivity=Le;exports.fromWsCandle=At;exports.fromWsRankingPoolToSubscribed=nt;exports.fromWsRankingTokenListToSubscribed=Me;exports.fromWsTokenBondingCurveToSubscribed=ae;exports.fromWsTokenDataSubscribed=se;exports.fromWsTokenHolderToSubscribed=oe;exports.fromWsTokenLiquidityToSubscribed=_e;exports.fromWsTokenMarketDataFromHolder=Tr;exports.fromWsTokenMarketDataFromStats=ur;exports.fromWsTokenMaxLiquidityToSubscribed=St;exports.fromWsTokenStats=cr;exports.fromWsTokenSupplyToSubscribed=ne;exports.fromWsTokenTotalLiquidityToSubscribed=Ct;exports.fromWsTradeActivity=De;exports.intentToSwapParams=ze;exports.isNotImplementedError=No;exports.isSolanaBlockhashExpiredSendError=fe;exports.remainingSolanaBlocks=Ge;exports.systemClock=ge;exports.toChainDTO=l;exports.toFieldDTO=te;exports.toMintForRoute=kn;exports.toRangeFiltersDTO=we;exports.toResolutionDTO=F;exports.toSearchFieldDTO=xe;exports.toSendTxInput=dt;exports.toSortDirectionDTO=et;exports.toSwapRouteInput=it;//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map