@velora-dex/widget 0.10.0 → 0.10.2-dev.0

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.
Files changed (114) hide show
  1. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +23 -23
  2. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +1 -1
  3. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  4. package/dist/core/Updaters.d.ts.map +1 -1
  5. package/dist/core/Updaters.js +11 -11
  6. package/dist/core/Updaters.js.map +1 -1
  7. package/dist/core/across/isCrosschainPossible.js +4 -4
  8. package/dist/core/inputs/state/selectedTokenActionsAtom.js +32 -32
  9. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  10. package/dist/core/inputs/state/setTokenByAddressAtom.js +69 -67
  11. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  12. package/dist/core/limit/state/selectedTokenActionsAtom.js +29 -29
  13. package/dist/core/limit/state/selectedTokenAtom.js +5 -5
  14. package/dist/core/state/configAtom.js +2 -2
  15. package/dist/core/state/configAtom.js.map +1 -1
  16. package/dist/core/state/tokenListsAtom.d.ts +2 -0
  17. package/dist/core/state/tokenListsAtom.d.ts.map +1 -0
  18. package/dist/core/state/tokenListsAtom.js +9 -0
  19. package/dist/core/state/tokenListsAtom.js.map +1 -0
  20. package/dist/core/twap/state/selectedTokenActionsAtom.js +29 -29
  21. package/dist/events/getters/limit.js +1 -1
  22. package/dist/events/getters/limit.js.map +1 -1
  23. package/dist/events/getters/otc.js +1 -1
  24. package/dist/events/getters/otc.js.map +1 -1
  25. package/dist/events/getters/swap.js +1 -1
  26. package/dist/events/getters/swap.js.map +1 -1
  27. package/dist/events/getters/twap.js +1 -1
  28. package/dist/events/getters/twap.js.map +1 -1
  29. package/dist/events/getters/widgetState.js +1 -1
  30. package/dist/events/getters/widgetState.js.map +1 -1
  31. package/dist/hooks/batch/useCanBatchTxs.d.ts +0 -1
  32. package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -1
  33. package/dist/hooks/batch/useCanBatchTxs.js +19 -28
  34. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  35. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  36. package/dist/hooks/permit/utils/types.d.ts +1 -1
  37. package/dist/hooks/permit/utils/types.d.ts.map +1 -1
  38. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +4 -4
  39. package/dist/hooks/useSDK.d.ts +3 -1
  40. package/dist/hooks/useSDK.d.ts.map +1 -1
  41. package/dist/hooks/useSDK.js.map +1 -1
  42. package/dist/lib/constants/urls.d.ts +1 -0
  43. package/dist/lib/constants/urls.d.ts.map +1 -1
  44. package/dist/lib/constants/urls.js +1 -1
  45. package/dist/lib/constants/urls.js.map +1 -1
  46. package/dist/lib/utils/index.js +15 -23
  47. package/dist/lib/utils/index.js.map +1 -1
  48. package/dist/lib/web3/wagmi/config.d.ts +0 -5
  49. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  50. package/dist/lib/web3/wagmi/config.js.map +1 -1
  51. package/dist/lib/web3/wagmi/external.js +1 -1
  52. package/dist/lib/web3/wagmi/external.js.map +1 -1
  53. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  54. package/dist/lib/web3/wagmi/switchChain.js +1 -1
  55. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  56. package/dist/tokens/lists/constants.d.ts +0 -8
  57. package/dist/tokens/lists/constants.d.ts.map +1 -1
  58. package/dist/tokens/lists/constants.js +3 -10
  59. package/dist/tokens/lists/constants.js.map +1 -1
  60. package/dist/tokens/lists/download.d.ts +1 -1
  61. package/dist/tokens/lists/download.d.ts.map +1 -1
  62. package/dist/tokens/lists/download.js +5 -13
  63. package/dist/tokens/lists/download.js.map +1 -1
  64. package/dist/tokens/lists/state/effects.d.ts.map +1 -1
  65. package/dist/tokens/lists/state/effects.js +22 -21
  66. package/dist/tokens/lists/state/effects.js.map +1 -1
  67. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +1 -1
  68. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
  69. package/dist/tokens/lists/state/tokenListsStateAtom.js +17 -21
  70. package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
  71. package/dist/tokens/lists/utils.d.ts +1 -2
  72. package/dist/tokens/lists/utils.d.ts.map +1 -1
  73. package/dist/tokens/lists/utils.js +5 -6
  74. package/dist/tokens/lists/utils.js.map +1 -1
  75. package/dist/tokens/queries.d.ts.map +1 -1
  76. package/dist/tokens/queries.js +30 -32
  77. package/dist/tokens/queries.js.map +1 -1
  78. package/dist/tokens/stabeCoins/hooks.d.ts +2 -4
  79. package/dist/tokens/stabeCoins/hooks.d.ts.map +1 -1
  80. package/dist/tokens/stabeCoins/hooks.js +14 -16
  81. package/dist/tokens/stabeCoins/hooks.js.map +1 -1
  82. package/dist/tokens/state/addImportedTokenAtom.d.ts +0 -1
  83. package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
  84. package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
  85. package/dist/tokens/state/allTokensByChainAtom.d.ts.map +1 -1
  86. package/dist/tokens/state/allTokensByChainAtom.js +20 -30
  87. package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
  88. package/dist/tokens/state/apiTokensAtom.d.ts +24 -0
  89. package/dist/tokens/state/apiTokensAtom.d.ts.map +1 -0
  90. package/dist/tokens/state/apiTokensAtom.js +53 -0
  91. package/dist/tokens/state/apiTokensAtom.js.map +1 -0
  92. package/dist/tokens/state/fromListsAtom.js +1 -1
  93. package/dist/tokens/state/fromListsAtom.js.map +1 -1
  94. package/dist/tokens/types.d.ts +0 -1
  95. package/dist/tokens/types.d.ts.map +1 -1
  96. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  97. package/dist/transactions/queries/ensureCallsStatus.js +1 -1
  98. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  99. package/dist/transactions/queries/ensureTxReceipt.js +1 -1
  100. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  101. package/dist/wagmi-register.d.ts +7 -0
  102. package/dist/wagmi-register.d.ts.map +1 -0
  103. package/package.json +2 -2
  104. package/dist/tokens/lists/lists.js +0 -6
  105. package/dist/tokens/lists/lists.js.map +0 -1
  106. package/dist/tokens/lists/lists.json.d.ts +0 -362
  107. package/dist/tokens/stabeCoins/index.d.ts +0 -2
  108. package/dist/tokens/stabeCoins/index.d.ts.map +0 -1
  109. package/dist/tokens/stabeCoins/index.js +0 -6
  110. package/dist/tokens/stabeCoins/index.js.map +0 -1
  111. package/dist/tokens/utils/sets.d.ts +0 -4
  112. package/dist/tokens/utils/sets.d.ts.map +0 -1
  113. package/dist/tokens/utils/sets.js +0 -16
  114. package/dist/tokens/utils/sets.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"switchChain.js","names":["wagmi","wagmiConfig","SupportedChainId","isConnectorWithSafeIframeProvider","switchChain","chainId","connector","isConnected","getAccount","isSafeIframeProvider","setState","prev"],"sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"sourcesContent":["import * as wagmi from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport type { SupportedChainId } from \"./types\";\nimport { isConnectorWithSafeIframeProvider } from \"@/components/web3/ConnectExternalProvider/utils\";\n\nexport async function switchChain({ chainId }: { chainId: SupportedChainId }) {\n const { connector, isConnected } = wagmi.getAccount(wagmiConfig);\n\n // check if connected to Safe iframe provider (whether through safe connector or as external provider)\n const isSafeIframeProvider =\n connector && isConnectorWithSafeIframeProvider(connector);\n\n // wagmi doesn't autoswitch state chainId with syncConnectedChain=false if connected\n if (isConnected) wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n // safe doesn't support programmatic chain switching\n if (!isSafeIframeProvider) return wagmi.switchChain(wagmiConfig, { chainId });\n}\n"],"mappings":";;;;AAKA,eAAsBI,EAAY,EAAEC,cAA0C;CAC5E,IAAM,EAAEC,cAAWC,mBAAgBP,EAAMQ,WAAWP,EAAY,EAG1DQ,IACJH,KAAaH,EAAkCG,EAAU;CAM3D,IAHIC,KAAaN,EAAYS,UAAUC,OAAU;EAAE,GAAGA;EAAMN;EAAS,EAAE,EAGnE,CAACI,GAAsB,OAAOT,EAAMI,YAAYH,GAAa,EAAEI,YAAS,CAAC"}
1
+ {"version":3,"file":"switchChain.js","names":["wagmi","wagmiConfig","SupportedChainId","isConnectorWithSafeIframeProvider","switchChain","chainId","connector","isConnected","getConnection","isSafeIframeProvider","setState","prev"],"sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"sourcesContent":["import * as wagmi from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport type { SupportedChainId } from \"./types\";\nimport { isConnectorWithSafeIframeProvider } from \"@/components/web3/ConnectExternalProvider/utils\";\n\nexport async function switchChain({ chainId }: { chainId: SupportedChainId }) {\n const { connector, isConnected } = wagmi.getConnection(wagmiConfig);\n\n // check if connected to Safe iframe provider (whether through safe connector or as external provider)\n const isSafeIframeProvider =\n connector && isConnectorWithSafeIframeProvider(connector);\n\n // wagmi doesn't autoswitch state chainId with syncConnectedChain=false if connected\n if (isConnected) wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n // safe doesn't support programmatic chain switching\n if (!isSafeIframeProvider) return wagmi.switchChain(wagmiConfig, { chainId });\n}\n"],"mappings":";;;;AAKA,eAAsBI,EAAY,EAAEC,cAA0C;CAC5E,IAAM,EAAEC,cAAWC,mBAAgBP,EAAMQ,cAAcP,EAAY,EAG7DQ,IACJH,KAAaH,EAAkCG,EAAU;CAM3D,IAHIC,KAAaN,EAAYS,UAAUC,OAAU;EAAE,GAAGA;EAAMN;EAAS,EAAE,EAGnE,CAACI,GAAsB,OAAOT,EAAMI,YAAYH,GAAa,EAAEI,YAAS,CAAC"}
@@ -1,10 +1,2 @@
1
- import { TokenListDownloadData } from './types';
2
1
  export declare const defaultTokenLists: string[];
3
- export declare const url2TokenList: Record<string, TokenListDownloadData>;
4
- export declare const urlChain2TokenList: Record<string, TokenListDownloadData>;
5
- export declare const chainId2TokenListURLs: Record<string, {
6
- all: string[];
7
- enabled: string[];
8
- }>;
9
- export declare const FALLBACK_CDN_URL = "https://cdn.velora.xyz/web/token-lists";
10
2
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAerD,eAAO,MAAM,iBAAiB,UAEV,CAAC;AACrB,eAAO,MAAM,aAAa,uCAGzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,uCAG9B,CAAC;AAEF,eAAO,MAAM,qBAAqB;SAEzB,MAAM,EAAE;aAAW,MAAM,EAAE;EAiBnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,2CAA2C,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAA0B,CAAC"}
@@ -1,14 +1,7 @@
1
- import { filterUnique as e, gatherObjectsByProp as t, isValidUrl as n } from "../../lib/utils/index.js";
2
- import r from "./lists.js";
1
+ import { API_TOKENS_LIST_URL as e } from "../state/apiTokensAtom.js";
3
2
  //#region src/tokens/lists/constants.ts
4
- var i = e(r, (e) => [e.url + e.chainId, e.filename + e.chainId]), a = Array.from(new Set(i.map((e) => e.url))).filter(n), o = t(i, (e) => e.url), s = t(i, (e) => `${e.url}@${e.chainId}`), c = t(i, (e) => String(e.chainId), (e, t) => {
5
- let n = t || {
6
- all: [],
7
- enabled: []
8
- };
9
- return e.chainId === "multi" ? n : (n.all.push(e.url), e.onByDefault && n.enabled.push(e.url), n);
10
- }), l = "https://cdn.velora.xyz/web/token-lists";
3
+ var t = [e];
11
4
  //#endregion
12
- export { l as FALLBACK_CDN_URL, c as chainId2TokenListURLs, a as defaultTokenLists, o as url2TokenList, s as urlChain2TokenList };
5
+ export { t as defaultTokenLists };
13
6
 
14
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["filterUnique","gatherObjectsByProp","isValidUrl","TokenListDownloadData","TokenLists","UniqueTokenLists","list","url","chainId","filename","defaultTokenLists","Array","from","Set","map","filter","url2TokenList","urlChain2TokenList","chainId2TokenListURLs","all","enabled","String","accumElem","acc","push","onByDefault","FALLBACK_CDN_URL"],"sources":["../../../src/tokens/lists/constants.ts"],"sourcesContent":["import { filterUnique, gatherObjectsByProp, isValidUrl } from \"@/lib/utils\";\nimport type { TokenListDownloadData } from \"./types\";\n\nimport TokenLists from \"./lists.json\";\n\n// filter out lists with duplicate `url` or `filename` so we don't load or fallback to potentially wrong list\n// which shouldn't happen as long as we keep `lists.json` lists unique.\n\n// In UI it makes sense to skip such malformed duplicate lists, rather than hard break\nconst UniqueTokenLists: TokenListDownloadData[] = filterUnique(\n // have to cast chainId: string to \"multi\"\n TokenLists as TokenListDownloadData[],\n // account for one list being used on multiple chains\n (list) => [list.url + list.chainId, list.filename + list.chainId]\n);\n\nexport const defaultTokenLists = Array.from(\n new Set(UniqueTokenLists.map((list) => list.url)) // URLs only\n).filter(isValidUrl); // validate just in case\nexport const url2TokenList = gatherObjectsByProp<TokenListDownloadData>(\n UniqueTokenLists,\n (list) => list.url\n);\n\nexport const urlChain2TokenList = gatherObjectsByProp<TokenListDownloadData>(\n UniqueTokenLists,\n (list) => `${list.url}@${list.chainId}`\n);\n\nexport const chainId2TokenListURLs = gatherObjectsByProp<\n TokenListDownloadData,\n { all: string[]; enabled: string[] }\n>(\n UniqueTokenLists,\n (list) => String(list.chainId),\n (list, accumElem) => {\n const acc = accumElem || { all: [], enabled: [] };\n // so far only auxiliary stablecoins list is multichain\n if (list.chainId === \"multi\") return acc;\n\n acc.all.push(list.url);\n\n if (list.onByDefault) {\n acc.enabled.push(list.url);\n }\n\n return acc;\n }\n);\n\nexport const FALLBACK_CDN_URL = \"https://cdn.velora.xyz/web/token-lists\";\n"],"mappings":";;;AASA,IAAMK,IAA4CL,EAEhDI,IAECE,MAAS,CAACA,EAAKC,MAAMD,EAAKE,SAASF,EAAKG,WAAWH,EAAKE,QAC3D,CAAC,EAEYE,IAAoBC,MAAMC,KACrC,IAAIC,IAAIR,EAAiBS,KAAKR,MAASA,EAAKC,IAAI,CAAC,CAClD,CAACQ,OAAOb,EAAW,EACPc,IAAgBf,EAC3BI,IACCC,MAASA,EAAKC,IAChB,EAEYU,IAAqBhB,EAChCI,IACCC,MAAS,GAAGA,EAAKC,IAAG,GAAID,EAAKE,UAC/B,EAEYU,IAAwBjB,EAInCI,IACCC,MAASe,OAAOf,EAAKE,QAAQ,GAC7BF,GAAMgB,MAAc;CACnB,IAAMC,IAAMD,KAAa;EAAEH,KAAK,EAAE;EAAEC,SAAS,EAAA;EAAI;CAUjD,OARId,EAAKE,YAAY,UAAgBe,KAErCA,EAAIJ,IAAIK,KAAKlB,EAAKC,IAAI,EAElBD,EAAKmB,eACPF,EAAIH,QAAQI,KAAKlB,EAAKC,IAAI,EAGrBgB;EAEV,EAEYG,IAAmB"}
1
+ {"version":3,"file":"constants.js","names":["API_TOKENS_LIST_URL","defaultTokenLists"],"sources":["../../../src/tokens/lists/constants.ts"],"sourcesContent":["// Default tokens now come from the Velora API (getAllTokens), which the API serves\n// at this endpoint. Exposed publicly via `defaults.tokenLists`.\n\nimport { API_TOKENS_LIST_URL } from \"../state/apiTokensAtom\";\n\n// User-provided token lists (WidgetProps.tokenLists) still download and construct as before.\nexport const defaultTokenLists: string[] = [API_TOKENS_LIST_URL];\n"],"mappings":";;AAMA,IAAaC,IAA8B,CAACD,EAAoB"}
@@ -1,3 +1,3 @@
1
1
  import { TokenList } from '@uniswap/token-lists';
2
- export declare const downloadTokenListDataWithFallback: (listURL: string, signal?: AbortSignal) => Promise<TokenList>;
2
+ export declare const downloadTokenListData: (listURL: string, signal?: AbortSignal) => Promise<TokenList>;
3
3
  //# sourceMappingURL=download.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/download.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,eAAO,MAAM,iCAAiC,GAC5C,SAAS,MAAM,EACf,SAAS,WAAW,KACnB,OAAO,CAAC,SAAS,CA2BnB,CAAC"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/download.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,SAAS,WAAW,KACnB,OAAO,CAAC,SAAS,CAWnB,CAAC"}
@@ -1,18 +1,10 @@
1
- import { FALLBACK_CDN_URL as e, url2TokenList as t } from "./constants.js";
2
- import n from "axios";
1
+ import e from "axios";
3
2
  //#region src/tokens/lists/download.ts
4
- var r = async (r, i) => {
5
- try {
6
- let { data: e } = await n.get(r, { signal: i });
7
- return e.version.major === null && (e.version.major = 0), e.version.minor === null && (e.version.minor = 0), e.version.patch === null && (e.version.patch = 0), e;
8
- } catch (a) {
9
- let { filename: o } = t[r] || {};
10
- if (!o) throw a;
11
- let s = `${e}/${o}.json`, { data: c } = await n.get(s, { signal: i });
12
- return c;
13
- }
3
+ var t = async (t, n) => {
4
+ let { data: r } = await e.get(t, { signal: n });
5
+ return r.version.major === null && (r.version.major = 0), r.version.minor === null && (r.version.minor = 0), r.version.patch === null && (r.version.patch = 0), r;
14
6
  };
15
7
  //#endregion
16
- export { r as downloadTokenListDataWithFallback };
8
+ export { t as downloadTokenListData };
17
9
 
18
10
  //# sourceMappingURL=download.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","names":["axios","TokenList","url2TokenList","FALLBACK_CDN_URL","downloadTokenListDataWithFallback","listURL","signal","AbortSignal","Promise","data","get","version","major","minor","patch","error","filename","url"],"sources":["../../../src/tokens/lists/download.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { TokenList } from \"@uniswap/token-lists\";\n\nimport { url2TokenList, FALLBACK_CDN_URL } from \"./constants\";\n\nexport const downloadTokenListDataWithFallback = async (\n listURL: string,\n signal?: AbortSignal\n): Promise<TokenList> => {\n try {\n // from the direct url\n const { data } = await axios.get<TokenList>(listURL, {\n signal,\n });\n // @ts-expect-error malformed tokenList.version\n if (data.version.major === null) data.version.major = 0; // https://tokens.coingecko.com/xdai/all.json has `null`\n // @ts-expect-error malformed tokenList.version\n if (data.version.minor === null) data.version.minor = 0;\n // @ts-expect-error malformed tokenList.version\n if (data.version.patch === null) data.version.patch = 0;\n return data;\n } catch (error) {\n const { filename } = url2TokenList[listURL] || {};\n\n if (!filename) throw error;\n\n const url = `${FALLBACK_CDN_URL}/${filename}.json`;\n\n // from fallback on CDN\n const { data } = await axios.get<TokenList>(url, {\n signal,\n });\n\n return data;\n }\n};\n"],"mappings":";;;AAKA,IAAaI,IAAoC,OAC/CC,GACAC,MACuB;CACvB,IAAI;EAEF,IAAM,EAAEG,YAAS,MAAMT,EAAMU,IAAeL,GAAS,EACnDC,WACD,CAAC;EAOF,OALIG,EAAKE,QAAQC,UAAU,SAAMH,EAAKE,QAAQC,QAAQ,IAElDH,EAAKE,QAAQE,UAAU,SAAMJ,EAAKE,QAAQE,QAAQ,IAElDJ,EAAKE,QAAQG,UAAU,SAAML,EAAKE,QAAQG,QAAQ,IAC/CL;UACAM,GAAO;EACd,IAAM,EAAEC,gBAAad,EAAcG,MAAY,EAAE;EAEjD,IAAI,CAACW,GAAU,MAAMD;EAErB,IAAME,IAAM,GAAGd,EAAgB,GAAIa,EAAQ,QAGrC,EAAEP,YAAS,MAAMT,EAAMU,IAAeO,GAAK,EAC/CX,WACD,CAAC;EAEF,OAAOG"}
1
+ {"version":3,"file":"download.js","names":["axios","TokenList","downloadTokenListData","listURL","signal","AbortSignal","Promise","data","get","version","major","minor","patch"],"sources":["../../../src/tokens/lists/download.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { TokenList } from \"@uniswap/token-lists\";\n\nexport const downloadTokenListData = async (\n listURL: string,\n signal?: AbortSignal\n): Promise<TokenList> => {\n const { data } = await axios.get<TokenList>(listURL, {\n signal,\n });\n // @ts-expect-error malformed tokenList.version\n if (data.version.major === null) data.version.major = 0; // https://tokens.coingecko.com/xdai/all.json has `null`\n // @ts-expect-error malformed tokenList.version\n if (data.version.minor === null) data.version.minor = 0;\n // @ts-expect-error malformed tokenList.version\n if (data.version.patch === null) data.version.patch = 0;\n return data;\n};\n"],"mappings":";;AAGA,IAAaE,IAAwB,OACnCC,GACAC,MACuB;CACvB,IAAM,EAAEG,YAAS,MAAMP,EAAMQ,IAAeL,GAAS,EACnDC,WACD,CAAC;CAOF,OALIG,EAAKE,QAAQC,UAAU,SAAMH,EAAKE,QAAQC,QAAQ,IAElDH,EAAKE,QAAQE,UAAU,SAAMJ,EAAKE,QAAQE,QAAQ,IAElDJ,EAAKE,QAAQG,UAAU,SAAML,EAAKE,QAAQG,QAAQ,IAC/CL"}
@@ -1 +1 @@
1
- {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/effects.ts"],"names":[],"mappings":"AAiCA,wBAAgB,kBAAkB,SAEjC;AAWD,eAAO,MAAM,wBAAwB,eAEpC,CAAC"}
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/effects.ts"],"names":[],"mappings":"AAkCA,wBAAgB,kBAAkB,SAEjC;AAYD,eAAO,MAAM,wBAAwB,eAEpC,CAAC"}
@@ -1,30 +1,31 @@
1
1
  import { jotaiStore as e, useAtomValue as t } from "../../../core/store.js";
2
2
  import { queryClient as n } from "../../../lib/queryClient.js";
3
- import { constructedTokensByURLAtom as r, tokenListUrlsAtom as i } from "./tokenListsStateAtom.js";
4
- import { produceSingleQueryOptionMin as a } from "../../queries.js";
5
- import { addTokenListsAtom as o } from "./tokenListsActionsAtom.js";
6
- import { atom as s } from "jotai";
7
- import { atomEffect as c } from "jotai-effect";
3
+ import { apiTokensQueryAtom as r } from "../../state/apiTokensAtom.js";
4
+ import { constructedTokensByURLAtom as i, tokenListUrlsAtom as a } from "./tokenListsStateAtom.js";
5
+ import { produceSingleQueryOptionMin as o } from "../../queries.js";
6
+ import { addTokenListsAtom as s } from "./tokenListsActionsAtom.js";
7
+ import { atom as c } from "jotai";
8
+ import { atomEffect as l } from "jotai-effect";
8
9
  //#region src/tokens/lists/state/effects.ts
9
- var l = /* @__PURE__ */ new Set();
10
- async function u(t) {
11
- if (l.has(t)) return;
12
- let r = a(t), i = await n.ensureQueryData(r);
13
- l.add(t), i?.available && e.set(o, [i]);
10
+ var u = /* @__PURE__ */ new Set();
11
+ async function d(t) {
12
+ if (u.has(t)) return;
13
+ let r = o(t), i = await n.ensureQueryData(r);
14
+ u.add(t), i?.available && e.set(s, [i]);
14
15
  }
15
- var d = c((e) => {
16
- e(i).forEach(u);
16
+ var f = l((e) => {
17
+ e(a).forEach(d);
17
18
  });
18
- function f() {
19
- t(d);
19
+ function p() {
20
+ t(f);
20
21
  }
21
- var p = s((e) => {
22
- let t = e(i);
23
- if (t.length === 0) return !1;
24
- let n = e(r);
25
- return t.every((e) => n[e] !== void 0);
26
- }), m = () => t(p);
22
+ var m = c((e) => {
23
+ let t = e(a), { isSuccess: n } = e(r);
24
+ if (t.length === 0) return n;
25
+ let o = e(i);
26
+ return t.every((e) => o[e] !== void 0);
27
+ }), h = () => t(m);
27
28
  //#endregion
28
- export { f as useActivateEffects, m as useAllTokensListsFetched };
29
+ export { p as useActivateEffects, h as useAllTokensListsFetched };
29
30
 
30
31
  //# sourceMappingURL=effects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effects.js","names":["jotaiStore","queryClient","produceSingleQueryOptionMin","atomEffect","addTokenListsAtom","constructedTokensByURLAtom","tokenListUrlsAtom","useAtomValue","atom","addedUrlsSet","Set","addTokenList","url","has","queryOptions","tokenList","ensureQueryData","add","available","set","addTokenListEffect","get","forEach","useActivateEffects","allTokensListsFetchedSuccesfully","tokenListUrls","length","constructedTokensByURL","every","undefined","useAllTokensListsFetched"],"sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport {\n constructedTokensByURLAtom,\n tokenListUrlsAtom,\n} from \"./tokenListsStateAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport { atom } from \"jotai\";\n\nconst addedUrlsSet = new Set<string>();\n\nasync function addTokenList(url: string) {\n // list already in store\n if (addedUrlsSet.has(url)) return;\n\n // fetch token list or get from cache\n const queryOptions = produceSingleQueryOptionMin(url);\n const tokenList = await queryClient.ensureQueryData(queryOptions);\n\n // add url to set\n addedUrlsSet.add(url);\n\n // add to state once per fetched list\n if (tokenList?.available) jotaiStore.set(addTokenListsAtom, [tokenList]);\n}\n\nconst addTokenListEffect = atomEffect((get) => {\n get(tokenListUrlsAtom).forEach(addTokenList);\n});\n\nexport function useActivateEffects() {\n useAtomValue(addTokenListEffect);\n}\n\nconst allTokensListsFetchedSuccesfully = atom<boolean>((get) => {\n const tokenListUrls = get(tokenListUrlsAtom);\n if (tokenListUrls.length === 0) return false;\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n return tokenListUrls.every(\n (url) => constructedTokensByURL[url] !== undefined\n );\n});\n\nexport const useAllTokensListsFetched = () => {\n return useAtomValue(allTokensListsFetchedSuccesfully);\n};\n"],"mappings":";;;;;;;;AAYA,IAAMS,oBAAe,IAAIC,KAAa;AAEtC,eAAeC,EAAaC,GAAa;CAEvC,IAAIH,EAAaI,IAAID,EAAI,EAAE;CAG3B,IAAME,IAAeZ,EAA4BU,EAAI,EAC/CG,IAAY,MAAMd,EAAYe,gBAAgBF,EAAa;CAMjE,AAHAL,EAAaQ,IAAIL,EAAI,EAGjBG,GAAWG,aAAWlB,EAAWmB,IAAIf,GAAmB,CAACW,EAAU,CAAC;;AAG1E,IAAMK,IAAqBjB,GAAYkB,MAAQ;CAC7CA,EAAIf,EAAkB,CAACgB,QAAQX,EAAa;EAC5C;AAEF,SAAOY,IAAA;CACLhB,EAAaa,EAAmB;;AAGlC,IAAMI,IAAmChB,GAAea,MAAQ;CAC9D,IAAMI,IAAgBJ,EAAIf,EAAkB;CAC5C,IAAImB,EAAcC,WAAW,GAAG,OAAO;CACvC,IAAMC,IAAyBN,EAAIhB,EAA2B;CAC9D,OAAOoB,EAAcG,OAClBhB,MAAQe,EAAuBf,OAASiB,KAAAA,EAC1C;EACD,EAEWC,UACJvB,EAAaiB,EAAiC"}
1
+ {"version":3,"file":"effects.js","names":["jotaiStore","queryClient","produceSingleQueryOptionMin","atomEffect","addTokenListsAtom","constructedTokensByURLAtom","tokenListUrlsAtom","useAtomValue","atom","apiTokensQueryAtom","addedUrlsSet","Set","addTokenList","url","has","queryOptions","tokenList","ensureQueryData","add","available","set","addTokenListEffect","get","forEach","useActivateEffects","allTokensListsFetchedSuccesfully","tokenListUrls","isSuccess","length","constructedTokensByURL","every","undefined","useAllTokensListsFetched"],"sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport {\n constructedTokensByURLAtom,\n tokenListUrlsAtom,\n} from \"./tokenListsStateAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport { atom } from \"jotai\";\nimport { apiTokensQueryAtom } from \"@/tokens/state/apiTokensAtom\";\n\nconst addedUrlsSet = new Set<string>();\n\nasync function addTokenList(url: string) {\n // list already in store\n if (addedUrlsSet.has(url)) return;\n\n // fetch token list or get from cache\n const queryOptions = produceSingleQueryOptionMin(url);\n const tokenList = await queryClient.ensureQueryData(queryOptions);\n\n // add url to set\n addedUrlsSet.add(url);\n\n // add to state once per fetched list\n if (tokenList?.available) jotaiStore.set(addTokenListsAtom, [tokenList]);\n}\n\nconst addTokenListEffect = atomEffect((get) => {\n get(tokenListUrlsAtom).forEach(addTokenList);\n});\n\nexport function useActivateEffects() {\n useAtomValue(addTokenListEffect);\n}\n\nconst allTokensListsFetchedSuccesfully = atom<boolean>((get) => {\n const tokenListUrls = get(tokenListUrlsAtom);\n const { isSuccess } = get(apiTokensQueryAtom);\n if (tokenListUrls.length === 0) return isSuccess;\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n return tokenListUrls.every(\n (url) => constructedTokensByURL[url] !== undefined\n );\n});\n\nexport const useAllTokensListsFetched = () => {\n return useAtomValue(allTokensListsFetchedSuccesfully);\n};\n"],"mappings":";;;;;;;;;AAaA,IAAMU,oBAAe,IAAIC,KAAa;AAEtC,eAAeC,EAAaC,GAAa;CAEvC,IAAIH,EAAaI,IAAID,EAAI,EAAE;CAG3B,IAAME,IAAeb,EAA4BW,EAAI,EAC/CG,IAAY,MAAMf,EAAYgB,gBAAgBF,EAAa;CAMjE,AAHAL,EAAaQ,IAAIL,EAAI,EAGjBG,GAAWG,aAAWnB,EAAWoB,IAAIhB,GAAmB,CAACY,EAAU,CAAC;;AAG1E,IAAMK,IAAqBlB,GAAYmB,MAAQ;CAC7CA,EAAIhB,EAAkB,CAACiB,QAAQX,EAAa;EAC5C;AAEF,SAAOY,IAAA;CACLjB,EAAac,EAAmB;;AAGlC,IAAMI,IAAmCjB,GAAec,MAAQ;CAC9D,IAAMI,IAAgBJ,EAAIhB,EAAkB,EACtC,EAAEqB,iBAAcL,EAAIb,EAAmB;CAC7C,IAAIiB,EAAcE,WAAW,GAAG,OAAOD;CACvC,IAAME,IAAyBP,EAAIjB,EAA2B;CAC9D,OAAOqB,EAAcI,OAClBjB,MAAQgB,EAAuBhB,OAASkB,KAAAA,EAC1C;EACD,EAEWC,UACJzB,EAAakB,EAAiC"}
@@ -4,7 +4,7 @@ export declare const tokenListUrlsAtom: import('jotai').Atom<string[]>;
4
4
  Enabled and default token list URLs by chain ID,
5
5
  taking into account any configured lists in the widget config.
6
6
  **/
7
- export declare const enabledAndDefaultTokenURLSAtom: import('jotai').Atom<{
7
+ export declare const enabledTokenURLSAtom: import('jotai').Atom<{
8
8
  1: {
9
9
  all: string[];
10
10
  enabled: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tokenListsStateAtom.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAyBrD,eAAO,MAAM,iBAAiB,gCAQ5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBzC,CAAC;AAEH;;IAEI;AACJ,eAAO,MAAM,6BAA6B;;CAAkC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,0BAA0B,6CASrC,CAAC"}
1
+ {"version":3,"file":"tokenListsStateAtom.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAWrD,eAAO,MAAM,iBAAiB,gCAK5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB/B,CAAC;AAEH;;IAEI;AACJ,eAAO,MAAM,6BAA6B;;CAAkC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,0BAA0B,6CASrC,CAAC"}
@@ -1,34 +1,30 @@
1
- import { isValidUrl as e } from "../../../lib/utils/index.js";
2
- import { tokenListsAtom as t } from "../../../core/state/configAtom.js";
1
+ import { emptyArray as e } from "../../../lib/constants/index.js";
2
+ import { isValidUrl as t } from "../../../lib/utils/index.js";
3
3
  import { isSupportedChainId as n } from "../../../lib/web3/wagmi/utils.js";
4
- import { gatherEnabledAndDefaultUrlsMappingByChainId as r } from "../utils.js";
5
- import { allEnabledChainsAtom as i } from "../../../core/state/enabledChainsAtom.js";
6
- import { atom as a } from "jotai";
4
+ import { allEnabledChainsAtom as r } from "../../../core/state/enabledChainsAtom.js";
5
+ import { gatherEmptyTokenUrlsMappingByChainId as i } from "../utils.js";
6
+ import { enabledTokenListsAtom as a } from "../../../core/state/tokenListsAtom.js";
7
+ import { atom as o } from "jotai";
7
8
  //#region src/tokens/lists/state/tokenListsStateAtom.ts
8
- var o = a((e) => r(e(i))), s = a((t) => {
9
- let n = t(o);
10
- return Object.values(n).flatMap((e) => e.all).filter(e);
11
- }), c = (t) => Array.from(new Set(t)).filter(e), l = a((e) => {
12
- let n = e(t);
13
- return n.length === 0 ? c(e(s)) : c(n);
14
- }), u = a((r) => {
15
- let i = r(t), a = r(o);
16
- if (i.length === 0) return a;
17
- let s = { ...a };
18
- return i.forEach((t) => {
9
+ var s = (e) => Array.from(new Set(e)).filter(t), c = o((t) => {
10
+ let n = t(a);
11
+ return n.length === 0 ? e : s(n);
12
+ }), l = o((e) => {
13
+ let o = e(a), s = i(e(r));
14
+ return o.length === 0 || o.forEach((e) => {
19
15
  Object.keys(s).forEach((r) => {
20
16
  let i = Number(r);
21
- n(i) && e(t) && (s[i].all.includes(t) || s[i].all.push(t), s[i].enabled.includes(t) || s[i].enabled.push(t));
17
+ n(i) && t(e) && (s[i].all.includes(e) || s[i].all.push(e), s[i].enabled.includes(e) || s[i].enabled.push(e));
22
18
  });
23
19
  }), s;
24
- }), d = a({}), f = a((e) => {
25
- let t = e(d);
26
- return e(l).reduce((e, n) => {
20
+ }), u = o({}), d = o((e) => {
21
+ let t = e(u);
22
+ return e(c).reduce((e, n) => {
27
23
  let r = t[n];
28
24
  return r && (e[n] = r), e;
29
25
  }, {});
30
26
  });
31
27
  //#endregion
32
- export { d as allConstructedTokensByURLAtom, f as constructedTokensByURLAtom, u as enabledAndDefaultTokenURLSAtom, l as tokenListUrlsAtom };
28
+ export { u as allConstructedTokensByURLAtom, d as constructedTokensByURLAtom, l as enabledTokenURLSAtom, c as tokenListUrlsAtom };
33
29
 
34
30
  //# sourceMappingURL=tokenListsStateAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenListsStateAtom.js","names":["ConstructedListsByURL","atom","tokenListsAtom","isValidUrl","isSupportedChainId","allEnabledChainsAtom","gatherEnabledAndDefaultUrlsMappingByChainId","enabledAndDefaultUrlsMappingAtom","get","allEnabledChains","defaultListsAtom","enabledAndDefaultTokenURLS","Object","values","flatMap","lists","all","filter","getUniqueValidUrls","urls","Array","from","Set","tokenListUrlsAtom","configuredLists","length","defaultLists","enabledAndDefaultTokenURLSAtom","enabledAndDefault","forEach","url","keys","_chainId","chainId","Number","includes","push","enabled","allConstructedTokensByURLAtom","constructedTokensByURLAtom","constructedLists","tokenListUrls","reduce","acc","tokens"],"sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"sourcesContent":["import type { ConstructedListsByURL } from \"./types\";\nimport { atom } from \"jotai\";\nimport { tokenListsAtom } from \"@/core/state/configAtom\";\nimport { isValidUrl } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { allEnabledChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { gatherEnabledAndDefaultUrlsMappingByChainId } from \"../utils\";\n\nconst enabledAndDefaultUrlsMappingAtom = atom((get) => {\n const allEnabledChains = get(allEnabledChainsAtom);\n return gatherEnabledAndDefaultUrlsMappingByChainId(allEnabledChains);\n});\n\n/**\n * Returns default token list URLs available for enabled chains.\n */\nconst defaultListsAtom = atom<string[]>((get) => {\n const enabledAndDefaultTokenURLS = get(enabledAndDefaultUrlsMappingAtom);\n return Object.values(enabledAndDefaultTokenURLS)\n .flatMap((lists) => lists.all)\n .filter(isValidUrl);\n});\n\nconst getUniqueValidUrls = (urls: string[]) =>\n Array.from(new Set(urls)).filter(isValidUrl);\nexport const tokenListUrlsAtom = atom<string[]>((get) => {\n const configuredLists = get(tokenListsAtom);\n if (configuredLists.length === 0) {\n const defaultLists = get(defaultListsAtom);\n return getUniqueValidUrls(defaultLists);\n }\n\n return getUniqueValidUrls(configuredLists);\n});\n\n/** \n Enabled and default token list URLs by chain ID,\n taking into account any configured lists in the widget config. \n**/\nexport const enabledAndDefaultTokenURLSAtom = atom((get) => {\n const configuredLists = get(tokenListsAtom);\n\n const enabledAndDefaultTokenURLS = get(enabledAndDefaultUrlsMappingAtom);\n if (configuredLists.length === 0) return enabledAndDefaultTokenURLS;\n\n const enabledAndDefault = { ...enabledAndDefaultTokenURLS };\n configuredLists.forEach((url) => {\n Object.keys(enabledAndDefault).forEach((_chainId) => {\n const chainId = Number(_chainId);\n if (!isSupportedChainId(chainId)) return; // Object.keys destroys types\n if (!isValidUrl(url)) return; // skip if provided URL is not valid\n\n // put URL from config into both enabled and all lists\n if (!enabledAndDefault[chainId].all.includes(url))\n enabledAndDefault[chainId].all.push(url);\n if (!enabledAndDefault[chainId].enabled.includes(url))\n enabledAndDefault[chainId].enabled.push(url);\n });\n });\n\n return enabledAndDefault;\n});\n\n/**\n All constructed tokens from all fetched lists during the widget lifecycle.\n **/\nexport const allConstructedTokensByURLAtom = atom<ConstructedListsByURL>({});\n\n/**\n Constructed tokens from currently enabled lists only (from config or defaults).\n**/\nexport const constructedTokensByURLAtom = atom<ConstructedListsByURL>((get) => {\n const constructedLists = get(allConstructedTokensByURLAtom);\n const tokenListUrls = get(tokenListUrlsAtom);\n\n return tokenListUrls.reduce<ConstructedListsByURL>((acc, url) => {\n const tokens = constructedLists[url];\n if (tokens) acc[url] = tokens;\n return acc;\n }, {});\n});\n"],"mappings":";;;;;;;AAQA,IAAMO,IAAmCN,GAAMO,MAEtCF,EADkBE,EAAIH,EACsBI,CAAiB,CACpE,EAKIC,IAAmBT,GAAgBO,MAAQ;CAC/C,IAAMG,IAA6BH,EAAID,EAAiC;CACxE,OAAOK,OAAOC,OAAOF,EAA2B,CAC7CG,SAASC,MAAUA,EAAMC,IAAI,CAC7BC,OAAOd,EAAW;EACrB,EAEIe,KAAsBC,MAC1BC,MAAMC,KAAK,IAAIC,IAAIH,EAAK,CAAC,CAACF,OAAOd,EAAW,EACjCoB,IAAoBtB,GAAgBO,MAAQ;CACvD,IAAMgB,IAAkBhB,EAAIN,EAAe;CAM3C,OALIsB,EAAgBC,WAAW,IAEtBP,EADcV,EAAIE,EACCgB,CAAa,GAGlCR,EAAmBM,EAAgB;EAC1C,EAMWG,IAAiC1B,GAAMO,MAAQ;CAC1D,IAAMgB,IAAkBhB,EAAIN,EAAe,EAErCS,IAA6BH,EAAID,EAAiC;CACxE,IAAIiB,EAAgBC,WAAW,GAAG,OAAOd;CAEzC,IAAMiB,IAAoB,EAAE,GAAGjB,GAA4B;CAe3D,OAdAa,EAAgBK,SAASC,MAAQ;EAC/BlB,OAAOmB,KAAKH,EAAkB,CAACC,SAASG,MAAa;GACnD,IAAMC,IAAUC,OAAOF,EAAS;GAC3B5B,EAAmB6B,EAAQ,IAC3B9B,EAAW2B,EAAI,KAGfF,EAAkBK,GAASjB,IAAImB,SAASL,EAAI,IAC/CF,EAAkBK,GAASjB,IAAIoB,KAAKN,EAAI,EACrCF,EAAkBK,GAASI,QAAQF,SAASL,EAAI,IACnDF,EAAkBK,GAASI,QAAQD,KAAKN,EAAI;IAC9C;GACF,EAEKF;EACP,EAKWU,IAAgCrC,EAA4B,EAAE,CAAC,EAK/DsC,IAA6BtC,GAA6BO,MAAQ;CAC7E,IAAMgC,IAAmBhC,EAAI8B,EAA8B;CAG3D,OAFsB9B,EAAIe,EAEnBkB,CAAcC,QAA+BC,GAAKb,MAAQ;EAC/D,IAAMc,IAASJ,EAAiBV;EAEhC,OADIc,MAAQD,EAAIb,KAAOc,IAChBD;IACN,EAAE,CAAC;EACN"}
1
+ {"version":3,"file":"tokenListsStateAtom.js","names":["ConstructedListsByURL","atom","isValidUrl","isSupportedChainId","allEnabledChainsAtom","gatherEmptyTokenUrlsMappingByChainId","emptyArray","enabledTokenListsAtom","getUniqueValidUrls","urls","Array","from","Set","filter","tokenListUrlsAtom","get","enabledLists","length","enabledTokenURLSAtom","allEnabledChains","result","forEach","url","Object","keys","_chainId","chainId","Number","all","includes","push","enabled","allConstructedTokensByURLAtom","constructedTokensByURLAtom","constructedLists","tokenListUrls","reduce","acc","tokens"],"sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"sourcesContent":["import type { ConstructedListsByURL } from \"./types\";\nimport { atom } from \"jotai\";\nimport { isValidUrl } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { allEnabledChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { gatherEmptyTokenUrlsMappingByChainId } from \"../utils\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { enabledTokenListsAtom } from \"@/core/state/tokenListsAtom\";\n\nconst getUniqueValidUrls = (urls: string[]) =>\n Array.from(new Set(urls)).filter(isValidUrl);\nexport const tokenListUrlsAtom = atom<string[]>((get) => {\n const enabledLists = get(enabledTokenListsAtom);\n if (enabledLists.length === 0) return emptyArray;\n\n return getUniqueValidUrls(enabledLists);\n});\n\n/** \n Enabled and default token list URLs by chain ID,\n taking into account any configured lists in the widget config. \n**/\nexport const enabledTokenURLSAtom = atom((get) => {\n const enabledLists = get(enabledTokenListsAtom);\n\n const allEnabledChains = get(allEnabledChainsAtom);\n const result = gatherEmptyTokenUrlsMappingByChainId(allEnabledChains);\n\n if (enabledLists.length === 0) return result;\n\n enabledLists.forEach((url) => {\n Object.keys(result).forEach((_chainId) => {\n const chainId = Number(_chainId);\n if (!isSupportedChainId(chainId)) return; // Object.keys destroys types\n if (!isValidUrl(url)) return; // skip if provided URL is not valid\n\n // put URL from config into both enabled and all lists\n if (!result[chainId].all.includes(url)) result[chainId].all.push(url);\n if (!result[chainId].enabled.includes(url))\n result[chainId].enabled.push(url);\n });\n });\n\n return result;\n});\n\n/**\n All constructed tokens from all fetched lists during the widget lifecycle.\n **/\nexport const allConstructedTokensByURLAtom = atom<ConstructedListsByURL>({});\n\n/**\n Constructed tokens from currently enabled lists only (from config or defaults).\n**/\nexport const constructedTokensByURLAtom = atom<ConstructedListsByURL>((get) => {\n const constructedLists = get(allConstructedTokensByURLAtom);\n const tokenListUrls = get(tokenListUrlsAtom);\n\n return tokenListUrls.reduce<ConstructedListsByURL>((acc, url) => {\n const tokens = constructedLists[url];\n if (tokens) acc[url] = tokens;\n return acc;\n }, {});\n});\n"],"mappings":";;;;;;;;AASA,IAAMQ,KAAsBC,MAC1BC,MAAMC,KAAK,IAAIC,IAAIH,EAAK,CAAC,CAACI,OAAOX,EAAW,EACjCY,IAAoBb,GAAgBc,MAAQ;CACvD,IAAMC,IAAeD,EAAIR,EAAsB;CAG/C,OAFIS,EAAaC,WAAW,IAAUX,IAE/BE,EAAmBQ,EAAa;EACvC,EAMWE,IAAuBjB,GAAMc,MAAQ;CAChD,IAAMC,IAAeD,EAAIR,EAAsB,EAGzCa,IAASf,EADUU,EAAIX,EACuBe,CAAiB;CAiBrE,OAfIH,EAAaC,WAAW,KAE5BD,EAAaK,SAASC,MAAQ;EAC5BC,OAAOC,KAAKJ,EAAO,CAACC,SAASI,MAAa;GACxC,IAAMC,IAAUC,OAAOF,EAAS;GAC3BtB,EAAmBuB,EAAQ,IAC3BxB,EAAWoB,EAAI,KAGfF,EAAOM,GAASE,IAAIC,SAASP,EAAI,IAAEF,EAAOM,GAASE,IAAIE,KAAKR,EAAI,EAChEF,EAAOM,GAASK,QAAQF,SAASP,EAAI,IACxCF,EAAOM,GAASK,QAAQD,KAAKR,EAAI;IACnC;GACF,EAboCF;EAgBtC,EAKWY,IAAgC/B,EAA4B,EAAE,CAAC,EAK/DgC,IAA6BhC,GAA6Bc,MAAQ;CAC7E,IAAMmB,IAAmBnB,EAAIiB,EAA8B;CAG3D,OAFsBjB,EAAID,EAEnBqB,CAAcC,QAA+BC,GAAKf,MAAQ;EAC/D,IAAMgB,IAASJ,EAAiBZ;EAEhC,OADIgB,MAAQD,EAAIf,KAAOgB,IAChBD;IACN,EAAE,CAAC;EACN"}
@@ -1,7 +1,6 @@
1
1
  import { TokenListUnavailable } from '../types';
2
- export declare const getTokenListPlaceholderName: (listUrl: string, chainId: number) => string | undefined;
3
2
  export declare const constructPlaceholderData: (listURL: string) => TokenListUnavailable;
4
- export declare const gatherEnabledAndDefaultUrlsMappingByChainId: <ChainID extends number>(chainIds: ChainID[]) => { [K in ChainID]: {
3
+ export declare const gatherEmptyTokenUrlsMappingByChainId: <ChainID extends number>(chainIds: ChainID[]) => { [K in ChainID]: {
5
4
  all: string[];
6
5
  enabled: string[];
7
6
  }; };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,SAAS,MAAM,KACd,MAAM,GAAG,SAAkE,CAAC;AAE/E,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,KACd,oBAMF,CAAC;AAEF,eAAO,MAAM,2CAA2C,GACtD,OAAO,SAAS,MAAM,EAEtB,UAAU,OAAO,EAAE,KAClB,GAAG,CAAC,IAAI,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAMxD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,KACd,oBAMF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,OAAO,SAAS,MAAM,EACzE,UAAU,OAAO,EAAE,KAClB,GAAG,CAAC,IAAI,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAMxD,CAAC"}
@@ -1,15 +1,14 @@
1
1
  import { gatherObjectsByProp as e } from "../../lib/utils/index.js";
2
- import { chainId2TokenListURLs as t, urlChain2TokenList as n } from "./constants.js";
3
2
  //#region src/tokens/lists/utils.ts
4
- var r = (e, t) => n[`${e}@${t}`]?.listName, i = (e) => ({
3
+ var t = (e) => ({
5
4
  url: e,
6
5
  available: !1,
7
- name: r(e, 0)
8
- }), a = (n) => e(n, (e) => String(e), (e) => t[e] || {
6
+ name: void 0
7
+ }), n = (t) => e(t, (e) => String(e), () => ({
9
8
  enabled: [],
10
9
  all: []
11
- });
10
+ }));
12
11
  //#endregion
13
- export { i as constructPlaceholderData, a as gatherEnabledAndDefaultUrlsMappingByChainId };
12
+ export { t as constructPlaceholderData, n as gatherEmptyTokenUrlsMappingByChainId };
14
13
 
15
14
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["gatherObjectsByProp","TokenListUnavailable","chainId2TokenListURLs","urlChain2TokenList","getTokenListPlaceholderName","listUrl","chainId","listName","constructPlaceholderData","listURL","url","available","name","gatherEnabledAndDefaultUrlsMappingByChainId","chainIds","ChainID","all","enabled","String"],"sources":["../../../src/tokens/lists/utils.ts"],"sourcesContent":["import { gatherObjectsByProp } from \"@/lib/utils\";\nimport type { TokenListUnavailable } from \"../types\";\nimport { chainId2TokenListURLs, urlChain2TokenList } from \"./constants\";\n\nexport const getTokenListPlaceholderName = (\n listUrl: string,\n chainId: number\n): string | undefined => urlChain2TokenList[`${listUrl}@${chainId}`]?.listName;\n\nexport const constructPlaceholderData = (\n listURL: string\n): TokenListUnavailable => {\n return {\n url: listURL,\n available: false,\n name: getTokenListPlaceholderName(listURL, 0),\n };\n};\n\nexport const gatherEnabledAndDefaultUrlsMappingByChainId = <\n ChainID extends number,\n>(\n chainIds: ChainID[]\n): { [K in ChainID]: { all: string[]; enabled: string[] } } => {\n return gatherObjectsByProp(\n chainIds,\n (chainId) => String(chainId),\n (chainId) => chainId2TokenListURLs[chainId] || { enabled: [], all: [] }\n );\n};\n"],"mappings":";;;AAIA,IAAaI,KACXC,GACAC,MACuBH,EAAmB,GAAGE,EAAO,GAAIC,MAAYC,UAEzDC,KACXC,OAEO;CACLC,KAAKD;CACLE,WAAW;CACXC,MAAMR,EAA4BK,GAAS,EAAC;CAC7C,GAGUI,KAGXC,MAEOd,EACLc,IACCR,MAAYY,OAAOZ,EAAQ,GAC3BA,MAAYJ,EAAsBI,MAAY;CAAEW,SAAS,EAAE;CAAED,KAAK,EAAA;CACrE,CAAC"}
1
+ {"version":3,"file":"utils.js","names":["gatherObjectsByProp","TokenListUnavailable","constructPlaceholderData","listURL","url","available","name","undefined","gatherEmptyTokenUrlsMappingByChainId","chainIds","ChainID","all","enabled","chainId","String"],"sources":["../../../src/tokens/lists/utils.ts"],"sourcesContent":["import { gatherObjectsByProp } from \"@/lib/utils\";\nimport type { TokenListUnavailable } from \"../types\";\n\nexport const constructPlaceholderData = (\n listURL: string\n): TokenListUnavailable => {\n return {\n url: listURL,\n available: false,\n name: undefined,\n };\n};\n\nexport const gatherEmptyTokenUrlsMappingByChainId = <ChainID extends number>(\n chainIds: ChainID[]\n): { [K in ChainID]: { all: string[]; enabled: string[] } } => {\n return gatherObjectsByProp(\n chainIds,\n (chainId) => String(chainId),\n () => ({ enabled: [], all: [] })\n );\n};\n"],"mappings":";;AAGA,IAAaE,KACXC,OAEO;CACLC,KAAKD;CACLE,WAAW;CACXC,MAAMC,KAAAA;CACP,GAGUC,KACXC,MAEOT,EACLS,IACCI,MAAYC,OAAOD,EAAQ,SACrB;CAAED,SAAS,EAAE;CAAED,KAAK,EAAA;CAAI,EAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/tokens/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAShD,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACzD,CAAC;AAiBF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACpE,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,6GAaR;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC1E,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CA6BlD;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACvE,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAOlD;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC3E,UAAU,MAAM,EAAE,EAClB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAAC,EAkBxB,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC5D,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,GACN,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAOvB;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CASvD"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/tokens/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQhD,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACzD,CAAC;AAiBF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACpE,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,6GAaR;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC1E,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CA6BlD;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACvE,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAOlD;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC3E,UAAU,MAAM,EAAE,EAClB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAAC,EAkBxB,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC5D,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,GACN,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAOvB;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CAIvD"}
@@ -1,27 +1,26 @@
1
1
  import { useAtomValue as e } from "../core/store.js";
2
2
  import { isTruthy as t } from "../lib/utils/index.js";
3
3
  import { QUERY_KEY_FETCH_TOKEN_LISTS as n } from "./constants.js";
4
- import { stableCoinsTokenLists as r } from "./stabeCoins/index.js";
5
- import { downloadTokenListDataWithFallback as i } from "./lists/download.js";
6
- import { constructPlaceholderData as a } from "./lists/utils.js";
4
+ import { constructPlaceholderData as r } from "./lists/utils.js";
5
+ import { tokenListUrlsAtom as i } from "./lists/state/tokenListsStateAtom.js";
6
+ import { downloadTokenListData as a } from "./lists/download.js";
7
7
  import { overrideTokenList as o } from "./overrides.js";
8
- import { tokenListUrlsAtom as s } from "./lists/state/tokenListsStateAtom.js";
9
- import { c } from "react-compiler-runtime";
8
+ import { c as s } from "react-compiler-runtime";
10
9
  import "react";
11
- import { replaceEqualDeep as l, useQueries as u } from "@tanstack/react-query";
12
- import { versionComparator as d } from "@uniswap/token-lists";
10
+ import { replaceEqualDeep as c, useQueries as l } from "@tanstack/react-query";
11
+ import { versionComparator as u } from "@uniswap/token-lists";
13
12
  //#region src/tokens/queries.ts
14
- function f(e, t) {
15
- return e ? !e.available || !t.available ? e.available !== t.available : d(t.data.version, e.data.version) <= 0 : !1;
13
+ function d(e, t) {
14
+ return e ? !e.available || !t.available ? e.available !== t.available : u(t.data.version, e.data.version) <= 0 : !1;
16
15
  }
17
- function p(e, n) {
18
- return Array.from(new Set(e)).filter(t).map((e) => h(e, n));
16
+ function f(e, n) {
17
+ return Array.from(new Set(e)).filter(t).map((e) => m(e, n));
19
18
  }
20
- function m(e, t) {
19
+ function p(e, t) {
21
20
  return {
22
21
  queryKey: [n, e],
23
22
  queryFn: async ({ signal: n }) => {
24
- let r = o(await i(e, n), e);
23
+ let r = o(await a(e, n), e);
25
24
  return {
26
25
  url: e,
27
26
  name: r.name,
@@ -32,44 +31,43 @@ function m(e, t) {
32
31
  },
33
32
  staleTime: Infinity,
34
33
  gcTime: Infinity,
35
- structuralSharing: (e, t) => f(e, t) ? e : l(e, t)
34
+ structuralSharing: (e, t) => d(e, t) ? e : c(e, t)
36
35
  };
37
36
  }
38
- function h(e, t) {
37
+ function m(e, t) {
39
38
  return {
40
- ...m(e, t),
39
+ ...p(e, t),
41
40
  notifyOnChangeProps: ["data"],
42
- placeholderData: a(e),
41
+ placeholderData: r(e),
43
42
  refetchOnMount: !1
44
43
  };
45
44
  }
46
- var g = (e, t) => {
47
- let n = c(7), r;
48
- n[0] !== e || n[1] !== t ? (r = p(e, t), n[0] = e, n[1] = t, n[2] = r) : r = n[2];
45
+ var h = (e, t) => {
46
+ let n = s(7), r;
47
+ n[0] !== e || n[1] !== t ? (r = f(e, t), n[0] = e, n[1] = t, n[2] = r) : r = n[2];
49
48
  let i;
50
49
  n[3] === r ? i = n[4] : (i = { queries: r }, n[3] = r, n[4] = i);
51
- let a = u(i), o;
52
- return n[5] === a ? o = n[6] : (o = a.map(b), n[5] = a, n[6] = o), o;
50
+ let a = l(i), o;
51
+ return n[5] === a ? o = n[6] : (o = a.map(y), n[5] = a, n[6] = o), o;
53
52
  };
54
- function _(e, t) {
55
- let n = c(2), r = g(e, t), i;
56
- return n[0] === r ? i = n[1] : (i = r.map(v), n[0] = r, n[1] = i), i;
53
+ function g(e, t) {
54
+ let n = s(2), r = h(e, t), i;
55
+ return n[0] === r ? i = n[1] : (i = r.map(_), n[0] = r, n[1] = i), i;
57
56
  }
58
- function v(e) {
57
+ function _(e) {
59
58
  let { dataOrPlaceholder: t } = e;
60
59
  return t;
61
60
  }
62
- function y() {
63
- let t = c(2), n = e(s), i;
64
- return t[0] === n ? i = t[1] : (i = r.concat(n), t[0] = n, t[1] = i), _(i);
61
+ function v() {
62
+ return g(e(i));
65
63
  }
66
- function b(e) {
64
+ function y(e) {
67
65
  return {
68
- dataOrPlaceholder: e.data || a(e.error?.config?.url || ""),
66
+ dataOrPlaceholder: e.data || r(e.error?.config?.url || ""),
69
67
  result: e
70
68
  };
71
69
  }
72
70
  //#endregion
73
- export { m as produceSingleQueryOptionMin, _ as useFetchLists, y as useFetchTokenLists };
71
+ export { p as produceSingleQueryOptionMin, v as useFetchTokenLists };
74
72
 
75
73
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","names":["replaceEqualDeep","useQueries","UseQueryOptions","UseQueryResult","versionComparator","AxiosError","useMemo","downloadTokenListDataWithFallback","TokenListFetched","QUERY_KEY_FETCH_TOKEN_LISTS","constructPlaceholderData","isTruthy","overrideTokenList","stableCoinsTokenLists","useAtomValue","tokenListUrlsAtom","UseFetchListsResult","dataOrPlaceholder","T","result","isDataEqual","currentData","incomingData","available","isOlderOrEqual","data","version","produceQueriesOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","map","listURL","produceSingleQueryOption","produceSingleQueryOptionMin","queryKey","queryFn","signal","_data","url","name","isArray","tokens","staleTime","Infinity","gcTime","structuralSharing","oldData","newData","notifyOnChangeProps","placeholderData","refetchOnMount","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","t2","_temp","useFetchLists","_temp2","useFetchTokenLists","currentlyEnabledLists","concat","includingStablecoins","error","config"],"sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListDataWithFallback } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { stableCoinsTokenLists } from \"./stabeCoins\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tokenListUrlsAtom } from \"./lists/state/tokenListsStateAtom\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueriesOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // there are duplicate listURLs because in lists.json same list can be present for multiple chains\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) =>\n produceSingleQueryOption<T>(listURL, tag)\n )\n );\n}\n\nexport function produceSingleQueryOptionMin<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListDataWithFallback(listURL, signal);\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n staleTime: Infinity,\n gcTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n };\n}\n\n// adds useQuery options\nexport function produceSingleQueryOption<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n ...produceSingleQueryOptionMin<T>(listURL, tag),\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n };\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({\n queries: produceQueriesOptions(listURLs, tag),\n });\n\n return useMemo<UseFetchListsResult<T>[]>(\n () =>\n queryResults.map((result) => ({\n // provide {url, name} even on error\n dataOrPlaceholder:\n result.data ||\n constructPlaceholderData(result.error?.config?.url || \"\"),\n result,\n })),\n [queryResults]\n );\n};\n\nexport function useFetchLists<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): TokenListFetched<T>[] {\n const queryResults = useFetchListsWithQueryResult(listURLs, tag);\n\n return useMemo(\n () => queryResults.map(({ dataOrPlaceholder }) => dataOrPlaceholder),\n [queryResults]\n );\n}\n\nexport function useFetchTokenLists(): TokenListFetched[] {\n const currentlyEnabledLists = useAtomValue(tokenListUrlsAtom);\n\n // stablecoins list is auxiliary list, always in use\n const includingStablecoins = stableCoinsTokenLists.concat(\n currentlyEnabledLists\n );\n\n return useFetchLists(includingStablecoins);\n}\n"],"mappings":";;;;;;;;;;;;;AAwBA,SAASoB,EACPC,GACAC,GACoC;CASpC,OAPKD,IAED,CAACA,EAAYE,aAAa,CAACD,EAAaC,YACnCF,EAAYE,cAAcD,EAAaC,YAG9CnB,EAAkBkB,EAAaG,KAAKC,SAASL,EAAYI,KAAKC,QAAQ,IAAI,IANnD;;AAU3B,SAAgBC,EACdC,GACAC,GACA;CAIA,OAFuBE,MAAMC,KAAK,IAAIC,IAAIL,EAAS,CAGjDE,CAEGI,OAAOvB,EAAS,CAChBwB,KAAuDC,MACtDC,EAA4BD,GAASP,EACvC,CAAC;;AAIP,SAAgBS,EACdF,GACAP,GACkD;CAClD,OAAO;EACLU,UAAU,CAAC9B,GAA6B2B,EAAQ;EAChDI,SAAS,OAAO,EAAEC,gBAAa;GAG7B,IAAMhB,IAAOb,EAAkB8B,MAFXnC,EAAkC6B,GAASK,EAAO,EAEhCL,EAAQ;GAE9C,OAAO;IACLO,KAAKP;IACLQ,MAAMnB,EAAKmB;IACXnB;IACAI;IAEAN,WAAWQ,MAAMc,QAAQpB,EAAKqB,OAAM;IACrC;;EAEHC,WAAWC;EACXC,QAAQD;EAGRE,oBAAoBC,GAASC,MAC3BhC,EACE+B,GACAC,EACD,GACGD,IACAnD,EAAiBmD,GAASC,EAAO;EACxC;;AAIH,SAAgBf,EACdD,GACAP,GACkD;CAClD,OAAO;EACL,GAAGS,EAA+BF,GAASP,EAAI;EAC/CwB,qBAAqB,CAAC,OAAO;EAC7BC,iBAAiB5C,EAAyB0B,EAAQ;EAClDmB,gBAAgB;EACjB;;AAGH,IAAaC,KAA+B5B,GAAAC,MAAA;CAAA,IAAA4B,IAAAC,EAAA,EAAA,EAAAC;CAAA,AAAAF,EAAA,OAAA7B,KAAA6B,EAAA,OAAA5B,KAO/B8B,IAAAhC,EAAsBC,GAAUC,EAAI,EAAA4B,EAAA,KAAA7B,GAAA6B,EAAA,KAAA5B,GAAA4B,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAA,IAAAG;CAAA,AAAAH,EAAA,OAAAE,IAC9CC,IAAAH,EAAA,MAFCG,IAAA,EAAAC,SACSF,GACV,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAJD,IAAAE,IAAqB7D,EAEnB2D,EAEA,EAACG;CAUI,OAVJN,EAAA,OAAAK,IAUIC,IAAAN,EAAA,MANHM,IAAAD,EAAY3B,IAAK6B,EAMd,EAAAP,EAAA,KAAAK,GAAAL,EAAA,KAAAM,IANHA;;AAWN,SAAOE,EAAArC,GAAAC,GAAA;CAAA,IAAA4B,IAAAC,EAAA,EAAA,EAILI,IAAqBN,EAA6B5B,GAAUC,EAAI,EAAC8B;CAGK,OAHLF,EAAA,OAAAK,IAGKH,IAAAF,EAAA,MAA9DE,IAAAG,EAAY3B,IAAK+B,EAA6C,EAAAT,EAAA,KAAAK,GAAAL,EAAA,KAAAE,IAA9DA;;AAPH,SAAAO,EAAAP,GAAA;CAOqB,IAAA,EAAA1C,yBAAA0C;CAAqB,OAAK1C;;AAKtD,SAAOkD,IAAA;CAAA,IAAAV,IAAAC,EAAA,EAAA,EACLU,IAA8BtD,EAAaC,EAAkB,EAAC4C;CAK5D,OAL4DF,EAAA,OAAAW,IAK7DT,IAAAF,EAAA,MAF4BE,IAAA9C,EAAqBwD,OAChDD,EACD,EAAAX,EAAA,KAAAW,GAAAX,EAAA,KAAAE,IAEMM,EAAcK,EAAqB;;AA3CA,SAAAN,EAAA7C,GAAA;CAAA,OAYR;EAAAF,mBAG1BE,EAAMM,QACNf,EAAyBS,EAAMoD,OAAcC,QAAK7B,OAAzB,GAAgC;EAAAxB;EAE5D"}
1
+ {"version":3,"file":"queries.js","names":["replaceEqualDeep","useQueries","UseQueryOptions","UseQueryResult","versionComparator","AxiosError","useMemo","downloadTokenListData","TokenListFetched","QUERY_KEY_FETCH_TOKEN_LISTS","constructPlaceholderData","isTruthy","overrideTokenList","useAtomValue","tokenListUrlsAtom","UseFetchListsResult","dataOrPlaceholder","T","result","isDataEqual","currentData","incomingData","available","isOlderOrEqual","data","version","produceQueriesOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","map","listURL","produceSingleQueryOption","produceSingleQueryOptionMin","queryKey","queryFn","signal","_data","url","name","isArray","tokens","staleTime","Infinity","gcTime","structuralSharing","oldData","newData","notifyOnChangeProps","placeholderData","refetchOnMount","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","t2","_temp","useFetchLists","_temp2","useFetchTokenLists","currentlyEnabledLists","error","config"],"sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListData } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tokenListUrlsAtom } from \"./lists/state/tokenListsStateAtom\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueriesOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // de-dupe in case the same list URL is configured more than once\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) =>\n produceSingleQueryOption<T>(listURL, tag)\n )\n );\n}\n\nexport function produceSingleQueryOptionMin<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListData(listURL, signal);\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n staleTime: Infinity,\n gcTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n };\n}\n\n// adds useQuery options\nexport function produceSingleQueryOption<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n ...produceSingleQueryOptionMin<T>(listURL, tag),\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n };\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({\n queries: produceQueriesOptions(listURLs, tag),\n });\n\n return useMemo<UseFetchListsResult<T>[]>(\n () =>\n queryResults.map((result) => ({\n // provide {url, name} even on error\n dataOrPlaceholder:\n result.data ||\n constructPlaceholderData(result.error?.config?.url || \"\"),\n result,\n })),\n [queryResults]\n );\n};\n\nexport function useFetchLists<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): TokenListFetched<T>[] {\n const queryResults = useFetchListsWithQueryResult(listURLs, tag);\n\n return useMemo(\n () => queryResults.map(({ dataOrPlaceholder }) => dataOrPlaceholder),\n [queryResults]\n );\n}\n\nexport function useFetchTokenLists(): TokenListFetched[] {\n const currentlyEnabledLists = useAtomValue(tokenListUrlsAtom);\n\n return useFetchLists(currentlyEnabledLists);\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,SAASmB,EACPC,GACAC,GACoC;CASpC,OAPKD,IAED,CAACA,EAAYE,aAAa,CAACD,EAAaC,YACnCF,EAAYE,cAAcD,EAAaC,YAG9ClB,EAAkBiB,EAAaG,KAAKC,SAASL,EAAYI,KAAKC,QAAQ,IAAI,IANnD;;AAU3B,SAAgBC,EACdC,GACAC,GACA;CAIA,OAFuBE,MAAMC,KAAK,IAAIC,IAAIL,EAAS,CAGjDE,CAEGI,OAAOtB,EAAS,CAChBuB,KAAuDC,MACtDC,EAA4BD,GAASP,EACvC,CAAC;;AAIP,SAAgBS,EACdF,GACAP,GACkD;CAClD,OAAO;EACLU,UAAU,CAAC7B,GAA6B0B,EAAQ;EAChDI,SAAS,OAAO,EAAEC,gBAAa;GAG7B,IAAMhB,IAAOZ,EAAkB6B,MAFXlC,EAAsB4B,GAASK,EAAO,EAEpBL,EAAQ;GAE9C,OAAO;IACLO,KAAKP;IACLQ,MAAMnB,EAAKmB;IACXnB;IACAI;IAEAN,WAAWQ,MAAMc,QAAQpB,EAAKqB,OAAM;IACrC;;EAEHC,WAAWC;EACXC,QAAQD;EAGRE,oBAAoBC,GAASC,MAC3BhC,EACE+B,GACAC,EACD,GACGD,IACAlD,EAAiBkD,GAASC,EAAO;EACxC;;AAIH,SAAgBf,EACdD,GACAP,GACkD;CAClD,OAAO;EACL,GAAGS,EAA+BF,GAASP,EAAI;EAC/CwB,qBAAqB,CAAC,OAAO;EAC7BC,iBAAiB3C,EAAyByB,EAAQ;EAClDmB,gBAAgB;EACjB;;AAGH,IAAaC,KAA+B5B,GAAAC,MAAA;CAAA,IAAA4B,IAAAC,EAAA,EAAA,EAAAC;CAAA,AAAAF,EAAA,OAAA7B,KAAA6B,EAAA,OAAA5B,KAO/B8B,IAAAhC,EAAsBC,GAAUC,EAAI,EAAA4B,EAAA,KAAA7B,GAAA6B,EAAA,KAAA5B,GAAA4B,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAA,IAAAG;CAAA,AAAAH,EAAA,OAAAE,IAC9CC,IAAAH,EAAA,MAFCG,IAAA,EAAAC,SACSF,GACV,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAJD,IAAAE,IAAqB5D,EAEnB0D,EAEA,EAACG;CAUI,OAVJN,EAAA,OAAAK,IAUIC,IAAAN,EAAA,MANHM,IAAAD,EAAY3B,IAAK6B,EAMd,EAAAP,EAAA,KAAAK,GAAAL,EAAA,KAAAM,IANHA;;AAWN,SAAOE,EAAArC,GAAAC,GAAA;CAAA,IAAA4B,IAAAC,EAAA,EAAA,EAILI,IAAqBN,EAA6B5B,GAAUC,EAAI,EAAC8B;CAGK,OAHLF,EAAA,OAAAK,IAGKH,IAAAF,EAAA,MAA9DE,IAAAG,EAAY3B,IAAK+B,EAA6C,EAAAT,EAAA,KAAAK,GAAAL,EAAA,KAAAE,IAA9DA;;AAPH,SAAAO,EAAAP,GAAA;CAOqB,IAAA,EAAA1C,yBAAA0C;CAAqB,OAAK1C;;AAKtD,SAAOkD,IAAA;CACyD,OAEvDF,EAFuBnD,EAAaC,EAEtBqD,CAAsB;;AAtCD,SAAAJ,EAAA7C,GAAA;CAAA,OAYR;EAAAF,mBAG1BE,EAAMM,QACNd,EAAyBQ,EAAMkD,OAAcC,QAAK3B,OAAzB,GAAgC;EAAAxB;EAE5D"}
@@ -1,5 +1,3 @@
1
- import { ChainTokensSet, TokenListFetched } from '../types';
2
- export declare function useStableCoinTokenLists(): TokenListFetched<"stablecoin">[];
3
- export declare function useStablecoinSetsByChain(): ChainTokensSet;
4
- export declare function useIsAddressStablecoin(addresses: (string | undefined)[], chainId?: number): boolean;
1
+ import { SupportedChainId } from '../../lib/web3/wagmi/types';
2
+ export declare function useIsAddressStablecoin(addresses: (string | undefined)[], chainId: SupportedChainId): boolean;
5
3
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMjE,wBAAgB,uBAAuB,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAE1E;AAGD,wBAAgB,wBAAwB,IAAI,cAAc,CAIzD;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACjC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAOT"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACjC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAWT"}
@@ -1,21 +1,19 @@
1
- import { stableCoinsTokenLists as e } from "./index.js";
2
- import { useFetchLists as t } from "../queries.js";
3
- import { checkAddressesBelongToChainSet as n, tokenlistsToSetsByChain as r } from "../utils/sets.js";
4
- import { c as i } from "react-compiler-runtime";
5
- import "react";
1
+ import { useAtomValue as e } from "../../core/store.js";
2
+ import { apiTokensByChainAtom as t } from "../state/apiTokensAtom.js";
3
+ import { c as n } from "react-compiler-runtime";
6
4
  //#region src/tokens/stabeCoins/hooks.ts
7
- function a() {
8
- return t(e, "stablecoin");
9
- }
10
- function o() {
11
- let e = i(2), t = a(), n;
12
- return e[0] === t ? n = e[1] : (n = r(t), e[0] = t, e[1] = n), n;
13
- }
14
- function s(e, t) {
15
- let r = i(4), a = o(), s;
16
- return r[0] !== e || r[1] !== t || r[2] !== a ? (s = n(a, e, t), r[0] = e, r[1] = t, r[2] = a, r[3] = s) : s = r[3], s;
5
+ var r = "paraswap_community_stablecoin_lists";
6
+ function i(i, a) {
7
+ let o = n(5), s = e(t)[a]?.addressMap;
8
+ if (!s) return !1;
9
+ let c;
10
+ if (o[0] !== s || o[1] !== i) {
11
+ let e;
12
+ o[3] === s ? e = o[4] : (e = (e) => e ? !!s[e.toLowerCase()]?.sources?.includes(r) : !1, o[3] = s, o[4] = e), c = i.every(e), o[0] = s, o[1] = i, o[2] = c;
13
+ } else c = o[2];
14
+ return c;
17
15
  }
18
16
  //#endregion
19
- export { s as useIsAddressStablecoin };
17
+ export { i as useIsAddressStablecoin };
20
18
 
21
19
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","names":["useMemo","stableCoinsTokenLists","useFetchLists","ChainTokensSet","TokenListFetched","checkAddressesBelongToChainSet","tokenlistsToSetsByChain","useStableCoinTokenLists","useStablecoinSetsByChain","$","_c","lists","t0","useIsAddressStablecoin","addresses","chainId","chainId2StableCoinSets"],"sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { stableCoinsTokenLists } from \".\";\nimport { useFetchLists } from \"../queries\";\nimport type { ChainTokensSet, TokenListFetched } from \"../types\";\nimport {\n checkAddressesBelongToChainSet,\n tokenlistsToSetsByChain,\n} from \"../utils/sets\";\n\nexport function useStableCoinTokenLists(): TokenListFetched<\"stablecoin\">[] {\n return useFetchLists(stableCoinsTokenLists, \"stablecoin\");\n}\n\n// compose stablecoin sets\nexport function useStablecoinSetsByChain(): ChainTokensSet {\n const lists = useStableCoinTokenLists();\n\n return useMemo(() => tokenlistsToSetsByChain(lists), [lists]);\n}\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId?: number\n): boolean {\n const chainId2StableCoinSets = useStablecoinSetsByChain();\n return checkAddressesBelongToChainSet(\n chainId2StableCoinSets,\n addresses,\n chainId\n );\n}\n"],"mappings":";;;;;;AASA,SAAOO,IAAA;CAAA,OACEL,EAAcD,GAAuB,aAAa;;AAI3D,SAAOO,IAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EACLC,IAAcJ,GAAyB,EAACK;CAEW,OAFXH,EAAA,OAAAE,IAEWC,IAAAH,EAAA,MAA9BG,IAAAN,EAAwBK,EAAM,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAG,IAA9BA;;AAGvB,SAAOC,EAAAC,GAAAC,GAAA;CAAA,IAAAN,IAAAC,EAAA,EAAA,EAILM,IAA+BR,GAA0B,EAACI;CAKzD,OALyDH,EAAA,OAAAK,KAAAL,EAAA,OAAAM,KAAAN,EAAA,OAAAO,KACnDJ,IAAAP,EACLW,GACAF,GACAC,EACD,EAAAN,EAAA,KAAAK,GAAAL,EAAA,KAAAM,GAAAN,EAAA,KAAAO,GAAAP,EAAA,KAAAG,KAAAA,IAAAH,EAAA,IAJMG"}
1
+ {"version":3,"file":"hooks.js","names":["useAtomValue","SupportedChainId","apiTokensByChainAtom","STABLECOIN_SOURCE","useIsAddressStablecoin","addresses","chainId","$","_c","apiTokensByChain","addressMap","t0","t1","address","token","toLowerCase","sources","includes","every"],"sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { apiTokensByChainAtom } from \"@/tokens/state/apiTokensAtom\";\n\nconst STABLECOIN_SOURCE = \"paraswap_community_stablecoin_lists\";\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId: SupportedChainId\n): boolean {\n const apiTokensByChain = useAtomValue(apiTokensByChainAtom);\n\n const addressMap = apiTokensByChain[chainId]?.addressMap;\n if (!addressMap) return false;\n\n return addresses.every((address) => {\n if (!address) return false;\n const token = addressMap[address.toLowerCase()];\n return !!token?.sources?.includes(STABLECOIN_SOURCE);\n });\n}\n"],"mappings":";;;;AAIA,IAAMG,IAAoB;AAE1B,SAAOC,EAAAC,GAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAMLE,IAFyBV,EAAaE,EAEnBO,CAAiBH,IAAoBI;CACxD,IAAI,CAACA,GAAU,OAAS;CAAM,IAAAC;CAAA,IAAAJ,EAAA,OAAAG,KAAAH,EAAA,OAAAF,GAAA;EAAA,IAAAO;EAM5BL,AAN4BA,EAAA,OAAAG,IAM7BE,IAAAL,EAAA,MAJsBK,KAAAC,MAChBA,IAEE,CAAC,CADMH,EAAWG,EAAOE,aAAc,GAChCC,SAAmBC,SAACd,EAAkB,GAF/B,IAGtBI,EAAA,KAAAG,GAAAH,EAAA,KAAAK,IAJMD,IAAAN,EAASa,MAAON,EAIrB,EAAAL,EAAA,KAAAG,GAAAH,EAAA,KAAAF,GAAAE,EAAA,KAAAI;QAAAA,IAAAJ,EAAA;CAAA,OAJKI"}
@@ -5,7 +5,6 @@ import { Address } from 'viem';
5
5
  import { SupportedChainId } from '../../lib/web3/wagmi/types';
6
6
  import { ImportTokenReason } from '../../events/types/importToken';
7
7
  type TokenWithSymbol = MarkRequired<Token, "symbol">;
8
- export type OnImportAction = (tokenImported: TokenWithSymbol) => void;
9
8
  export declare const addImportedTokenAtom: import('jotai').WritableAtom<null, [{
10
9
  newToken: TokenWithSymbol;
11
10
  afterAction?: ImportTokenDrawerProps["onConfirmAction"];
@@ -1 +1 @@
1
- {"version":3,"file":"addImportedTokenAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/addImportedTokenAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAKpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,KAAK,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,eAAe,KAAK,IAAI,CAAC;AAEtE,eAAO,MAAM,oBAAoB;cAUjB,eAAe;kBACX,sBAAsB,CAAC,iBAAiB,CAAC;aAC9C,iBAAiB;;;CAuD/B,CAAC;AAKF,eAAO,MAAM,wBAAwB;aAKR,OAAO;aAAW,gBAAgB;;;CA+B9D,CAAC"}
1
+ {"version":3,"file":"addImportedTokenAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/addImportedTokenAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAKpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,KAAK,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAErD,eAAO,MAAM,oBAAoB;cAUjB,eAAe;kBACX,sBAAsB,CAAC,iBAAiB,CAAC;aAC9C,iBAAiB;;;CAuD/B,CAAC;AAKF,eAAO,MAAM,wBAAwB;aAKR,OAAO;aAAW,gBAAgB;;;CA+B9D,CAAC"}