@liberfi.io/utils 0.1.18 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Chain, TokenProtocol } from '@liberfi.io/types';
1
+ import { Chain, ChainNamespace, TokenProtocol } from '@liberfi.io/types';
2
2
  import BigNumber from 'bignumber.js';
3
3
  export { debounce, groupBy, intersectionBy, keyBy, mapKeys, mapValues, throttle, uniqBy } from 'lodash-es';
4
4
 
@@ -9,14 +9,17 @@ declare global {
9
9
  };
10
10
  }
11
11
  }
12
- declare const _default: "0.1.18";
12
+ declare const _default: "0.1.20";
13
13
 
14
+ /** Returns the chain namespace (EVM or SOLANA) for a given chain */
15
+ declare function chainToNamespace(chain: Chain): ChainNamespace;
14
16
  declare function chainColor(chainId: Chain): string | undefined;
15
17
  declare function chainIcon(chain: Chain | string): string | undefined;
16
18
  declare function chainSlug(chainId: Chain): string | undefined;
17
19
  declare function chainDisplayName(chainId: Chain): string;
18
20
  declare function chainIdBySlug(slug: string): Chain | undefined;
19
- declare function isValidWalletAddress(chain: Chain | string, address: string): boolean;
21
+ declare function isValidWalletAddress(chain: Chain | string, addr: string): boolean;
22
+ declare function isValidEvmAddress(value: string): boolean;
20
23
  declare function isValidSolanaAddress(value: string): boolean;
21
24
 
22
25
  declare const millisecondsToHMS: (milliseconds: number) => [number, number, number];
@@ -148,20 +151,30 @@ declare function formatSymbol(symbol: string, formatString?: string): string;
148
151
  declare const parseTokenProtocolFamily: (chain: Chain, protocolFamily: string) => TokenProtocol | undefined;
149
152
  declare const formatTokenProtocolName: (protocol: TokenProtocol) => string;
150
153
 
151
- declare const SOL_TOKEN_ADDRESS = "11111111111111111111111111111111";
152
- declare const SOL_TOKEN_SYMBOL = "SOL";
153
- declare const SOL_TOKEN_DECIMALS = 9;
154
- declare const SOL_USDC_TOKEN_ADDRESS = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
155
- declare const SOL_USDC_TOKEN_SYMBOL = "USDC";
156
- declare const SOL_USDT_TOKEN_ADDRESS = "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB";
157
- declare const SOL_USDT_TOKEN_SYMBOL = "USDT";
158
- declare const SOL_WRAPPED_TOKEN_ADDRESS = "So11111111111111111111111111111111111111112";
159
- declare const SOL_WRAPPED_TOKEN_SYMBOL = "SOL";
160
- declare const SOL_USD1_TOKEN_ADDRESS = "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB";
161
- declare const SOL_USD1_TOKEN_SYMBOL = "USD1";
162
- declare const COMMON_TOKEN_ADDRESSES: string[];
163
- declare const COMMON_TOKEN_SYMBOLS: string[];
164
- declare const COMMON_TOKEN_SYMBOLS_MAP: Record<string, string>;
154
+ interface PredefinedToken {
155
+ address: string;
156
+ symbol: string;
157
+ decimals: number;
158
+ }
159
+ interface ChainPredefinedTokens {
160
+ native: PredefinedToken;
161
+ wrapped: PredefinedToken;
162
+ stablecoins: Record<string, PredefinedToken>;
163
+ }
164
+ declare const SOLANA_TOKENS: ChainPredefinedTokens;
165
+ declare const ETHEREUM_TOKENS: ChainPredefinedTokens;
166
+ declare const BSC_TOKENS: ChainPredefinedTokens;
167
+ declare const ARBITRUM_TOKENS: ChainPredefinedTokens;
168
+ declare const OPTIMISM_TOKENS: ChainPredefinedTokens;
169
+ declare const AVALANCHE_TOKENS: ChainPredefinedTokens;
170
+ declare const CHAIN_TOKENS: Partial<Record<Chain, ChainPredefinedTokens>>;
171
+ declare function getNativeToken(chain: Chain): PredefinedToken | undefined;
172
+ declare function getWrappedToken(chain: Chain): PredefinedToken | undefined;
173
+ declare function getStablecoins(chain: Chain): Record<string, PredefinedToken> | undefined;
174
+ /** Returns all predefined token addresses for the given chain (native + wrapped + stablecoins). */
175
+ declare function getCommonTokenAddresses(chain: Chain): string[];
176
+ /** Returns an address -> symbol map for all predefined tokens on the given chain. */
177
+ declare function getCommonTokenSymbolsMap(chain: Chain): Record<string, string>;
165
178
 
166
179
  declare function txExplorerUrl(chainId: Chain, txHash: string): string | undefined;
167
180
  declare const accountExplorerUrl: (chainId: Chain, account: string) => string | undefined;
@@ -175,4 +188,4 @@ declare const windowGuard: (cb: Function) => void;
175
188
  declare const getGlobalObject: () => typeof globalThis;
176
189
  declare const getTimestamp: () => number;
177
190
 
178
- export { COMMON_TOKEN_ADDRESSES, COMMON_TOKEN_SYMBOLS, COMMON_TOKEN_SYMBOLS_MAP, type FormatAmountOptions, type FormatMultiplierOptions, type FormatPercentOptions, type FormatPriceOptions, type FormatReadableTimeOptions, SOL_TOKEN_ADDRESS, SOL_TOKEN_DECIMALS, SOL_TOKEN_SYMBOL, SOL_USD1_TOKEN_ADDRESS, SOL_USD1_TOKEN_SYMBOL, SOL_USDC_TOKEN_ADDRESS, SOL_USDC_TOKEN_SYMBOL, SOL_USDT_TOKEN_ADDRESS, SOL_USDT_TOKEN_SYMBOL, SOL_WRAPPED_TOKEN_ADDRESS, SOL_WRAPPED_TOKEN_SYMBOL, SafeBigNumber, accountExplorerUrl, camelCaseToSnakeCase, canConvertToNumber, capitalizeString, chainColor, chainDisplayName, chainIcon, chainIdBySlug, chainSlug, del, displayCount3, displayCount4, findLongestCommonSubString, formatAge, formatAgeInSeconds, formatAmount, formatAmount2, formatAmount3, formatAmountUSD, formatAmountUSD2, formatAmountUSD3, formatAmountUSD4, formatAmountUSD5, formatCount, formatCount2, formatCount3, formatMultiplier, formatPercent, formatPrice, formatPriceUSD, formatReadableTime, formatSymbol, formatTimeAgo, formatTokenProtocolName, get, getGlobalObject, getTimestamp, isHex, isHexString, isValidNumber, isValidSolanaAddress, isValidTimeframe, isValidWalletAddress, millisecondsToHMS, mutate, parseTokenProtocolFamily, post, put, request, searchImageUrl, searchTwitterUrl, secondsSince, shortAddress, subtractDaysFromCurrentDate, timestampToString, twitterMediaUrl, twitterTweetUrl, twitterUserUrl, txExplorerUrl, _default as version, windowGuard };
191
+ export { ARBITRUM_TOKENS, AVALANCHE_TOKENS, BSC_TOKENS, CHAIN_TOKENS, type ChainPredefinedTokens, ETHEREUM_TOKENS, type FormatAmountOptions, type FormatMultiplierOptions, type FormatPercentOptions, type FormatPriceOptions, type FormatReadableTimeOptions, OPTIMISM_TOKENS, type PredefinedToken, SOLANA_TOKENS, SafeBigNumber, accountExplorerUrl, camelCaseToSnakeCase, canConvertToNumber, capitalizeString, chainColor, chainDisplayName, chainIcon, chainIdBySlug, chainSlug, chainToNamespace, del, displayCount3, displayCount4, findLongestCommonSubString, formatAge, formatAgeInSeconds, formatAmount, formatAmount2, formatAmount3, formatAmountUSD, formatAmountUSD2, formatAmountUSD3, formatAmountUSD4, formatAmountUSD5, formatCount, formatCount2, formatCount3, formatMultiplier, formatPercent, formatPrice, formatPriceUSD, formatReadableTime, formatSymbol, formatTimeAgo, formatTokenProtocolName, get, getCommonTokenAddresses, getCommonTokenSymbolsMap, getGlobalObject, getNativeToken, getStablecoins, getTimestamp, getWrappedToken, isHex, isHexString, isValidEvmAddress, isValidNumber, isValidSolanaAddress, isValidTimeframe, isValidWalletAddress, millisecondsToHMS, mutate, parseTokenProtocolFamily, post, put, request, searchImageUrl, searchTwitterUrl, secondsSince, shortAddress, subtractDaysFromCurrentDate, timestampToString, twitterMediaUrl, twitterTweetUrl, twitterUserUrl, txExplorerUrl, _default as version, windowGuard };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Chain, TokenProtocol } from '@liberfi.io/types';
1
+ import { Chain, ChainNamespace, TokenProtocol } from '@liberfi.io/types';
2
2
  import BigNumber from 'bignumber.js';
3
3
  export { debounce, groupBy, intersectionBy, keyBy, mapKeys, mapValues, throttle, uniqBy } from 'lodash-es';
4
4
 
@@ -9,14 +9,17 @@ declare global {
9
9
  };
10
10
  }
11
11
  }
12
- declare const _default: "0.1.18";
12
+ declare const _default: "0.1.20";
13
13
 
14
+ /** Returns the chain namespace (EVM or SOLANA) for a given chain */
15
+ declare function chainToNamespace(chain: Chain): ChainNamespace;
14
16
  declare function chainColor(chainId: Chain): string | undefined;
15
17
  declare function chainIcon(chain: Chain | string): string | undefined;
16
18
  declare function chainSlug(chainId: Chain): string | undefined;
17
19
  declare function chainDisplayName(chainId: Chain): string;
18
20
  declare function chainIdBySlug(slug: string): Chain | undefined;
19
- declare function isValidWalletAddress(chain: Chain | string, address: string): boolean;
21
+ declare function isValidWalletAddress(chain: Chain | string, addr: string): boolean;
22
+ declare function isValidEvmAddress(value: string): boolean;
20
23
  declare function isValidSolanaAddress(value: string): boolean;
21
24
 
22
25
  declare const millisecondsToHMS: (milliseconds: number) => [number, number, number];
@@ -148,20 +151,30 @@ declare function formatSymbol(symbol: string, formatString?: string): string;
148
151
  declare const parseTokenProtocolFamily: (chain: Chain, protocolFamily: string) => TokenProtocol | undefined;
149
152
  declare const formatTokenProtocolName: (protocol: TokenProtocol) => string;
150
153
 
151
- declare const SOL_TOKEN_ADDRESS = "11111111111111111111111111111111";
152
- declare const SOL_TOKEN_SYMBOL = "SOL";
153
- declare const SOL_TOKEN_DECIMALS = 9;
154
- declare const SOL_USDC_TOKEN_ADDRESS = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
155
- declare const SOL_USDC_TOKEN_SYMBOL = "USDC";
156
- declare const SOL_USDT_TOKEN_ADDRESS = "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB";
157
- declare const SOL_USDT_TOKEN_SYMBOL = "USDT";
158
- declare const SOL_WRAPPED_TOKEN_ADDRESS = "So11111111111111111111111111111111111111112";
159
- declare const SOL_WRAPPED_TOKEN_SYMBOL = "SOL";
160
- declare const SOL_USD1_TOKEN_ADDRESS = "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB";
161
- declare const SOL_USD1_TOKEN_SYMBOL = "USD1";
162
- declare const COMMON_TOKEN_ADDRESSES: string[];
163
- declare const COMMON_TOKEN_SYMBOLS: string[];
164
- declare const COMMON_TOKEN_SYMBOLS_MAP: Record<string, string>;
154
+ interface PredefinedToken {
155
+ address: string;
156
+ symbol: string;
157
+ decimals: number;
158
+ }
159
+ interface ChainPredefinedTokens {
160
+ native: PredefinedToken;
161
+ wrapped: PredefinedToken;
162
+ stablecoins: Record<string, PredefinedToken>;
163
+ }
164
+ declare const SOLANA_TOKENS: ChainPredefinedTokens;
165
+ declare const ETHEREUM_TOKENS: ChainPredefinedTokens;
166
+ declare const BSC_TOKENS: ChainPredefinedTokens;
167
+ declare const ARBITRUM_TOKENS: ChainPredefinedTokens;
168
+ declare const OPTIMISM_TOKENS: ChainPredefinedTokens;
169
+ declare const AVALANCHE_TOKENS: ChainPredefinedTokens;
170
+ declare const CHAIN_TOKENS: Partial<Record<Chain, ChainPredefinedTokens>>;
171
+ declare function getNativeToken(chain: Chain): PredefinedToken | undefined;
172
+ declare function getWrappedToken(chain: Chain): PredefinedToken | undefined;
173
+ declare function getStablecoins(chain: Chain): Record<string, PredefinedToken> | undefined;
174
+ /** Returns all predefined token addresses for the given chain (native + wrapped + stablecoins). */
175
+ declare function getCommonTokenAddresses(chain: Chain): string[];
176
+ /** Returns an address -> symbol map for all predefined tokens on the given chain. */
177
+ declare function getCommonTokenSymbolsMap(chain: Chain): Record<string, string>;
165
178
 
166
179
  declare function txExplorerUrl(chainId: Chain, txHash: string): string | undefined;
167
180
  declare const accountExplorerUrl: (chainId: Chain, account: string) => string | undefined;
@@ -175,4 +188,4 @@ declare const windowGuard: (cb: Function) => void;
175
188
  declare const getGlobalObject: () => typeof globalThis;
176
189
  declare const getTimestamp: () => number;
177
190
 
178
- export { COMMON_TOKEN_ADDRESSES, COMMON_TOKEN_SYMBOLS, COMMON_TOKEN_SYMBOLS_MAP, type FormatAmountOptions, type FormatMultiplierOptions, type FormatPercentOptions, type FormatPriceOptions, type FormatReadableTimeOptions, SOL_TOKEN_ADDRESS, SOL_TOKEN_DECIMALS, SOL_TOKEN_SYMBOL, SOL_USD1_TOKEN_ADDRESS, SOL_USD1_TOKEN_SYMBOL, SOL_USDC_TOKEN_ADDRESS, SOL_USDC_TOKEN_SYMBOL, SOL_USDT_TOKEN_ADDRESS, SOL_USDT_TOKEN_SYMBOL, SOL_WRAPPED_TOKEN_ADDRESS, SOL_WRAPPED_TOKEN_SYMBOL, SafeBigNumber, accountExplorerUrl, camelCaseToSnakeCase, canConvertToNumber, capitalizeString, chainColor, chainDisplayName, chainIcon, chainIdBySlug, chainSlug, del, displayCount3, displayCount4, findLongestCommonSubString, formatAge, formatAgeInSeconds, formatAmount, formatAmount2, formatAmount3, formatAmountUSD, formatAmountUSD2, formatAmountUSD3, formatAmountUSD4, formatAmountUSD5, formatCount, formatCount2, formatCount3, formatMultiplier, formatPercent, formatPrice, formatPriceUSD, formatReadableTime, formatSymbol, formatTimeAgo, formatTokenProtocolName, get, getGlobalObject, getTimestamp, isHex, isHexString, isValidNumber, isValidSolanaAddress, isValidTimeframe, isValidWalletAddress, millisecondsToHMS, mutate, parseTokenProtocolFamily, post, put, request, searchImageUrl, searchTwitterUrl, secondsSince, shortAddress, subtractDaysFromCurrentDate, timestampToString, twitterMediaUrl, twitterTweetUrl, twitterUserUrl, txExplorerUrl, _default as version, windowGuard };
191
+ export { ARBITRUM_TOKENS, AVALANCHE_TOKENS, BSC_TOKENS, CHAIN_TOKENS, type ChainPredefinedTokens, ETHEREUM_TOKENS, type FormatAmountOptions, type FormatMultiplierOptions, type FormatPercentOptions, type FormatPriceOptions, type FormatReadableTimeOptions, OPTIMISM_TOKENS, type PredefinedToken, SOLANA_TOKENS, SafeBigNumber, accountExplorerUrl, camelCaseToSnakeCase, canConvertToNumber, capitalizeString, chainColor, chainDisplayName, chainIcon, chainIdBySlug, chainSlug, chainToNamespace, del, displayCount3, displayCount4, findLongestCommonSubString, formatAge, formatAgeInSeconds, formatAmount, formatAmount2, formatAmount3, formatAmountUSD, formatAmountUSD2, formatAmountUSD3, formatAmountUSD4, formatAmountUSD5, formatCount, formatCount2, formatCount3, formatMultiplier, formatPercent, formatPrice, formatPriceUSD, formatReadableTime, formatSymbol, formatTimeAgo, formatTokenProtocolName, get, getCommonTokenAddresses, getCommonTokenSymbolsMap, getGlobalObject, getNativeToken, getStablecoins, getTimestamp, getWrappedToken, isHex, isHexString, isValidEvmAddress, isValidNumber, isValidSolanaAddress, isValidTimeframe, isValidWalletAddress, millisecondsToHMS, mutate, parseTokenProtocolFamily, post, put, request, searchImageUrl, searchTwitterUrl, secondsSince, shortAddress, subtractDaysFromCurrentDate, timestampToString, twitterMediaUrl, twitterTweetUrl, twitterUserUrl, txExplorerUrl, _default as version, windowGuard };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var st=Object.create;var x=Object.defineProperty,it=Object.defineProperties,at=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertyNames,W=Object.getOwnPropertySymbols,lt=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var k=(t,e,n)=>e in t?x(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,p=(t,e)=>{for(var n in e||(e={}))Y.call(e,n)&&k(t,n,e[n]);if(W)for(var n of W(e))mt.call(e,n)&&k(t,n,e[n]);return t},S=(t,e)=>it(t,ct(e));var ft=(t,e)=>{for(var n in e)x(t,n,{get:e[n],enumerable:!0})},v=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ut(e))!Y.call(t,o)&&o!==n&&x(t,o,{get:()=>e[o],enumerable:!(s=at(e,o))||s.enumerable});return t};var gt=(t,e,n)=>(n=t!=null?st(lt(t)):{},v(e||!t||!t.__esModule?x(n,"default",{value:t,enumerable:!0}):n,t)),Nt=t=>v(x({},"__esModule",{value:!0}),t);var b=(t,e,n)=>new Promise((s,o)=>{var i=m=>{try{g(n.next(m))}catch(d){o(d)}},a=m=>{try{g(n.throw(m))}catch(d){o(d)}},g=m=>m.done?s(m.value):Promise.resolve(m.value).then(i,a);g((n=n.apply(t,e)).next())});var Re={};ft(Re,{COMMON_TOKEN_ADDRESSES:()=>ue,COMMON_TOKEN_SYMBOLS:()=>le,COMMON_TOKEN_SYMBOLS_MAP:()=>me,SOL_TOKEN_ADDRESS:()=>P,SOL_TOKEN_DECIMALS:()=>He,SOL_TOKEN_SYMBOL:()=>Ue,SOL_USD1_TOKEN_ADDRESS:()=>V,SOL_USD1_TOKEN_SYMBOL:()=>K,SOL_USDC_TOKEN_ADDRESS:()=>M,SOL_USDC_TOKEN_SYMBOL:()=>B,SOL_USDT_TOKEN_ADDRESS:()=>U,SOL_USDT_TOKEN_SYMBOL:()=>H,SOL_WRAPPED_TOKEN_ADDRESS:()=>F,SOL_WRAPPED_TOKEN_SYMBOL:()=>Fe,SafeBigNumber:()=>l,accountExplorerUrl:()=>Oe,camelCaseToSnakeCase:()=>re,canConvertToNumber:()=>Pt,capitalizeString:()=>ee,chainColor:()=>At,chainDisplayName:()=>pt,chainIcon:()=>dt,chainIdBySlug:()=>_,chainSlug:()=>ht,debounce:()=>O.debounce,del:()=>wt,displayCount3:()=>Qt,displayCount4:()=>Xt,findLongestCommonSubString:()=>ne,formatAge:()=>It,formatAgeInSeconds:()=>Q,formatAmount:()=>Bt,formatAmount2:()=>Ut,formatAmount3:()=>Ht,formatAmountUSD:()=>Ft,formatAmountUSD2:()=>Vt,formatAmountUSD3:()=>Kt,formatAmountUSD4:()=>Wt,formatAmountUSD5:()=>kt,formatCount:()=>zt,formatCount2:()=>jt,formatCount3:()=>qt,formatMultiplier:()=>Zt,formatPercent:()=>Gt,formatPrice:()=>Yt,formatPriceUSD:()=>vt,formatReadableTime:()=>Dt,formatSymbol:()=>ie,formatTimeAgo:()=>xt,formatTokenProtocolName:()=>ce,get:()=>_t,getGlobalObject:()=>ot,getTimestamp:()=>Ee,groupBy:()=>O.groupBy,intersectionBy:()=>O.intersectionBy,isHex:()=>nt,isHexString:()=>oe,isValidNumber:()=>f,isValidSolanaAddress:()=>z,isValidTimeframe:()=>Mt,isValidWalletAddress:()=>St,keyBy:()=>O.keyBy,mapKeys:()=>O.mapKeys,mapValues:()=>O.mapValues,millisecondsToHMS:()=>bt,mutate:()=>Lt,parseTokenProtocolFamily:()=>ae,post:()=>$t,put:()=>Ct,request:()=>E,searchImageUrl:()=>Ae,searchTwitterUrl:()=>de,secondsSince:()=>X,shortAddress:()=>se,subtractDaysFromCurrentDate:()=>Rt,throttle:()=>O.throttle,timestampToString:()=>Et,twitterMediaUrl:()=>Se,twitterTweetUrl:()=>pe,twitterUserUrl:()=>he,txExplorerUrl:()=>ge,uniqBy:()=>O.uniqBy,version:()=>G,windowGuard:()=>be});module.exports=Nt(Re);typeof window!="undefined"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/utils"]="0.1.18");var G="0.1.18";var Z=require("@solana/kit"),r=require("@liberfi.io/types"),D={[r.Chain.ETHEREUM]:"ethereum",[r.Chain.UBIQ]:"ubiq",[r.Chain.OPTIMISM]:"optimism",[r.Chain.FLARE]:"flare",[r.Chain.SONGBIRD]:"songbird",[r.Chain.ELASTOS]:"elastos",[r.Chain.KARDIA]:"kardia",[r.Chain.CRONOS]:"cronos",[r.Chain.RSK]:"rsk",[r.Chain.TELOS]:"telos",[r.Chain.LUKSO]:"lukso",[r.Chain.CRAB]:"crab",[r.Chain.DARWINIA]:"darwinia",[r.Chain.XDC]:"xdc",[r.Chain.CSC]:"csc",[r.Chain.ZYX]:"zyx",[r.Chain.BINANCE]:"binance",[r.Chain.SYSCOIN]:"syscoin",[r.Chain.GOCHAIN]:"gochain",[r.Chain.ETHEREUMCLASSIC]:"ethereumclassic",[r.Chain.OKEXCHAIN]:"okexchain",[r.Chain.HOO]:"hoo",[r.Chain.METER]:"meter",[r.Chain.NOVA_NETWORK]:"nova network",[r.Chain.TOMOCHAIN]:"tomochain",[r.Chain.BITKUB]:"bitkub",[r.Chain.XDAI]:"xdai",[r.Chain.SOLANA]:"solana",[r.Chain.VELAS]:"velas",[r.Chain.THUNDERCORE]:"thundercore",[r.Chain.ENULS]:"enuls",[r.Chain.FUSE]:"fuse",[r.Chain.HECO]:"heco",[r.Chain.UNICHAIN]:"unichain",[r.Chain.POLYGON]:"polygon",[r.Chain.SONIC]:"sonic",[r.Chain.SHIMMER_EVM]:"shimmer_evm",[r.Chain.RBN]:"rbn",[r.Chain.OMNI]:"omni",[r.Chain.MANTA]:"manta",[r.Chain.HSK]:"hsk",[r.Chain.WATER]:"water",[r.Chain.XLAYER]:"xlayer",[r.Chain.XDAIARB]:"xdaiarb",[r.Chain.OP_BNB]:"op_bnb",[r.Chain.VINUCHAIN]:"vinuchain",[r.Chain.ENERGYWEB]:"energyweb",[r.Chain.OASYS]:"oasys",[r.Chain.FANTOM]:"fantom",[r.Chain.FRAXTAL]:"fraxtal",[r.Chain.HPB]:"hpb",[r.Chain.BOBA]:"boba",[r.Chain.OMAX]:"omax",[r.Chain.FILECOIN]:"filecoin",[r.Chain.KUCOIN]:"kucoin",[r.Chain.ZKSYNC_ERA]:"zksync era",[r.Chain.SHIDEN]:"shiden",[r.Chain.THETA]:"theta",[r.Chain.PULSE]:"pulse",[r.Chain.CRONOS_ZKEVM]:"cronos zkevm",[r.Chain.SX]:"sx",[r.Chain.AREON]:"areon",[r.Chain.WC]:"wc",[r.Chain.CANDLE]:"candle",[r.Chain.ROLLUX]:"rollux",[r.Chain.ASTAR]:"astar",[r.Chain.REDSTONE]:"redstone",[r.Chain.MATCHAIN]:"matchain",[r.Chain.CALLISTO]:"callisto",[r.Chain.TARA]:"tara",[r.Chain.WANCHAIN]:"wanchain",[r.Chain.LYRA_CHAIN]:"lyra chain",[r.Chain.BIFROST]:"bifrost",[r.Chain.CONFLUX]:"conflux",[r.Chain.METIS]:"metis",[r.Chain.DYMENSION]:"dymension",[r.Chain.POLYGON_ZKEVM]:"polygon zkevm",[r.Chain.CORE]:"core",[r.Chain.LISK]:"lisk",[r.Chain.ULTRON]:"ultron",[r.Chain.STEP]:"step",[r.Chain.MOONBEAM]:"moonbeam",[r.Chain.MOONRIVER]:"moonriver",[r.Chain.SEI]:"sei",[r.Chain.LIVING_ASSETS_MAINNET]:"living assets mainnet",[r.Chain.STY]:"sty",[r.Chain.TENET]:"tenet",[r.Chain.GRAVITY]:"gravity",[r.Chain.REYA_NETWORK]:"reya network",[r.Chain.SONEIUM]:"soneium",[r.Chain.SWELLCHAIN]:"swellchain",[r.Chain.ONUS]:"onus",[r.Chain.HUBBLENET]:"hubblenet",[r.Chain.SANKO]:"sanko",[r.Chain.DOGECHAIN]:"dogechain",[r.Chain.MILKOMEDA]:"milkomeda",[r.Chain.MILKOMEDA_A1]:"milkomeda_a1",[r.Chain.KAVA]:"kava",[r.Chain.SOMA]:"soma",[r.Chain.KARAK]:"karak",[r.Chain.ABSTRACT]:"abstract",[r.Chain.MORPH]:"morph",[r.Chain.CROSSFI]:"crossfi",[r.Chain.BEAM]:"beam",[r.Chain.IOTEX]:"iotex",[r.Chain.MANTLE]:"mantle",[r.Chain.XLC]:"xlc",[r.Chain.NAHMII]:"nahmii",[r.Chain.BOUNCEBIT]:"bouncebit",[r.Chain.TOMBCHAIN]:"tombchain",[r.Chain.ZETACHAIN]:"zetachain",[r.Chain.PLANQ]:"planq",[r.Chain.BITROCK]:"bitrock",[r.Chain.XSAT]:"xsat",[r.Chain.CYETH]:"cyeth",[r.Chain.CANTO]:"canto",[r.Chain.KLAYTN]:"klaytn",[r.Chain.THAT]:"that",[r.Chain.BASE]:"base",[r.Chain.HELA]:"hela",[r.Chain.IOTAEVM]:"iotaevm",[r.Chain.JBC]:"jbc",[r.Chain.EVMOS]:"evmos",[r.Chain.CARBON]:"carbon",[r.Chain.SMARTBCH]:"smartbch",[r.Chain.ARTELA]:"artela",[r.Chain.IMMUTABLE_ZKEVM]:"immutable zkevm",[r.Chain.LOOP]:"loop",[r.Chain.GENESYS]:"genesys",[r.Chain.EOS_EVM]:"eos evm",[r.Chain.MAP_PROTOCOL]:"map protocol",[r.Chain.SAPPHIRE]:"sapphire",[r.Chain.BITGERT]:"bitgert",[r.Chain.FUSION]:"fusion",[r.Chain.ZILLIQA]:"zilliqa",[r.Chain.APECHAIN]:"apechain",[r.Chain.EDU_CHAIN]:"edu chain",[r.Chain.ARBITRUM]:"arbitrum",[r.Chain.ARBITRUM_NOVA]:"arbitrum nova",[r.Chain.CELO]:"celo",[r.Chain.OASIS]:"oasis",[r.Chain.ASSETCHAIN]:"assetchain",[r.Chain.ETHERLINK]:"etherlink",[r.Chain.AVALANCHE]:"avalanche",[r.Chain.REI]:"rei",[r.Chain.ZIRCUIT]:"zircuit",[r.Chain.SOPHON]:"sophon",[r.Chain.ETN]:"etn",[r.Chain.SUPERPOSITION]:"superposition",[r.Chain.REICHAIN]:"reichain",[r.Chain.BOBA_BNB]:"boba_bnb",[r.Chain.INK]:"ink",[r.Chain.LINEA]:"linea",[r.Chain.BOB]:"bob",[r.Chain.GODWOKEN]:"godwoken",[r.Chain.BERACHAIN]:"berachain",[r.Chain.BLAST]:"blast",[r.Chain.CHILIZ]:"chiliz",[r.Chain.STRATIS]:"stratis",[r.Chain.REAL]:"real",[r.Chain.ODYSSEY]:"odyssey",[r.Chain.TAIKO]:"taiko",[r.Chain.BITLAYER]:"bitlayer",[r.Chain.HYDRATION]:"hydration",[r.Chain.PAREX]:"parex",[r.Chain.POLIS]:"polis",[r.Chain.KEKCHAIN]:"kekchain",[r.Chain.SCROLL]:"scroll",[r.Chain.ZERO_NETWORK]:"zero_network",[r.Chain.ZKLINK_NOVA]:"zklink nova",[r.Chain.VISION]:"vision",[r.Chain.SAAKURU]:"saakuru",[r.Chain.ZORA]:"zora",[r.Chain.CORN]:"corn",[r.Chain.NEON]:"neon",[r.Chain.LUMIA]:"lumia",[r.Chain.AURORA]:"aurora",[r.Chain.HARMONY]:"harmony",[r.Chain.PALM]:"palm",[r.Chain.ZENIQ]:"zeniq",[r.Chain.CURIO]:"curio",[r.Chain.MODE]:"mode"},y={[r.Chain.SOLANA]:"sol",[r.Chain.ETHEREUM]:"eth",[r.Chain.BINANCE]:"bsc",[r.Chain.ARBITRUM]:"arb",[r.Chain.OPTIMISM]:"opt",[r.Chain.AVALANCHE]:"avax"},Ot={[r.Chain.SOLANA]:"#9945FF",[r.Chain.ETHEREUM]:"#627EEA",[r.Chain.BINANCE]:"#F0B90B",[r.Chain.ARBITRUM]:"#28A0F0",[r.Chain.OPTIMISM]:"#FF0420",[r.Chain.AVALANCHE]:"#E84142",[r.Chain.POLYGON]:"#8247E5",[r.Chain.BASE]:"#0052FF",[r.Chain.SONIC]:"#5B6EF5",[r.Chain.LINEA]:"#61DFFF",[r.Chain.SCROLL]:"#FFEEDA",[r.Chain.BLAST]:"#FCFC03",[r.Chain.CRONOS]:"#002D74",[r.Chain.BERACHAIN]:"#964B00"};function At(t){return Ot[t]}function dt(t){var s;let e=(s=_(t))!=null?s:t,n=D[e];return n?`https://icons.llamao.fi/icons/chains/rsz_${encodeURIComponent(n)}.jpg`:void 0}function ht(t){return D[t]}function pt(t){let e=y[t];if(e)return e.toUpperCase();let n=D[t];return n?n.charAt(0).toUpperCase()+n.slice(1):t}function _(t){let e=Object.keys(y).find(s=>{var o;return((o=y[s])==null?void 0:o.toLowerCase())===t.toLowerCase()});if(e)return e;let n=Object.keys(D).find(s=>{var o;return((o=D[s])==null?void 0:o.toLowerCase())===t.toLowerCase()});return n||void 0}function St(t,e){var s;switch((s=_(t))!=null?s:t){case r.Chain.SOLANA:return z(e);default:throw new Error(`Unsupported chain: ${t}`)}}function z(t){try{return(0,Z.address)(t),!0}catch(e){return!1}}var $=Date.now(),C=60,w=60*C,L=24*w,j=365*L,bt=t=>{let e=Math.floor(t/1e3),n=Math.floor(e/3600),s=Math.floor(e%3600/60),o=e%60;return[n,s,o]},Et=t=>{let e=t instanceof Date?t:new Date(t),n=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),g=String(e.getSeconds()).padStart(2,"0");return`${n}-${s}-${o} ${i}:${a}:${g}`};function Rt(t,e){let n=e||new Date,s=new Date(n);return s.setDate(n.getDate()-t),s}function q(t){return!t||Number.isNaN(t)||t<=0?$:t<1e10?t*1e3:t}function Tt(t){if(!t)return $;if(typeof t=="number")return q(t);if(typeof t=="string"){let e=Date.parse(t);return q(e)}return t instanceof Date?t.getTime():$}function xt(t){let e=Math.floor((Date.now()-Tt(t))/1e3);return e>=j?`${Math.floor(e/j)}Y`:e>=L?`${Math.floor(e/L)}D`:e>=w?`${Math.floor(e/w)}h`:e>=C?`${Math.floor(e/C)}m`:`${e}s`}function X(t,e){let n=e?e instanceof Date?e.getTime():e:Date.now(),s=t instanceof Date?t.getTime():t,o=n-s;return Math.floor(o/1e3)}var h={justNow:"just now",secondsAgo:"{n}s",minutesAgo:"{n}m",hoursAgo:"{n}h",daysAgo:"{n}d",yearsAgo:"{n}y"};function Dt(t,e={}){let n=X(t),s={justNow:e.justNow||h.justNow,secondsAgo:e.secondsAgo||h.secondsAgo,minutesAgo:e.minutesAgo||h.minutesAgo,hoursAgo:e.hoursAgo||h.hoursAgo,daysAgo:e.daysAgo||h.daysAgo,yearsAgo:e.yearsAgo||h.yearsAgo},o=60,i=60*o,a=24*i,g=365*a;if(n<10)return s.justNow;if(n<o)return s.secondsAgo.replace("{n}",n.toString());if(n<i){let d=Math.floor(n/o);return s.minutesAgo.replace("{n}",d.toString())}if(n<a){let d=Math.floor(n/i);return s.hoursAgo.replace("{n}",d.toString())}if(n<g){let d=Math.floor(n/a);return s.daysAgo.replace("{n}",d.toString())}let m=Math.floor(n/g);return s.yearsAgo.replace("{n}",m.toString())}function It(t,e={}){let n=Math.floor(t/1e3);return Q(n,e)}function Q(t,e={}){let n={justNow:e.justNow||h.justNow,secondsAgo:e.secondsAgo||h.secondsAgo,minutesAgo:e.minutesAgo||h.minutesAgo,hoursAgo:e.hoursAgo||h.hoursAgo,daysAgo:e.daysAgo||h.daysAgo,yearsAgo:e.yearsAgo||h.yearsAgo},s=60,o=60*s,i=24*o,a=365*i;if(t<10)return n.justNow;if(t<s)return n.secondsAgo.replace("{n}",t.toString());if(t<o){let m=Math.floor(t/s);return n.minutesAgo.replace("{n}",m.toString())}if(t<i){let m=Math.floor(t/o);return n.hoursAgo.replace("{n}",m.toString())}if(t<a){let m=Math.floor(t/i);return n.daysAgo.replace("{n}",m.toString())}let g=Math.floor(t/a);return n.yearsAgo.replace("{n}",g.toString())}var J=require("@liberfi.io/types");function E(t,e){return b(this,null,function*(){if(!t.startsWith("http"))throw new Error("url must start with http(s)");let n=yield fetch(t,S(p({},e),{headers:yt(e.headers,e.method)}));if(n.ok)return yield n.json();try{let s=yield n.json();throw n.status===400?new J.ApiError(s.message||s.code||n.statusText,s.code):new Error(s.message||s.code||n.statusText)}catch(s){throw s}})}function yt(t={},e){let n=new Headers(t);return n.has("Content-Type")||(e!=="DELETE"?n.append("Content-Type","application/json;charset=utf-8"):n.append("Content-Type","application/x-www-form-urlencoded")),n}function _t(t,e){return b(this,null,function*(){return yield E(t,p({method:"GET"},e))})}function $t(t,e,n){return b(this,null,function*(){return yield E(t,p({method:"POST",body:JSON.stringify(e)},n))})}function Ct(t,e,n){return b(this,null,function*(){return yield E(t,p({method:"PUT",body:JSON.stringify(e)},n))})}function wt(t,e){return b(this,null,function*(){return yield E(t,p({method:"DELETE"},e))})}function Lt(t,e){return b(this,null,function*(){return yield E(t,e)})}var c=gt(require("bignumber.js"));var l=class extends c.default{constructor(e,n){try{super(e!=null?e:0,n)}catch(s){console.error("SafeBigNumber constructor error",s),super(0,n)}}},f=t=>{if(typeof t=="number"&&!isNaN(t)||t instanceof l||t instanceof c.default)return!0;if(typeof t!="string")return!1;let e=Number.parseFloat(t);return!isNaN(e)},Pt=t=>(typeof t=="number"||!!t)&&f(typeof t=="string"?Number(t):t),Mt=(t="")=>/^(\d+\.?\d*|\.\d+)([hm]?)$$/.test(t),Bt=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.lt(.001)?o.decimalPlaces(5,c.default.ROUND_DOWN).toString():o.lt(1)?o.decimalPlaces(3,c.default.ROUND_DOWN).toString():o.lt(100)?o.decimalPlaces(2,c.default.ROUND_DOWN).toString():o.lt(1e5)?u(o,2):A(o);return Number(i)===0?`${i}`:s?`-${i}`:e!=null&&e.showPlusGtThanZero?`+${i}`:`${i}`},Ut=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.lt(.001)?o.decimalPlaces(5,c.default.ROUND_DOWN).toString():o.lt(1)?o.decimalPlaces(3,c.default.ROUND_DOWN).toString():o.lt(100)?o.decimalPlaces(1,c.default.ROUND_DOWN).toString():o.lt(1e3)?u(o,1):A(o);return Number(i)===0?`${i}`:s?`-${i}`:e!=null&&e.showPlusGtThanZero?`+${i}`:`${i}`},Ht=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.lt(.001)?o.decimalPlaces(5,c.default.ROUND_DOWN).toString():o.lt(1)?o.decimalPlaces(3,c.default.ROUND_DOWN).toString():o.lt(100)?o.decimalPlaces(1,c.default.ROUND_DOWN).toString():o.lt(1e3)?u(o,1):A(o,0);return Number(i)===0?`${i}`:s?`-${i}`:e!=null&&e.showPlusGtThanZero?`+${i}`:`${i}`},Ft=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e4)?`$${u(o,2)}`:`$${A(o)}`;return i==="$0"?i:s?`-${i}`:e!=null&&e.showPlusGtThanZero?`+${i}`:i},Vt=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.div(100).integerValue(c.default.ROUND_DOWN).times(100),a=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${o.decimalPlaces(1,c.default.ROUND_DOWN)}`:o.lt(1e15)?`$${A(i)}`:`$${te(o,{acronymMin:1e5,groupingSeparator:!0})}`;return a==="$0"?a:s?`-${a}`:e!=null&&e.showPlusGtThanZero?`+${a}`:a},Kt=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.div(100).integerValue(c.default.ROUND_DOWN).times(100),a=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${o.decimalPlaces(0,c.default.ROUND_DOWN)}`:`$${A(i,0)}`;return a==="$0"?a:s?`-${a}`:e!=null&&e.showPlusGtThanZero?`+${a}`:a},Wt=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${u(o,2)}`:`$${A(o)}`;return i==="$0"?i:s?`-${i}`:e!=null&&e.showPlusGtThanZero?`+${i}`:i},kt=(t="",e={showPlusGtThanZero:!1})=>{if(!f(t))return"--";let n=new l(t),s=n.lt(0),o=n.abs(),i=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(100)?`$${o.decimalPlaces(0,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${u(o,0)}`:`$${A(o,0)}`;return i==="$0"?i:s?`-${i}`:e!=null&&e.showPlusGtThanZero?`+${i}`:i},Yt=(t="",e={isHighPrecise:!0})=>{if(!f(t))return"--";let n=new l(t);if(n.lt(0))return"--";let s=n.abs(),{isHighPrecise:o}=e;return`${s.lt(1e-4)?et(s,o?4:2):s.lt(1)?o?u(s,4):rt(s,2):s.lt(100)||s.lt(1e4)?u(s,o?4:2):s.lt(1e5)?u(s,2):A(s)}`},vt=(t="",e={isHighPrecise:!0})=>{if(!f(t))return"--";let n=new l(t);if(n.lt(0))return"--";let s=n.abs(),{isHighPrecise:o}=e;return`$${s.lt(1e-4)?et(s,o?4:2):s.lt(1)?o?u(s,4):rt(s,2):s.lt(100)||s.lt(1e4)?u(s,o?4:2):s.lt(1e5)?u(s,2):A(s)}`},Gt=(t="",e={})=>{var a,g;if(!f(t))return"-- %";let n=new l(t),s=n.lt(0),o=n.abs(),i=s?"-":e!=null&&e.showPlusGtThanZero?"+":"";return o.lt(1e-4)?"0%":o.lt(100)?`${i}${tt(o,(a=e==null?void 0:e.precision)!=null?a:2)}`:o.lt(1e3)?`${i}${tt(o,(g=e==null?void 0:e.precision)!=null?g:1)}`:`${i}> 99,999%`},tt=(t,e)=>`${t.times(100).decimalPlaces(e,c.default.ROUND_HALF_UP).toString()}%`,Zt=(t="",e={showPlusGtThanZero:!0})=>{if(!f(t))return"0%";let n=new l(t),s=n.lt(0),o=n.abs(),i=s?"-":e!=null&&e.showPlusGtThanZero?"+":"";return o.lt(.01)?"0%":o.lt(10)?`${i}${u(o,2)}X`:o.lt(100)?`${i}${u(o,1)}X`:o.lt(1e5)?`${i}${u(o,0)}X`:`${i}>99,999%`},zt=(t="")=>{if(!f(t))return"--";let e=new l(t);return e.lt(1e5)?u(e,0):A(e)},jt=(t="")=>{if(!f(t))return"--";let e=new l(t);return e.lt(1e3)?u(e,0):A(e.div(1e3).integerValue(c.default.ROUND_DOWN).times(1e3),0)},qt=(t="")=>{if(!f(t))return"--";let e=new l(t);return u(e,0)},Xt=(t="")=>f(t)?u(t,0):"--",Qt=(t="")=>{if(!f(t))return"--";let e=new l(t);return e.lt(1e3)?u(e,0):A(e.div(100).integerValue(c.default.ROUND_DOWN).times(100))},Jt=["\u2080","\u2081","\u2082","\u2083","\u2084","\u2085","\u2086","\u2087","\u2088","\u2089","\u2081\u2080","\u2081\u2081","\u2081\u2082","\u2081\u2083","\u2081\u2084","\u2081\u2085","\u2081\u2086","\u2081\u2087","\u2081\u2088","\u2081\u2089","\u2082\u2080","\u2082\u2081","\u2082\u2082","\u2082\u2083","\u2082\u2084","\u2082\u2085","\u2082\u2086","\u2082\u2087","\u2082\u2088","\u2082\u2089","\u2083\u2080","\u2083\u2081","\u2083\u2082","\u2083\u2083","\u2083\u2084","\u2083\u2085","\u2083\u2086","\u2083\u2087","\u2083\u2088","\u2083\u2089","\u2084\u2080"],u=(t,e=0,n=c.default.ROUND_DOWN)=>{let o=new l(t).decimalPlaces(e,n).toString().split(".");return o[0]=o[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),o.join(".")},A=(t,e=1)=>{let n=new l(t);return n.lt(1e3)?n.toNumber():n.lt(1e6)?`${u(n.div(1e3),e)}K`:n.lt(1e9)?`${u(n.div(1e6),e)}M`:n.lt(1e12)?`${u(n.dividedBy(1e9),e)}B`:`${u(n.dividedBy(1e12),e)}T`},et=(t,e=5)=>{let n=new l(t);if(n.eq(0))return"0";let[s,o]=n.toFixed().split("."),i=o.split(""),a=i.findIndex(m=>m!=="0"),g=Math.min(i.length-a,e);return`${u(s)}.0`.concat(Jt[a]).concat(i.slice(a,a+g).join("").replace(/\.?0+$/,""))},rt=(t,e)=>{let n=t.toString().match(/\.0*/),s=(n?n[0].length-1:0)+e;return u(t,s)},R=(t,e={})=>{let{precision:n=4,min:s,max:o,groupingSeparator:i,rounding:a,zeroDisplay:g}=e,m={up:c.default.ROUND_UP,down:c.default.ROUND_DOWN,ceil:c.default.ROUND_CEIL,floor:c.default.ROUND_FLOOR},d=new l(t);if(d.eq(0))return g||"0";let T=d.abs();return s&&T.lt(s)?`<${s}`:o&&T.gt(o)?`>${o}`:i?u(T,n,a?m[a]:void 0):(a?T.decimalPlaces(n,m[a]):T.decimalPlaces(n)).toString()},te=(t,e={})=>{let n=new l(t);if(n.eq(0))return e.zeroDisplay?e.zeroDisplay:"";let{acronymMin:s=1e4}=e,o=n.abs();return o.lt(s)?R(n,e):o.gte(1e15)?n.toExponential(2):o.gte(1e12)?`${R(n.div(1e12),S(p({},e),{precision:0}))}T`:o.gte(1e9)?`${R(n.div(1e9),S(p({},e),{precision:0}))}B`:o.gte(1e6)?`${R(n.div(1e6),S(p({},e),{precision:1}))}M`:o.gte(1e4)?`${R(n.div(1e3),S(p({},e),{precision:1}))}K`:R(n,e)};function ee(t){let e=t.toLowerCase();return e.charAt(0).toUpperCase()+e.slice(1)}function re(t){return t.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}var ne=(t,e)=>{for(let n=0;n<t.length;n++){let s=t.at(n),o=e.at(n);if(s!==o)return n}return-1};function nt(t){return/^[a-f0-9]+$/iu.test(t)}function oe(t){return typeof t=="string"&&t.startsWith("0x")&&nt(t)}function se(t,e=6,n=4){return t.slice(0,e)+"..."+t.slice(-n)}function ie(t,e="base-type"){if(!t)return"";let n=t.split("_"),s=n[0],o=n[1],i=n[2];return e.replace("type",s).replace("base",o).replace("quote",i)}var I=require("@liberfi.io/types"),ae=(t,e)=>{switch(t){case I.Chain.SOLANA:return I.SOLANA_TOKEN_PROTOCOLS.find(n=>new RegExp(n,"i").test(e));default:return}},ce=t=>t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ");var P="11111111111111111111111111111111",Ue="SOL",He=9,M="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",B="USDC",U="Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",H="USDT",F="So11111111111111111111111111111111111111112",Fe="SOL",V="USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",K="USD1",ue=[P,M,U,F,V],le=["SOL",B,H,"SOL",K],me={[P]:"SOL",[M]:B,[U]:H,[F]:"SOL",[V]:K};var N=require("@liberfi.io/types"),fe={[N.Chain.SOLANA]:"https://solscan.io/tx/${txHash}",[N.Chain.ETHEREUM]:"https://etherscan.io/tx/${txHash}",[N.Chain.POLYGON]:"https://polygonscan.com/tx/${txHash}",[N.Chain.BINANCE]:"https://bscscan.com/tx/${txHash}",[N.Chain.BINANCE_TESTNET]:"https://testnet.bscscan.com/tx/${txHash}",[N.Chain.AVALANCHE]:"https://snowtrace.io/tx/${txHash}",[N.Chain.BASE]:"https://basescan.org/tx/${txHash}",[N.Chain.BLAST]:"https://blastracker.xyz/tx/${txHash}",[N.Chain.ARBITRUM]:"https://arbiscan.io/tx/${txHash}",[N.Chain.ARBITRUM_NOVA]:"https://nova.arbiscan.io/tx/${txHash}",[N.Chain.ARBITRUM_TESTNET_GOERLI]:"https://goerli.arbiscan.io/tx/${txHash}",[N.Chain.ARBITRUM_TESTNET_SEPOLIA]:"https://sepolia.arbiscan.io/tx/${txHash}"};function ge(t,e){var n;return(n=fe[t])==null?void 0:n.replace("${txHash}",e)}var Ne={[N.Chain.SOLANA]:"https://solscan.io/account/${account}",[N.Chain.ETHEREUM]:"https://etherscan.io/address/${account}",[N.Chain.POLYGON]:"https://polygonscan.com/address/${account}",[N.Chain.BINANCE]:"https://bscscan.com/address/${account}"},Oe=(t,e)=>{var n;return(n=Ne[t])==null?void 0:n.replace("${account}",e)};function Ae(t){return`https://lens.google.com/uploadbyurl?url=${encodeURIComponent(t)}`}function de(t){return`https://x.com/search?q=${encodeURIComponent(t)}`}function he(t){return`https://x.com/${t}`}function pe(t){return`https://x.com/${t}`}function Se(t){return`https://x.com/${t}`}var be=t=>{typeof window!="undefined"&&t()},ot=()=>{if(typeof globalThis!="undefined")return globalThis;if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global;throw new Error("cannot find the global object")},Ee=()=>{var t;if(typeof window!="undefined"){let e=(t=ot())==null?void 0:t.__LIBERFI_timestamp_offset;if(typeof e=="number")return Date.now()+(e||0)}return Date.now()};var O=require("lodash-es");0&&(module.exports={COMMON_TOKEN_ADDRESSES,COMMON_TOKEN_SYMBOLS,COMMON_TOKEN_SYMBOLS_MAP,SOL_TOKEN_ADDRESS,SOL_TOKEN_DECIMALS,SOL_TOKEN_SYMBOL,SOL_USD1_TOKEN_ADDRESS,SOL_USD1_TOKEN_SYMBOL,SOL_USDC_TOKEN_ADDRESS,SOL_USDC_TOKEN_SYMBOL,SOL_USDT_TOKEN_ADDRESS,SOL_USDT_TOKEN_SYMBOL,SOL_WRAPPED_TOKEN_ADDRESS,SOL_WRAPPED_TOKEN_SYMBOL,SafeBigNumber,accountExplorerUrl,camelCaseToSnakeCase,canConvertToNumber,capitalizeString,chainColor,chainDisplayName,chainIcon,chainIdBySlug,chainSlug,debounce,del,displayCount3,displayCount4,findLongestCommonSubString,formatAge,formatAgeInSeconds,formatAmount,formatAmount2,formatAmount3,formatAmountUSD,formatAmountUSD2,formatAmountUSD3,formatAmountUSD4,formatAmountUSD5,formatCount,formatCount2,formatCount3,formatMultiplier,formatPercent,formatPrice,formatPriceUSD,formatReadableTime,formatSymbol,formatTimeAgo,formatTokenProtocolName,get,getGlobalObject,getTimestamp,groupBy,intersectionBy,isHex,isHexString,isValidNumber,isValidSolanaAddress,isValidTimeframe,isValidWalletAddress,keyBy,mapKeys,mapValues,millisecondsToHMS,mutate,parseTokenProtocolFamily,post,put,request,searchImageUrl,searchTwitterUrl,secondsSince,shortAddress,subtractDaysFromCurrentDate,throttle,timestampToString,twitterMediaUrl,twitterTweetUrl,twitterUserUrl,txExplorerUrl,uniqBy,version,windowGuard});
1
+ "use strict";var ce=Object.create;var D=Object.defineProperty,ue=Object.defineProperties,le=Object.getOwnPropertyDescriptor,de=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertyNames,_=Object.getOwnPropertySymbols,fe=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable;var H=(e,t,n)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,h=(e,t)=>{for(var n in t||(t={}))F.call(t,n)&&H(e,n,t[n]);if(_)for(var n of _(t))Ae.call(t,n)&&H(e,n,t[n]);return e},O=(e,t)=>ue(e,de(t));var ge=(e,t)=>{for(var n in t)D(e,n,{get:t[n],enumerable:!0})},V=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of me(t))!F.call(e,o)&&o!==n&&D(e,o,{get:()=>t[o],enumerable:!(s=le(t,o))||s.enumerable});return e};var be=(e,t,n)=>(n=e!=null?ce(fe(e)):{},V(t||!e||!e.__esModule?D(n,"default",{value:e,enumerable:!0}):n,e)),Ne=e=>V(D({},"__esModule",{value:!0}),e);var E=(e,t,n)=>new Promise((s,o)=>{var a=d=>{try{f(n.next(d))}catch(N){o(N)}},i=d=>{try{f(n.throw(d))}catch(N){o(N)}},f=d=>d.done?s(d.value):Promise.resolve(d.value).then(a,i);f((n=n.apply(e,t)).next())});var yt={};ge(yt,{ARBITRUM_TOKENS:()=>oe,AVALANCHE_TOKENS:()=>ae,BSC_TOKENS:()=>ne,CHAIN_TOKENS:()=>C,ETHEREUM_TOKENS:()=>re,OPTIMISM_TOKENS:()=>se,SOLANA_TOKENS:()=>te,SafeBigNumber:()=>l,accountExplorerUrl:()=>Ot,camelCaseToSnakeCase:()=>st,canConvertToNumber:()=>_e,capitalizeString:()=>ot,chainColor:()=>he,chainDisplayName:()=>Se,chainIcon:()=>Oe,chainIdBySlug:()=>P,chainSlug:()=>Ee,chainToNamespace:()=>W,debounce:()=>g.debounce,del:()=>Me,displayCount3:()=>tt,displayCount4:()=>et,findLongestCommonSubString:()=>at,formatAge:()=>we,formatAgeInSeconds:()=>z,formatAmount:()=>Fe,formatAmount2:()=>Ve,formatAmount3:()=>ke,formatAmountUSD:()=>ve,formatAmountUSD2:()=>We,formatAmountUSD3:()=>Ke,formatAmountUSD4:()=>Ge,formatAmountUSD5:()=>Ze,formatCount:()=>qe,formatCount2:()=>Qe,formatCount3:()=>Je,formatMultiplier:()=>Xe,formatPercent:()=>ze,formatPrice:()=>Ye,formatPriceUSD:()=>je,formatReadableTime:()=>Ie,formatSymbol:()=>ut,formatTimeAgo:()=>ye,formatTokenProtocolName:()=>dt,get:()=>Pe,getCommonTokenAddresses:()=>gt,getCommonTokenSymbolsMap:()=>bt,getGlobalObject:()=>ie,getNativeToken:()=>mt,getStablecoins:()=>At,getTimestamp:()=>Dt,getWrappedToken:()=>ft,groupBy:()=>g.groupBy,intersectionBy:()=>g.intersectionBy,isHex:()=>ee,isHexString:()=>it,isValidEvmAddress:()=>K,isValidNumber:()=>m,isValidSolanaAddress:()=>G,isValidTimeframe:()=>He,isValidWalletAddress:()=>Te,keyBy:()=>g.keyBy,mapKeys:()=>g.mapKeys,mapValues:()=>g.mapValues,millisecondsToHMS:()=>Re,mutate:()=>Le,parseTokenProtocolFamily:()=>lt,post:()=>Ue,put:()=>Be,request:()=>T,searchImageUrl:()=>Et,searchTwitterUrl:()=>St,secondsSince:()=>j,shortAddress:()=>ct,subtractDaysFromCurrentDate:()=>xe,throttle:()=>g.throttle,timestampToString:()=>Ce,twitterMediaUrl:()=>Ct,twitterTweetUrl:()=>Rt,twitterUserUrl:()=>Tt,txExplorerUrl:()=>pt,uniqBy:()=>g.uniqBy,version:()=>k,windowGuard:()=>xt});module.exports=Ne(yt);typeof window!="undefined"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/utils"]="0.1.20");var k="0.1.20";var v=require("@solana/kit"),r=require("@liberfi.io/types");function W(e){return e===r.Chain.SOLANA||e===r.Chain.SOLANA_TESTNET||e===r.Chain.SOLANA_DEVNET?r.ChainNamespace.SOLANA:r.ChainNamespace.EVM}var y={[r.Chain.ETHEREUM]:"ethereum",[r.Chain.UBIQ]:"ubiq",[r.Chain.OPTIMISM]:"optimism",[r.Chain.FLARE]:"flare",[r.Chain.SONGBIRD]:"songbird",[r.Chain.ELASTOS]:"elastos",[r.Chain.KARDIA]:"kardia",[r.Chain.CRONOS]:"cronos",[r.Chain.RSK]:"rsk",[r.Chain.TELOS]:"telos",[r.Chain.LUKSO]:"lukso",[r.Chain.CRAB]:"crab",[r.Chain.DARWINIA]:"darwinia",[r.Chain.XDC]:"xdc",[r.Chain.CSC]:"csc",[r.Chain.ZYX]:"zyx",[r.Chain.BINANCE]:"binance",[r.Chain.SYSCOIN]:"syscoin",[r.Chain.GOCHAIN]:"gochain",[r.Chain.ETHEREUMCLASSIC]:"ethereumclassic",[r.Chain.OKEXCHAIN]:"okexchain",[r.Chain.HOO]:"hoo",[r.Chain.METER]:"meter",[r.Chain.NOVA_NETWORK]:"nova network",[r.Chain.TOMOCHAIN]:"tomochain",[r.Chain.BITKUB]:"bitkub",[r.Chain.XDAI]:"xdai",[r.Chain.SOLANA]:"solana",[r.Chain.VELAS]:"velas",[r.Chain.THUNDERCORE]:"thundercore",[r.Chain.ENULS]:"enuls",[r.Chain.FUSE]:"fuse",[r.Chain.HECO]:"heco",[r.Chain.UNICHAIN]:"unichain",[r.Chain.POLYGON]:"polygon",[r.Chain.SONIC]:"sonic",[r.Chain.SHIMMER_EVM]:"shimmer_evm",[r.Chain.RBN]:"rbn",[r.Chain.OMNI]:"omni",[r.Chain.MANTA]:"manta",[r.Chain.HSK]:"hsk",[r.Chain.WATER]:"water",[r.Chain.XLAYER]:"xlayer",[r.Chain.XDAIARB]:"xdaiarb",[r.Chain.OP_BNB]:"op_bnb",[r.Chain.VINUCHAIN]:"vinuchain",[r.Chain.ENERGYWEB]:"energyweb",[r.Chain.OASYS]:"oasys",[r.Chain.FANTOM]:"fantom",[r.Chain.FRAXTAL]:"fraxtal",[r.Chain.HPB]:"hpb",[r.Chain.BOBA]:"boba",[r.Chain.OMAX]:"omax",[r.Chain.FILECOIN]:"filecoin",[r.Chain.KUCOIN]:"kucoin",[r.Chain.ZKSYNC_ERA]:"zksync era",[r.Chain.SHIDEN]:"shiden",[r.Chain.THETA]:"theta",[r.Chain.PULSE]:"pulse",[r.Chain.CRONOS_ZKEVM]:"cronos zkevm",[r.Chain.SX]:"sx",[r.Chain.AREON]:"areon",[r.Chain.WC]:"wc",[r.Chain.CANDLE]:"candle",[r.Chain.ROLLUX]:"rollux",[r.Chain.ASTAR]:"astar",[r.Chain.REDSTONE]:"redstone",[r.Chain.MATCHAIN]:"matchain",[r.Chain.CALLISTO]:"callisto",[r.Chain.TARA]:"tara",[r.Chain.WANCHAIN]:"wanchain",[r.Chain.LYRA_CHAIN]:"lyra chain",[r.Chain.BIFROST]:"bifrost",[r.Chain.CONFLUX]:"conflux",[r.Chain.METIS]:"metis",[r.Chain.DYMENSION]:"dymension",[r.Chain.POLYGON_ZKEVM]:"polygon zkevm",[r.Chain.CORE]:"core",[r.Chain.LISK]:"lisk",[r.Chain.ULTRON]:"ultron",[r.Chain.STEP]:"step",[r.Chain.MOONBEAM]:"moonbeam",[r.Chain.MOONRIVER]:"moonriver",[r.Chain.SEI]:"sei",[r.Chain.LIVING_ASSETS_MAINNET]:"living assets mainnet",[r.Chain.STY]:"sty",[r.Chain.TENET]:"tenet",[r.Chain.GRAVITY]:"gravity",[r.Chain.REYA_NETWORK]:"reya network",[r.Chain.SONEIUM]:"soneium",[r.Chain.SWELLCHAIN]:"swellchain",[r.Chain.ONUS]:"onus",[r.Chain.HUBBLENET]:"hubblenet",[r.Chain.SANKO]:"sanko",[r.Chain.DOGECHAIN]:"dogechain",[r.Chain.MILKOMEDA]:"milkomeda",[r.Chain.MILKOMEDA_A1]:"milkomeda_a1",[r.Chain.KAVA]:"kava",[r.Chain.SOMA]:"soma",[r.Chain.KARAK]:"karak",[r.Chain.ABSTRACT]:"abstract",[r.Chain.MORPH]:"morph",[r.Chain.CROSSFI]:"crossfi",[r.Chain.BEAM]:"beam",[r.Chain.IOTEX]:"iotex",[r.Chain.MANTLE]:"mantle",[r.Chain.XLC]:"xlc",[r.Chain.NAHMII]:"nahmii",[r.Chain.BOUNCEBIT]:"bouncebit",[r.Chain.TOMBCHAIN]:"tombchain",[r.Chain.ZETACHAIN]:"zetachain",[r.Chain.PLANQ]:"planq",[r.Chain.BITROCK]:"bitrock",[r.Chain.XSAT]:"xsat",[r.Chain.CYETH]:"cyeth",[r.Chain.CANTO]:"canto",[r.Chain.KLAYTN]:"klaytn",[r.Chain.THAT]:"that",[r.Chain.BASE]:"base",[r.Chain.HELA]:"hela",[r.Chain.IOTAEVM]:"iotaevm",[r.Chain.JBC]:"jbc",[r.Chain.EVMOS]:"evmos",[r.Chain.CARBON]:"carbon",[r.Chain.SMARTBCH]:"smartbch",[r.Chain.ARTELA]:"artela",[r.Chain.IMMUTABLE_ZKEVM]:"immutable zkevm",[r.Chain.LOOP]:"loop",[r.Chain.GENESYS]:"genesys",[r.Chain.EOS_EVM]:"eos evm",[r.Chain.MAP_PROTOCOL]:"map protocol",[r.Chain.SAPPHIRE]:"sapphire",[r.Chain.BITGERT]:"bitgert",[r.Chain.FUSION]:"fusion",[r.Chain.ZILLIQA]:"zilliqa",[r.Chain.APECHAIN]:"apechain",[r.Chain.EDU_CHAIN]:"edu chain",[r.Chain.ARBITRUM]:"arbitrum",[r.Chain.ARBITRUM_NOVA]:"arbitrum nova",[r.Chain.CELO]:"celo",[r.Chain.OASIS]:"oasis",[r.Chain.ASSETCHAIN]:"assetchain",[r.Chain.ETHERLINK]:"etherlink",[r.Chain.AVALANCHE]:"avalanche",[r.Chain.REI]:"rei",[r.Chain.ZIRCUIT]:"zircuit",[r.Chain.SOPHON]:"sophon",[r.Chain.ETN]:"etn",[r.Chain.SUPERPOSITION]:"superposition",[r.Chain.REICHAIN]:"reichain",[r.Chain.BOBA_BNB]:"boba_bnb",[r.Chain.INK]:"ink",[r.Chain.LINEA]:"linea",[r.Chain.BOB]:"bob",[r.Chain.GODWOKEN]:"godwoken",[r.Chain.BERACHAIN]:"berachain",[r.Chain.BLAST]:"blast",[r.Chain.CHILIZ]:"chiliz",[r.Chain.STRATIS]:"stratis",[r.Chain.REAL]:"real",[r.Chain.ODYSSEY]:"odyssey",[r.Chain.TAIKO]:"taiko",[r.Chain.BITLAYER]:"bitlayer",[r.Chain.HYDRATION]:"hydration",[r.Chain.PAREX]:"parex",[r.Chain.POLIS]:"polis",[r.Chain.KEKCHAIN]:"kekchain",[r.Chain.SCROLL]:"scroll",[r.Chain.ZERO_NETWORK]:"zero_network",[r.Chain.ZKLINK_NOVA]:"zklink nova",[r.Chain.VISION]:"vision",[r.Chain.SAAKURU]:"saakuru",[r.Chain.ZORA]:"zora",[r.Chain.CORN]:"corn",[r.Chain.NEON]:"neon",[r.Chain.LUMIA]:"lumia",[r.Chain.AURORA]:"aurora",[r.Chain.HARMONY]:"harmony",[r.Chain.PALM]:"palm",[r.Chain.ZENIQ]:"zeniq",[r.Chain.CURIO]:"curio",[r.Chain.MODE]:"mode"},$={[r.Chain.SOLANA]:"sol",[r.Chain.ETHEREUM]:"eth",[r.Chain.BINANCE]:"bsc",[r.Chain.ARBITRUM]:"arb",[r.Chain.OPTIMISM]:"opt",[r.Chain.AVALANCHE]:"avax"},pe={[r.Chain.SOLANA]:"#9945FF",[r.Chain.ETHEREUM]:"#627EEA",[r.Chain.BINANCE]:"#F0B90B",[r.Chain.ARBITRUM]:"#28A0F0",[r.Chain.OPTIMISM]:"#FF0420",[r.Chain.AVALANCHE]:"#E84142",[r.Chain.POLYGON]:"#8247E5",[r.Chain.BASE]:"#0052FF",[r.Chain.SONIC]:"#5B6EF5",[r.Chain.LINEA]:"#61DFFF",[r.Chain.SCROLL]:"#FFEEDA",[r.Chain.BLAST]:"#FCFC03",[r.Chain.CRONOS]:"#002D74",[r.Chain.BERACHAIN]:"#964B00"};function he(e){return pe[e]}function Oe(e){var s;let t=(s=P(e))!=null?s:e,n=y[t];return n?`https://icons.llamao.fi/icons/chains/rsz_${encodeURIComponent(n)}.jpg`:void 0}function Ee(e){return y[e]}function Se(e){let t=$[e];if(t)return t.toUpperCase();let n=y[e];return n?n.charAt(0).toUpperCase()+n.slice(1):e}function P(e){let t=Object.keys($).find(s=>{var o;return((o=$[s])==null?void 0:o.toLowerCase())===e.toLowerCase()});if(t)return t;let n=Object.keys(y).find(s=>{var o;return((o=y[s])==null?void 0:o.toLowerCase())===e.toLowerCase()});return n||void 0}function Te(e,t){var o;let n=(o=P(e))!=null?o:e;switch(W(n)){case r.ChainNamespace.SOLANA:return G(t);case r.ChainNamespace.EVM:return K(t);default:throw new Error(`Unsupported chain: ${e}`)}}function K(e){return/^0x[0-9a-fA-F]{40}$/.test(e)}function G(e){try{return(0,v.address)(e),!0}catch(t){return!1}}var U=Date.now(),B=60,M=60*B,L=24*M,Z=365*L,Re=e=>{let t=Math.floor(e/1e3),n=Math.floor(t/3600),s=Math.floor(t%3600/60),o=t%60;return[n,s,o]},Ce=e=>{let t=e instanceof Date?e:new Date(e),n=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),a=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),f=String(t.getSeconds()).padStart(2,"0");return`${n}-${s}-${o} ${a}:${i}:${f}`};function xe(e,t){let n=t||new Date,s=new Date(n);return s.setDate(n.getDate()-e),s}function Y(e){return!e||Number.isNaN(e)||e<=0?U:e<1e10?e*1e3:e}function De(e){if(!e)return U;if(typeof e=="number")return Y(e);if(typeof e=="string"){let t=Date.parse(e);return Y(t)}return e instanceof Date?e.getTime():U}function ye(e){let t=Math.floor((Date.now()-De(e))/1e3);return t>=Z?`${Math.floor(t/Z)}Y`:t>=L?`${Math.floor(t/L)}D`:t>=M?`${Math.floor(t/M)}h`:t>=B?`${Math.floor(t/B)}m`:`${t}s`}function j(e,t){let n=t?t instanceof Date?t.getTime():t:Date.now(),s=e instanceof Date?e.getTime():e,o=n-s;return Math.floor(o/1e3)}var p={justNow:"just now",secondsAgo:"{n}s",minutesAgo:"{n}m",hoursAgo:"{n}h",daysAgo:"{n}d",yearsAgo:"{n}y"};function Ie(e,t={}){let n=j(e),s={justNow:t.justNow||p.justNow,secondsAgo:t.secondsAgo||p.secondsAgo,minutesAgo:t.minutesAgo||p.minutesAgo,hoursAgo:t.hoursAgo||p.hoursAgo,daysAgo:t.daysAgo||p.daysAgo,yearsAgo:t.yearsAgo||p.yearsAgo},o=60,a=60*o,i=24*a,f=365*i;if(n<10)return s.justNow;if(n<o)return s.secondsAgo.replace("{n}",n.toString());if(n<a){let N=Math.floor(n/o);return s.minutesAgo.replace("{n}",N.toString())}if(n<i){let N=Math.floor(n/a);return s.hoursAgo.replace("{n}",N.toString())}if(n<f){let N=Math.floor(n/i);return s.daysAgo.replace("{n}",N.toString())}let d=Math.floor(n/f);return s.yearsAgo.replace("{n}",d.toString())}function we(e,t={}){let n=Math.floor(e/1e3);return z(n,t)}function z(e,t={}){let n={justNow:t.justNow||p.justNow,secondsAgo:t.secondsAgo||p.secondsAgo,minutesAgo:t.minutesAgo||p.minutesAgo,hoursAgo:t.hoursAgo||p.hoursAgo,daysAgo:t.daysAgo||p.daysAgo,yearsAgo:t.yearsAgo||p.yearsAgo},s=60,o=60*s,a=24*o,i=365*a;if(e<10)return n.justNow;if(e<s)return n.secondsAgo.replace("{n}",e.toString());if(e<o){let d=Math.floor(e/s);return n.minutesAgo.replace("{n}",d.toString())}if(e<a){let d=Math.floor(e/o);return n.hoursAgo.replace("{n}",d.toString())}if(e<i){let d=Math.floor(e/a);return n.daysAgo.replace("{n}",d.toString())}let f=Math.floor(e/i);return n.yearsAgo.replace("{n}",f.toString())}var X=require("@liberfi.io/types");function T(e,t){return E(this,null,function*(){if(!e.startsWith("http"))throw new Error("url must start with http(s)");let n=yield fetch(e,O(h({},t),{headers:$e(t.headers,t.method)}));if(n.ok)return yield n.json();try{let s=yield n.json();throw n.status===400?new X.ApiError(s.message||s.code||n.statusText,s.code):new Error(s.message||s.code||n.statusText)}catch(s){throw s}})}function $e(e={},t){let n=new Headers(e);return n.has("Content-Type")||(t!=="DELETE"?n.append("Content-Type","application/json;charset=utf-8"):n.append("Content-Type","application/x-www-form-urlencoded")),n}function Pe(e,t){return E(this,null,function*(){return yield T(e,h({method:"GET"},t))})}function Ue(e,t,n){return E(this,null,function*(){return yield T(e,h({method:"POST",body:JSON.stringify(t)},n))})}function Be(e,t,n){return E(this,null,function*(){return yield T(e,h({method:"PUT",body:JSON.stringify(t)},n))})}function Me(e,t){return E(this,null,function*(){return yield T(e,h({method:"DELETE"},t))})}function Le(e,t){return E(this,null,function*(){return yield T(e,t)})}var c=be(require("bignumber.js"));var l=class extends c.default{constructor(t,n){try{super(t!=null?t:0,n)}catch(s){console.error("SafeBigNumber constructor error",s),super(0,n)}}},m=e=>{if(typeof e=="number"&&!isNaN(e)||e instanceof l||e instanceof c.default)return!0;if(typeof e!="string")return!1;let t=Number.parseFloat(e);return!isNaN(t)},_e=e=>(typeof e=="number"||!!e)&&m(typeof e=="string"?Number(e):e),He=(e="")=>/^(\d+\.?\d*|\.\d+)([hm]?)$$/.test(e),Fe=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.lt(.001)?o.decimalPlaces(5,c.default.ROUND_DOWN).toString():o.lt(1)?o.decimalPlaces(3,c.default.ROUND_DOWN).toString():o.lt(100)?o.decimalPlaces(2,c.default.ROUND_DOWN).toString():o.lt(1e5)?u(o,2):b(o);return Number(a)===0?`${a}`:s?`-${a}`:t!=null&&t.showPlusGtThanZero?`+${a}`:`${a}`},Ve=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.lt(.001)?o.decimalPlaces(5,c.default.ROUND_DOWN).toString():o.lt(1)?o.decimalPlaces(3,c.default.ROUND_DOWN).toString():o.lt(100)?o.decimalPlaces(1,c.default.ROUND_DOWN).toString():o.lt(1e3)?u(o,1):b(o);return Number(a)===0?`${a}`:s?`-${a}`:t!=null&&t.showPlusGtThanZero?`+${a}`:`${a}`},ke=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.lt(.001)?o.decimalPlaces(5,c.default.ROUND_DOWN).toString():o.lt(1)?o.decimalPlaces(3,c.default.ROUND_DOWN).toString():o.lt(100)?o.decimalPlaces(1,c.default.ROUND_DOWN).toString():o.lt(1e3)?u(o,1):b(o,0);return Number(a)===0?`${a}`:s?`-${a}`:t!=null&&t.showPlusGtThanZero?`+${a}`:`${a}`},ve=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e4)?`$${u(o,2)}`:`$${b(o)}`;return a==="$0"?a:s?`-${a}`:t!=null&&t.showPlusGtThanZero?`+${a}`:a},We=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.div(100).integerValue(c.default.ROUND_DOWN).times(100),i=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${o.decimalPlaces(1,c.default.ROUND_DOWN)}`:o.lt(1e15)?`$${b(a)}`:`$${nt(o,{acronymMin:1e5,groupingSeparator:!0})}`;return i==="$0"?i:s?`-${i}`:t!=null&&t.showPlusGtThanZero?`+${i}`:i},Ke=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.div(100).integerValue(c.default.ROUND_DOWN).times(100),i=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${o.decimalPlaces(0,c.default.ROUND_DOWN)}`:`$${b(a,0)}`;return i==="$0"?i:s?`-${i}`:t!=null&&t.showPlusGtThanZero?`+${i}`:i},Ge=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(1)?`$${o.decimalPlaces(3,c.default.ROUND_DOWN)}`:o.lt(100)?`$${o.decimalPlaces(2,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${u(o,2)}`:`$${b(o)}`;return a==="$0"?a:s?`-${a}`:t!=null&&t.showPlusGtThanZero?`+${a}`:a},Ze=(e="",t={showPlusGtThanZero:!1})=>{if(!m(e))return"--";let n=new l(e),s=n.lt(0),o=n.abs(),a=o.lt(1e-4)||o.lt(.001)?"$0":o.lt(100)?`$${o.decimalPlaces(0,c.default.ROUND_DOWN)}`:o.lt(1e3)?`$${u(o,0)}`:`$${b(o,0)}`;return a==="$0"?a:s?`-${a}`:t!=null&&t.showPlusGtThanZero?`+${a}`:a},Ye=(e="",t={isHighPrecise:!0})=>{if(!m(e))return"--";let n=new l(e);if(n.lt(0))return"--";let s=n.abs(),{isHighPrecise:o}=t;return`${s.lt(1e-4)?Q(s,o?4:2):s.lt(1)?o?u(s,4):J(s,2):s.lt(100)||s.lt(1e4)?u(s,o?4:2):s.lt(1e5)?u(s,2):b(s)}`},je=(e="",t={isHighPrecise:!0})=>{if(!m(e))return"--";let n=new l(e);if(n.lt(0))return"--";let s=n.abs(),{isHighPrecise:o}=t;return`$${s.lt(1e-4)?Q(s,o?4:2):s.lt(1)?o?u(s,4):J(s,2):s.lt(100)||s.lt(1e4)?u(s,o?4:2):s.lt(1e5)?u(s,2):b(s)}`},ze=(e="",t={})=>{var i,f;if(!m(e))return"-- %";let n=new l(e),s=n.lt(0),o=n.abs(),a=s?"-":t!=null&&t.showPlusGtThanZero?"+":"";return o.lt(1e-4)?"0%":o.lt(100)?`${a}${q(o,(i=t==null?void 0:t.precision)!=null?i:2)}`:o.lt(1e3)?`${a}${q(o,(f=t==null?void 0:t.precision)!=null?f:1)}`:`${a}> 99,999%`},q=(e,t)=>`${e.times(100).decimalPlaces(t,c.default.ROUND_HALF_UP).toString()}%`,Xe=(e="",t={showPlusGtThanZero:!0})=>{if(!m(e))return"0%";let n=new l(e),s=n.lt(0),o=n.abs(),a=s?"-":t!=null&&t.showPlusGtThanZero?"+":"";return o.lt(.01)?"0%":o.lt(10)?`${a}${u(o,2)}X`:o.lt(100)?`${a}${u(o,1)}X`:o.lt(1e5)?`${a}${u(o,0)}X`:`${a}>99,999%`},qe=(e="")=>{if(!m(e))return"--";let t=new l(e);return t.lt(1e5)?u(t,0):b(t)},Qe=(e="")=>{if(!m(e))return"--";let t=new l(e);return t.lt(1e3)?u(t,0):b(t.div(1e3).integerValue(c.default.ROUND_DOWN).times(1e3),0)},Je=(e="")=>{if(!m(e))return"--";let t=new l(e);return u(t,0)},et=(e="")=>m(e)?u(e,0):"--",tt=(e="")=>{if(!m(e))return"--";let t=new l(e);return t.lt(1e3)?u(t,0):b(t.div(100).integerValue(c.default.ROUND_DOWN).times(100))},rt=["\u2080","\u2081","\u2082","\u2083","\u2084","\u2085","\u2086","\u2087","\u2088","\u2089","\u2081\u2080","\u2081\u2081","\u2081\u2082","\u2081\u2083","\u2081\u2084","\u2081\u2085","\u2081\u2086","\u2081\u2087","\u2081\u2088","\u2081\u2089","\u2082\u2080","\u2082\u2081","\u2082\u2082","\u2082\u2083","\u2082\u2084","\u2082\u2085","\u2082\u2086","\u2082\u2087","\u2082\u2088","\u2082\u2089","\u2083\u2080","\u2083\u2081","\u2083\u2082","\u2083\u2083","\u2083\u2084","\u2083\u2085","\u2083\u2086","\u2083\u2087","\u2083\u2088","\u2083\u2089","\u2084\u2080"],u=(e,t=0,n=c.default.ROUND_DOWN)=>{let o=new l(e).decimalPlaces(t,n).toString().split(".");return o[0]=o[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),o.join(".")},b=(e,t=1)=>{let n=new l(e);return n.lt(1e3)?n.toNumber():n.lt(1e6)?`${u(n.div(1e3),t)}K`:n.lt(1e9)?`${u(n.div(1e6),t)}M`:n.lt(1e12)?`${u(n.dividedBy(1e9),t)}B`:`${u(n.dividedBy(1e12),t)}T`},Q=(e,t=5)=>{let n=new l(e);if(n.eq(0))return"0";let[s,o]=n.toFixed().split("."),a=o.split(""),i=a.findIndex(d=>d!=="0"),f=Math.min(a.length-i,t);return`${u(s)}.0`.concat(rt[i]).concat(a.slice(i,i+f).join("").replace(/\.?0+$/,""))},J=(e,t)=>{let n=e.toString().match(/\.0*/),s=(n?n[0].length-1:0)+t;return u(e,s)},R=(e,t={})=>{let{precision:n=4,min:s,max:o,groupingSeparator:a,rounding:i,zeroDisplay:f}=t,d={up:c.default.ROUND_UP,down:c.default.ROUND_DOWN,ceil:c.default.ROUND_CEIL,floor:c.default.ROUND_FLOOR},N=new l(e);if(N.eq(0))return f||"0";let x=N.abs();return s&&x.lt(s)?`<${s}`:o&&x.gt(o)?`>${o}`:a?u(x,n,i?d[i]:void 0):(i?x.decimalPlaces(n,d[i]):x.decimalPlaces(n)).toString()},nt=(e,t={})=>{let n=new l(e);if(n.eq(0))return t.zeroDisplay?t.zeroDisplay:"";let{acronymMin:s=1e4}=t,o=n.abs();return o.lt(s)?R(n,t):o.gte(1e15)?n.toExponential(2):o.gte(1e12)?`${R(n.div(1e12),O(h({},t),{precision:0}))}T`:o.gte(1e9)?`${R(n.div(1e9),O(h({},t),{precision:0}))}B`:o.gte(1e6)?`${R(n.div(1e6),O(h({},t),{precision:1}))}M`:o.gte(1e4)?`${R(n.div(1e3),O(h({},t),{precision:1}))}K`:R(n,t)};function ot(e){let t=e.toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function st(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}var at=(e,t)=>{for(let n=0;n<e.length;n++){let s=e.at(n),o=t.at(n);if(s!==o)return n}return-1};function ee(e){return/^[a-f0-9]+$/iu.test(e)}function it(e){return typeof e=="string"&&e.startsWith("0x")&&ee(e)}function ct(e,t=6,n=4){return e.slice(0,t)+"..."+e.slice(-n)}function ut(e,t="base-type"){if(!e)return"";let n=e.split("_"),s=n[0],o=n[1],a=n[2];return t.replace("type",s).replace("base",o).replace("quote",a)}var w=require("@liberfi.io/types"),lt=(e,t)=>{switch(e){case w.Chain.SOLANA:return w.SOLANA_TOKEN_PROTOCOLS.find(n=>new RegExp(n,"i").test(t));default:return}},dt=e=>e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ");var S=require("@liberfi.io/types"),I="0x0000000000000000000000000000000000000000",te={native:{address:"11111111111111111111111111111111",symbol:"SOL",decimals:9},wrapped:{address:"So11111111111111111111111111111111111111112",symbol:"SOL",decimals:9},stablecoins:{USDC:{address:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",symbol:"USDC",decimals:6},USDT:{address:"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",symbol:"USDT",decimals:6},USD1:{address:"USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",symbol:"USD1",decimals:6}}},re={native:{address:I,symbol:"ETH",decimals:18},wrapped:{address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",symbol:"WETH",decimals:18},stablecoins:{USDC:{address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",symbol:"USDC",decimals:6},USDT:{address:"0xdAC17F958D2ee523a2206206994597C13D831ec7",symbol:"USDT",decimals:6}}},ne={native:{address:I,symbol:"BNB",decimals:18},wrapped:{address:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",symbol:"WBNB",decimals:18},stablecoins:{USDC:{address:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",symbol:"USDC",decimals:18},USDT:{address:"0x55d398326f99059fF775485246999027B3197955",symbol:"USDT",decimals:18}}},oe={native:{address:I,symbol:"ETH",decimals:18},wrapped:{address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",symbol:"WETH",decimals:18},stablecoins:{USDC:{address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",symbol:"USDC",decimals:6},USDT:{address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",symbol:"USDT",decimals:6}}},se={native:{address:I,symbol:"ETH",decimals:18},wrapped:{address:"0x4200000000000000000000000000000000000006",symbol:"WETH",decimals:18},stablecoins:{USDC:{address:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",symbol:"USDC",decimals:6},USDT:{address:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",symbol:"USDT",decimals:6}}},ae={native:{address:I,symbol:"AVAX",decimals:18},wrapped:{address:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",symbol:"WAVAX",decimals:18},stablecoins:{USDC:{address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",symbol:"USDC",decimals:6},USDT:{address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",symbol:"USDT",decimals:6}}},C={[S.Chain.SOLANA]:te,[S.Chain.ETHEREUM]:re,[S.Chain.BINANCE]:ne,[S.Chain.ARBITRUM]:oe,[S.Chain.OPTIMISM]:se,[S.Chain.AVALANCHE]:ae};function mt(e){var t;return(t=C[e])==null?void 0:t.native}function ft(e){var t;return(t=C[e])==null?void 0:t.wrapped}function At(e){var t;return(t=C[e])==null?void 0:t.stablecoins}function gt(e){let t=C[e];return t?[t.native.address,t.wrapped.address,...Object.values(t.stablecoins).map(n=>n.address)]:[]}function bt(e){let t=C[e];if(!t)return{};let n={[t.native.address]:t.native.symbol,[t.wrapped.address]:t.wrapped.symbol};for(let s of Object.values(t.stablecoins))n[s.address]=s.symbol;return n}var A=require("@liberfi.io/types"),Nt={[A.Chain.SOLANA]:"https://solscan.io/tx/${txHash}",[A.Chain.ETHEREUM]:"https://etherscan.io/tx/${txHash}",[A.Chain.POLYGON]:"https://polygonscan.com/tx/${txHash}",[A.Chain.BINANCE]:"https://bscscan.com/tx/${txHash}",[A.Chain.BINANCE_TESTNET]:"https://testnet.bscscan.com/tx/${txHash}",[A.Chain.AVALANCHE]:"https://snowtrace.io/tx/${txHash}",[A.Chain.BASE]:"https://basescan.org/tx/${txHash}",[A.Chain.BLAST]:"https://blastracker.xyz/tx/${txHash}",[A.Chain.ARBITRUM]:"https://arbiscan.io/tx/${txHash}",[A.Chain.ARBITRUM_NOVA]:"https://nova.arbiscan.io/tx/${txHash}",[A.Chain.ARBITRUM_TESTNET_GOERLI]:"https://goerli.arbiscan.io/tx/${txHash}",[A.Chain.ARBITRUM_TESTNET_SEPOLIA]:"https://sepolia.arbiscan.io/tx/${txHash}"};function pt(e,t){var n;return(n=Nt[e])==null?void 0:n.replace("${txHash}",t)}var ht={[A.Chain.SOLANA]:"https://solscan.io/account/${account}",[A.Chain.ETHEREUM]:"https://etherscan.io/address/${account}",[A.Chain.POLYGON]:"https://polygonscan.com/address/${account}",[A.Chain.BINANCE]:"https://bscscan.com/address/${account}"},Ot=(e,t)=>{var n;return(n=ht[e])==null?void 0:n.replace("${account}",t)};function Et(e){return`https://lens.google.com/uploadbyurl?url=${encodeURIComponent(e)}`}function St(e){return`https://x.com/search?q=${encodeURIComponent(e)}`}function Tt(e){return`https://x.com/${e}`}function Rt(e){return`https://x.com/${e}`}function Ct(e){return`https://x.com/${e}`}var xt=e=>{typeof window!="undefined"&&e()},ie=()=>{if(typeof globalThis!="undefined")return globalThis;if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global;throw new Error("cannot find the global object")},Dt=()=>{var e;if(typeof window!="undefined"){let t=(e=ie())==null?void 0:e.__LIBERFI_timestamp_offset;if(typeof t=="number")return Date.now()+(t||0)}return Date.now()};var g=require("lodash-es");0&&(module.exports={ARBITRUM_TOKENS,AVALANCHE_TOKENS,BSC_TOKENS,CHAIN_TOKENS,ETHEREUM_TOKENS,OPTIMISM_TOKENS,SOLANA_TOKENS,SafeBigNumber,accountExplorerUrl,camelCaseToSnakeCase,canConvertToNumber,capitalizeString,chainColor,chainDisplayName,chainIcon,chainIdBySlug,chainSlug,chainToNamespace,debounce,del,displayCount3,displayCount4,findLongestCommonSubString,formatAge,formatAgeInSeconds,formatAmount,formatAmount2,formatAmount3,formatAmountUSD,formatAmountUSD2,formatAmountUSD3,formatAmountUSD4,formatAmountUSD5,formatCount,formatCount2,formatCount3,formatMultiplier,formatPercent,formatPrice,formatPriceUSD,formatReadableTime,formatSymbol,formatTimeAgo,formatTokenProtocolName,get,getCommonTokenAddresses,getCommonTokenSymbolsMap,getGlobalObject,getNativeToken,getStablecoins,getTimestamp,getWrappedToken,groupBy,intersectionBy,isHex,isHexString,isValidEvmAddress,isValidNumber,isValidSolanaAddress,isValidTimeframe,isValidWalletAddress,keyBy,mapKeys,mapValues,millisecondsToHMS,mutate,parseTokenProtocolFamily,post,put,request,searchImageUrl,searchTwitterUrl,secondsSince,shortAddress,subtractDaysFromCurrentDate,throttle,timestampToString,twitterMediaUrl,twitterTweetUrl,twitterUserUrl,txExplorerUrl,uniqBy,version,windowGuard});
2
2
  //# sourceMappingURL=index.js.map