@yodlpay/tokenlists 0.3.0 → 0.3.2

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.
@@ -36,6 +36,13 @@
36
36
  "version": "0.1",
37
37
  "fee": "0.002"
38
38
  },
39
+ {
40
+ "chainId": 10,
41
+ "address": "0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",
42
+ "timestamp": "2023-09-01T00:00:00+00:00",
43
+ "version": "0.2",
44
+ "fee": "0.002"
45
+ },
39
46
  {
40
47
  "chainId": 42161,
41
48
  "address": "0x334264f4fbb56a84f80df722ba765d210f0cf555",
@@ -837,6 +837,13 @@ var routers = [
837
837
  version: "0.1",
838
838
  fee: "0.002"
839
839
  },
840
+ {
841
+ chainId: 10,
842
+ address: "0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",
843
+ timestamp: "2023-09-01T00:00:00+00:00",
844
+ version: "0.2",
845
+ fee: "0.002"
846
+ },
840
847
  {
841
848
  chainId: 42161,
842
849
  address: "0x334264f4fbb56a84f80df722ba765d210f0cf555",
@@ -2579,7 +2586,7 @@ function getTokenByAddress(tokenAddress, chainId) {
2579
2586
  var _tokenlist$tokens$fin;
2580
2587
 
2581
2588
  return (_tokenlist$tokens$fin = tokenlist.tokens.find(function (token) {
2582
- return token.address === tokenAddress && (!chainId || token.chainId === chainId);
2589
+ return token.address.toLowerCase() === tokenAddress.toLowerCase() && (!chainId || token.chainId === chainId);
2583
2590
  })) != null ? _tokenlist$tokens$fin : null;
2584
2591
  }
2585
2592
  function getTokenBySymbol(tokenSymbol, chainId) {
@@ -2596,7 +2603,7 @@ function getTokens(chainId) {
2596
2603
  }
2597
2604
  function getFaucetAddress(tokenInfo) {
2598
2605
  return testnetfaucets.faucets.find(function (needle) {
2599
- return needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId;
2606
+ return needle.token.toLowerCase() === tokenInfo.address.toLowerCase() && needle.chainId === tokenInfo.chainId;
2600
2607
  });
2601
2608
  }
2602
2609
  function getRouters(chainId) {
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.cjs.development.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC,aA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"}
1
+ {"version":3,"file":"tokenlists.cjs.development.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address.toLowerCase() === tokenAddress.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token.toLowerCase() === tokenInfo.address.toLowerCase() &&\n needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}\n"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","toLowerCase","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,O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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,a={name:"Default",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7/logo.png",keywords:[],version:{major:0,minor:0,patch:1},tokens:[{chainId:1,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Mainnet","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:10,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Optimism","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:42161,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Arbitrum","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:1,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Mainnet","Native Token"],address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{chainId:10,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Optimism","Native Token"],address:"0x4200000000000000000000000000000000000006"},{chainId:42161,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Arbitrum","Native Token"],address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},{chainId:1,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xdac17f958d2ee523a2206206994597c13d831ec7"},{chainId:10,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x94b008aa00579c1307b0ef2c499ad98a8ce58e58"},{chainId:42161,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"},{chainId:1,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x7f5c764cbc14f9669b88837ca1490cca17c31607"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x0b2c639c533813f4aa9d7837caf62653d097ff85"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"},{chainId:1,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0x6b175474e89094c44da98b954eedeac495271d0f"},{chainId:10,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Optimism","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:42161,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:1,coinGeckoId:"crvusd",name:"crvUSD",symbol:"crvUSD",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/crvUSD.svg",decimals:18,tags:["Mainnet","Stablecoin","USD"],address:"0xf939e0a03fb07f59a73314e73794be0e57ac1b4e"},{chainId:1,coinGeckoId:"monerium-eur-money",name:"EURe",symbol:"EURe",currency:"EUR",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg",decimals:18,tags:["Mainnet","Stablecoin","EUR"],address:"0x3231Cb76718CDeF2155FC47b5286d82e6eDA273f"},{chainId:5,name:"XUSD",symbol:"XUSD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0x33ca3889bb0032e9c3794b608a242d27e7293353"},{chainId:5,name:"USDC.test",symbol:"USDC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9"},{chainId:5,name:"USDT.test",symbol:"USDT",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:18,tags:["TESTNET"],address:"0xeB87E5d9c773d3E802989295147564985B5B358C"},{chainId:43114,coinGeckoId:"dai",address:"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70",decimals:18,name:"Dai Stablecoin",symbol:"DAI.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg"},{chainId:43114,coinGeckoId:"tether",address:"0xc7198437980c041c805A1EDcbA50c1Ce5db95118",decimals:6,name:"Tether - Bridged",symbol:"USDT.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",decimals:6,name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"magic-internet-money",address:"0x130966628846BFd36ff31a822705796e8cb8C18D",decimals:18,name:"Magic Internet Money",symbol:"MIM",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/MIM.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"tether",address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"tether",address:"0x4ECaBa5870353805a9F068101A40E0f32ed605C6",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"usd-coin",address:"0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:100,coinGeckoId:"xdai",address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,name:"xDAI",symbol:"xDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/xDAI.svg"},{chainId:100,coinGeckoId:"wrapped-xdai",address:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",decimals:18,name:"wxDAI",symbol:"wxDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/wxDAI.svg"},{chainId:100,coinGeckoId:"monerium-eur-money",address:"0xcB444e90D8198415266c6a2724b7900fb12FC56E",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Gnosis","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"},{chainId:137,coinGeckoId:"matic-network",name:"MATIC",symbol:"MATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:137,coinGeckoId:"matic-network",name:"Wrapped MATIC",symbol:"WMATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"},{chainId:137,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"},{chainId:137,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"},{chainId:137,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063"},{chainId:137,coinGeckoId:"monerium-eur-money",address:"0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Polygon","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"}],timestamp:"2021-09-07T00:00:00+00:00"},n={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},chains:[{chainName:"Ethereum",shortName:"eth",testnet:!1,chainId:1,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/1/logo.svg",rpcUrls:["https://rpc.ankr.com/eth"],wrappedNativeToken:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",explorerUrl:"https://etherscan.io",timestamp:"2022-12-29T18:52:20+00:00",feeTreasury:"0x9C48d180e4eEE0dA2A899EE1E4c533cA5e92db77",priceFeeds:{AUD:"0x77f9710e7d0a19669a13c055f62cd80d313df022",CAD:"0xa34317db73e77d453b1b8d04550c44d10e981c8e",CHF:"0x449d117117838ffa61263b61da6301aa2a88b13a",EUR:"0xb49f677943bc038e9857d61e7d053caa2c1734c1",GBP:"0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",JPY:"0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",CNY:"0xef8a4af35cd47424672e3c590abd37fbb7a7759a",KRW:"0x01435677fb11763550905594a16b645847c1d0f3",NZD:"0x3977cfc9e4f29c184d4675f4eb8e0013236e5f3e",SGD:"0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",TRY:"0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"},tokenFeeds:{ETH:"0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419"},curveRouterAddress:"0x99a58482BD75cbab83b27EC03CA68fF489b5788f"},{chainName:"Ethereum Goerli",shortName:"gor",testnet:!0,chainId:5,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/5/logo.svg",rpcUrls:["https://rpc.ankr.com/eth_goerli"],wrappedNativeToken:"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",explorerUrl:"https://goerli.etherscan.io",timestamp:"2022-12-28T14:10:09+00:00",feeTreasury:"0x3E8A61F0532BA2b58660606d61110cC9E90c4D29",priceFeeds:{CZK:"0xAE45DCb3eB59E27f05C170752B218C6174394Df8",JPY:"0x295b398c95cEB896aFA18F25d0c6431Fd17b1431"}},{chainName:"Arbitrum One",shortName:"arb1",testnet:!1,chainId:42161,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/42161/logo.svg",rpcUrls:["https://rpc.ankr.com/arbitrum"],wrappedNativeToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",explorerUrl:"https://arbiscan.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",CNY:"0xcc3370bde6afe51e1205a5038947b9836371eccb",EUR:"0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",CAD:"0xf6da27749484843c4f02f5ad1378cee723dd61d4",CHF:"0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",GBP:"0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",JPY:"0x3dd6e51cb9cae717d5a8778cf79a04029f9cfdf8",KRW:"0x85bb02e0ae286600d1c68bb6ce22cc998d411916",SEK:"0xde89a55d04ded40a410877ab87d4f567ee66a1f0",SGD:"0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"},tokenFeeds:{ETH:"0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612"},curveRouterAddress:"0x4c2af2df2a7e567b5155879720619ea06c5bb15d"},{chainName:"Optimism",shortName:"oeth",testnet:!1,chainId:10,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/10/logo.svg",rpcUrls:["https://mainnet.optimism.io"],wrappedNativeToken:"0x4200000000000000000000000000000000000006",explorerUrl:"https://optimistic.etherscan.io",timestamp:"2023-02-27T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",EUR:"0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",GBP:"0x540d48c01f946e729174517e013ad0bdae5f08c0",JPY:"0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",INR:"0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"},tokenFeeds:{ETH:"0x13e3Ee699D1909E989722E753853AE30b17e08c5"},curveRouterAddress:"0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"},{chainName:"Avalanche",shortName:"avax",testnet:!1,chainId:43114,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/43113/logo.svg",rpcUrls:["https://api.avax.network/ext/bc/C/rpc"],wrappedNativeToken:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",explorerUrl:"https://snowtrace.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",priceFeeds:{BRL:"0x609dddb75518aa4af84ac228b62261ae68e52989",CHF:"0x3b37950485b450edf90cbb85d0cd27308af4ab9a",EUR:"0x192f2dba961bb0277520c082d6bfa87d5961333e",JPY:"0xf8b283ad4d969ecfd70005714dd5910160565b94",TRY:"0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"},tokenFeeds:{AVAX:"0x0A77230d17318075983913bC2145DB16C7366156"}},{chainName:"Gnosis",shortName:"gno",testnet:!1,chainId:100,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/100/logo.svg",rpcUrls:["https://rpc.gnosis.gateway.fm"],wrappedNativeToken:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",explorerUrl:"https://gnosisscan.io",timestamp:"2023-07-27T14:52:05+00:00",feeTreasury:"0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",priceFeeds:{CHF:"0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",EUR:"0xab70BCB260073d036d1660201e9d5405F5829b7a",JPY:"0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"},tokenFeeds:{GNO:"0x22441d81416430A54336aB28765abd31a792Ad37",DAI:"0x678df3415fc31947dA4324eC63212874be5a82f8"},curveRouterAddress:"0xe6358f6a45b502477e83cc1cda759f540e4459ee"},{chainName:"Polygon",shortName:"matic",testnet:!1,chainId:137,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",rpcUrls:["https://polygon-rpc.com"],wrappedNativeToken:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",explorerUrl:"https://polygonscan.com",timestamp:"2023-09-07T00:00:00+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2E0CeD30d234",priceFeeds:{AUD:"0x062Df9C4efd2030e243ffCc398b652e8b8F95C6f",CAD:"0xACA44ABb8B04D07D883202F99FA5E3c53ed57Fb5",CHF:"0xc76f762CedF0F78a439727861628E0fdfE1e70c2",CNY:"0x04bB437Aa63E098236FA47365f0268547f6EAB32",EUR:"0x73366Fe0AA0Ded304479862808e02506FE556a98",GBP:"0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",ILS:"0x8d5eB34C509261533235b91350d359EdcB969D33",INR:"0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",JPY:"0xD647a6fC9BC6402301583C91decC5989d8Bc382D",KRW:"0x24B820870F726dA9B0D83B0B28a93885061dbF50",MXN:"0x171b16562EA3476F5C61d1b8dad031DbA0768545",NZD:"0xa302a0B8a499fD0f00449df0a490DedE21105955",PHP:"0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",PLN:"0xB34BCE11040702f71c11529D00179B2959BcE6C0",SEK:"0xbd92B4919ae82be8473859295dEF0e778A626302",SGD:"0x8CE3cAc0E6635ce04783709ca3CC4F5fc5304299",THB:"0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",TRY:"0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"},tokenFeeds:{MATIC:"0xAB594600376Ec9fD91F8e885dADF0CE036862dE0"},curveRouterAddress:"0x2a426b3Bb4fa87488387545f15D01d81352732F9"}]},s={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},routers:[{chainId:1,address:"0x4cafd841df0df6da5739f729491887d64ad2794c",timestamp:"2022-12-30T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:1,address:"0x061888246A29fEB9bb3f168CD8589B3Cf4115668",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:5,address:"0x8412D3c11aa605EbaF14D0b6BC7705ab45143Ee8",timestamp:"2022-12-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:10,address:"0xfbA75752D73d3Fb3aA13e7BC7cfD142E73E78a8A",timestamp:"2023-02-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:42161,address:"0x334264f4fbb56a84f80df722ba765d210f0cf555",timestamp:"2023-02-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:42161,address:"0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:100,address:"0x448fabd2d16bc48ecdbe68890414de7a1b6348fd",timestamp:"2023-07-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:100,address:"0x5faD44Dc5B63f1717523c340de357ef399FeA0F2",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:137,address:"0x8866DAFa2762346c85098C5b2201fA7CB2dA6100",timestamp:"2023-09-07T00:00:00+00:00",version:"0.2",fee:"0.002"}]},o={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},faucets:[{chainId:5,token:"0x33ca3889bb0032e9c3794b608a242d27e7293353",address:"0xd2bc1d97793763b7262987a67f1945169c763389"},{chainId:5,token:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9",address:"0x5A3380C7d6A05AF3Ce68C939142658C35Efc066d"},{chainId:5,token:"0xeB87E5d9c773d3E802989295147564985B5B358C",address:"0xF47661BCe78194b44675547873ef58Ca8Db9b145"}]},i=[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeBps",type:"uint256"},{internalType:"string",name:"_version",type:"string"},{internalType:"address",name:"_uniswapRouter",type:"address"},{internalType:"address",name:"_curveRouter",type:"address"},{internalType:"address",name:"_wrappedNativeToken",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[],name:"MAX_FEE_BPS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseFeeBps",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"feeBps",type:"uint256"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[],name:"curveRouter",outputs:[{internalType:"contract ICurveRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address[2]",name:"priceFeedsUsed",type:"address[2]"},{internalType:"int256[2]",name:"prices",type:"int256[2]"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeTreasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"address[9]",name:"route",type:"address[9]"},{internalType:"uint256[3][4]",name:"swapParams",type:"uint256[3][4]"},{internalType:"address[4]",name:"factoryAddresses",type:"address[4]"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"}],internalType:"struct HiroRouterV1.HiroCurveParams",name:"params",type:"tuple"}],name:"payWithCurve",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"},{internalType:"enum HiroRouterV1.SwapType",name:"swapType",type:"uint8"}],internalType:"struct HiroRouterV1.HiroUniswapParams",name:"params",type:"tuple"}],name:"payWithUniswap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"sweep",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"uniswapRouter",outputs:[{internalType:"contract ISwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract IWETH9",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],r={.1:[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeDivisor",type:"uint256"},{internalType:"string",name:"_version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address",name:"priceFeed",type:"address"},{internalType:"int256",name:"price",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_memo",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"address",name:"_token",type:"address"},{internalType:"address",name:"_receiver",type:"address"},{internalType:"address",name:"_extraFeeReceiver",type:"address"},{internalType:"uint256",name:"_extraFeeDivisor",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],.2:i,test:i};function d(e,t){return e.major<t.major?-1:e.major>t.major?1:e.minor<t.minor?-1:e.minor>t.minor?1:e.patch<t.patch?-1:e.patch>t.patch?1:0}function c(e,t){var a=e.reduce((function(e,t){return e[t.chainId]||(e[t.chainId]={}),e[t.chainId][t.address]=t,e}),{}),n=t.reduce((function(e,t){var n,s,o=null==(n=a[t.chainId])?void 0:n[t.address];if(o){var i=Object.keys(t).filter((function(e){return"address"!==e&&"chainId"!==e})).filter((function(e){return!((a=t[e])===(n=o[e])||typeof a==typeof n&&Array.isArray(a)&&Array.isArray(n)&&a.every((function(e,t){return n[t]===e})));var a,n}));i.length>0&&(e.changed[t.chainId]||(e.changed[t.chainId]={}),e.changed[t.chainId][t.address]=i)}else e.added.push(t);return e.index[t.chainId]?e.index[t.chainId][t.address]=!0:e.index[t.chainId]=((s={})[t.address]=!0,s),e}),{added:[],changed:{},index:{}}),s=e.reduce((function(e,t){return n.index[t.chainId]&&n.index[t.chainId][t.address]||e.push(t),e}),[]);return{added:n.added,changed:n.changed,removed:s}}function p(e){return s.routers.filter((function(t){return t.chainId===e}))}(e=exports.TokenListTagNames||(exports.TokenListTagNames={})).MAINNET="Mainnet",e.OPTIMISM="Optimism",e.ARBITRUM="Arbitrum",e.AVALANCHE="Avalanche",e.TESTNET="TESTNET",e.STABLECOIN="Stablecoin",e.USD="USD",e.EUR="EUR",e.TOP_10="Top10",e.NATIVE_TOKEN="Native Token",(t=exports.VersionUpgrade||(exports.VersionUpgrade={}))[t.NONE=0]="NONE",t[t.PATCH=1]="PATCH",t[t.MINOR=2]="MINOR",t[t.MAJOR=3]="MAJOR",exports.CURVE_ROUTER_ABI=[{name:"TokenExchange",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"pool",type:"address",indexed:!0},{name:"token_sold",type:"address",indexed:!1},{name:"token_bought",type:"address",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{name:"ExchangeMultiple",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"route",type:"address[9]",indexed:!1},{name:"swap_params",type:"uint256[3][4]",indexed:!1},{name:"pools",type:"address[4]",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"_address_provider",type:"address"},{name:"_calculator",type:"address"},{name:"_weth",type:"address"}],outputs:[]},{stateMutability:"payable",type:"fallback"},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_exclude_pools",type:"address[8]"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_input_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amounts",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amounts",type:"uint256[100]"}],outputs:[{name:"",type:"uint256[100]"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_calculator",inputs:[{name:"_pool",type:"address"}],outputs:[{name:"",type:"address"}]},{stateMutability:"nonpayable",type:"function",name:"update_registry_address",inputs:[],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_calculator",inputs:[{name:"_pool",type:"address"},{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_default_calculator",inputs:[{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"claim_balance",inputs:[{name:"_token",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_killed",inputs:[{name:"_is_killed",type:"bool"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"view",type:"function",name:"registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"factory_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"crypto_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"default_calculator",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"is_killed",inputs:[],outputs:[{name:"",type:"bool"}]}],exports.HIRO_ROUTER_ABIS=r,exports.chainlist=n,exports.diffTokenLists=c,exports.getChain=function(e){return n.chains.find((function(t){return t.chainId===e}))},exports.getFaucetAddress=function(e){return o.faucets.find((function(t){return t.token===e.address&&t.chainId===e.chainId}))},exports.getLatestRouter=function(e){var t=p(e).sort((function(e,t){return Date.parse(e.timestamp)-Date.parse(t.timestamp)}));return t[t.length-1]},exports.getRouter=function(e,t){return s.routers.find((function(a){return a.chainId===e&&a.version===t}))},exports.getRouters=p,exports.getShortNames=function(){return n.chains.map((function(e){return e.shortName}))},exports.getTokenByAddress=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.address===e&&(!t||a.chainId===t)})))?n:null},exports.getTokenBySymbol=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.symbol===e&&(!t||a.chainId===t)})))?n:null},exports.getTokens=function(e){return a.tokens.filter((function(t){return t.chainId===e}))},exports.getVersionUpgrade=function(e,t){return t.major>e.major?exports.VersionUpgrade.MAJOR:t.major<e.major?exports.VersionUpgrade.NONE:t.minor>e.minor?exports.VersionUpgrade.MINOR:t.minor<e.minor?exports.VersionUpgrade.NONE:t.patch>e.patch?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.isVersionUpdate=function(e,t){return d(e,t)<0},exports.minVersionBump=function(e,t){var a=c(e,t);return a.removed.length>0?exports.VersionUpgrade.MAJOR:a.added.length>0?exports.VersionUpgrade.MINOR:Object.keys(a.changed).length>0?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.nextVersion=function(e,t){switch(t){case exports.VersionUpgrade.NONE:return e;case exports.VersionUpgrade.MAJOR:return{major:e.major+1,minor:0,patch:0};case exports.VersionUpgrade.MINOR:return{major:e.major,minor:e.minor+1,patch:0};case exports.VersionUpgrade.PATCH:return{major:e.major,minor:e.minor,patch:e.patch+1}}},exports.routerlist=s,exports.tokenlist=a,exports.tokenschema=a,exports.versionComparator=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,a={name:"Default",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7/logo.png",keywords:[],version:{major:0,minor:0,patch:1},tokens:[{chainId:1,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Mainnet","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:10,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Optimism","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:42161,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Arbitrum","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:1,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Mainnet","Native Token"],address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{chainId:10,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Optimism","Native Token"],address:"0x4200000000000000000000000000000000000006"},{chainId:42161,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Arbitrum","Native Token"],address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},{chainId:1,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xdac17f958d2ee523a2206206994597c13d831ec7"},{chainId:10,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x94b008aa00579c1307b0ef2c499ad98a8ce58e58"},{chainId:42161,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"},{chainId:1,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x7f5c764cbc14f9669b88837ca1490cca17c31607"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x0b2c639c533813f4aa9d7837caf62653d097ff85"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"},{chainId:1,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0x6b175474e89094c44da98b954eedeac495271d0f"},{chainId:10,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Optimism","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:42161,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:1,coinGeckoId:"crvusd",name:"crvUSD",symbol:"crvUSD",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/crvUSD.svg",decimals:18,tags:["Mainnet","Stablecoin","USD"],address:"0xf939e0a03fb07f59a73314e73794be0e57ac1b4e"},{chainId:1,coinGeckoId:"monerium-eur-money",name:"EURe",symbol:"EURe",currency:"EUR",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg",decimals:18,tags:["Mainnet","Stablecoin","EUR"],address:"0x3231Cb76718CDeF2155FC47b5286d82e6eDA273f"},{chainId:5,name:"XUSD",symbol:"XUSD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0x33ca3889bb0032e9c3794b608a242d27e7293353"},{chainId:5,name:"USDC.test",symbol:"USDC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9"},{chainId:5,name:"USDT.test",symbol:"USDT",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:18,tags:["TESTNET"],address:"0xeB87E5d9c773d3E802989295147564985B5B358C"},{chainId:43114,coinGeckoId:"dai",address:"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70",decimals:18,name:"Dai Stablecoin",symbol:"DAI.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg"},{chainId:43114,coinGeckoId:"tether",address:"0xc7198437980c041c805A1EDcbA50c1Ce5db95118",decimals:6,name:"Tether - Bridged",symbol:"USDT.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",decimals:6,name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"magic-internet-money",address:"0x130966628846BFd36ff31a822705796e8cb8C18D",decimals:18,name:"Magic Internet Money",symbol:"MIM",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/MIM.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"tether",address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"tether",address:"0x4ECaBa5870353805a9F068101A40E0f32ed605C6",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"usd-coin",address:"0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:100,coinGeckoId:"xdai",address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,name:"xDAI",symbol:"xDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/xDAI.svg"},{chainId:100,coinGeckoId:"wrapped-xdai",address:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",decimals:18,name:"wxDAI",symbol:"wxDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/wxDAI.svg"},{chainId:100,coinGeckoId:"monerium-eur-money",address:"0xcB444e90D8198415266c6a2724b7900fb12FC56E",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Gnosis","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"},{chainId:137,coinGeckoId:"matic-network",name:"MATIC",symbol:"MATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:137,coinGeckoId:"matic-network",name:"Wrapped MATIC",symbol:"WMATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"},{chainId:137,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"},{chainId:137,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"},{chainId:137,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063"},{chainId:137,coinGeckoId:"monerium-eur-money",address:"0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Polygon","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"}],timestamp:"2021-09-07T00:00:00+00:00"},n={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},chains:[{chainName:"Ethereum",shortName:"eth",testnet:!1,chainId:1,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/1/logo.svg",rpcUrls:["https://rpc.ankr.com/eth"],wrappedNativeToken:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",explorerUrl:"https://etherscan.io",timestamp:"2022-12-29T18:52:20+00:00",feeTreasury:"0x9C48d180e4eEE0dA2A899EE1E4c533cA5e92db77",priceFeeds:{AUD:"0x77f9710e7d0a19669a13c055f62cd80d313df022",CAD:"0xa34317db73e77d453b1b8d04550c44d10e981c8e",CHF:"0x449d117117838ffa61263b61da6301aa2a88b13a",EUR:"0xb49f677943bc038e9857d61e7d053caa2c1734c1",GBP:"0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",JPY:"0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",CNY:"0xef8a4af35cd47424672e3c590abd37fbb7a7759a",KRW:"0x01435677fb11763550905594a16b645847c1d0f3",NZD:"0x3977cfc9e4f29c184d4675f4eb8e0013236e5f3e",SGD:"0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",TRY:"0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"},tokenFeeds:{ETH:"0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419"},curveRouterAddress:"0x99a58482BD75cbab83b27EC03CA68fF489b5788f"},{chainName:"Ethereum Goerli",shortName:"gor",testnet:!0,chainId:5,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/5/logo.svg",rpcUrls:["https://rpc.ankr.com/eth_goerli"],wrappedNativeToken:"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",explorerUrl:"https://goerli.etherscan.io",timestamp:"2022-12-28T14:10:09+00:00",feeTreasury:"0x3E8A61F0532BA2b58660606d61110cC9E90c4D29",priceFeeds:{CZK:"0xAE45DCb3eB59E27f05C170752B218C6174394Df8",JPY:"0x295b398c95cEB896aFA18F25d0c6431Fd17b1431"}},{chainName:"Arbitrum One",shortName:"arb1",testnet:!1,chainId:42161,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/42161/logo.svg",rpcUrls:["https://rpc.ankr.com/arbitrum"],wrappedNativeToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",explorerUrl:"https://arbiscan.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",CNY:"0xcc3370bde6afe51e1205a5038947b9836371eccb",EUR:"0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",CAD:"0xf6da27749484843c4f02f5ad1378cee723dd61d4",CHF:"0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",GBP:"0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",JPY:"0x3dd6e51cb9cae717d5a8778cf79a04029f9cfdf8",KRW:"0x85bb02e0ae286600d1c68bb6ce22cc998d411916",SEK:"0xde89a55d04ded40a410877ab87d4f567ee66a1f0",SGD:"0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"},tokenFeeds:{ETH:"0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612"},curveRouterAddress:"0x4c2af2df2a7e567b5155879720619ea06c5bb15d"},{chainName:"Optimism",shortName:"oeth",testnet:!1,chainId:10,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/10/logo.svg",rpcUrls:["https://mainnet.optimism.io"],wrappedNativeToken:"0x4200000000000000000000000000000000000006",explorerUrl:"https://optimistic.etherscan.io",timestamp:"2023-02-27T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",EUR:"0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",GBP:"0x540d48c01f946e729174517e013ad0bdae5f08c0",JPY:"0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",INR:"0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"},tokenFeeds:{ETH:"0x13e3Ee699D1909E989722E753853AE30b17e08c5"},curveRouterAddress:"0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"},{chainName:"Avalanche",shortName:"avax",testnet:!1,chainId:43114,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/43113/logo.svg",rpcUrls:["https://api.avax.network/ext/bc/C/rpc"],wrappedNativeToken:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",explorerUrl:"https://snowtrace.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",priceFeeds:{BRL:"0x609dddb75518aa4af84ac228b62261ae68e52989",CHF:"0x3b37950485b450edf90cbb85d0cd27308af4ab9a",EUR:"0x192f2dba961bb0277520c082d6bfa87d5961333e",JPY:"0xf8b283ad4d969ecfd70005714dd5910160565b94",TRY:"0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"},tokenFeeds:{AVAX:"0x0A77230d17318075983913bC2145DB16C7366156"}},{chainName:"Gnosis",shortName:"gno",testnet:!1,chainId:100,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/100/logo.svg",rpcUrls:["https://rpc.gnosis.gateway.fm"],wrappedNativeToken:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",explorerUrl:"https://gnosisscan.io",timestamp:"2023-07-27T14:52:05+00:00",feeTreasury:"0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",priceFeeds:{CHF:"0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",EUR:"0xab70BCB260073d036d1660201e9d5405F5829b7a",JPY:"0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"},tokenFeeds:{GNO:"0x22441d81416430A54336aB28765abd31a792Ad37",DAI:"0x678df3415fc31947dA4324eC63212874be5a82f8"},curveRouterAddress:"0xe6358f6a45b502477e83cc1cda759f540e4459ee"},{chainName:"Polygon",shortName:"matic",testnet:!1,chainId:137,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",rpcUrls:["https://polygon-rpc.com"],wrappedNativeToken:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",explorerUrl:"https://polygonscan.com",timestamp:"2023-09-07T00:00:00+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2E0CeD30d234",priceFeeds:{AUD:"0x062Df9C4efd2030e243ffCc398b652e8b8F95C6f",CAD:"0xACA44ABb8B04D07D883202F99FA5E3c53ed57Fb5",CHF:"0xc76f762CedF0F78a439727861628E0fdfE1e70c2",CNY:"0x04bB437Aa63E098236FA47365f0268547f6EAB32",EUR:"0x73366Fe0AA0Ded304479862808e02506FE556a98",GBP:"0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",ILS:"0x8d5eB34C509261533235b91350d359EdcB969D33",INR:"0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",JPY:"0xD647a6fC9BC6402301583C91decC5989d8Bc382D",KRW:"0x24B820870F726dA9B0D83B0B28a93885061dbF50",MXN:"0x171b16562EA3476F5C61d1b8dad031DbA0768545",NZD:"0xa302a0B8a499fD0f00449df0a490DedE21105955",PHP:"0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",PLN:"0xB34BCE11040702f71c11529D00179B2959BcE6C0",SEK:"0xbd92B4919ae82be8473859295dEF0e778A626302",SGD:"0x8CE3cAc0E6635ce04783709ca3CC4F5fc5304299",THB:"0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",TRY:"0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"},tokenFeeds:{MATIC:"0xAB594600376Ec9fD91F8e885dADF0CE036862dE0"},curveRouterAddress:"0x2a426b3Bb4fa87488387545f15D01d81352732F9"}]},s={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},routers:[{chainId:1,address:"0x4cafd841df0df6da5739f729491887d64ad2794c",timestamp:"2022-12-30T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:1,address:"0x061888246A29fEB9bb3f168CD8589B3Cf4115668",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:5,address:"0x8412D3c11aa605EbaF14D0b6BC7705ab45143Ee8",timestamp:"2022-12-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:10,address:"0xfbA75752D73d3Fb3aA13e7BC7cfD142E73E78a8A",timestamp:"2023-02-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:10,address:"0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:42161,address:"0x334264f4fbb56a84f80df722ba765d210f0cf555",timestamp:"2023-02-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:42161,address:"0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:100,address:"0x448fabd2d16bc48ecdbe68890414de7a1b6348fd",timestamp:"2023-07-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:100,address:"0x5faD44Dc5B63f1717523c340de357ef399FeA0F2",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:137,address:"0x8866DAFa2762346c85098C5b2201fA7CB2dA6100",timestamp:"2023-09-07T00:00:00+00:00",version:"0.2",fee:"0.002"}]},o={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},faucets:[{chainId:5,token:"0x33ca3889bb0032e9c3794b608a242d27e7293353",address:"0xd2bc1d97793763b7262987a67f1945169c763389"},{chainId:5,token:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9",address:"0x5A3380C7d6A05AF3Ce68C939142658C35Efc066d"},{chainId:5,token:"0xeB87E5d9c773d3E802989295147564985B5B358C",address:"0xF47661BCe78194b44675547873ef58Ca8Db9b145"}]},i=[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeBps",type:"uint256"},{internalType:"string",name:"_version",type:"string"},{internalType:"address",name:"_uniswapRouter",type:"address"},{internalType:"address",name:"_curveRouter",type:"address"},{internalType:"address",name:"_wrappedNativeToken",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[],name:"MAX_FEE_BPS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseFeeBps",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"feeBps",type:"uint256"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[],name:"curveRouter",outputs:[{internalType:"contract ICurveRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address[2]",name:"priceFeedsUsed",type:"address[2]"},{internalType:"int256[2]",name:"prices",type:"int256[2]"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeTreasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"address[9]",name:"route",type:"address[9]"},{internalType:"uint256[3][4]",name:"swapParams",type:"uint256[3][4]"},{internalType:"address[4]",name:"factoryAddresses",type:"address[4]"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"}],internalType:"struct HiroRouterV1.HiroCurveParams",name:"params",type:"tuple"}],name:"payWithCurve",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"},{internalType:"enum HiroRouterV1.SwapType",name:"swapType",type:"uint8"}],internalType:"struct HiroRouterV1.HiroUniswapParams",name:"params",type:"tuple"}],name:"payWithUniswap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"sweep",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"uniswapRouter",outputs:[{internalType:"contract ISwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract IWETH9",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],r={.1:[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeDivisor",type:"uint256"},{internalType:"string",name:"_version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address",name:"priceFeed",type:"address"},{internalType:"int256",name:"price",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_memo",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"address",name:"_token",type:"address"},{internalType:"address",name:"_receiver",type:"address"},{internalType:"address",name:"_extraFeeReceiver",type:"address"},{internalType:"uint256",name:"_extraFeeDivisor",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],.2:i,test:i};function d(e,t){return e.major<t.major?-1:e.major>t.major?1:e.minor<t.minor?-1:e.minor>t.minor?1:e.patch<t.patch?-1:e.patch>t.patch?1:0}function c(e,t){var a=e.reduce((function(e,t){return e[t.chainId]||(e[t.chainId]={}),e[t.chainId][t.address]=t,e}),{}),n=t.reduce((function(e,t){var n,s,o=null==(n=a[t.chainId])?void 0:n[t.address];if(o){var i=Object.keys(t).filter((function(e){return"address"!==e&&"chainId"!==e})).filter((function(e){return!((a=t[e])===(n=o[e])||typeof a==typeof n&&Array.isArray(a)&&Array.isArray(n)&&a.every((function(e,t){return n[t]===e})));var a,n}));i.length>0&&(e.changed[t.chainId]||(e.changed[t.chainId]={}),e.changed[t.chainId][t.address]=i)}else e.added.push(t);return e.index[t.chainId]?e.index[t.chainId][t.address]=!0:e.index[t.chainId]=((s={})[t.address]=!0,s),e}),{added:[],changed:{},index:{}}),s=e.reduce((function(e,t){return n.index[t.chainId]&&n.index[t.chainId][t.address]||e.push(t),e}),[]);return{added:n.added,changed:n.changed,removed:s}}function p(e){return s.routers.filter((function(t){return t.chainId===e}))}(e=exports.TokenListTagNames||(exports.TokenListTagNames={})).MAINNET="Mainnet",e.OPTIMISM="Optimism",e.ARBITRUM="Arbitrum",e.AVALANCHE="Avalanche",e.TESTNET="TESTNET",e.STABLECOIN="Stablecoin",e.USD="USD",e.EUR="EUR",e.TOP_10="Top10",e.NATIVE_TOKEN="Native Token",(t=exports.VersionUpgrade||(exports.VersionUpgrade={}))[t.NONE=0]="NONE",t[t.PATCH=1]="PATCH",t[t.MINOR=2]="MINOR",t[t.MAJOR=3]="MAJOR",exports.CURVE_ROUTER_ABI=[{name:"TokenExchange",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"pool",type:"address",indexed:!0},{name:"token_sold",type:"address",indexed:!1},{name:"token_bought",type:"address",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{name:"ExchangeMultiple",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"route",type:"address[9]",indexed:!1},{name:"swap_params",type:"uint256[3][4]",indexed:!1},{name:"pools",type:"address[4]",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"_address_provider",type:"address"},{name:"_calculator",type:"address"},{name:"_weth",type:"address"}],outputs:[]},{stateMutability:"payable",type:"fallback"},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_exclude_pools",type:"address[8]"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_input_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amounts",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amounts",type:"uint256[100]"}],outputs:[{name:"",type:"uint256[100]"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_calculator",inputs:[{name:"_pool",type:"address"}],outputs:[{name:"",type:"address"}]},{stateMutability:"nonpayable",type:"function",name:"update_registry_address",inputs:[],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_calculator",inputs:[{name:"_pool",type:"address"},{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_default_calculator",inputs:[{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"claim_balance",inputs:[{name:"_token",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_killed",inputs:[{name:"_is_killed",type:"bool"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"view",type:"function",name:"registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"factory_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"crypto_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"default_calculator",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"is_killed",inputs:[],outputs:[{name:"",type:"bool"}]}],exports.HIRO_ROUTER_ABIS=r,exports.chainlist=n,exports.diffTokenLists=c,exports.getChain=function(e){return n.chains.find((function(t){return t.chainId===e}))},exports.getFaucetAddress=function(e){return o.faucets.find((function(t){return t.token.toLowerCase()===e.address.toLowerCase()&&t.chainId===e.chainId}))},exports.getLatestRouter=function(e){var t=p(e).sort((function(e,t){return Date.parse(e.timestamp)-Date.parse(t.timestamp)}));return t[t.length-1]},exports.getRouter=function(e,t){return s.routers.find((function(a){return a.chainId===e&&a.version===t}))},exports.getRouters=p,exports.getShortNames=function(){return n.chains.map((function(e){return e.shortName}))},exports.getTokenByAddress=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.address.toLowerCase()===e.toLowerCase()&&(!t||a.chainId===t)})))?n:null},exports.getTokenBySymbol=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.symbol===e&&(!t||a.chainId===t)})))?n:null},exports.getTokens=function(e){return a.tokens.filter((function(t){return t.chainId===e}))},exports.getVersionUpgrade=function(e,t){return t.major>e.major?exports.VersionUpgrade.MAJOR:t.major<e.major?exports.VersionUpgrade.NONE:t.minor>e.minor?exports.VersionUpgrade.MINOR:t.minor<e.minor?exports.VersionUpgrade.NONE:t.patch>e.patch?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.isVersionUpdate=function(e,t){return d(e,t)<0},exports.minVersionBump=function(e,t){var a=c(e,t);return a.removed.length>0?exports.VersionUpgrade.MAJOR:a.added.length>0?exports.VersionUpgrade.MINOR:Object.keys(a.changed).length>0?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.nextVersion=function(e,t){switch(t){case exports.VersionUpgrade.NONE:return e;case exports.VersionUpgrade.MAJOR:return{major:e.major+1,minor:0,patch:0};case exports.VersionUpgrade.MINOR:return{major:e.major,minor:e.minor+1,patch:0};case exports.VersionUpgrade.PATCH:return{major:e.major,minor:e.minor,patch:e.patch+1}}},exports.routerlist=s,exports.tokenlist=a,exports.tokenschema=a,exports.versionComparator=d;
2
2
  //# sourceMappingURL=tokenlists.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.cjs.production.min.js","sources":["../src/types.ts","../src/getVersionUpgrade.ts","../src/abis.ts","../src/versionComparator.ts","../src/diffTokenLists.ts","../src/index.ts","../src/isVersionUpdate.ts","../src/minVersionBump.ts","../src/nextVersion.ts"],"sourcesContent":["type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n"],"names":["TokenListTagNames","VersionUpgrade","HIRO_ROUTER_ABIS","0.1","0.2","HiroRouterV02","test","versionComparator","versionA","versionB","major","minor","patch","diffTokenLists","base","update","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","_indexedBase$tokenInf","changes","Object","keys","filter","s","a","b","Array","isArray","every","el","i","length","changed","added","push","index","removed","list","curr","getRouters","routerlist","routers","needle","chainlist","chains","find","testnetfaucets","faucets","token","sorted","sort","Date","parse","timestamp","version","map","chain","shortName","tokenAddress","tokenlist","tokens","tokenSymbol","symbol","MAJOR","NONE","MINOR","PATCH","baseList","updatedList","diff","bump"],"mappings":"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"}
1
+ {"version":3,"file":"tokenlists.cjs.production.min.js","sources":["../src/types.ts","../src/getVersionUpgrade.ts","../src/abis.ts","../src/versionComparator.ts","../src/diffTokenLists.ts","../src/index.ts","../src/isVersionUpdate.ts","../src/minVersionBump.ts","../src/nextVersion.ts"],"sourcesContent":["type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address.toLowerCase() === tokenAddress.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token.toLowerCase() === tokenInfo.address.toLowerCase() &&\n needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n"],"names":["TokenListTagNames","VersionUpgrade","HIRO_ROUTER_ABIS","0.1","0.2","HiroRouterV02","test","versionComparator","versionA","versionB","major","minor","patch","diffTokenLists","base","update","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","_indexedBase$tokenInf","changes","Object","keys","filter","s","a","b","Array","isArray","every","el","i","length","changed","added","push","index","removed","list","curr","getRouters","routerlist","routers","needle","chainlist","chains","find","testnetfaucets","faucets","token","toLowerCase","sorted","sort","Date","parse","timestamp","version","map","chain","shortName","tokenAddress","tokenlist","tokens","tokenSymbol","symbol","MAJOR","NONE","MINOR","PATCH","baseList","updatedList","diff","bump"],"mappings":"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"}
@@ -833,6 +833,13 @@ var routers = [
833
833
  version: "0.1",
834
834
  fee: "0.002"
835
835
  },
836
+ {
837
+ chainId: 10,
838
+ address: "0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",
839
+ timestamp: "2023-09-01T00:00:00+00:00",
840
+ version: "0.2",
841
+ fee: "0.002"
842
+ },
836
843
  {
837
844
  chainId: 42161,
838
845
  address: "0x334264f4fbb56a84f80df722ba765d210f0cf555",
@@ -2578,7 +2585,7 @@ function getTokenByAddress(tokenAddress, chainId) {
2578
2585
  var _tokenlist$tokens$fin;
2579
2586
 
2580
2587
  return (_tokenlist$tokens$fin = tokenlist.tokens.find(function (token) {
2581
- return token.address === tokenAddress && (!chainId || token.chainId === chainId);
2588
+ return token.address.toLowerCase() === tokenAddress.toLowerCase() && (!chainId || token.chainId === chainId);
2582
2589
  })) != null ? _tokenlist$tokens$fin : null;
2583
2590
  }
2584
2591
  function getTokenBySymbol(tokenSymbol, chainId) {
@@ -2595,7 +2602,7 @@ function getTokens(chainId) {
2595
2602
  }
2596
2603
  function getFaucetAddress(tokenInfo) {
2597
2604
  return testnetfaucets.faucets.find(function (needle) {
2598
- return needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId;
2605
+ return needle.token.toLowerCase() === tokenInfo.address.toLowerCase() && needle.chainId === tokenInfo.chainId;
2599
2606
  });
2600
2607
  }
2601
2608
  function getRouters(chainId) {
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.esm.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC,aAF8C;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"}
1
+ {"version":3,"file":"tokenlists.esm.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address.toLowerCase() === tokenAddress.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token.toLowerCase() === tokenInfo.address.toLowerCase() &&\n needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}\n"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","toLowerCase","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC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"}
package/package.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
2
  "name": "@yodlpay/tokenlists",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Tokenlist typings, schema and lists.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
- "files": ["dist"],
7
+ "files": [
8
+ "dist"
9
+ ],
8
10
  "repository": "https://github.com/yodlpay/tokenlists.git",
9
11
  "author": "YodlPay",
10
12
  "scripts": {
@@ -29,4 +31,4 @@
29
31
  "tsdx": "^0.14.1",
30
32
  "typescript": "^4.8.2"
31
33
  }
32
- }
34
+ }