@velora-dex/widget 0.1.2 → 0.1.3

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 (213) hide show
  1. package/dist/components/web3/providers.d.ts +3 -0
  2. package/dist/components/web3/providers.d.ts.map +1 -1
  3. package/dist/components/web3/providers.js +18 -3
  4. package/dist/components/web3/providers.js.map +1 -1
  5. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  6. package/dist/components/widget/AppHeader/Activities/Drawers.js +33 -29
  7. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  8. package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
  9. package/dist/components/widget/AppHeader/Activities/hooks.js +193 -106
  10. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  11. package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
  12. package/dist/components/widget/AppHeader/TradeModeSwitcher.js +67 -42
  13. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  14. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  15. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +207 -191
  16. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  17. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  18. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +10 -3
  19. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  20. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -1
  21. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js +37 -39
  22. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  23. package/dist/components/widget/TokenInput/EmptyInput.d.ts +1 -1
  24. package/dist/components/widget/TokenInput/EmptyInput.d.ts.map +1 -1
  25. package/dist/components/widget/TokenInput/EmptyInput.js +16 -14
  26. package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
  27. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  28. package/dist/components/widget/TokenInput/index.js +92 -91
  29. package/dist/components/widget/TokenInput/index.js.map +1 -1
  30. package/dist/components/widget/TokenSwitcher/TokenSwitcher.d.ts.map +1 -1
  31. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +34 -31
  32. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
  33. package/dist/configurator/Configurator.d.ts.map +1 -1
  34. package/dist/core/Updaters.d.ts.map +1 -1
  35. package/dist/core/Updaters.js +9 -5
  36. package/dist/core/Updaters.js.map +1 -1
  37. package/dist/core/across/utils.d.ts.map +1 -1
  38. package/dist/core/across/utils.js +4 -4
  39. package/dist/core/across/utils.js.map +1 -1
  40. package/dist/core/constants.d.ts +5 -0
  41. package/dist/core/constants.d.ts.map +1 -1
  42. package/dist/core/constants.js +11 -1
  43. package/dist/core/constants.js.map +1 -1
  44. package/dist/core/index.d.ts.map +1 -1
  45. package/dist/core/index.js +191 -120
  46. package/dist/core/index.js.map +1 -1
  47. package/dist/core/inputs/hooks/types.d.ts +1 -1
  48. package/dist/core/inputs/hooks/types.d.ts.map +1 -1
  49. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  50. package/dist/core/inputs/hooks/useTokenFromInputProps.js +36 -43
  51. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  52. package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -1
  53. package/dist/core/inputs/hooks/useTokenSwitcherProps.js +17 -7
  54. package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
  55. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  56. package/dist/core/inputs/hooks/useTokenToInputProps.js +64 -77
  57. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  58. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts +1 -1
  59. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  60. package/dist/core/inputs/state/selectedTokenActionsAtom.js +58 -28
  61. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  62. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  63. package/dist/core/inputs/state/setTokenByAddressAtom.js +10 -9
  64. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  65. package/dist/core/inputs/state/subscriptions.d.ts.map +1 -1
  66. package/dist/core/inputs/state/subscriptions.js +2 -1
  67. package/dist/core/inputs/state/subscriptions.js.map +1 -1
  68. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  69. package/dist/core/limit/state/selectedTokenActionsAtom.js +3 -3
  70. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  71. package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
  72. package/dist/core/limit/useLimitTokenFromInputProps.js +35 -42
  73. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  74. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  75. package/dist/core/limit/useLimitTokenToInputProps.js +9 -20
  76. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  77. package/dist/core/otc/state/selectedTokenActionsAtom.d.ts.map +1 -1
  78. package/dist/core/otc/state/selectedTokenActionsAtom.js +3 -3
  79. package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -1
  80. package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
  81. package/dist/core/otc/useOtcTokenFromInputProps.js +35 -42
  82. package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
  83. package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
  84. package/dist/core/otc/useOtcTokenToInputProps.js +9 -20
  85. package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
  86. package/dist/core/state/configActionsAtom.d.ts +5 -2
  87. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  88. package/dist/core/state/configActionsAtom.js +24 -12
  89. package/dist/core/state/configActionsAtom.js.map +1 -1
  90. package/dist/core/state/configAtom.d.ts +33 -11
  91. package/dist/core/state/configAtom.d.ts.map +1 -1
  92. package/dist/core/state/configAtom.js +15 -1
  93. package/dist/core/state/configAtom.js.map +1 -1
  94. package/dist/core/state/configEffectAtom.d.ts +5 -0
  95. package/dist/core/state/configEffectAtom.d.ts.map +1 -0
  96. package/dist/core/state/configEffectAtom.js +56 -0
  97. package/dist/core/state/configEffectAtom.js.map +1 -0
  98. package/dist/core/state/enabledChainsAtom.d.ts +10 -0
  99. package/dist/core/state/enabledChainsAtom.d.ts.map +1 -0
  100. package/dist/core/state/enabledChainsAtom.js +101 -0
  101. package/dist/core/state/enabledChainsAtom.js.map +1 -0
  102. package/dist/core/state/enabledTradeModesAtom.d.ts +3 -0
  103. package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -0
  104. package/dist/core/state/enabledTradeModesAtom.js +31 -0
  105. package/dist/core/state/enabledTradeModesAtom.js.map +1 -0
  106. package/dist/core/state/tradeModeAtom.d.ts +2 -1
  107. package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
  108. package/dist/core/state/tradeModeAtom.js +9 -2
  109. package/dist/core/state/tradeModeAtom.js.map +1 -1
  110. package/dist/core/subscriptions.d.ts.map +1 -1
  111. package/dist/core/subscriptions.js +0 -2
  112. package/dist/core/subscriptions.js.map +1 -1
  113. package/dist/core/types.d.ts +12 -0
  114. package/dist/core/types.d.ts.map +1 -1
  115. package/dist/hooks/otc/mutations/useFillOrder.js +4 -1
  116. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  117. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +5 -2
  118. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +1 -1
  119. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +19 -2
  120. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
  121. package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
  122. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +41 -39
  123. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
  124. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  125. package/dist/hooks/txs/queries/useAwaitTx.js +11 -7
  126. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  127. package/dist/hooks/useAvailableCrosses.d.ts +3 -2
  128. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  129. package/dist/hooks/useAvailableCrosses.js +23 -20
  130. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  131. package/dist/hooks/useGlobalDeltaEnabled.d.ts +1 -0
  132. package/dist/hooks/useGlobalDeltaEnabled.d.ts.map +1 -1
  133. package/dist/hooks/useGlobalDeltaEnabled.js +22 -17
  134. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  135. package/dist/hooks/useSelectableDestChains.d.ts +14 -0
  136. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -0
  137. package/dist/hooks/useSelectableDestChains.js +91 -0
  138. package/dist/hooks/useSelectableDestChains.js.map +1 -0
  139. package/dist/index.d.ts +2 -0
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +1 -0
  142. package/dist/index.js.map +1 -1
  143. package/dist/lib/constants/delta.js +1 -1
  144. package/dist/lib/constants/delta.js.map +1 -1
  145. package/dist/lib/constants/index.js +1 -1
  146. package/dist/lib/constants/index.js.map +1 -1
  147. package/dist/lib/tradeMode.d.ts +4 -0
  148. package/dist/lib/tradeMode.d.ts.map +1 -0
  149. package/dist/lib/tradeMode.js +8 -0
  150. package/dist/lib/tradeMode.js.map +1 -0
  151. package/dist/lib/utils/atomWithCompare.d.ts +2 -0
  152. package/dist/lib/utils/atomWithCompare.d.ts.map +1 -0
  153. package/dist/lib/utils/atomWithCompare.js +13 -0
  154. package/dist/lib/utils/atomWithCompare.js.map +1 -0
  155. package/dist/lib/utils/index.d.ts +2 -0
  156. package/dist/lib/utils/index.d.ts.map +1 -1
  157. package/dist/lib/utils/index.js +17 -1
  158. package/dist/lib/utils/index.js.map +1 -1
  159. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  160. package/dist/lib/web3/wagmi/config.js +2 -1
  161. package/dist/lib/web3/wagmi/config.js.map +1 -1
  162. package/dist/lib/web3/wagmi/constants.d.ts +2 -1
  163. package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
  164. package/dist/lib/web3/wagmi/constants.js.map +1 -1
  165. package/dist/lib/web3/wagmi/switchChain.d.ts +1169 -0
  166. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -0
  167. package/dist/lib/web3/wagmi/switchChain.js +23 -0
  168. package/dist/lib/web3/wagmi/switchChain.js.map +1 -0
  169. package/dist/lib/web3/wagmi/types.d.ts +2 -2
  170. package/dist/lib/web3/wagmi/types.d.ts.map +1 -1
  171. package/dist/styles.css +3 -0
  172. package/dist/tokens/lists/constants.d.ts +1 -0
  173. package/dist/tokens/lists/constants.d.ts.map +1 -1
  174. package/dist/tokens/lists/constants.js +6 -2
  175. package/dist/tokens/lists/constants.js.map +1 -1
  176. package/dist/tokens/lists/lists.json.d.ts +23 -44
  177. package/dist/tokens/lists/lists.json.js +354 -1
  178. package/dist/tokens/lists/lists.json.js.map +1 -1
  179. package/dist/tokens/lists/state/effects.d.ts +2 -0
  180. package/dist/tokens/lists/state/effects.d.ts.map +1 -0
  181. package/dist/tokens/lists/state/effects.js +25 -0
  182. package/dist/tokens/lists/state/effects.js.map +1 -0
  183. package/dist/tokens/lists/state/tokenListsActionsAtom.js +3 -3
  184. package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
  185. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +16 -7
  186. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
  187. package/dist/tokens/lists/state/tokenListsStateAtom.js +50 -5
  188. package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
  189. package/dist/tokens/lists/types.d.ts.map +1 -1
  190. package/dist/tokens/lists/utils.js +1 -1
  191. package/dist/tokens/queries.d.ts +4 -2
  192. package/dist/tokens/queries.d.ts.map +1 -1
  193. package/dist/tokens/queries.js +25 -15
  194. package/dist/tokens/queries.js.map +1 -1
  195. package/dist/tokens/state/fromListsAtom.js +4 -4
  196. package/dist/tokens/state/fromListsAtom.js.map +1 -1
  197. package/dist/transactions/queries/ensureTxReceipt.d.ts +3 -2
  198. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  199. package/dist/transactions/queries/ensureTxReceipt.js +26 -6
  200. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  201. package/dist/transactions/state/hooks/useTransactions.d.ts +2 -0
  202. package/dist/transactions/state/hooks/useTransactions.d.ts.map +1 -1
  203. package/dist/transactions/state/hooks/useTransactions.js +59 -1
  204. package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
  205. package/package.json +5 -4
  206. package/dist/tokens/lists/hooks.d.ts +0 -2
  207. package/dist/tokens/lists/hooks.d.ts.map +0 -1
  208. package/dist/tokens/lists/hooks.js +0 -26
  209. package/dist/tokens/lists/hooks.js.map +0 -1
  210. package/dist/tokens/lists/state/observer.d.ts +0 -2
  211. package/dist/tokens/lists/state/observer.d.ts.map +0 -1
  212. package/dist/tokens/lists/state/observer.js +0 -18
  213. package/dist/tokens/lists/state/observer.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { jotaiStore } from '../../../core/inputs/state/store.js';
2
+ import { queryClient } from '../../../lib/queryClient.js';
3
+ import { produceSingleQueryOptionMin } from '../../queries.js';
4
+ import { atomEffect } from 'jotai-effect';
5
+ import { addTokenListsAtom } from './tokenListsActionsAtom.js';
6
+ import { tokenListUrlsAtom } from './tokenListsStateAtom.js';
7
+ import { useAtomValue } from 'jotai';
8
+
9
+ const addedUrlsSet = /* @__PURE__ */ new Set();
10
+ async function addTokenList(url) {
11
+ if (addedUrlsSet.has(url)) return;
12
+ const queryOptions = produceSingleQueryOptionMin(url);
13
+ const tokenList = await queryClient.ensureQueryData(queryOptions);
14
+ addedUrlsSet.add(url);
15
+ if (tokenList?.available) jotaiStore.set(addTokenListsAtom, [tokenList]);
16
+ }
17
+ const addTokenListEffect = atomEffect((get) => {
18
+ get(tokenListUrlsAtom).forEach(addTokenList);
19
+ });
20
+ function useActivateEffects() {
21
+ useAtomValue(addTokenListEffect);
22
+ }
23
+
24
+ export { useActivateEffects };
25
+ //# sourceMappingURL=effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.js","sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/inputs/state/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport { tokenListUrlsAtom } from \"./tokenListsStateAtom\";\nimport { useAtomValue } 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"],"names":["addedUrlsSet","Set","addTokenList","url","has","queryOptions","produceSingleQueryOptionMin","tokenList","queryClient","ensureQueryData","add","available","jotaiStore","set","addTokenListsAtom","addTokenListEffect","atomEffect","get","tokenListUrlsAtom","forEach","useActivateEffects","useAtomValue"],"mappings":";;;;;;;;AAQA,MAAMA,YAAAA,uBAAmBC,GAAAA,EAAY;AAErC,eAAeC,aAAaC,GAAAA,EAAa;AAEvC,EAAA,IAAIH,YAAAA,CAAaI,GAAAA,CAAID,GAAG,CAAA,EAAG;AAG3B,EAAA,MAAME,YAAAA,GAAeC,4BAA4BH,GAAG,CAAA;AACpD,EAAA,MAAMI,SAAAA,GAAY,MAAMC,WAAAA,CAAYC,eAAAA,CAAgBJ,YAAY,CAAA;AAGhEL,EAAAA,YAAAA,CAAaU,IAAIP,GAAG,CAAA;AAGpB,EAAA,IAAII,WAAWI,SAAAA,EAAWC,UAAAA,CAAWC,IAAIC,iBAAAA,EAAmB,CAACP,SAAS,CAAC,CAAA;AACzE;AAEA,MAAMQ,kBAAAA,GAAqBC,WAAYC,CAAAA,GAAAA,KAAQ;AAC7CA,EAAAA,GAAAA,CAAIC,iBAAiB,CAAA,CAAEC,OAAAA,CAAQjB,YAAY,CAAA;AAC7C,CAAC,CAAA;AAEM,SAAAkB,kBAAAA,GAAA;AACLC,EAAAA,YAAAA,CAAAN,kBAA+B,CAAA;AAAC;;;;"}
@@ -2,11 +2,11 @@ import { filterInvalidTokenAddress } from '../../../lib/utils/index.js';
2
2
  import { constructTokenFromTokenInfoFactory } from '../../constructor.js';
3
3
  import { versionComparator } from '@uniswap/token-lists';
4
4
  import { atom } from 'jotai';
5
- import { constructedTokensByURLAtom } from './tokenListsStateAtom.js';
5
+ import { allConstructedTokensByURLAtom } from './tokenListsStateAtom.js';
6
6
  import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
7
7
 
8
8
  const addTokenListsAtom = atom(null, (get, set, fetchedLists) => {
9
- const constructedTokensByURL = get(constructedTokensByURLAtom);
9
+ const constructedTokensByURL = get(allConstructedTokensByURLAtom);
10
10
  const updatedLists = {};
11
11
  fetchedLists.forEach((fetchedList) => {
12
12
  const {
@@ -26,7 +26,7 @@ const addTokenListsAtom = atom(null, (get, set, fetchedLists) => {
26
26
  list: constructedTokens
27
27
  };
28
28
  });
29
- set(constructedTokensByURLAtom, (prevState) => ({
29
+ set(allConstructedTokensByURLAtom, (prevState) => ({
30
30
  ...prevState,
31
31
  ...updatedLists
32
32
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"tokenListsActionsAtom.js","sources":["../../../../src/tokens/lists/state/tokenListsActionsAtom.ts"],"sourcesContent":["import { filterInvalidTokenAddress } from \"@/lib/utils\";\nimport { constructTokenFromTokenInfoFactory } from \"@/tokens/constructor\";\nimport type {\n TokenInfoWithSupportedChainId,\n TokenListCompiled,\n} from \"@/tokens/types\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport { atom } from \"jotai\";\nimport { constructedTokensByURLAtom } from \"./tokenListsStateAtom\";\nimport type { ConstructedListsByURL } from \"./types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\n// set(addTokenListsAtom) = fetchedLists => set(constructedTokensByURLAtom, from fetchedLists)\nexport const addTokenListsAtom = atom(\n null,\n (get, set, fetchedLists: TokenListCompiled[]) => {\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n\n const updatedLists: ConstructedListsByURL = {};\n\n fetchedLists.forEach((fetchedList) => {\n const {\n url,\n data: { version },\n } = fetchedList;\n\n const prevList = constructedTokensByURL[url];\n\n // if current version in state >= incoming version, skip\n if (prevList && versionComparator(prevList.version, version) >= 0) return;\n\n const tokenConstructor = constructTokenFromTokenInfoFactory(fetchedList);\n\n const constructedTokens = fetchedList.data.tokens\n .filter(\n (token): token is TokenInfoWithSupportedChainId =>\n filterInvalidTokenAddress({ address: token.address }) &&\n isSupportedChainId(token.chainId)\n )\n .map(tokenConstructor);\n\n updatedLists[url] = {\n version,\n list: constructedTokens,\n };\n });\n\n set(constructedTokensByURLAtom, (prevState) => ({\n ...prevState,\n ...updatedLists,\n }));\n }\n);\n"],"names":["addTokenListsAtom","atom","get","set","fetchedLists","constructedTokensByURL","constructedTokensByURLAtom","updatedLists","forEach","fetchedList","url","data","version","prevList","versionComparator","tokenConstructor","constructTokenFromTokenInfoFactory","constructedTokens","tokens","filter","token","filterInvalidTokenAddress","address","isSupportedChainId","chainId","map","list","prevState"],"mappings":";;;;;;;AAaO,MAAMA,oBAAoBC,IAAAA,CAC/B,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKC,YAAAA,KAAsC;AAC/C,EAAA,MAAMC,sBAAAA,GAAyBH,IAAII,0BAA0B,CAAA;AAE7D,EAAA,MAAMC,eAAsC,EAAC;AAE7CH,EAAAA,YAAAA,CAAaI,QAASC,CAAAA,WAAAA,KAAgB;AACpC,IAAA,MAAM;AAAA,MACJC,GAAAA;AAAAA,MACAC,IAAAA,EAAM;AAAA,QAAEC;AAAAA;AAAQ,KAClB,GAAIH,WAAAA;AAEJ,IAAA,MAAMI,QAAAA,GAAWR,uBAAuBK,GAAG,CAAA;AAG3C,IAAA,IAAIG,YAAYC,iBAAAA,CAAkBD,QAAAA,CAASD,OAAAA,EAASA,OAAO,KAAK,CAAA,EAAG;AAEnE,IAAA,MAAMG,gBAAAA,GAAmBC,mCAAmCP,WAAW,CAAA;AAEvE,IAAA,MAAMQ,oBAAoBR,WAAAA,CAAYE,IAAAA,CAAKO,OACxCC,MAAAA,CACC,CAACC,UACCC,yBAAAA,CAA0B;AAAA,MAAEC,SAASF,KAAAA,CAAME;AAAAA,KAAS,KACpDC,kBAAAA,CAAmBH,KAAAA,CAAMI,OAAO,CACpC,CAAA,CACCC,IAAIV,gBAAgB,CAAA;AAEvBR,IAAAA,YAAAA,CAAaG,GAAG,CAAA,GAAI;AAAA,MAClBE,OAAAA;AAAAA,MACAc,IAAAA,EAAMT;AAAAA,KACR;AAAA,EACF,CAAC,CAAA;AAEDd,EAAAA,GAAAA,CAAIG,4BAA6BqB,CAAAA,SAAAA,MAAe;AAAA,IAC9C,GAAGA,SAAAA;AAAAA,IACH,GAAGpB;AAAAA,GACL,CAAE,CAAA;AACJ,CACF;;;;"}
1
+ {"version":3,"file":"tokenListsActionsAtom.js","sources":["../../../../src/tokens/lists/state/tokenListsActionsAtom.ts"],"sourcesContent":["import { filterInvalidTokenAddress } from \"@/lib/utils\";\nimport { constructTokenFromTokenInfoFactory } from \"@/tokens/constructor\";\nimport type {\n TokenInfoWithSupportedChainId,\n TokenListCompiled,\n} from \"@/tokens/types\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport { atom } from \"jotai\";\nimport { allConstructedTokensByURLAtom } from \"./tokenListsStateAtom\";\nimport type { ConstructedListsByURL } from \"./types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\n// set(addTokenListsAtom) = fetchedLists => set(constructedTokensByURLAtom, from fetchedLists)\nexport const addTokenListsAtom = atom(\n null,\n (get, set, fetchedLists: TokenListCompiled[]) => {\n const constructedTokensByURL = get(allConstructedTokensByURLAtom);\n\n const updatedLists: ConstructedListsByURL = {};\n\n fetchedLists.forEach((fetchedList) => {\n const {\n url,\n data: { version },\n } = fetchedList;\n\n const prevList = constructedTokensByURL[url];\n\n // if current version in state >= incoming version, skip\n if (prevList && versionComparator(prevList.version, version) >= 0) return;\n\n const tokenConstructor = constructTokenFromTokenInfoFactory(fetchedList);\n\n const constructedTokens = fetchedList.data.tokens\n .filter(\n (token): token is TokenInfoWithSupportedChainId =>\n filterInvalidTokenAddress({ address: token.address }) &&\n isSupportedChainId(token.chainId)\n )\n .map(tokenConstructor);\n\n updatedLists[url] = {\n version,\n list: constructedTokens,\n };\n });\n\n set(allConstructedTokensByURLAtom, (prevState) => ({\n ...prevState,\n ...updatedLists,\n }));\n }\n);\n"],"names":["addTokenListsAtom","atom","get","set","fetchedLists","constructedTokensByURL","allConstructedTokensByURLAtom","updatedLists","forEach","fetchedList","url","data","version","prevList","versionComparator","tokenConstructor","constructTokenFromTokenInfoFactory","constructedTokens","tokens","filter","token","filterInvalidTokenAddress","address","isSupportedChainId","chainId","map","list","prevState"],"mappings":";;;;;;;AAaO,MAAMA,oBAAoBC,IAAAA,CAC/B,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKC,YAAAA,KAAsC;AAC/C,EAAA,MAAMC,sBAAAA,GAAyBH,IAAII,6BAA6B,CAAA;AAEhE,EAAA,MAAMC,eAAsC,EAAC;AAE7CH,EAAAA,YAAAA,CAAaI,QAASC,CAAAA,WAAAA,KAAgB;AACpC,IAAA,MAAM;AAAA,MACJC,GAAAA;AAAAA,MACAC,IAAAA,EAAM;AAAA,QAAEC;AAAAA;AAAQ,KAClB,GAAIH,WAAAA;AAEJ,IAAA,MAAMI,QAAAA,GAAWR,uBAAuBK,GAAG,CAAA;AAG3C,IAAA,IAAIG,YAAYC,iBAAAA,CAAkBD,QAAAA,CAASD,OAAAA,EAASA,OAAO,KAAK,CAAA,EAAG;AAEnE,IAAA,MAAMG,gBAAAA,GAAmBC,mCAAmCP,WAAW,CAAA;AAEvE,IAAA,MAAMQ,oBAAoBR,WAAAA,CAAYE,IAAAA,CAAKO,OACxCC,MAAAA,CACC,CAACC,UACCC,yBAAAA,CAA0B;AAAA,MAAEC,SAASF,KAAAA,CAAME;AAAAA,KAAS,KACpDC,kBAAAA,CAAmBH,KAAAA,CAAMI,OAAO,CACpC,CAAA,CACCC,IAAIV,gBAAgB,CAAA;AAEvBR,IAAAA,YAAAA,CAAaG,GAAG,CAAA,GAAI;AAAA,MAClBE,OAAAA;AAAAA,MACAc,IAAAA,EAAMT;AAAAA,KACR;AAAA,EACF,CAAC,CAAA;AAEDd,EAAAA,GAAAA,CAAIG,+BAAgCqB,CAAAA,SAAAA,MAAe;AAAA,IACjD,GAAGA,SAAAA;AAAAA,IACH,GAAGpB;AAAAA,GACL,CAAE,CAAA;AACJ,CACF;;;;"}
@@ -1,5 +1,10 @@
1
- import { ConstructedListsByURL, TokenListsStateByChain } from './types';
2
- export declare const EnabledAndDefaultTokenURLS: {
1
+ import { ConstructedListsByURL } from './types';
2
+ export declare const tokenListUrlsAtom: import('jotai').Atom<string[]>;
3
+ /**
4
+ Enabled and default token list URLs by chain ID,
5
+ taking into account any configured lists in the widget config.
6
+ **/
7
+ export declare const enabledAndDefaultTokenURLSAtom: import('jotai').Atom<{
3
8
  1: {
4
9
  all: string[];
5
10
  enabled: string[];
@@ -40,11 +45,15 @@ export declare const EnabledAndDefaultTokenURLS: {
40
45
  all: string[];
41
46
  enabled: string[];
42
47
  };
43
- };
44
- export declare const tokenListsAtom: import('jotai').PrimitiveAtom<TokenListsStateByChain> & {
45
- init: TokenListsStateByChain;
46
- };
47
- export declare const constructedTokensByURLAtom: import('jotai').PrimitiveAtom<ConstructedListsByURL> & {
48
+ }>;
49
+ /**
50
+ All constructed tokens from all fetched lists during the widget lifecycle.
51
+ **/
52
+ export declare const allConstructedTokensByURLAtom: import('jotai').PrimitiveAtom<ConstructedListsByURL> & {
48
53
  init: ConstructedListsByURL;
49
54
  };
55
+ /**
56
+ Constructed tokens from currently enabled lists only (from config or defaults).
57
+ **/
58
+ export declare const constructedTokensByURLAtom: import('jotai').Atom<ConstructedListsByURL>;
50
59
  //# sourceMappingURL=tokenListsStateAtom.d.ts.map
@@ -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,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAK7E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACyB,CAAC;AAEjE,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF,eAAO,MAAM,0BAA0B;;CAAkC,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;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,10 +1,55 @@
1
1
  import { atom } from 'jotai';
2
+ import { tokenListsAtom } from '../../../core/state/configAtom.js';
3
+ import { isValidUrl } from '../../../lib/utils/index.js';
4
+ import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
5
+ import { allEnabledChainsAtom } from '../../../core/state/enabledChainsAtom.js';
2
6
  import { gatherEnabledAndDefaultUrlsMappingByChainId } from '../utils.js';
3
- import { supportedChainIds } from '../../../lib/web3/wagmi/constants.js';
4
7
 
5
- const EnabledAndDefaultTokenURLS = gatherEnabledAndDefaultUrlsMappingByChainId(supportedChainIds);
6
- const tokenListsAtom = atom(EnabledAndDefaultTokenURLS);
7
- const constructedTokensByURLAtom = atom({});
8
+ const enabledAndDefaultUrlsMappingAtom = atom((get) => {
9
+ const allEnabledChains = get(allEnabledChainsAtom);
10
+ return gatherEnabledAndDefaultUrlsMappingByChainId(allEnabledChains);
11
+ });
12
+ const defaultListsAtom = atom((get) => {
13
+ const enabledAndDefaultTokenURLS = get(enabledAndDefaultUrlsMappingAtom);
14
+ return Object.values(enabledAndDefaultTokenURLS).flatMap((lists) => lists.all).filter(isValidUrl);
15
+ });
16
+ const getUniqueValidUrls = (urls) => Array.from(new Set(urls)).filter(isValidUrl);
17
+ const tokenListUrlsAtom = atom((get) => {
18
+ const configuredLists = get(tokenListsAtom);
19
+ if (configuredLists.length === 0) {
20
+ const defaultLists = get(defaultListsAtom);
21
+ return getUniqueValidUrls(defaultLists);
22
+ }
23
+ return getUniqueValidUrls(configuredLists);
24
+ });
25
+ const enabledAndDefaultTokenURLSAtom = atom((get) => {
26
+ const configuredLists = get(tokenListsAtom);
27
+ const enabledAndDefaultTokenURLS = get(enabledAndDefaultUrlsMappingAtom);
28
+ if (configuredLists.length === 0) return enabledAndDefaultTokenURLS;
29
+ const enabledAndDefault = {
30
+ ...enabledAndDefaultTokenURLS
31
+ };
32
+ configuredLists.forEach((url) => {
33
+ Object.keys(enabledAndDefault).forEach((_chainId) => {
34
+ const chainId = Number(_chainId);
35
+ if (!isSupportedChainId(chainId)) return;
36
+ if (!isValidUrl(url)) return;
37
+ if (!enabledAndDefault[chainId].all.includes(url)) enabledAndDefault[chainId].all.push(url);
38
+ if (!enabledAndDefault[chainId].enabled.includes(url)) enabledAndDefault[chainId].enabled.push(url);
39
+ });
40
+ });
41
+ return enabledAndDefault;
42
+ });
43
+ const allConstructedTokensByURLAtom = atom({});
44
+ const constructedTokensByURLAtom = atom((get) => {
45
+ const constructedLists = get(allConstructedTokensByURLAtom);
46
+ const tokenListUrls = get(tokenListUrlsAtom);
47
+ return tokenListUrls.reduce((acc, url) => {
48
+ const tokens = constructedLists[url];
49
+ if (tokens) acc[url] = tokens;
50
+ return acc;
51
+ }, {});
52
+ });
8
53
 
9
- export { EnabledAndDefaultTokenURLS, constructedTokensByURLAtom, tokenListsAtom };
54
+ export { allConstructedTokensByURLAtom, constructedTokensByURLAtom, enabledAndDefaultTokenURLSAtom, tokenListUrlsAtom };
10
55
  //# sourceMappingURL=tokenListsStateAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenListsStateAtom.js","sources":["../../../../src/tokens/lists/state/tokenListsStateAtom.ts"],"sourcesContent":["import type { ConstructedListsByURL, TokenListsStateByChain } from \"./types\";\nimport { atom } from \"jotai\";\nimport { gatherEnabledAndDefaultUrlsMappingByChainId } from \"../utils\";\nimport { supportedChainIds } from \"@/lib/web3/wagmi/constants\";\n\nexport const EnabledAndDefaultTokenURLS =\n gatherEnabledAndDefaultUrlsMappingByChainId(supportedChainIds);\n\nexport const tokenListsAtom = atom<TokenListsStateByChain>(\n EnabledAndDefaultTokenURLS\n);\n\nexport const constructedTokensByURLAtom = atom<ConstructedListsByURL>({});\n"],"names":["EnabledAndDefaultTokenURLS","gatherEnabledAndDefaultUrlsMappingByChainId","supportedChainIds","tokenListsAtom","atom","constructedTokensByURLAtom"],"mappings":";;;;AAKO,MAAMA,0BAAAA,GACXC,4CAA4CC,iBAAiB;AAExD,MAAMC,cAAAA,GAAiBC,KAC5BJ,0BACF;AAEO,MAAMK,0BAAAA,GAA6BD,IAAAA,CAA4B,EAAE;;;;"}
1
+ {"version":3,"file":"tokenListsStateAtom.js","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"],"names":["enabledAndDefaultUrlsMappingAtom","atom","get","allEnabledChains","allEnabledChainsAtom","gatherEnabledAndDefaultUrlsMappingByChainId","defaultListsAtom","enabledAndDefaultTokenURLS","Object","values","flatMap","lists","all","filter","isValidUrl","getUniqueValidUrls","urls","Array","from","Set","tokenListUrlsAtom","configuredLists","tokenListsAtom","length","defaultLists","enabledAndDefaultTokenURLSAtom","enabledAndDefault","forEach","url","keys","_chainId","chainId","Number","isSupportedChainId","includes","push","enabled","allConstructedTokensByURLAtom","constructedTokensByURLAtom","constructedLists","tokenListUrls","reduce","acc","tokens"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tokens/lists/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IAGH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB"}
@@ -1,5 +1,5 @@
1
1
  import { gatherObjectsByProp } from '../../lib/utils/index.js';
2
- import { urlChain2TokenList, chainId2TokenListURLs } from './constants.js';
2
+ import { chainId2TokenListURLs, urlChain2TokenList } from './constants.js';
3
3
 
4
4
  const getTokenListPlaceholderName = (listUrl, chainId) => urlChain2TokenList[`${listUrl}@${chainId}`]?.listName;
5
5
  const constructPlaceholderData = (listURL) => {
@@ -5,9 +5,11 @@ type UseFetchListsResult<T extends string> = {
5
5
  dataOrPlaceholder: TokenListFetched<T>;
6
6
  result: UseQueryResult<TokenListFetched<T>, AxiosError>;
7
7
  };
8
- export declare function produceQueryOptions<T extends string | never = never>(listURLs: string[], tag?: T): UseQueryOptions<TokenListFetched<T>, AxiosError<unknown, any>, TokenListFetched<T>, readonly unknown[]>[];
8
+ export declare function produceQueriesOptions<T extends string | never = never>(listURLs: string[], tag?: T): UseQueryOptions<TokenListFetched<T>, AxiosError<unknown, any>, TokenListFetched<T>, readonly unknown[]>[];
9
+ export declare function produceSingleQueryOptionMin<T extends string | never = never>(listURL: string, tag?: T): UseQueryOptions<TokenListFetched<T>, AxiosError>;
10
+ export declare function produceSingleQueryOption<T extends string | never = never>(listURL: string, tag?: T): UseQueryOptions<TokenListFetched<T>, AxiosError>;
9
11
  export declare const useFetchListsWithQueryResult: <T extends string | never = never>(listURLs: string[], tag?: T) => UseFetchListsResult<T>[];
10
12
  export declare function useFetchLists<T extends string | never = never>(listURLs: string[], tag?: T): TokenListFetched<T>[];
11
- export declare function useFetchTokenListsOnAllChains(): TokenListFetched[];
13
+ export declare function useFetchTokenLists(): TokenListFetched[];
12
14
  export {};
13
15
  //# sourceMappingURL=queries.d.ts.map
@@ -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;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,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAClE,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,6GA2CR;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC3E,UAAU,MAAM,EAAE,EAClB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAAC,EAgBxB,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,6BAA6B,IAAI,gBAAgB,EAAE,CASlE"}
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,EAgBxB,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"}
@@ -7,8 +7,9 @@ import { QUERY_KEY_FETCH_TOKEN_LISTS } from './constants.js';
7
7
  import { constructPlaceholderData } from './lists/utils.js';
8
8
  import { isTruthy } from '../lib/utils/index.js';
9
9
  import { overrideTokenList } from './overrides.js';
10
- import { useAllTokenLists } from './lists/hooks.js';
11
10
  import { stableCoinsTokenLists } from './stabeCoins/index.js';
11
+ import { useAtomValue } from 'jotai';
12
+ import { tokenListUrlsAtom } from './lists/state/tokenListsStateAtom.js';
12
13
 
13
14
  function isDataEqual(currentData, incomingData) {
14
15
  if (!currentData) return false;
@@ -16,9 +17,12 @@ function isDataEqual(currentData, incomingData) {
16
17
  const isOlderOrEqual = versionComparator(incomingData.data.version, currentData.data.version) <= 0;
17
18
  return isOlderOrEqual;
18
19
  }
19
- function produceQueryOptions(listURLs, tag) {
20
+ function produceQueriesOptions(listURLs, tag) {
20
21
  const uniqueListURLs = Array.from(new Set(listURLs));
21
- return uniqueListURLs.filter(isTruthy).map((listURL) => ({
22
+ return uniqueListURLs.filter(isTruthy).map((listURL) => produceSingleQueryOption(listURL, tag));
23
+ }
24
+ function produceSingleQueryOptionMin(listURL, tag) {
25
+ return {
22
26
  queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],
23
27
  queryFn: async ({
24
28
  signal
@@ -34,20 +38,26 @@ function produceQueryOptions(listURLs, tag) {
34
38
  available: Array.isArray(data.tokens)
35
39
  };
36
40
  },
37
- notifyOnChangeProps: ["data"],
38
- placeholderData: constructPlaceholderData(listURL),
39
- // start with unavailable but still with url
40
- refetchOnMount: false,
41
41
  staleTime: Infinity,
42
+ gcTime: Infinity,
42
43
  // custom comparison to optimize big token list comparison
43
44
  structuralSharing: (oldData, newData) => isDataEqual(oldData, newData) ? oldData : replaceEqualDeep(oldData, newData)
44
- }));
45
+ };
46
+ }
47
+ function produceSingleQueryOption(listURL, tag) {
48
+ return {
49
+ ...produceSingleQueryOptionMin(listURL, tag),
50
+ notifyOnChangeProps: ["data"],
51
+ placeholderData: constructPlaceholderData(listURL),
52
+ // start with unavailable but still with url
53
+ refetchOnMount: false
54
+ };
45
55
  }
46
56
  const useFetchListsWithQueryResult = (listURLs, tag) => {
47
57
  const $ = distExports.c(7);
48
58
  let t0;
49
59
  if ($[0] !== listURLs || $[1] !== tag) {
50
- t0 = produceQueryOptions(listURLs, tag);
60
+ t0 = produceQueriesOptions(listURLs, tag);
51
61
  $[0] = listURLs;
52
62
  $[1] = tag;
53
63
  $[2] = t0;
@@ -98,13 +108,13 @@ function _temp2(t0) {
98
108
  } = t0;
99
109
  return dataOrPlaceholder;
100
110
  }
101
- function useFetchTokenListsOnAllChains() {
111
+ function useFetchTokenLists() {
102
112
  const $ = distExports.c(2);
103
- const allTokenListsOnAllChains = useAllTokenLists();
113
+ const currentlyEnabledLists = useAtomValue(tokenListUrlsAtom);
104
114
  let t0;
105
- if ($[0] !== allTokenListsOnAllChains) {
106
- t0 = stableCoinsTokenLists.concat(allTokenListsOnAllChains);
107
- $[0] = allTokenListsOnAllChains;
115
+ if ($[0] !== currentlyEnabledLists) {
116
+ t0 = stableCoinsTokenLists.concat(currentlyEnabledLists);
117
+ $[0] = currentlyEnabledLists;
108
118
  $[1] = t0;
109
119
  } else {
110
120
  t0 = $[1];
@@ -119,5 +129,5 @@ function _temp(result) {
119
129
  };
120
130
  }
121
131
 
122
- export { produceQueryOptions, useFetchLists, useFetchListsWithQueryResult, useFetchTokenListsOnAllChains };
132
+ export { produceQueriesOptions, produceSingleQueryOption, produceSingleQueryOptionMin, useFetchLists, useFetchListsWithQueryResult, useFetchTokenLists };
123
133
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","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 { useAllTokenLists } from \"./lists/hooks\";\nimport { stableCoinsTokenLists } from \"./stabeCoins\";\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 produceQueryOptions<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 queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListDataWithFallback(\n listURL,\n signal\n );\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 notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n staleTime: 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\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 >({ queries: produceQueryOptions(listURLs, tag) });\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 useFetchTokenListsOnAllChains(): TokenListFetched[] {\n const allTokenListsOnAllChains = useAllTokenLists();\n\n // stablecoins list is auxiliary list, always in use\n const includingStablecoins = stableCoinsTokenLists.concat(\n allTokenListsOnAllChains\n );\n\n return useFetchLists(includingStablecoins);\n}\n"],"names":["isDataEqual","currentData","incomingData","available","isOlderOrEqual","versionComparator","data","version","produceQueryOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","isTruthy","map","listURL","queryKey","QUERY_KEY_FETCH_TOKEN_LISTS","queryFn","signal","_data","downloadTokenListDataWithFallback","overrideTokenList","url","name","isArray","tokens","notifyOnChangeProps","placeholderData","constructPlaceholderData","refetchOnMount","staleTime","Infinity","structuralSharing","oldData","newData","replaceEqualDeep","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","useQueries","t2","t3","_temp","useFetchLists","_temp2","dataOrPlaceholder","useFetchTokenListsOnAllChains","allTokenListsOnAllChains","useAllTokenLists","stableCoinsTokenLists","concat","includingStablecoins","result","error","config"],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","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 \"jotai\";\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 >({ queries: produceQueriesOptions(listURLs, tag) });\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"],"names":["isDataEqual","currentData","incomingData","available","isOlderOrEqual","versionComparator","data","version","produceQueriesOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","isTruthy","map","listURL","produceSingleQueryOption","produceSingleQueryOptionMin","queryKey","QUERY_KEY_FETCH_TOKEN_LISTS","queryFn","signal","_data","downloadTokenListDataWithFallback","overrideTokenList","url","name","isArray","tokens","staleTime","Infinity","gcTime","structuralSharing","oldData","newData","replaceEqualDeep","notifyOnChangeProps","placeholderData","constructPlaceholderData","refetchOnMount","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","useQueries","t2","t3","_temp","useFetchLists","_temp2","dataOrPlaceholder","useFetchTokenLists","currentlyEnabledLists","useAtomValue","tokenListUrlsAtom","stableCoinsTokenLists","concat","includingStablecoins","result","error","config"],"mappings":";;;;;;;;;;;;;AAwBA,SAASA,WAAAA,CACPC,aACAC,YAAAA,EACoC;AAEpC,EAAA,IAAI,CAACD,aAAa,OAAO,KAAA;AAEzB,EAAA,IAAI,CAACA,YAAYE,SAAAA,IAAa,CAACD,aAAaC,SAAAA,EAC1C,OAAOF,WAAAA,CAAYE,SAAAA,KAAcD,YAAAA,CAAaC,SAAAA;AAEhD,EAAA,MAAMC,cAAAA,GACJC,kBAAkBH,YAAAA,CAAaI,IAAAA,CAAKC,SAASN,WAAAA,CAAYK,IAAAA,CAAKC,OAAO,CAAA,IAAK,CAAA;AAC5E,EAAA,OAAOH,cAAAA;AACT;AAEO,SAASI,qBAAAA,CACdC,UACAC,GAAAA,EACA;AAEA,EAAA,MAAMC,iBAAiBC,KAAAA,CAAMC,IAAAA,CAAK,IAAIC,GAAAA,CAAIL,QAAQ,CAAC,CAAA;AAEnD,EAAA,OACEE,cAAAA,CAEGI,OAAOC,QAAQ,CAAA,CACfC,IAAuDC,CAAAA,OAAAA,KACtDC,wBAAAA,CAA4BD,OAAAA,EAASR,GAAG,CAC1C,CAAA;AAEN;AAEO,SAASU,2BAAAA,CACdF,SACAR,GAAAA,EACkD;AAClD,EAAA,OAAO;AAAA,IACLW,QAAAA,EAAU,CAACC,2BAAAA,EAA6BJ,OAAO,CAAA;AAAA,IAC/CK,SAAS,OAAO;AAAA,MAAEC;AAAAA,KAAO,KAAM;AAC7B,MAAA,MAAMC,KAAAA,GAAQ,MAAMC,iCAAAA,CAAkCR,OAAAA,EAASM,MAAM,CAAA;AAErE,MAAA,MAAMlB,IAAAA,GAAOqB,iBAAAA,CAAkBF,KAAAA,EAAOP,OAAO,CAAA;AAE7C,MAAA,OAAO;AAAA,QACLU,GAAAA,EAAKV,OAAAA;AAAAA,QACLW,MAAMvB,IAAAA,CAAKuB,IAAAA;AAAAA,QACXvB,IAAAA;AAAAA,QACAI,GAAAA;AAAAA;AAAAA,QAEAP,SAAAA,EAAWS,KAAAA,CAAMkB,OAAAA,CAAQxB,IAAAA,CAAKyB,MAAM;AAAA,OACtC;AAAA,IACF,CAAA;AAAA,IACAC,SAAAA,EAAWC,QAAAA;AAAAA,IACXC,MAAAA,EAAQD,QAAAA;AAAAA;AAAAA,IAGRE,iBAAAA,EAAmBA,CAACC,OAAAA,EAASC,OAAAA,KAC3BrC,WAAAA,CACEoC,OAAAA,EACAC,OACF,CAAA,GACID,OAAAA,GACAE,gBAAAA,CAAiBF,OAAAA,EAASC,OAAO;AAAA,GACzC;AACF;AAGO,SAASlB,wBAAAA,CACdD,SACAR,GAAAA,EACkD;AAClD,EAAA,OAAO;AAAA,IACL,GAAGU,2BAAAA,CAA+BF,OAAAA,EAASR,GAAG,CAAA;AAAA,IAC9C6B,mBAAAA,EAAqB,CAAC,MAAM,CAAA;AAAA,IAC5BC,eAAAA,EAAiBC,yBAAyBvB,OAAO,CAAA;AAAA;AAAA,IACjDwB,cAAAA,EAAgB;AAAA,GAClB;AACF;AAEO,MAAMC,4BAAAA,GAA+BA,CAAAlC,QAAAA,EAAAC,GAAAA,KAAA;AAAA,EAAA,MAAAkC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAnC,YAAAmC,CAAAA,QAAAlC,GAAAA,EAAA;AAM7BoC,IAAAA,EAAAA,GAAAtC,qBAAAA,CAAsBC,UAAUC,GAAG,CAAA;AAACkC,IAAAA,CAAAA,MAAAnC,QAAAA;AAAAmC,IAAAA,CAAAA,MAAAlC,GAAAA;AAAAkC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,EAAAA,EAAA;AAA/CC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EAAWF;AAAAA,KAAoC;AAAEF,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAFnD,EAAA,MAAAK,YAAAA,GAAqBC,WAEnBH,EAAiD,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,YAAAA,EAAA;AAIjDG,IAAAA,EAAAA,GAAAH,YAAAA,CAAYhC,IAAAoC,KAMV,CAAA;AAACT,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAAO,EAAAA,EAAAA,GANHC,EAAAA;AAMG,EAAA,OARAD,EAAAA;AAUN;AAGI,SAAAG,aAAAA,CAAA7C,UAAAC,GAAAA,EAAA;AAAA,EAAA,MAAAkC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAIL,EAAA,MAAAI,YAAAA,GAAqBN,4BAAAA,CAA6BlC,QAAAA,EAAUC,GAAG,CAAA;AAAE,EAAA,IAAAoC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAK,YAAAA,EAAA;AAGzDF,IAAAA,EAAAA,GAAAE,YAAAA,CAAYhC,IAAAsC,MAAiD,CAAA;AAACX,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAAE,EAAAA,EAAAA,GAA9DC,EAAAA;AAA8D,EAAA,OAD/DD,EAAAA;AAGN;AATI,SAAAS,OAAAT,EAAAA,EAAA;AAOqB,EAAA,MAAA;AAAA,IAAAU;AAAAA,GAAA,GAAAV,EAAAA;AAAqB,EAAA,OAAKU,iBAAAA;AAAiB;AAKhE,SAAAC,kBAAAA,GAAA;AAAA,EAAA,MAAAb,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAa,qBAAAA,GAA8BC,aAAAC,iBAA8B,CAAA;AAAE,EAAA,IAAAd,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAc,qBAAAA,EAAA;AAGjCZ,IAAAA,EAAAA,GAAAe,qBAAAA,CAAAC,OAC3BJ,qBACF,CAAA;AAACd,IAAAA,CAAAA,MAAAc,qBAAAA;AAAAd,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAmB,oBAAAA,GAA6BjB,EAAAA;AAE3B,EAAA,OAEKQ,cAAcS,oBAAoB,CAAA;AAAC;AAzCA,SAAAV,MAAAW,MAAAA,EAAA;AAAA,EAAA,OAAA;AAAA,IAAAR,iBAAAA,EAalCQ,OAAM1D,IAAAA,IACNmC,wBAAAA,CAAyBuB,OAAMC,KAAAA,EAAAC,MAAAA,EAAAtC,OAAuB,EAAE,CAAA;AAAA,IAACoC;AAAAA,GAAA;AAAA;;;;"}
@@ -1,15 +1,15 @@
1
- import { tokenListsAtom, constructedTokensByURLAtom } from '../lists/state/tokenListsStateAtom.js';
1
+ import { constructedTokensByURLAtom, enabledAndDefaultTokenURLSAtom } from '../lists/state/tokenListsStateAtom.js';
2
2
  import { atom } from 'jotai';
3
3
  import { constructTokensFromLists } from './constructTokens.js';
4
4
  import { gatherObjectsByProp } from '../../lib/utils/index.js';
5
5
  import { isSupportedChainId } from '../../lib/web3/wagmi/utils.js';
6
6
 
7
7
  const fromListsAtom = atom((get) => {
8
- const tokenListsState = get(tokenListsAtom);
9
8
  const constructedTokensByURLState = get(constructedTokensByURLAtom);
10
- const chainsFromLists = Object.keys(tokenListsState).map(Number).filter(isSupportedChainId);
9
+ const enabledAndDefaultTokenURLS = get(enabledAndDefaultTokenURLSAtom);
10
+ const chainsFromLists = Object.keys(enabledAndDefaultTokenURLS).map(Number).filter(isSupportedChainId);
11
11
  const fromLists = chainsFromLists.reduce((acc, chainId) => {
12
- const tokenListForChain = tokenListsState[chainId];
12
+ const tokenListForChain = enabledAndDefaultTokenURLS[chainId];
13
13
  if (!tokenListForChain) return acc;
14
14
  const constructedLists = constructTokensFromLists({
15
15
  enabledListURLs: tokenListForChain.enabled || [],
@@ -1 +1 @@
1
- {"version":3,"file":"fromListsAtom.js","sources":["../../../src/tokens/state/fromListsAtom.ts"],"sourcesContent":["import type { Token, TokenFromList } from \"./types\";\nimport {\n constructedTokensByURLAtom,\n tokenListsAtom,\n} from \"../lists/state/tokenListsStateAtom\";\nimport { atom } from \"jotai\";\nimport { constructTokensFromLists } from \"./constructTokens\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport type { MarkOptional } from \"ts-essentials\";\n\nexport type TokensFromLists<TToken extends Token = TokenFromList> = {\n tokens: TToken[];\n addressMap: Record<string, TToken>;\n};\n\ntype TokensFromListsByChain<TToken extends Token = TokenFromList> = {\n listByChainId: Record<number, TokensFromLists<TToken>>;\n // unlike listByChainId, this contains tokens from disabled lists only, no imported tokens\n disabledListByChainId: Record<number, TokensFromLists<TToken>>;\n};\n\nexport type TokensFromListsState<TToken extends Token = TokenFromList> =\n TokensFromListsByChain<TToken> & {\n tokensFromAllChains: MarkOptional<TokenFromList, \"fromListURL\">[]; // without disabled\n };\n\nexport const fromListsAtom = atom<TokensFromListsState>((get) => {\n // get the current list atoms\n const tokenListsState = get(tokenListsAtom);\n const constructedTokensByURLState = get(constructedTokensByURLAtom);\n\n const chainsFromLists = Object.keys(tokenListsState)\n .map(Number)\n .filter(isSupportedChainId);\n\n // atom with the lists of constructed SDK tokens\n const fromLists = chainsFromLists.reduce<TokensFromListsByChain>(\n (acc, chainId) => {\n const tokenListForChain = tokenListsState[chainId];\n if (!tokenListForChain) return acc;\n\n const constructedLists = constructTokensFromLists({\n enabledListURLs: tokenListForChain.enabled || [],\n tokensFromListByURL: constructedTokensByURLState,\n allListURLs: tokenListForChain.all || [],\n chainId,\n });\n if (!constructedLists) return acc;\n\n acc.listByChainId[chainId] = {\n tokens: constructedLists.list,\n addressMap: gatherObjectsByProp(constructedLists.list, (token) =>\n token.address.toLowerCase()\n ),\n };\n acc.disabledListByChainId[chainId] = {\n tokens: constructedLists.disabledList,\n addressMap: gatherObjectsByProp(\n constructedLists.disabledList,\n (token) => token.address.toLowerCase()\n ),\n };\n\n return acc;\n },\n {\n listByChainId: {},\n disabledListByChainId: {},\n }\n );\n\n const tokensFromAllChains = Object.values(fromLists.listByChainId).flatMap(\n ({ tokens }) => tokens\n );\n\n return { ...fromLists, tokensFromAllChains };\n});\n"],"names":["fromListsAtom","atom","get","tokenListsState","tokenListsAtom","constructedTokensByURLState","constructedTokensByURLAtom","chainsFromLists","Object","keys","map","Number","filter","isSupportedChainId","fromLists","reduce","acc","chainId","tokenListForChain","constructedLists","constructTokensFromLists","enabledListURLs","enabled","tokensFromListByURL","allListURLs","all","listByChainId","tokens","list","addressMap","gatherObjectsByProp","token","address","toLowerCase","disabledListByChainId","disabledList","tokensFromAllChains","values","flatMap"],"mappings":";;;;;;AA2BO,MAAMA,aAAAA,GAAgBC,KAA4BC,CAAAA,GAAAA,KAAQ;AAE/D,EAAA,MAAMC,eAAAA,GAAkBD,IAAIE,cAAc,CAAA;AAC1C,EAAA,MAAMC,2BAAAA,GAA8BH,IAAII,0BAA0B,CAAA;AAElE,EAAA,MAAMC,eAAAA,GAAkBC,OAAOC,IAAAA,CAAKN,eAAe,EAChDO,GAAAA,CAAIC,MAAM,CAAA,CACVC,MAAAA,CAAOC,kBAAkB,CAAA;AAG5B,EAAA,MAAMC,SAAAA,GAAYP,eAAAA,CAAgBQ,MAAAA,CAChC,CAACC,KAAKC,OAAAA,KAAY;AAChB,IAAA,MAAMC,iBAAAA,GAAoBf,gBAAgBc,OAAO,CAAA;AACjD,IAAA,IAAI,CAACC,mBAAmB,OAAOF,GAAAA;AAE/B,IAAA,MAAMG,mBAAmBC,wBAAAA,CAAyB;AAAA,MAChDC,eAAAA,EAAiBH,iBAAAA,CAAkBI,OAAAA,IAAW,EAAA;AAAA,MAC9CC,mBAAAA,EAAqBlB,2BAAAA;AAAAA,MACrBmB,WAAAA,EAAaN,iBAAAA,CAAkBO,GAAAA,IAAO,EAAA;AAAA,MACtCR;AAAAA,KACD,CAAA;AACD,IAAA,IAAI,CAACE,kBAAkB,OAAOH,GAAAA;AAE9BA,IAAAA,GAAAA,CAAIU,aAAAA,CAAcT,OAAO,CAAA,GAAI;AAAA,MAC3BU,QAAQR,gBAAAA,CAAiBS,IAAAA;AAAAA,MACzBC,UAAAA,EAAYC,oBAAoBX,gBAAAA,CAAiBS,IAAAA,EAAOG,WACtDA,KAAAA,CAAMC,OAAAA,CAAQC,aAChB;AAAA,KACF;AACAjB,IAAAA,GAAAA,CAAIkB,qBAAAA,CAAsBjB,OAAO,CAAA,GAAI;AAAA,MACnCU,QAAQR,gBAAAA,CAAiBgB,YAAAA;AAAAA,MACzBN,UAAAA,EAAYC,oBACVX,gBAAAA,CAAiBgB,YAAAA,EAChBJ,WAAUA,KAAAA,CAAMC,OAAAA,CAAQC,aAC3B;AAAA,KACF;AAEA,IAAA,OAAOjB,GAAAA;AAAAA,EACT,CAAA,EACA;AAAA,IACEU,eAAe,EAAC;AAAA,IAChBQ,uBAAuB;AAAC,GAE5B,CAAA;AAEA,EAAA,MAAME,sBAAsB5B,MAAAA,CAAO6B,MAAAA,CAAOvB,UAAUY,aAAa,CAAA,CAAEY,QACjE,CAAC;AAAA,IAAEX;AAAAA,QAAaA,MAClB,CAAA;AAEA,EAAA,OAAO;AAAA,IAAE,GAAGb,SAAAA;AAAAA,IAAWsB;AAAAA,GAAoB;AAC7C,CAAC;;;;"}
1
+ {"version":3,"file":"fromListsAtom.js","sources":["../../../src/tokens/state/fromListsAtom.ts"],"sourcesContent":["import type { Token, TokenFromList } from \"./types\";\nimport {\n constructedTokensByURLAtom,\n enabledAndDefaultTokenURLSAtom,\n} from \"../lists/state/tokenListsStateAtom\";\nimport { atom } from \"jotai\";\nimport { constructTokensFromLists } from \"./constructTokens\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport type { MarkOptional } from \"ts-essentials\";\n\nexport type TokensFromLists<TToken extends Token = TokenFromList> = {\n tokens: TToken[];\n addressMap: Record<string, TToken>;\n};\n\ntype TokensFromListsByChain<TToken extends Token = TokenFromList> = {\n listByChainId: Record<number, TokensFromLists<TToken>>;\n // unlike listByChainId, this contains tokens from disabled lists only, no imported tokens\n disabledListByChainId: Record<number, TokensFromLists<TToken>>;\n};\n\nexport type TokensFromListsState<TToken extends Token = TokenFromList> =\n TokensFromListsByChain<TToken> & {\n tokensFromAllChains: MarkOptional<TokenFromList, \"fromListURL\">[]; // without disabled\n };\n\nexport const fromListsAtom = atom<TokensFromListsState>((get) => {\n // get the current list atoms\n const constructedTokensByURLState = get(constructedTokensByURLAtom);\n const enabledAndDefaultTokenURLS = get(enabledAndDefaultTokenURLSAtom);\n\n const chainsFromLists = Object.keys(enabledAndDefaultTokenURLS)\n .map(Number)\n .filter(isSupportedChainId);\n\n // atom with the lists of constructed SDK tokens\n const fromLists = chainsFromLists.reduce<TokensFromListsByChain>(\n (acc, chainId) => {\n const tokenListForChain = enabledAndDefaultTokenURLS[chainId];\n if (!tokenListForChain) return acc;\n\n const constructedLists = constructTokensFromLists({\n enabledListURLs: tokenListForChain.enabled || [],\n tokensFromListByURL: constructedTokensByURLState,\n allListURLs: tokenListForChain.all || [],\n chainId,\n });\n if (!constructedLists) return acc;\n\n acc.listByChainId[chainId] = {\n tokens: constructedLists.list,\n addressMap: gatherObjectsByProp(constructedLists.list, (token) =>\n token.address.toLowerCase()\n ),\n };\n acc.disabledListByChainId[chainId] = {\n tokens: constructedLists.disabledList,\n addressMap: gatherObjectsByProp(\n constructedLists.disabledList,\n (token) => token.address.toLowerCase()\n ),\n };\n\n return acc;\n },\n {\n listByChainId: {},\n disabledListByChainId: {},\n }\n );\n\n const tokensFromAllChains = Object.values(fromLists.listByChainId).flatMap(\n ({ tokens }) => tokens\n );\n\n return { ...fromLists, tokensFromAllChains };\n});\n"],"names":["fromListsAtom","atom","get","constructedTokensByURLState","constructedTokensByURLAtom","enabledAndDefaultTokenURLS","enabledAndDefaultTokenURLSAtom","chainsFromLists","Object","keys","map","Number","filter","isSupportedChainId","fromLists","reduce","acc","chainId","tokenListForChain","constructedLists","constructTokensFromLists","enabledListURLs","enabled","tokensFromListByURL","allListURLs","all","listByChainId","tokens","list","addressMap","gatherObjectsByProp","token","address","toLowerCase","disabledListByChainId","disabledList","tokensFromAllChains","values","flatMap"],"mappings":";;;;;;AA2BO,MAAMA,aAAAA,GAAgBC,KAA4BC,CAAAA,GAAAA,KAAQ;AAE/D,EAAA,MAAMC,2BAAAA,GAA8BD,IAAIE,0BAA0B,CAAA;AAClE,EAAA,MAAMC,0BAAAA,GAA6BH,IAAII,8BAA8B,CAAA;AAErE,EAAA,MAAMC,eAAAA,GAAkBC,OAAOC,IAAAA,CAAKJ,0BAA0B,EAC3DK,GAAAA,CAAIC,MAAM,CAAA,CACVC,MAAAA,CAAOC,kBAAkB,CAAA;AAG5B,EAAA,MAAMC,SAAAA,GAAYP,eAAAA,CAAgBQ,MAAAA,CAChC,CAACC,KAAKC,OAAAA,KAAY;AAChB,IAAA,MAAMC,iBAAAA,GAAoBb,2BAA2BY,OAAO,CAAA;AAC5D,IAAA,IAAI,CAACC,mBAAmB,OAAOF,GAAAA;AAE/B,IAAA,MAAMG,mBAAmBC,wBAAAA,CAAyB;AAAA,MAChDC,eAAAA,EAAiBH,iBAAAA,CAAkBI,OAAAA,IAAW,EAAA;AAAA,MAC9CC,mBAAAA,EAAqBpB,2BAAAA;AAAAA,MACrBqB,WAAAA,EAAaN,iBAAAA,CAAkBO,GAAAA,IAAO,EAAA;AAAA,MACtCR;AAAAA,KACD,CAAA;AACD,IAAA,IAAI,CAACE,kBAAkB,OAAOH,GAAAA;AAE9BA,IAAAA,GAAAA,CAAIU,aAAAA,CAAcT,OAAO,CAAA,GAAI;AAAA,MAC3BU,QAAQR,gBAAAA,CAAiBS,IAAAA;AAAAA,MACzBC,UAAAA,EAAYC,oBAAoBX,gBAAAA,CAAiBS,IAAAA,EAAOG,WACtDA,KAAAA,CAAMC,OAAAA,CAAQC,aAChB;AAAA,KACF;AACAjB,IAAAA,GAAAA,CAAIkB,qBAAAA,CAAsBjB,OAAO,CAAA,GAAI;AAAA,MACnCU,QAAQR,gBAAAA,CAAiBgB,YAAAA;AAAAA,MACzBN,UAAAA,EAAYC,oBACVX,gBAAAA,CAAiBgB,YAAAA,EAChBJ,WAAUA,KAAAA,CAAMC,OAAAA,CAAQC,aAC3B;AAAA,KACF;AAEA,IAAA,OAAOjB,GAAAA;AAAAA,EACT,CAAA,EACA;AAAA,IACEU,eAAe,EAAC;AAAA,IAChBQ,uBAAuB;AAAC,GAE5B,CAAA;AAEA,EAAA,MAAME,sBAAsB5B,MAAAA,CAAO6B,MAAAA,CAAOvB,UAAUY,aAAa,CAAA,CAAEY,QACjE,CAAC;AAAA,IAAEX;AAAAA,QAAaA,MAClB,CAAA;AAEA,EAAA,OAAO;AAAA,IAAE,GAAGb,SAAAA;AAAAA,IAAWsB;AAAAA,GAAoB;AAC7C,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { UseAwaitTxParameters } from '../../hooks/txs/queries/useAwaitTx';
2
+ import { wagmiConfig as _wagmiConfig } from '../../lib/web3/wagmi/config';
2
3
  import { QueryClient } from '@tanstack/react-query';
3
- import { Config } from '@wagmi/core';
4
4
  import { MarkRequired } from 'ts-essentials';
5
5
  import { ReplacementReturnType, TransactionReceipt } from 'viem';
6
6
  type OnReplacedCb = (data: ReplacementReturnType) => void;
@@ -9,7 +9,8 @@ export type EnsureTxReceiptFn = (options: MarkRequired<Pick<UseAwaitTxParameters
9
9
  }) => Promise<TransactionReceipt>;
10
10
  type EnsureTxReceiptFactory = (params?: {
11
11
  queryClient?: QueryClient;
12
- wagmiConfig?: Config;
12
+ wagmiConfig?: typeof _wagmiConfig;
13
+ isSafe?: boolean;
13
14
  }) => EnsureTxReceiptFn;
14
15
  export declare const ensureTxReceiptFactory: EnsureTxReceiptFactory;
15
16
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ensureTxReceipt.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAItE,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,YAAY,CACnB,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC,EAChE,MAAM,GAAG,SAAS,CACnB,GAAG;IACF,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,KAAK,sBAAsB,GAAG,CAAC,MAAM,CAAC,EAAE;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAK,iBAAiB,CAAC;AAExB,eAAO,MAAM,sBAAsB,EAAE,sBAqBlC,CAAC"}
1
+ {"version":3,"file":"ensureTxReceipt.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAU,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAK9E,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,YAAY,CACnB,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC,EAChE,MAAM,GAAG,SAAS,CACnB,GAAG;IACF,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,KAAK,sBAAsB,GAAG,CAAC,MAAM,CAAC,EAAE;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,iBAAiB,CAAC;AAExB,eAAO,MAAM,sBAAsB,EAAE,sBAmClC,CAAC"}
@@ -1,30 +1,50 @@
1
+ import { isSafeConnector } from '../../hooks/connectors/useIsGnosisSafeConnector.js';
1
2
  import { queryClient } from '../../lib/queryClient.js';
2
3
  import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
3
- import { waitForTransactionReceipt } from '@wagmi/core';
4
+ import { getAccount, getConnectorClient } from '@wagmi/core';
5
+ import { waitForTransactionReceipt } from 'viem/actions';
4
6
  import { waitForTransactionReceiptQueryKey } from 'wagmi/query';
7
+ import { SAFE_CALLS_WAIT_TIMEOUT } from '../../lib/constants/index.js';
5
8
 
6
9
  const ensureTxReceiptFactory = ({
7
10
  queryClient: queryClient$1 = queryClient,
8
- wagmiConfig: wagmiConfig$1 = wagmiConfig
11
+ wagmiConfig: wagmiConfig$1 = wagmiConfig,
12
+ isSafe
9
13
  } = {}) => async ({
10
14
  hash,
11
15
  chainId,
12
16
  confirmations,
13
17
  onReplaced
14
18
  }) => {
19
+ const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
15
20
  const queryKey = waitForTransactionReceiptQueryKey({
16
21
  hash,
17
22
  chainId,
18
- confirmations
23
+ confirmations,
24
+ timeout
19
25
  });
26
+ let client;
27
+ const {
28
+ connector
29
+ } = getAccount(wagmiConfig$1);
30
+ if (connector && isSafeConnector(connector)) {
31
+ client = await getConnectorClient(wagmiConfig$1, {
32
+ chainId,
33
+ connector
34
+ });
35
+ } else {
36
+ client = wagmiConfig$1.getClient({
37
+ chainId
38
+ });
39
+ }
20
40
  const receipt = await queryClient$1.ensureQueryData({
21
41
  queryKey,
22
42
  queryFn: () => {
23
- return waitForTransactionReceipt(wagmiConfig$1, {
43
+ return waitForTransactionReceipt(client, {
24
44
  hash,
25
- chainId,
26
45
  confirmations,
27
- onReplaced
46
+ onReplaced,
47
+ timeout
28
48
  });
29
49
  }
30
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ensureTxReceipt.js","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { waitForTransactionReceipt, type Config } from \"@wagmi/core\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { ReplacementReturnType, TransactionReceipt } from \"viem\";\n\nimport { waitForTransactionReceiptQueryKey } from \"wagmi/query\";\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type EnsureTxReceiptFn = (\n options: MarkRequired<\n Pick<UseAwaitTxParameters, \"hash\" | \"chainId\" | \"confirmations\">,\n \"hash\" | \"chainId\"\n > & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\ntype EnsureTxReceiptFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n}) => EnsureTxReceiptFn;\n\nexport const ensureTxReceiptFactory: EnsureTxReceiptFactory =\n ({ queryClient = _queryClient, wagmiConfig = _wagmiConfig } = {}) =>\n async ({ hash, chainId, confirmations, onReplaced }) => {\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n confirmations,\n });\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(wagmiConfig, {\n hash,\n chainId,\n confirmations,\n onReplaced,\n });\n },\n });\n\n return receipt;\n };\n"],"names":["ensureTxReceiptFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","hash","chainId","confirmations","onReplaced","queryKey","waitForTransactionReceiptQueryKey","receipt","ensureQueryData","queryFn","waitForTransactionReceipt"],"mappings":";;;;;AA0BO,MAAMA,yBACXA,CAAC;AAAA,eAAEC,aAAAA,GAAcC,WAAAA;AAAAA,eAAcC,aAAAA,GAAcC;AAAa,CAAA,GAAI,OAC9D,OAAO;AAAA,EAAEC,IAAAA;AAAAA,EAAMC,OAAAA;AAAAA,EAASC,aAAAA;AAAAA,EAAeC;AAAW,CAAA,KAAM;AACtD,EAAA,MAAMC,WAAWC,iCAAAA,CAAkC;AAAA,IACjDL,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AACD,EAAA,MAAMI,OAAAA,GAAU,MAAMV,aAAAA,CAAYW,eAAAA,CAAgB;AAAA,IAChDH,QAAAA;AAAAA,IACAI,SAASA,MAAM;AACb,MAAA,OAAOC,0BAA0BX,aAAAA,EAAa;AAAA,QAC5CE,IAAAA;AAAAA,QACAC,OAAAA;AAAAA,QACAC,aAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOG,OAAAA;AACT;;;;"}
1
+ {"version":3,"file":"ensureTxReceipt.js","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\nimport type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { getAccount, getConnectorClient } from \"@wagmi/core\";\nimport { waitForTransactionReceipt } from \"viem/actions\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { Client, ReplacementReturnType, TransactionReceipt } from \"viem\";\n\nimport { waitForTransactionReceiptQueryKey } from \"wagmi/query\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type EnsureTxReceiptFn = (\n options: MarkRequired<\n Pick<UseAwaitTxParameters, \"hash\" | \"chainId\" | \"confirmations\">,\n \"hash\" | \"chainId\"\n > & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\ntype EnsureTxReceiptFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: typeof _wagmiConfig;\n isSafe?: boolean;\n}) => EnsureTxReceiptFn;\n\nexport const ensureTxReceiptFactory: EnsureTxReceiptFactory =\n ({ queryClient = _queryClient, wagmiConfig = _wagmiConfig, isSafe } = {}) =>\n async ({ hash, chainId, confirmations, onReplaced }) => {\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n confirmations,\n timeout,\n });\n\n let client: Client;\n const { connector } = getAccount(wagmiConfig);\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n // if connected to safe through WalletConnect - publicClient returns a real tx hash.\n if (connector && isSafeConnector(connector)) {\n client = await getConnectorClient(wagmiConfig, { chainId, connector });\n } else {\n client = wagmiConfig.getClient({ chainId });\n }\n\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(client, {\n hash,\n confirmations,\n onReplaced,\n timeout,\n });\n },\n });\n\n return receipt;\n };\n"],"names":["ensureTxReceiptFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","hash","chainId","confirmations","onReplaced","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","queryKey","waitForTransactionReceiptQueryKey","client","connector","getAccount","isSafeConnector","getConnectorClient","getClient","receipt","ensureQueryData","queryFn","waitForTransactionReceipt"],"mappings":";;;;;;;;AA8BO,MAAMA,yBACXA,CAAC;AAAA,eAAEC,aAAAA,GAAcC,WAAAA;AAAAA,eAAcC,aAAAA,GAAcC,WAAAA;AAAAA,EAAcC;AAAO,CAAA,GAAI,OACtE,OAAO;AAAA,EAAEC,IAAAA;AAAAA,EAAMC,OAAAA;AAAAA,EAASC,aAAAA;AAAAA,EAAeC;AAAW,CAAA,KAAM;AACtD,EAAA,MAAMC,OAAAA,GAAUL,SAASM,uBAAAA,GAA0BC,MAAAA;AACnD,EAAA,MAAMC,WAAWC,iCAAAA,CAAkC;AAAA,IACjDR,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAE;AAAAA,GACD,CAAA;AAED,EAAA,IAAIK,MAAAA;AACJ,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAU,GAAIC,WAAWd,aAAW,CAAA;AAI5C,EAAA,IAAIa,SAAAA,IAAaE,eAAAA,CAAgBF,SAAS,CAAA,EAAG;AAC3CD,IAAAA,MAAAA,GAAS,MAAMI,mBAAmBhB,aAAAA,EAAa;AAAA,MAAEI,OAAAA;AAAAA,MAASS;AAAAA,KAAW,CAAA;AAAA,EACvE,CAAA,MAAO;AACLD,IAAAA,MAAAA,GAASZ,cAAYiB,SAAAA,CAAU;AAAA,MAAEb;AAAAA,KAAS,CAAA;AAAA,EAC5C;AAEA,EAAA,MAAMc,OAAAA,GAAU,MAAMpB,aAAAA,CAAYqB,eAAAA,CAAgB;AAAA,IAChDT,QAAAA;AAAAA,IACAU,SAASA,MAAM;AACb,MAAA,OAAOC,0BAA0BT,MAAAA,EAAQ;AAAA,QACvCT,IAAAA;AAAAA,QACAE,aAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOW,OAAAA;AACT;;;;"}
@@ -1,3 +1,5 @@
1
1
  export declare const useUserPendingTransactions: () => import('../../types').TransactionItem[];
2
2
  export declare const useUserSwapTransactions: () => import('../../types').TransactionItemSwap[];
3
+ export declare const useUserSwapTransactionsOnEnabledChains: () => import('../../types').TransactionItemSwap[];
4
+ export declare const useUserPendingTransactionsOnEnabledChains: () => import('../../types').TransactionItem[];
3
5
  //# sourceMappingURL=useTransactions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTransactions.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/hooks/useTransactions.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,0BAA0B,+CACI,CAAC;AAC5C,eAAO,MAAM,uBAAuB,mDACI,CAAC"}
1
+ {"version":3,"file":"useTransactions.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/hooks/useTransactions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B,+CACI,CAAC;AAC5C,eAAO,MAAM,uBAAuB,mDACI,CAAC;AAEzC,eAAO,MAAM,sCAAsC,mDAMlD,CAAC;AACF,eAAO,MAAM,yCAAyC,+CAMrD,CAAC"}