@velora-dex/widget 0.2.5-dev.6 → 0.2.5-dev.7

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 (245) hide show
  1. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  2. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.d.ts.map +1 -1
  3. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js +43 -42
  4. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -1
  5. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts +2 -1
  6. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  7. package/dist/components/widget/AppHeader/Activities/Drawers.js +30 -32
  8. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  9. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +1 -3
  10. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  11. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +114 -97
  12. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  13. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +3 -1
  14. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
  15. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +17 -14
  16. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  17. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +1 -2
  18. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  19. package/dist/components/widget/Drawer/state/useDrawerControls.js +16 -17
  20. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  21. package/dist/components/widget/OrderExpiryInput/index.d.ts.map +1 -1
  22. package/dist/components/widget/OrderExpiryInput/index.js +76 -73
  23. package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
  24. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  25. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +3 -0
  26. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  27. package/dist/components/widget/ReceiverAddress/types.d.ts +2 -1
  28. package/dist/components/widget/ReceiverAddress/types.d.ts.map +1 -1
  29. package/dist/components/widget/Screen/GenericScreen.d.ts.map +1 -1
  30. package/dist/components/widget/Screen/GenericScreen.js +9 -8
  31. package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
  32. package/dist/components/widget/Screen/ScreenContainer.d.ts.map +1 -1
  33. package/dist/components/widget/Screen/ScreenContainer.js +7 -31
  34. package/dist/components/widget/Screen/ScreenContainer.js.map +1 -1
  35. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
  36. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +5 -0
  37. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  38. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts +3 -2
  39. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  40. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  41. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  42. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  43. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
  44. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
  45. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +1 -1
  46. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
  47. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +1 -1
  48. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
  49. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
  50. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  51. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +1 -1
  52. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
  53. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +1 -1
  54. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
  55. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +3 -3
  56. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
  57. package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
  58. package/dist/configurator/Configurator.d.ts.map +1 -1
  59. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
  60. package/dist/configurator/components/common/ButtonGroup.d.ts +12 -0
  61. package/dist/configurator/components/common/ButtonGroup.d.ts.map +1 -0
  62. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  63. package/dist/core/LimitOrderButton.js +49 -23
  64. package/dist/core/LimitOrderButton.js.map +1 -1
  65. package/dist/core/Updaters.d.ts.map +1 -1
  66. package/dist/core/Updaters.js +22 -1
  67. package/dist/core/Updaters.js.map +1 -1
  68. package/dist/core/across/isCrosshcainPossible.d.ts +10 -0
  69. package/dist/core/across/isCrosshcainPossible.d.ts.map +1 -0
  70. package/dist/core/across/isCrosshcainPossible.js +41 -0
  71. package/dist/core/across/isCrosshcainPossible.js.map +1 -0
  72. package/dist/core/across/utils.d.ts +7 -3
  73. package/dist/core/across/utils.d.ts.map +1 -1
  74. package/dist/core/across/utils.js +10 -7
  75. package/dist/core/across/utils.js.map +1 -1
  76. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  77. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +56 -33
  78. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  79. package/dist/core/index.d.ts.map +1 -1
  80. package/dist/core/index.js +72 -17
  81. package/dist/core/index.js.map +1 -1
  82. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  83. package/dist/core/inputs/hooks/useTokenToInputProps.js +76 -66
  84. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  85. package/dist/core/inputs/state/common.d.ts +15 -3
  86. package/dist/core/inputs/state/common.d.ts.map +1 -1
  87. package/dist/core/inputs/state/common.js +51 -12
  88. package/dist/core/inputs/state/common.js.map +1 -1
  89. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  90. package/dist/core/inputs/state/selectedTokenActionsAtom.js +33 -44
  91. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  92. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -1
  93. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  94. package/dist/core/inputs/state/setTokenByAddressAtom.js +85 -21
  95. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  96. package/dist/core/inputs/state/types.d.ts +9 -1
  97. package/dist/core/inputs/state/types.d.ts.map +1 -1
  98. package/dist/core/limit/state/deadlineAtom.d.ts +10 -2
  99. package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
  100. package/dist/core/limit/state/deadlineAtom.js +15 -8
  101. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  102. package/dist/core/limit/state/isCrosschainAtom.d.ts +3 -0
  103. package/dist/core/limit/state/isCrosschainAtom.d.ts.map +1 -0
  104. package/dist/core/limit/state/isCrosschainAtom.js +13 -0
  105. package/dist/core/limit/state/isCrosschainAtom.js.map +1 -0
  106. package/dist/core/limit/state/limitInputActionsAtom.d.ts +4 -1
  107. package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -1
  108. package/dist/core/limit/state/limitInputActionsAtom.js +6 -2
  109. package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
  110. package/dist/core/limit/state/limitInputAmountAtom.js +1 -1
  111. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  112. package/dist/core/limit/state/limitTokenAtoms.d.ts +10 -0
  113. package/dist/core/limit/state/limitTokenAtoms.d.ts.map +1 -0
  114. package/dist/core/limit/state/limitTokenAtoms.js +17 -0
  115. package/dist/core/limit/state/limitTokenAtoms.js.map +1 -0
  116. package/dist/core/limit/state/receiverAddressAtom.d.ts +7 -0
  117. package/dist/core/limit/state/receiverAddressAtom.d.ts.map +1 -0
  118. package/dist/core/limit/state/receiverAddressAtom.js +40 -0
  119. package/dist/core/limit/state/receiverAddressAtom.js.map +1 -0
  120. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  121. package/dist/core/limit/state/selectedTokenActionsAtom.js +94 -18
  122. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  123. package/dist/core/limit/state/selectedTokenAtom.d.ts +0 -9
  124. package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
  125. package/dist/core/limit/state/selectedTokenAtom.js +53 -21
  126. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  127. package/dist/core/limit/state/utils.d.ts +9 -1
  128. package/dist/core/limit/state/utils.d.ts.map +1 -1
  129. package/dist/core/limit/state/utils.js +44 -2
  130. package/dist/core/limit/state/utils.js.map +1 -1
  131. package/dist/core/limit/useLimitRate.d.ts +9 -0
  132. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  133. package/dist/core/limit/useLimitRate.js +145 -8
  134. package/dist/core/limit/useLimitRate.js.map +1 -1
  135. package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
  136. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  137. package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
  138. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  139. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  140. package/dist/core/limit/useLimitTokenToInputProps.js +132 -72
  141. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  142. package/dist/core/otc/state/deadlineAtom.d.ts +8 -3
  143. package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
  144. package/dist/core/otc/state/deadlineAtom.js +16 -10
  145. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  146. package/dist/core/otc/state/otcInputActionsAtom.d.ts +4 -1
  147. package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -1
  148. package/dist/core/otc/state/otcInputActionsAtom.js +6 -2
  149. package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
  150. package/dist/core/screen/hooks/useOnClickOutside.d.ts +2 -0
  151. package/dist/core/screen/hooks/useOnClickOutside.d.ts.map +1 -0
  152. package/dist/core/screen/hooks/useOnClickOutside.js +30 -0
  153. package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -0
  154. package/dist/core/screen/screenByType.d.ts +1 -3
  155. package/dist/core/screen/screenByType.d.ts.map +1 -1
  156. package/dist/core/state/chainToAtom.d.ts +2 -0
  157. package/dist/core/state/chainToAtom.d.ts.map +1 -1
  158. package/dist/core/state/chainToAtom.js +37 -7
  159. package/dist/core/state/chainToAtom.js.map +1 -1
  160. package/dist/core/state/configEffectAtom.d.ts +0 -3
  161. package/dist/core/state/configEffectAtom.d.ts.map +1 -1
  162. package/dist/core/state/configEffectAtom.js +49 -37
  163. package/dist/core/state/configEffectAtom.js.map +1 -1
  164. package/dist/core/state/enabledChainsAtom.d.ts +3 -0
  165. package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
  166. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  167. package/dist/core/state/getSelectableDestChains.d.ts +8 -0
  168. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -0
  169. package/dist/core/state/getSelectableDestChains.js +34 -0
  170. package/dist/core/state/getSelectableDestChains.js.map +1 -0
  171. package/dist/events/getters/limit.d.ts.map +1 -1
  172. package/dist/events/getters/limit.js +5 -2
  173. package/dist/events/getters/limit.js.map +1 -1
  174. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
  175. package/dist/events/hooks/useOnPriceUpdates.js +37 -25
  176. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  177. package/dist/events/types/formInput.d.ts +1 -1
  178. package/dist/events/types/formInput.d.ts.map +1 -1
  179. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts +2 -0
  180. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts.map +1 -0
  181. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +24 -0
  182. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -0
  183. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +6 -0
  184. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -0
  185. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -0
  186. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -0
  187. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +4 -0
  188. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -0
  189. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js +12 -0
  190. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -0
  191. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +19 -0
  192. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -0
  193. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +4 -0
  194. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -0
  195. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +81 -0
  196. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -0
  197. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +3 -0
  198. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  199. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +2 -1
  200. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  201. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  202. package/dist/hooks/swap/prices/usePricesParams.js +8 -12
  203. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  204. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  205. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  206. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -0
  207. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  208. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +54 -21
  209. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  210. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
  211. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  212. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +3 -1
  213. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  214. package/dist/hooks/tokens/useAllTokensWithFilter.js +25 -22
  215. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  216. package/dist/hooks/tokens/useTokensFromAcross.d.ts +3 -1
  217. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  218. package/dist/hooks/tokens/useTokensFromAcross.js +36 -25
  219. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  220. package/dist/hooks/useAvailableCrosses.d.ts +7 -2
  221. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  222. package/dist/hooks/useAvailableCrosses.js +39 -25
  223. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  224. package/dist/hooks/useBridgeInfo.d.ts +4 -1
  225. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  226. package/dist/hooks/useBridgeInfo.js +26 -11
  227. package/dist/hooks/useBridgeInfo.js.map +1 -1
  228. package/dist/hooks/useClickOutside.d.ts +1 -1
  229. package/dist/hooks/useClickOutside.d.ts.map +1 -1
  230. package/dist/hooks/useClickOutside.js +27 -13
  231. package/dist/hooks/useClickOutside.js.map +1 -1
  232. package/dist/hooks/useIsCrosschainPossible.d.ts +3 -1
  233. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
  234. package/dist/hooks/useIsCrosschainPossible.js +33 -22
  235. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  236. package/dist/hooks/useSelectableDestChains.d.ts +5 -1
  237. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
  238. package/dist/hooks/useSelectableDestChains.js +42 -36
  239. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  240. package/dist/styles.css +3 -0
  241. package/package.json +2 -2
  242. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +0 -15
  243. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +0 -1
  244. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -92
  245. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +0 -1
@@ -30,7 +30,7 @@ const setOtcPayAmountAtom = atom(null, (get, set, payAmount) => {
30
30
  const newReceiveAmount = calculateReceiveAmount(payAmount, priceRates, isReversed);
31
31
  set(setOtcReceiveAmountAtom, newReceiveAmount);
32
32
  });
33
- const setOtcAmountAtomFromProps = atom(null, (_, set, amount) => {
33
+ const setOtcPayAmountAtomFromProps = atom(null, (_, set, amount) => {
34
34
  set(currentOtcInputAtom, "from");
35
35
  set(setOtcPayAmountAtom, amount);
36
36
  });
@@ -49,6 +49,10 @@ const setOtcReceiveAmountAtom = atom(null, (get, set, receiveAmount) => {
49
49
  set(setOtcPriceRatesAtom, updatedRates, false);
50
50
  }
51
51
  });
52
+ const setOtcReceiveAmountAtomFromProps = atom(null, (_, set, amount) => {
53
+ set(currentOtcInputAtom, "to");
54
+ set(setOtcReceiveAmountAtom, amount);
55
+ });
52
56
  const resetOtcPriceAtom = atom(null, (get, set, priceRates = zeroRates) => {
53
57
  const isLocked = get(isOtcPriceLockedAtom);
54
58
  if (isLocked) return;
@@ -70,5 +74,5 @@ const toggleOtcPriceReverseAtom = atom(null, (get, set) => {
70
74
  set(isOtcPriceReversedAtom, !isReversed);
71
75
  });
72
76
 
73
- export { resetOtcPriceAtom, setOtcAmountAtomFromProps, setOtcPayAmountAtom, setOtcPriceRatesAtom, setOtcReceiveAmountAtom, toggleOtcPriceLockAtom, toggleOtcPriceReverseAtom, unlockOtcPriceAtom };
77
+ export { resetOtcPriceAtom, setOtcPayAmountAtom, setOtcPayAmountAtomFromProps, setOtcPriceRatesAtom, setOtcReceiveAmountAtom, setOtcReceiveAmountAtomFromProps, toggleOtcPriceLockAtom, toggleOtcPriceReverseAtom, unlockOtcPriceAtom };
74
78
  //# sourceMappingURL=otcInputActionsAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"otcInputActionsAtom.js","sources":["../../../../src/core/otc/state/otcInputActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n otcPayInputAmountAtom,\n otcReceiveInputAmountAtom,\n otcPriceAmountAtom,\n otcPriceRatesAtom,\n} from \"./otcInputAmountAtom\";\nimport { isOtcPriceLockedAtom } from \"./isOtcPriceLockedAtom\";\nimport Big from \"big.js\";\nimport { currentOtcInputAtom } from \"./currentOtcInputAtom\";\nimport { isOtcPriceReversedAtom } from \"./isOtcPriceReversedAtom\";\nimport {\n calculateReceiveAmount,\n calculatePayAmount,\n calculateRates,\n} from \"@/core/limit/state/utils\";\nimport type { PriceRates } from \"@/core/limit/types\";\nimport { zeroRates } from \"@/core/limit/state/constants\";\n\nexport const setOtcPriceRatesAtom = atom(\n null,\n (get, set, priceRates: PriceRates, recalculateReceive = true) => {\n const isLocked = get(isOtcPriceLockedAtom);\n // ignore updates if price is locked\n if (isLocked) return;\n\n set(otcPriceRatesAtom, priceRates);\n\n const payAmount = get(otcPayInputAmountAtom);\n const payGtZero = Big(payAmount || \"0\").gt(0);\n\n // ignore updates if pay amount is zero,\n // as it would lead to setOtcReceiveAmountAtom(0) anyway\n if (recalculateReceive && payGtZero) {\n const isReversed = get(isOtcPriceReversedAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setOtcReceiveAmountAtom, newReceiveAmount);\n }\n }\n);\n\nexport const setOtcPayAmountAtom = atom(null, (get, set, payAmount: string) => {\n set(otcPayInputAmountAtom, payAmount);\n\n // ignore updates that did not come from pay input\n if (get(currentOtcInputAtom) !== \"from\") return;\n\n const priceRates = get(otcPriceRatesAtom);\n const isReversed = get(isOtcPriceReversedAtom);\n\n const otcPriceAmount = get(otcPriceAmountAtom);\n const otcPriceGtZero = Big(otcPriceAmount || \"0\").gt(0);\n // ignore updates if otc price is zero,\n // as it would lead to setOtcReceiveAmountAtom(0) anyway\n if (!otcPriceGtZero) return;\n\n // update receive amount\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setOtcReceiveAmountAtom, newReceiveAmount);\n});\n\nexport const setOtcAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentOtcInputAtom, \"from\"); // unblock pay -> receive sync if it was previously blocked\n set(setOtcPayAmountAtom, amount);\n }\n);\n\nexport const setOtcReceiveAmountAtom = atom(\n null,\n (get, set, receiveAmount: string) => {\n set(otcReceiveInputAmountAtom, receiveAmount);\n\n // ignore updates that did not come from receive input\n if (get(currentOtcInputAtom) !== \"to\") return;\n\n const isLocked = get(isOtcPriceLockedAtom);\n const isReversed = get(isOtcPriceReversedAtom);\n\n if (isLocked) {\n // update pay amount if price is locked\n const priceRates = get(otcPriceRatesAtom);\n const newPayAmount = calculatePayAmount(\n receiveAmount,\n priceRates,\n isReversed\n );\n set(setOtcPayAmountAtom, newPayAmount);\n } else {\n // update otc price otherwise\n const payAmount = get(otcPayInputAmountAtom);\n const updatedRates = calculateRates(receiveAmount, payAmount);\n set(setOtcPriceRatesAtom, updatedRates, false);\n }\n }\n);\n\nexport const resetOtcPriceAtom = atom(\n null,\n (get, set, priceRates: PriceRates = zeroRates) => {\n const isLocked = get(isOtcPriceLockedAtom);\n if (isLocked) return;\n\n set(setOtcPriceRatesAtom, priceRates);\n\n const isReversed = get(isOtcPriceReversedAtom);\n const payAmount = get(otcPayInputAmountAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setOtcReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const unlockOtcPriceAtom = atom(null, (_, set) => {\n set(isOtcPriceLockedAtom, false);\n});\n\nexport const toggleOtcPriceLockAtom = atom(null, (get, set) => {\n const isLocked = get(isOtcPriceLockedAtom);\n set(isOtcPriceLockedAtom, !isLocked);\n});\n\nexport const toggleOtcPriceReverseAtom = atom(null, (get, set) => {\n const isReversed = get(isOtcPriceReversedAtom);\n set(isOtcPriceReversedAtom, !isReversed);\n});\n"],"names":["setOtcPriceRatesAtom","atom","get","set","priceRates","recalculateReceive","isLocked","isOtcPriceLockedAtom","otcPriceRatesAtom","payAmount","otcPayInputAmountAtom","payGtZero","Big","gt","isReversed","isOtcPriceReversedAtom","newReceiveAmount","calculateReceiveAmount","setOtcReceiveAmountAtom","setOtcPayAmountAtom","currentOtcInputAtom","otcPriceAmount","otcPriceAmountAtom","otcPriceGtZero","setOtcAmountAtomFromProps","_","amount","receiveAmount","otcReceiveInputAmountAtom","newPayAmount","calculatePayAmount","updatedRates","calculateRates","resetOtcPriceAtom","zeroRates","unlockOtcPriceAtom","toggleOtcPriceLockAtom","toggleOtcPriceReverseAtom"],"mappings":"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"}
1
+ {"version":3,"file":"otcInputActionsAtom.js","sources":["../../../../src/core/otc/state/otcInputActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n otcPayInputAmountAtom,\n otcReceiveInputAmountAtom,\n otcPriceAmountAtom,\n otcPriceRatesAtom,\n} from \"./otcInputAmountAtom\";\nimport { isOtcPriceLockedAtom } from \"./isOtcPriceLockedAtom\";\nimport Big from \"big.js\";\nimport { currentOtcInputAtom } from \"./currentOtcInputAtom\";\nimport { isOtcPriceReversedAtom } from \"./isOtcPriceReversedAtom\";\nimport {\n calculateReceiveAmount,\n calculatePayAmount,\n calculateRates,\n} from \"@/core/limit/state/utils\";\nimport type { PriceRates } from \"@/core/limit/types\";\nimport { zeroRates } from \"@/core/limit/state/constants\";\n\nexport const setOtcPriceRatesAtom = atom(\n null,\n (get, set, priceRates: PriceRates, recalculateReceive = true) => {\n const isLocked = get(isOtcPriceLockedAtom);\n // ignore updates if price is locked\n if (isLocked) return;\n\n set(otcPriceRatesAtom, priceRates);\n\n const payAmount = get(otcPayInputAmountAtom);\n const payGtZero = Big(payAmount || \"0\").gt(0);\n\n // ignore updates if pay amount is zero,\n // as it would lead to setOtcReceiveAmountAtom(0) anyway\n if (recalculateReceive && payGtZero) {\n const isReversed = get(isOtcPriceReversedAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setOtcReceiveAmountAtom, newReceiveAmount);\n }\n }\n);\n\nexport const setOtcPayAmountAtom = atom(null, (get, set, payAmount: string) => {\n set(otcPayInputAmountAtom, payAmount);\n\n // ignore updates that did not come from pay input\n if (get(currentOtcInputAtom) !== \"from\") return;\n\n const priceRates = get(otcPriceRatesAtom);\n const isReversed = get(isOtcPriceReversedAtom);\n\n const otcPriceAmount = get(otcPriceAmountAtom);\n const otcPriceGtZero = Big(otcPriceAmount || \"0\").gt(0);\n // ignore updates if otc price is zero,\n // as it would lead to setOtcReceiveAmountAtom(0) anyway\n if (!otcPriceGtZero) return;\n\n // update receive amount\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setOtcReceiveAmountAtom, newReceiveAmount);\n});\n\nexport const setOtcPayAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentOtcInputAtom, \"from\"); // unblock pay -> receive sync if it was previously blocked\n set(setOtcPayAmountAtom, amount);\n }\n);\n\nexport const setOtcReceiveAmountAtom = atom(\n null,\n (get, set, receiveAmount: string) => {\n set(otcReceiveInputAmountAtom, receiveAmount);\n\n // ignore updates that did not come from receive input\n if (get(currentOtcInputAtom) !== \"to\") return;\n\n const isLocked = get(isOtcPriceLockedAtom);\n const isReversed = get(isOtcPriceReversedAtom);\n\n if (isLocked) {\n // update pay amount if price is locked\n const priceRates = get(otcPriceRatesAtom);\n const newPayAmount = calculatePayAmount(\n receiveAmount,\n priceRates,\n isReversed\n );\n set(setOtcPayAmountAtom, newPayAmount);\n } else {\n // update otc price otherwise\n const payAmount = get(otcPayInputAmountAtom);\n const updatedRates = calculateRates(receiveAmount, payAmount);\n set(setOtcPriceRatesAtom, updatedRates, false);\n }\n }\n);\n\nexport const setOtcReceiveAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentOtcInputAtom, \"to\"); // unblock receive -> pay sync if it was previously blocked\n set(setOtcReceiveAmountAtom, amount);\n }\n);\n\nexport const resetOtcPriceAtom = atom(\n null,\n (get, set, priceRates: PriceRates = zeroRates) => {\n const isLocked = get(isOtcPriceLockedAtom);\n if (isLocked) return;\n\n set(setOtcPriceRatesAtom, priceRates);\n\n const isReversed = get(isOtcPriceReversedAtom);\n const payAmount = get(otcPayInputAmountAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setOtcReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const unlockOtcPriceAtom = atom(null, (_, set) => {\n set(isOtcPriceLockedAtom, false);\n});\n\nexport const toggleOtcPriceLockAtom = atom(null, (get, set) => {\n const isLocked = get(isOtcPriceLockedAtom);\n set(isOtcPriceLockedAtom, !isLocked);\n});\n\nexport const toggleOtcPriceReverseAtom = atom(null, (get, set) => {\n const isReversed = get(isOtcPriceReversedAtom);\n set(isOtcPriceReversedAtom, !isReversed);\n});\n"],"names":["setOtcPriceRatesAtom","atom","get","set","priceRates","recalculateReceive","isLocked","isOtcPriceLockedAtom","otcPriceRatesAtom","payAmount","otcPayInputAmountAtom","payGtZero","Big","gt","isReversed","isOtcPriceReversedAtom","newReceiveAmount","calculateReceiveAmount","setOtcReceiveAmountAtom","setOtcPayAmountAtom","currentOtcInputAtom","otcPriceAmount","otcPriceAmountAtom","otcPriceGtZero","setOtcPayAmountAtomFromProps","_","amount","receiveAmount","otcReceiveInputAmountAtom","newPayAmount","calculatePayAmount","updatedRates","calculateRates","setOtcReceiveAmountAtomFromProps","resetOtcPriceAtom","zeroRates","unlockOtcPriceAtom","toggleOtcPriceLockAtom","toggleOtcPriceReverseAtom"],"mappings":";;;;;;;;;AAmBO,MAAMA,oBAAAA,GAAuBC,KAClC,IAAA,EACA,CAACC,KAAKC,GAAAA,EAAKC,UAAAA,EAAwBC,qBAAqB,IAAA,KAAS;AAC/D,EAAA,MAAMC,QAAAA,GAAWJ,IAAIK,oBAAoB,CAAA;AAEzC,EAAA,IAAID,QAAAA,EAAU;AAEdH,EAAAA,GAAAA,CAAIK,mBAAmBJ,UAAU,CAAA;AAEjC,EAAA,MAAMK,SAAAA,GAAYP,IAAIQ,qBAAqB,CAAA;AAC3C,EAAA,MAAMC,YAAYC,GAAAA,CAAIH,SAAAA,IAAa,GAAG,CAAA,CAAEI,GAAG,CAAC,CAAA;AAI5C,EAAA,IAAIR,sBAAsBM,SAAAA,EAAW;AACnC,IAAA,MAAMG,UAAAA,GAAaZ,IAAIa,sBAAsB,CAAA;AAC7C,IAAA,MAAMC,gBAAAA,GAAmBC,sBAAAA,CACvBR,SAAAA,EACAL,UAAAA,EACAU,UACF,CAAA;AACAX,IAAAA,GAAAA,CAAIe,yBAAyBF,gBAAgB,CAAA;AAAA,EAC/C;AACF,CACF;AAEO,MAAMG,sBAAsBlB,IAAAA,CAAK,IAAA,EAAM,CAACC,GAAAA,EAAKC,KAAKM,SAAAA,KAAsB;AAC7EN,EAAAA,GAAAA,CAAIO,uBAAuBD,SAAS,CAAA;AAGpC,EAAA,IAAIP,GAAAA,CAAIkB,mBAAmB,CAAA,KAAM,MAAA,EAAQ;AAEzC,EAAA,MAAMhB,UAAAA,GAAaF,IAAIM,iBAAiB,CAAA;AACxC,EAAA,MAAMM,UAAAA,GAAaZ,IAAIa,sBAAsB,CAAA;AAE7C,EAAA,MAAMM,cAAAA,GAAiBnB,IAAIoB,kBAAkB,CAAA;AAC7C,EAAA,MAAMC,iBAAiBX,GAAAA,CAAIS,cAAAA,IAAkB,GAAG,CAAA,CAAER,GAAG,CAAC,CAAA;AAGtD,EAAA,IAAI,CAACU,cAAAA,EAAgB;AAGrB,EAAA,MAAMP,gBAAAA,GAAmBC,sBAAAA,CACvBR,SAAAA,EACAL,UAAAA,EACAU,UACF,CAAA;AACAX,EAAAA,GAAAA,CAAIe,yBAAyBF,gBAAgB,CAAA;AAC/C,CAAC;AAEM,MAAMQ,+BAA+BvB,IAAAA,CAC1C,IAAA,EACA,CAACwB,CAAAA,EAAGtB,KAAKuB,MAAAA,KAAmB;AAC1BvB,EAAAA,GAAAA,CAAIiB,qBAAqB,MAAM,CAAA;AAC/BjB,EAAAA,GAAAA,CAAIgB,qBAAqBO,MAAM,CAAA;AACjC,CACF;AAEO,MAAMR,0BAA0BjB,IAAAA,CACrC,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKwB,aAAAA,KAA0B;AACnCxB,EAAAA,GAAAA,CAAIyB,2BAA2BD,aAAa,CAAA;AAG5C,EAAA,IAAIzB,GAAAA,CAAIkB,mBAAmB,CAAA,KAAM,IAAA,EAAM;AAEvC,EAAA,MAAMd,QAAAA,GAAWJ,IAAIK,oBAAoB,CAAA;AACzC,EAAA,MAAMO,UAAAA,GAAaZ,IAAIa,sBAAsB,CAAA;AAE7C,EAAA,IAAIT,QAAAA,EAAU;AAEZ,IAAA,MAAMF,UAAAA,GAAaF,IAAIM,iBAAiB,CAAA;AACxC,IAAA,MAAMqB,YAAAA,GAAeC,kBAAAA,CACnBH,aAAAA,EACAvB,UAAAA,EACAU,UACF,CAAA;AACAX,IAAAA,GAAAA,CAAIgB,qBAAqBU,YAAY,CAAA;AAAA,EACvC,CAAA,MAAO;AAEL,IAAA,MAAMpB,SAAAA,GAAYP,IAAIQ,qBAAqB,CAAA;AAC3C,IAAA,MAAMqB,YAAAA,GAAeC,cAAAA,CAAeL,aAAAA,EAAelB,SAAS,CAAA;AAC5DN,IAAAA,GAAAA,CAAIH,oBAAAA,EAAsB+B,cAAc,KAAK,CAAA;AAAA,EAC/C;AACF,CACF;AAEO,MAAME,mCAAmChC,IAAAA,CAC9C,IAAA,EACA,CAACwB,CAAAA,EAAGtB,KAAKuB,MAAAA,KAAmB;AAC1BvB,EAAAA,GAAAA,CAAIiB,qBAAqB,IAAI,CAAA;AAC7BjB,EAAAA,GAAAA,CAAIe,yBAAyBQ,MAAM,CAAA;AACrC,CACF;AAEO,MAAMQ,oBAAoBjC,IAAAA,CAC/B,IAAA,EACA,CAACC,GAAAA,EAAKC,GAAAA,EAAKC,aAAyB+B,SAAAA,KAAc;AAChD,EAAA,MAAM7B,QAAAA,GAAWJ,IAAIK,oBAAoB,CAAA;AACzC,EAAA,IAAID,QAAAA,EAAU;AAEdH,EAAAA,GAAAA,CAAIH,sBAAsBI,UAAU,CAAA;AAEpC,EAAA,MAAMU,UAAAA,GAAaZ,IAAIa,sBAAsB,CAAA;AAC7C,EAAA,MAAMN,SAAAA,GAAYP,IAAIQ,qBAAqB,CAAA;AAC3C,EAAA,MAAMM,gBAAAA,GAAmBC,sBAAAA,CACvBR,SAAAA,EACAL,UAAAA,EACAU,UACF,CAAA;AACAX,EAAAA,GAAAA,CAAIe,yBAAyBF,gBAAgB,CAAA;AAC/C,CACF;AAEO,MAAMoB,kBAAAA,GAAqBnC,IAAAA,CAAK,IAAA,EAAM,CAACwB,GAAGtB,GAAAA,KAAQ;AACvDA,EAAAA,GAAAA,CAAII,sBAAsB,KAAK,CAAA;AACjC,CAAC;AAEM,MAAM8B,sBAAAA,GAAyBpC,IAAAA,CAAK,IAAA,EAAM,CAACC,KAAKC,GAAAA,KAAQ;AAC7D,EAAA,MAAMG,QAAAA,GAAWJ,IAAIK,oBAAoB,CAAA;AACzCJ,EAAAA,GAAAA,CAAII,oBAAAA,EAAsB,CAACD,QAAQ,CAAA;AACrC,CAAC;AAEM,MAAMgC,yBAAAA,GAA4BrC,IAAAA,CAAK,IAAA,EAAM,CAACC,KAAKC,GAAAA,KAAQ;AAChE,EAAA,MAAMW,UAAAA,GAAaZ,IAAIa,sBAAsB,CAAA;AAC7CZ,EAAAA,GAAAA,CAAIY,sBAAAA,EAAwB,CAACD,UAAU,CAAA;AACzC,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function useOnClickOutside(containerRef: React.RefObject<HTMLDivElement | null>): void;
2
+ //# sourceMappingURL=useOnClickOutside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnClickOutside.d.ts","sourceRoot":"","sources":["../../../../src/core/screen/hooks/useOnClickOutside.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,QAQrD"}
@@ -0,0 +1,30 @@
1
+ import { d as distExports } from '../../../_virtual/index.js';
2
+ import { useClickOutside } from '../../../hooks/useClickOutside.js';
3
+ import { useScreen } from '../state/screenAtom.js';
4
+ import { screenTypesClosableByOutsideClick } from '../screenByType.js';
5
+
6
+ function useOnClickOutside(containerRef) {
7
+ const $ = distExports.c(3);
8
+ const {
9
+ screen,
10
+ closeScreen
11
+ } = useScreen();
12
+ let t0;
13
+ if ($[0] !== closeScreen || $[1] !== screen?.screenType) {
14
+ t0 = () => {
15
+ const screenType = screen?.screenType;
16
+ if (screenType && screenTypesClosableByOutsideClick.includes(screenType)) {
17
+ closeScreen();
18
+ }
19
+ };
20
+ $[0] = closeScreen;
21
+ $[1] = screen?.screenType;
22
+ $[2] = t0;
23
+ } else {
24
+ t0 = $[2];
25
+ }
26
+ useClickOutside(containerRef, t0);
27
+ }
28
+
29
+ export { useOnClickOutside };
30
+ //# sourceMappingURL=useOnClickOutside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnClickOutside.js","sources":["../../../../src/core/screen/hooks/useOnClickOutside.ts"],"sourcesContent":["import { useClickOutside } from \"@/hooks/useClickOutside\";\nimport { useScreen } from \"../state/screenAtom\";\nimport { screenTypesClosableByOutsideClick } from \"../screenByType\";\n\nexport function useOnClickOutside(\n containerRef: React.RefObject<HTMLDivElement | null>\n) {\n const { screen, closeScreen } = useScreen();\n useClickOutside(containerRef, () => {\n const screenType = screen?.screenType;\n if (screenType && screenTypesClosableByOutsideClick.includes(screenType))\n closeScreen();\n });\n}\n"],"names":["useOnClickOutside","containerRef","$","_c","screen","closeScreen","useScreen","t0","screenType","screenTypesClosableByOutsideClick","includes","useClickOutside"],"mappings":";;;;;AAIO,SAAAA,kBAAAC,YAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAGL,EAAA,MAAA;AAAA,IAAAC,MAAAA;AAAAA,IAAAC;AAAAA,MAAgCC,SAAAA,EAAU;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAG,WAAAA,IAAAH,EAAA,CAAA,CAAA,KAAAE,QAAAI,UAAAA,EAAA;AACdD,IAAAA,EAAAA,GAAAA,MAAA;AAC5B,MAAA,MAAAC,aAAmBJ,MAAAA,EAAMI,UAAAA;AACzB,MAAA,IAAIA,UAAAA,IAAcC,iCAAAA,CAAiCC,QAAAA,CAAUF,UAAU,CAAA,EAAC;AACtEH,QAAAA,WAAAA,EAAY;AAAA,MAAC;AAAA,IAAC,CAAA;AACjBH,IAAAA,CAAAA,MAAAG,WAAAA;AAAAH,IAAAA,CAAAA,CAAA,CAAA,IAAAE,MAAAA,EAAAI,UAAAA;AAAAN,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAJDS,EAAAA,eAAAA,CAAgBV,cAAcM,EAI7B,CAAA;AAAC;;;;"}
@@ -1,7 +1,5 @@
1
1
  export declare const screenByType: {
2
- selectToken: ({ drawerContainer, ...props }: Omit<import('../../components/widget/Dialog/SelectTokenDialog/types').SelectTokenDialogProps & import('../../components/widget/Dialog/SelectTokenDialog/SelectTokenDialog').SelectTokenContentProps, "onSelectImportToken"> & {
3
- drawerContainer?: HTMLElement | null;
4
- }) => import("react/jsx-runtime").JSX.Element;
2
+ selectToken: ({ drawerContainer, ...props }: import('../../components/widget/Dialog/SelectTokenDialog/SelectTokenDialog').SelectTokenScreenProps) => import("react/jsx-runtime").JSX.Element;
5
3
  tradeOverview: ({ flowType, flowProps, }: import('../../components/widget/TradeOverview/TradeOverviewScreen').TradeOverviewScreenProps) => import("react/jsx-runtime").JSX.Element;
6
4
  activities: () => import("react/jsx-runtime").JSX.Element;
7
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"screenByType.d.ts","sourceRoot":"","sources":["../../../src/core/screen/screenByType.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;uBAQuzB,CAAC;;;;CAJh1B,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,CAAC,MAAM,OAAO,YAAY,CAAC,EAC5C,CAAC"}
1
+ {"version":3,"file":"screenByType.d.ts","sourceRoot":"","sources":["../../../src/core/screen/screenByType.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,CAAC,MAAM,OAAO,YAAY,CAAC,EAC5C,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export declare const swapChainToAtom: import('jotai').WritableAtom<1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130 | undefined, [newChainTo: 1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130], void>;
2
2
  export declare const useSwapChainTo: () => 1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130 | undefined;
3
+ export declare const limitChainToAtom: import('jotai').WritableAtom<1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130 | undefined, [newChainTo: 1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130], void>;
4
+ export declare const useLimitChainTo: () => 1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130 | undefined;
3
5
  //# sourceMappingURL=chainToAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chainToAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/chainToAtom.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,eAAe,sLAiC3B,CAAC;AAEF,eAAO,MAAM,cAAc,8EAE1B,CAAC"}
1
+ {"version":3,"file":"chainToAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/chainToAtom.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,eAAe,sLAmC3B,CAAC;AAEF,eAAO,MAAM,cAAc,8EAE1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,sLAmC5B,CAAC;AAEF,eAAO,MAAM,eAAe,8EAE3B,CAAC"}
@@ -2,11 +2,11 @@ import { atom } from 'jotai';
2
2
  import { useAtomValue } from '../store.js';
3
3
  import { swapTokenToAtom, swapTokenFromAtom } from '../inputs/state/selectedTokenAtom.js';
4
4
  import { pickDefaultTokenPair } from '../../tokens/defaultTokens.js';
5
- import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
6
5
  import { findFirstTokenFromAcross } from '../across/utils.js';
7
6
  import { areTokensSame } from '../../tokens/utils/areTokensSame.js';
8
7
  import { setSwapModeAtom } from '../../components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js';
9
8
  import { allTokensByChainAtom } from '../../tokens/state/allTokensByChainAtom.js';
9
+ import { limitTokenToAtom, limitTokenFromAtom } from '../limit/state/limitTokenAtoms.js';
10
10
 
11
11
  const swapChainToAtom = atom(
12
12
  // chainTo always follows tokenTo network (either SupportedChainId or undefined)
@@ -14,17 +14,18 @@ const swapChainToAtom = atom(
14
14
  // set(chainToAtom) = (chainTo) => set(tokenToAtom to default token for that chain)
15
15
  (get, set, newChainTo) => {
16
16
  const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(newChainTo, "swap");
17
- const appChainId = wagmiConfig.state.chainId;
18
- if (appChainId !== newChainTo) {
17
+ const tokenFrom = get(swapTokenFromAtom);
18
+ const srcChainId = tokenFrom.network;
19
+ if (srcChainId !== newChainTo) {
19
20
  const maybeAcrossToken = findFirstTokenFromAcross({
20
- fromChainId: appChainId,
21
+ fromChainId: srcChainId,
21
22
  toChainId: newChainTo,
22
- listByChainId: get(allTokensByChainAtom).listByChainId
23
+ listByChainId: get(allTokensByChainAtom).listByChainId,
24
+ mode: "swap"
23
25
  });
24
26
  set(swapTokenToAtom, maybeAcrossToken);
25
27
  set(setSwapModeAtom, "delta");
26
28
  } else {
27
- const tokenFrom = get(swapTokenFromAtom);
28
29
  const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
29
30
  set(swapTokenToAtom, newTokenTo);
30
31
  }
@@ -33,6 +34,35 @@ const swapChainToAtom = atom(
33
34
  const useSwapChainTo = () => {
34
35
  return useAtomValue(swapChainToAtom);
35
36
  };
37
+ const limitChainToAtom = atom(
38
+ // chainTo always follows tokenTo network (either SupportedChainId or undefined)
39
+ (get) => get(limitTokenToAtom)?.network,
40
+ // set(chainToAtom) = (chainTo) => set(tokenToAtom to default token for that chain)
41
+ (get, set, newChainTo) => {
42
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(
43
+ newChainTo,
44
+ "limit"
45
+ // @TODO check that default tokenTo can be crosschain swapped
46
+ );
47
+ const tokenFrom = get(limitTokenFromAtom);
48
+ const srcChainId = tokenFrom.network;
49
+ if (srcChainId !== newChainTo) {
50
+ const maybeAcrossToken = findFirstTokenFromAcross({
51
+ fromChainId: srcChainId,
52
+ toChainId: newChainTo,
53
+ listByChainId: get(allTokensByChainAtom).listByChainId,
54
+ mode: "limit"
55
+ });
56
+ set(limitTokenToAtom, maybeAcrossToken);
57
+ } else {
58
+ const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
59
+ set(limitTokenToAtom, newTokenTo);
60
+ }
61
+ }
62
+ );
63
+ const useLimitChainTo = () => {
64
+ return useAtomValue(limitChainToAtom);
65
+ };
36
66
 
37
- export { swapChainToAtom, useSwapChainTo };
67
+ export { limitChainToAtom, swapChainToAtom, useLimitChainTo, useSwapChainTo };
38
68
  //# sourceMappingURL=chainToAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chainToAtom.js","sources":["../../../src/core/state/chainToAtom.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n swapTokenFromAtom,\n swapTokenToAtom,\n} from \"../inputs/state/selectedTokenAtom\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { findFirstTokenFromAcross } from \"../across/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\n\nexport const swapChainToAtom = atom(\n // chainTo always follows tokenTo network (either SupportedChainId or undefined)\n (get) => get(swapTokenToAtom)?.network,\n // set(chainToAtom) = (chainTo) => set(tokenToAtom to default token for that chain)\n (get, set, newChainTo: SupportedChainId) => {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newChainTo,\n \"swap\"\n );\n\n const appChainId = wagmiConfig.state.chainId;\n\n // cross-chain? try to set the first token from the across list as tokenTo\n // otherwise tokenTo will be reset\n if (appChainId !== newChainTo) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: appChainId,\n toChainId: newChainTo,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n set(setSwapModeAtom, \"delta\");\n } else {\n // single chain? set tokenTo to one of the default tokens\n const tokenFrom = get(swapTokenFromAtom);\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(swapTokenToAtom, newTokenTo);\n }\n }\n);\n\nexport const useSwapChainTo = () => {\n return useAtomValue(swapChainToAtom);\n};\n"],"names":["swapChainToAtom","atom","get","swapTokenToAtom","network","set","newChainTo","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","appChainId","wagmiConfig","state","chainId","maybeAcrossToken","findFirstTokenFromAcross","fromChainId","toChainId","listByChainId","allTokensByChainAtom","setSwapModeAtom","tokenFrom","swapTokenFromAtom","newTokenTo","areTokensSame","useSwapChainTo","useAtomValue"],"mappings":";;;;;;;;;;AAcO,MAAMA,eAAAA,GAAkBC,IAAAA;AAAAA;AAAAA,EAE5BC,CAAAA,GAAAA,KAAQA,GAAAA,CAAIC,eAAe,CAAA,EAAGC,OAAAA;AAAAA;AAAAA,EAE/B,CAACF,GAAAA,EAAKG,GAAAA,EAAKC,UAAAA,KAAiC;AAC1C,IAAA,MAAM,CAACC,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCH,YACA,MACF,CAAA;AAEA,IAAA,MAAMI,UAAAA,GAAaC,YAAYC,KAAAA,CAAMC,OAAAA;AAIrC,IAAA,IAAIH,eAAeJ,UAAAA,EAAY;AAC7B,MAAA,MAAMQ,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDC,WAAAA,EAAaN,UAAAA;AAAAA,QACbO,SAAAA,EAAWX,UAAAA;AAAAA,QACXY,aAAAA,EAAehB,GAAAA,CAAIiB,oBAAoB,CAAA,CAAED;AAAAA,OAC1C,CAAA;AAEDb,MAAAA,GAAAA,CAAIF,iBAAiBW,gBAAgB,CAAA;AACrCT,MAAAA,GAAAA,CAAIe,iBAAiB,OAAO,CAAA;AAAA,IAC9B,CAAA,MAAO;AAEL,MAAA,MAAMC,SAAAA,GAAYnB,IAAIoB,iBAAiB,CAAA;AACvC,MAAA,MAAMC,UAAAA,GAAaC,aAAAA,CAAcH,SAAAA,EAAWb,cAAc,IACtDD,gBAAAA,GACAC,cAAAA;AAEJH,MAAAA,GAAAA,CAAIF,iBAAiBoB,UAAU,CAAA;AAAA,IACjC;AAAA,EACF;AACF;AAEO,MAAME,iBAAiBA,MAAA;AAAA,EAAA,OACrBC,aAAa1B,eAAe,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"chainToAtom.js","sources":["../../../src/core/state/chainToAtom.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n swapTokenFromAtom,\n swapTokenToAtom,\n} from \"../inputs/state/selectedTokenAtom\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { findFirstTokenFromAcross } from \"../across/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"../limit/state/limitTokenAtoms\";\n\nexport const swapChainToAtom = atom(\n // chainTo always follows tokenTo network (either SupportedChainId or undefined)\n (get) => get(swapTokenToAtom)?.network,\n // set(chainToAtom) = (chainTo) => set(tokenToAtom to default token for that chain)\n (get, set, newChainTo: SupportedChainId) => {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newChainTo,\n \"swap\"\n );\n\n const tokenFrom = get(swapTokenFromAtom);\n const srcChainId = tokenFrom.network;\n\n // cross-chain? try to set the first token from the across list as tokenTo\n // otherwise tokenTo will be reset\n if (srcChainId !== newChainTo) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: srcChainId,\n toChainId: newChainTo,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"swap\",\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n set(setSwapModeAtom, \"delta\");\n } else {\n // single chain? set tokenTo to one of the default tokens\n\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(swapTokenToAtom, newTokenTo);\n }\n }\n);\n\nexport const useSwapChainTo = () => {\n return useAtomValue(swapChainToAtom);\n};\n\nexport const limitChainToAtom = atom(\n // chainTo always follows tokenTo network (either SupportedChainId or undefined)\n (get) => get(limitTokenToAtom)?.network,\n // set(chainToAtom) = (chainTo) => set(tokenToAtom to default token for that chain)\n (get, set, newChainTo: SupportedChainId) => {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newChainTo,\n \"limit\"\n // @TODO check that default tokenTo can be crosschain swapped\n );\n\n const tokenFrom = get(limitTokenFromAtom);\n\n const srcChainId = tokenFrom.network;\n\n // cross-chain? try to set the first token from the across list as tokenTo\n // otherwise tokenTo will be reset\n if (srcChainId !== newChainTo) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: srcChainId,\n toChainId: newChainTo,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n set(limitTokenToAtom, maybeAcrossToken);\n } else {\n // single chain? set tokenTo to one of the default tokens\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n }\n }\n);\n\nexport const useLimitChainTo = () => {\n return useAtomValue(limitChainToAtom);\n};\n"],"names":["swapChainToAtom","atom","get","swapTokenToAtom","network","set","newChainTo","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","tokenFrom","swapTokenFromAtom","srcChainId","maybeAcrossToken","findFirstTokenFromAcross","fromChainId","toChainId","listByChainId","allTokensByChainAtom","mode","setSwapModeAtom","newTokenTo","areTokensSame","useSwapChainTo","useAtomValue","limitChainToAtom","limitTokenToAtom","limitTokenFromAtom","useLimitChainTo"],"mappings":";;;;;;;;;;AAiBO,MAAMA,eAAAA,GAAkBC,IAAAA;AAAAA;AAAAA,EAE5BC,CAAAA,GAAAA,KAAQA,GAAAA,CAAIC,eAAe,CAAA,EAAGC,OAAAA;AAAAA;AAAAA,EAE/B,CAACF,GAAAA,EAAKG,GAAAA,EAAKC,UAAAA,KAAiC;AAC1C,IAAA,MAAM,CAACC,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCH,YACA,MACF,CAAA;AAEA,IAAA,MAAMI,SAAAA,GAAYR,IAAIS,iBAAiB,CAAA;AACvC,IAAA,MAAMC,aAAaF,SAAAA,CAAUN,OAAAA;AAI7B,IAAA,IAAIQ,eAAeN,UAAAA,EAAY;AAC7B,MAAA,MAAMO,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDC,WAAAA,EAAaH,UAAAA;AAAAA,QACbI,SAAAA,EAAWV,UAAAA;AAAAA,QACXW,aAAAA,EAAef,GAAAA,CAAIgB,oBAAoB,CAAA,CAAED,aAAAA;AAAAA,QACzCE,IAAAA,EAAM;AAAA,OACP,CAAA;AAEDd,MAAAA,GAAAA,CAAIF,iBAAiBU,gBAAgB,CAAA;AACrCR,MAAAA,GAAAA,CAAIe,iBAAiB,OAAO,CAAA;AAAA,IAC9B,CAAA,MAAO;AAGL,MAAA,MAAMC,UAAAA,GAAaC,aAAAA,CAAcZ,SAAAA,EAAWF,cAAc,IACtDD,gBAAAA,GACAC,cAAAA;AAEJH,MAAAA,GAAAA,CAAIF,iBAAiBkB,UAAU,CAAA;AAAA,IACjC;AAAA,EACF;AACF;AAEO,MAAME,iBAAiBA,MAAA;AAAA,EAAA,OACrBC,aAAaxB,eAAe,CAAA;AAAC;AAG/B,MAAMyB,gBAAAA,GAAmBxB,IAAAA;AAAAA;AAAAA,EAE7BC,CAAAA,GAAAA,KAAQA,GAAAA,CAAIwB,gBAAgB,CAAA,EAAGtB,OAAAA;AAAAA;AAAAA,EAEhC,CAACF,GAAAA,EAAKG,GAAAA,EAAKC,UAAAA,KAAiC;AAC1C,IAAA,MAAM,CAACC,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA;AAAAA,MACzCH,UAAAA;AAAAA,MACA;AAAA;AAAA,KAEF;AAEA,IAAA,MAAMI,SAAAA,GAAYR,IAAIyB,kBAAkB,CAAA;AAExC,IAAA,MAAMf,aAAaF,SAAAA,CAAUN,OAAAA;AAI7B,IAAA,IAAIQ,eAAeN,UAAAA,EAAY;AAC7B,MAAA,MAAMO,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDC,WAAAA,EAAaH,UAAAA;AAAAA,QACbI,SAAAA,EAAWV,UAAAA;AAAAA,QACXW,aAAAA,EAAef,GAAAA,CAAIgB,oBAAoB,CAAA,CAAED,aAAAA;AAAAA,QACzCE,IAAAA,EAAM;AAAA,OACP,CAAA;AAEDd,MAAAA,GAAAA,CAAIqB,kBAAkBb,gBAAgB,CAAA;AAAA,IACxC,CAAA,MAAO;AAEL,MAAA,MAAMQ,UAAAA,GAAaC,aAAAA,CAAcZ,SAAAA,EAAWF,cAAc,IACtDD,gBAAAA,GACAC,cAAAA;AAEJH,MAAAA,GAAAA,CAAIqB,kBAAkBL,UAAU,CAAA;AAAA,IAClC;AAAA,EACF;AACF;AAEO,MAAMO,kBAAkBA,MAAA;AAAA,EAAA,OACtBJ,aAAaC,gBAAgB,CAAA;AAAC;;;;"}
@@ -1,5 +1,2 @@
1
- import { Getter } from 'jotai';
2
- import { SupportedChainId } from '../../lib/web3/wagmi/types';
3
1
  export declare function useActivateConfigEffect(): void;
4
- export declare function getSelectableDestChains(get: Getter, fromChainId: SupportedChainId): SupportedChainId[];
5
2
  //# sourceMappingURL=configEffectAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configEffectAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configEffectAtom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,OAAO,CAAC;AAapC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgD/D,wBAAgB,uBAAuB,SAEtC;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,gBAAgB,GAC5B,gBAAgB,EAAE,CAkBpB"}
1
+ {"version":3,"file":"configEffectAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configEffectAtom.ts"],"names":[],"mappings":"AA+FA,wBAAgB,uBAAuB,SAEtC"}
@@ -1,16 +1,12 @@
1
1
  import 'jotai';
2
2
  import { useAtom } from '../store.js';
3
3
  import { atomEffect } from 'jotai-effect';
4
- import { swapTokenFromAtom, swapTokenToAtom } from '../inputs/state/selectedTokenAtom.js';
5
4
  import { widgetConfigAtom } from './configAtom.js';
6
- import { isCrossChainAtom } from './isCrosschainAtom.js';
7
- import { enabledDestChainsAtom, enabledSrcChainsAtom } from './enabledChainsAtom.js';
8
- import { getAvailableCrosses } from '../../hooks/useAvailableCrosses.js';
9
- import { deltaEnabledOnAPI } from '../../lib/constants/delta.js';
10
- import { deltaParamAtom } from '../../components/widget/TradeParameters/state/deltaParamAtom.js';
11
- import { computeSelectableDestChains } from '../../hooks/useSelectableDestChains.js';
12
- import { bridgeInfoAtom } from '../../hooks/swap/prices/delta/queries/useBridgeInfo.js';
5
+ import { enabledSrcChainsAtom, enabledDestChainsAtom } from './enabledChainsAtom.js';
6
+ import { bridgeInfosLoadedAtom } from '../../hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js';
13
7
  import { switchChain } from '../../lib/web3/wagmi/switchChain.js';
8
+ import { tradeModeToTokenAtoms } from '../inputs/state/common.js';
9
+ import { getSelectableDestChains } from './getSelectableDestChains.js';
14
10
 
15
11
  const configEffectAtom = atomEffect((get, set) => {
16
12
  const {
@@ -18,40 +14,56 @@ const configEffectAtom = atomEffect((get, set) => {
18
14
  enableDelta
19
15
  } = get(widgetConfigAtom);
20
16
  const enabledSrcChains = get(enabledSrcChainsAtom);
21
- get(bridgeInfoAtom);
22
- const swapTokenFrom = get.peek(swapTokenFromAtom);
23
- const swapTokenTo = get.peek(swapTokenToAtom);
24
- const isCrossChain = get.peek(isCrossChainAtom);
25
- const selectableDestChains = getSelectableDestChains(get.peek, swapTokenFrom.network);
26
- const swapTokenFromNetworkNotEnabled = !enabledSrcChains.includes(swapTokenFrom.network);
27
- const swapTokenToNetworkNotEnabled = swapTokenTo && !selectableDestChains.includes(swapTokenTo.network);
17
+ get(bridgeInfosLoadedAtom);
18
+ get(enabledDestChainsAtom);
19
+ reconcileChainsPair({
20
+ enabledSrcChains,
21
+ enableCrossChain,
22
+ enableDelta,
23
+ get: get.peek,
24
+ set,
25
+ mode: "swap"
26
+ });
27
+ reconcileChainsPair({
28
+ enabledSrcChains,
29
+ enableCrossChain,
30
+ enableDelta,
31
+ get: get.peek,
32
+ set,
33
+ mode: "limit"
34
+ });
35
+ });
36
+ function reconcileChainsPair({
37
+ get,
38
+ set,
39
+ enabledSrcChains,
40
+ enableCrossChain,
41
+ enableDelta,
42
+ mode
43
+ }) {
44
+ const {
45
+ tokenFromAtom,
46
+ tokenToAtom,
47
+ isCrossChainAtom
48
+ } = tradeModeToTokenAtoms[mode];
49
+ const tokenFrom = get(tokenFromAtom);
50
+ const tokenTo = get(tokenToAtom);
51
+ const isCrossChain = get(isCrossChainAtom);
52
+ const selectableDestChains = getSelectableDestChains(get, {
53
+ fromChainId: tokenFrom.network,
54
+ mode
55
+ });
56
+ const tokenFromNetworkNotEnabled = !enabledSrcChains.includes(tokenFrom.network);
57
+ const tokenToNetworkNotEnabled = tokenTo && !selectableDestChains.includes(tokenTo.network);
28
58
  const crossChainTurnedOffWhileActive = (!enableDelta || !enableCrossChain) && isCrossChain;
29
- if (swapTokenFromNetworkNotEnabled) switchChain({
59
+ if (tokenFromNetworkNotEnabled) switchChain({
30
60
  chainId: enabledSrcChains[0]
31
61
  });
32
- if (crossChainTurnedOffWhileActive || swapTokenFromNetworkNotEnabled || swapTokenToNetworkNotEnabled) set(swapTokenToAtom, void 0);
33
- });
62
+ if (crossChainTurnedOffWhileActive || tokenFromNetworkNotEnabled || tokenToNetworkNotEnabled) set(tokenToAtom, void 0);
63
+ }
34
64
  function useActivateConfigEffect() {
35
65
  useAtom(configEffectAtom);
36
66
  }
37
- function getSelectableDestChains(get, fromChainId) {
38
- const availableCrosses = getAvailableCrosses(fromChainId);
39
- const enabledDestChains = get(enabledDestChainsAtom);
40
- const {
41
- enableDelta,
42
- enableCrossChain
43
- } = get(widgetConfigAtom);
44
- const deltaEnabledParam = get(deltaParamAtom);
45
- const deltaEnabledOnChain = deltaEnabledOnAPI[fromChainId];
46
- const deltaEnabledGlobally = enableDelta && deltaEnabledParam && deltaEnabledOnChain;
47
- return computeSelectableDestChains({
48
- fromChainId,
49
- availableCrosses,
50
- enabledDestChains,
51
- enableCrossChain,
52
- deltaEnabledGlobally
53
- });
54
- }
55
67
 
56
- export { getSelectableDestChains, useActivateConfigEffect };
68
+ export { useActivateConfigEffect };
57
69
  //# sourceMappingURL=configEffectAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configEffectAtom.js","sources":["../../../src/core/state/configEffectAtom.ts"],"sourcesContent":["import { type Getter } from \"jotai\";\nimport { useAtom } from \"@/core/store\";\nimport { atomEffect } from \"jotai-effect\";\nimport {\n swapTokenFromAtom,\n swapTokenToAtom,\n} from \"../inputs/state/selectedTokenAtom\";\nimport { widgetConfigAtom } from \"./configAtom\";\nimport { isCrossChainAtom } from \"./isCrosschainAtom\";\nimport {\n enabledSrcChainsAtom,\n enabledDestChainsAtom,\n} from \"./enabledChainsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nimport { getAvailableCrosses } from \"@/hooks/useAvailableCrosses\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { computeSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { bridgeInfoAtom } from \"@/hooks/swap/prices/delta/queries/useBridgeInfo\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\nconst configEffectAtom = atomEffect((get, set) => {\n const { enableCrossChain, enableDelta } = get(widgetConfigAtom);\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n // subscribe to bridgeInfoAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfoAtom);\n\n const swapTokenFrom = get.peek(swapTokenFromAtom);\n const swapTokenTo = get.peek(swapTokenToAtom);\n const isCrossChain = get.peek(isCrossChainAtom);\n\n const selectableDestChains = getSelectableDestChains(\n get.peek,\n swapTokenFrom.network\n );\n\n const swapTokenFromNetworkNotEnabled = !enabledSrcChains.includes(\n swapTokenFrom.network\n );\n const swapTokenToNetworkNotEnabled =\n swapTokenTo && !selectableDestChains.includes(swapTokenTo.network);\n\n const crossChainTurnedOffWhileActive =\n (!enableDelta || !enableCrossChain) && isCrossChain;\n\n if (swapTokenFromNetworkNotEnabled)\n switchChain({\n chainId: enabledSrcChains[0],\n });\n\n if (\n crossChainTurnedOffWhileActive ||\n swapTokenFromNetworkNotEnabled ||\n swapTokenToNetworkNotEnabled\n )\n set(swapTokenToAtom, undefined);\n});\n\nexport function useActivateConfigEffect() {\n useAtom(configEffectAtom);\n}\n\nexport function getSelectableDestChains(\n get: Getter,\n fromChainId: SupportedChainId\n): SupportedChainId[] {\n const availableCrosses = getAvailableCrosses(fromChainId);\n\n const enabledDestChains = get(enabledDestChainsAtom);\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n const deltaEnabledParam = get(deltaParamAtom);\n\n const deltaEnabledOnChain = deltaEnabledOnAPI[fromChainId];\n const deltaEnabledGlobally =\n enableDelta && deltaEnabledParam && deltaEnabledOnChain;\n\n return computeSelectableDestChains({\n fromChainId,\n availableCrosses,\n enabledDestChains,\n enableCrossChain,\n deltaEnabledGlobally,\n });\n}\n"],"names":["configEffectAtom","atomEffect","get","set","enableCrossChain","enableDelta","widgetConfigAtom","enabledSrcChains","enabledSrcChainsAtom","bridgeInfoAtom","swapTokenFrom","peek","swapTokenFromAtom","swapTokenTo","swapTokenToAtom","isCrossChain","isCrossChainAtom","selectableDestChains","getSelectableDestChains","network","swapTokenFromNetworkNotEnabled","includes","swapTokenToNetworkNotEnabled","crossChainTurnedOffWhileActive","switchChain","chainId","undefined","useActivateConfigEffect","useAtom","fromChainId","availableCrosses","getAvailableCrosses","enabledDestChains","enabledDestChainsAtom","deltaEnabledParam","deltaParamAtom","deltaEnabledOnChain","deltaEnabledOnAPI","deltaEnabledGlobally","computeSelectableDestChains"],"mappings":";;;;;;;;;;;;;;AAsBA,MAAMA,gBAAAA,GAAmBC,UAAAA,CAAW,CAACC,GAAAA,EAAKC,GAAAA,KAAQ;AAChD,EAAA,MAAM;AAAA,IAAEC,gBAAAA;AAAAA,IAAkBC;AAAAA,GAAY,GAAIH,IAAII,gBAAgB,CAAA;AAE9D,EAAA,MAAMC,gBAAAA,GAAmBL,IAAIM,oBAAoB,CAAA;AAGjDN,EAAAA,GAAAA,CAAIO,cAAc,CAAA;AAElB,EAAA,MAAMC,aAAAA,GAAgBR,GAAAA,CAAIS,IAAAA,CAAKC,iBAAiB,CAAA;AAChD,EAAA,MAAMC,WAAAA,GAAcX,GAAAA,CAAIS,IAAAA,CAAKG,eAAe,CAAA;AAC5C,EAAA,MAAMC,YAAAA,GAAeb,GAAAA,CAAIS,IAAAA,CAAKK,gBAAgB,CAAA;AAE9C,EAAA,MAAMC,oBAAAA,GAAuBC,uBAAAA,CAC3BhB,GAAAA,CAAIS,IAAAA,EACJD,cAAcS,OAChB,CAAA;AAEA,EAAA,MAAMC,8BAAAA,GAAiC,CAACb,gBAAAA,CAAiBc,QAAAA,CACvDX,cAAcS,OAChB,CAAA;AACA,EAAA,MAAMG,+BACJT,WAAAA,IAAe,CAACI,oBAAAA,CAAqBI,QAAAA,CAASR,YAAYM,OAAO,CAAA;AAEnE,EAAA,MAAMI,8BAAAA,GAAAA,CACH,CAAClB,WAAAA,IAAe,CAACD,gBAAAA,KAAqBW,YAAAA;AAEzC,EAAA,IAAIK,gCACFI,WAAAA,CAAY;AAAA,IACVC,OAAAA,EAASlB,iBAAiB,CAAC;AAAA,GAC5B,CAAA;AAEH,EAAA,IACEgB,8BAAAA,IACAH,8BAAAA,IACAE,4BAAAA,EAEAnB,GAAAA,CAAIW,iBAAiBY,MAAS,CAAA;AAClC,CAAC,CAAA;AAEM,SAAAC,uBAAAA,GAAA;AACLC,EAAAA,OAAAA,CAAQ5B,gBAAgB,CAAA;AAAC;AAGpB,SAASkB,uBAAAA,CACdhB,KACA2B,WAAAA,EACoB;AACpB,EAAA,MAAMC,gBAAAA,GAAmBC,oBAAoBF,WAAW,CAAA;AAExD,EAAA,MAAMG,iBAAAA,GAAoB9B,IAAI+B,qBAAqB,CAAA;AACnD,EAAA,MAAM;AAAA,IAAE5B,WAAAA;AAAAA,IAAaD;AAAAA,GAAiB,GAAIF,IAAII,gBAAgB,CAAA;AAC9D,EAAA,MAAM4B,iBAAAA,GAAoBhC,IAAIiC,cAAc,CAAA;AAE5C,EAAA,MAAMC,mBAAAA,GAAsBC,kBAAkBR,WAAW,CAAA;AACzD,EAAA,MAAMS,oBAAAA,GACJjC,eAAe6B,iBAAAA,IAAqBE,mBAAAA;AAEtC,EAAA,OAAOG,2BAAAA,CAA4B;AAAA,IACjCV,WAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAE,iBAAAA;AAAAA,IACA5B,gBAAAA;AAAAA,IACAkC;AAAAA,GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"configEffectAtom.js","sources":["../../../src/core/state/configEffectAtom.ts"],"sourcesContent":["import { type Getter, type Setter } from \"jotai\";\nimport { useAtom } from \"@/core/store\";\nimport { atomEffect } from \"jotai-effect\";\nimport { widgetConfigAtom } from \"./configAtom\";\nimport {\n enabledSrcChainsAtom,\n enabledDestChainsAtom,\n type EnabledChains,\n} from \"./enabledChainsAtom\";\nimport { bridgeInfosLoadedAtom } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { getSelectableDestChains } from \"./getSelectableDestChains\";\n\nconst configEffectAtom = atomEffect((get, set) => {\n const { enableCrossChain, enableDelta } = get(widgetConfigAtom);\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n // subscribe to bridgeInfosLoadedAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfosLoadedAtom);\n\n // separately subscribe to enabledDestChainsAtom to have up-to-date selectable dest chains\n get(enabledDestChainsAtom);\n\n reconcileChainsPair({\n enabledSrcChains,\n enableCrossChain,\n enableDelta,\n get: get.peek,\n set: set,\n mode: \"swap\",\n });\n\n reconcileChainsPair({\n enabledSrcChains,\n enableCrossChain,\n enableDelta,\n get: get.peek,\n set: set,\n mode: \"limit\",\n });\n});\n\ntype ReconcileChainsPairInput = {\n enabledSrcChains: EnabledChains;\n enableCrossChain: boolean;\n enableDelta: boolean;\n get: Getter;\n set: Setter;\n mode: BridgeInfoMode;\n};\n\nfunction reconcileChainsPair({\n get,\n set,\n enabledSrcChains,\n enableCrossChain,\n enableDelta,\n mode,\n}: ReconcileChainsPairInput) {\n const { tokenFromAtom, tokenToAtom, isCrossChainAtom } =\n tradeModeToTokenAtoms[mode];\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n const isCrossChain = get(isCrossChainAtom);\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode,\n });\n\n const tokenFromNetworkNotEnabled = !enabledSrcChains.includes(\n tokenFrom.network\n );\n const tokenToNetworkNotEnabled =\n tokenTo && !selectableDestChains.includes(tokenTo.network);\n\n const crossChainTurnedOffWhileActive =\n (!enableDelta || !enableCrossChain) && isCrossChain;\n\n if (tokenFromNetworkNotEnabled)\n switchChain({\n chainId: enabledSrcChains[0],\n });\n\n if (\n crossChainTurnedOffWhileActive ||\n tokenFromNetworkNotEnabled ||\n tokenToNetworkNotEnabled\n )\n set(tokenToAtom, undefined);\n}\n\nexport function useActivateConfigEffect() {\n useAtom(configEffectAtom);\n}\n"],"names":["configEffectAtom","atomEffect","get","set","enableCrossChain","enableDelta","widgetConfigAtom","enabledSrcChains","enabledSrcChainsAtom","bridgeInfosLoadedAtom","enabledDestChainsAtom","reconcileChainsPair","peek","mode","tokenFromAtom","tokenToAtom","isCrossChainAtom","tradeModeToTokenAtoms","tokenFrom","tokenTo","isCrossChain","selectableDestChains","getSelectableDestChains","fromChainId","network","tokenFromNetworkNotEnabled","includes","tokenToNetworkNotEnabled","crossChainTurnedOffWhileActive","switchChain","chainId","undefined","useActivateConfigEffect","useAtom"],"mappings":";;;;;;;;;;AAeA,MAAMA,gBAAAA,GAAmBC,UAAAA,CAAW,CAACC,GAAAA,EAAKC,GAAAA,KAAQ;AAChD,EAAA,MAAM;AAAA,IAAEC,gBAAAA;AAAAA,IAAkBC;AAAAA,GAAY,GAAIH,IAAII,gBAAgB,CAAA;AAE9D,EAAA,MAAMC,gBAAAA,GAAmBL,IAAIM,oBAAoB,CAAA;AAGjDN,EAAAA,GAAAA,CAAIO,qBAAqB,CAAA;AAGzBP,EAAAA,GAAAA,CAAIQ,qBAAqB,CAAA;AAEzBC,EAAAA,mBAAAA,CAAoB;AAAA,IAClBJ,gBAAAA;AAAAA,IACAH,gBAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAH,KAAKA,GAAAA,CAAIU,IAAAA;AAAAA,IACTT,GAAAA;AAAAA,IACAU,IAAAA,EAAM;AAAA,GACP,CAAA;AAEDF,EAAAA,mBAAAA,CAAoB;AAAA,IAClBJ,gBAAAA;AAAAA,IACAH,gBAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAH,KAAKA,GAAAA,CAAIU,IAAAA;AAAAA,IACTT,GAAAA;AAAAA,IACAU,IAAAA,EAAM;AAAA,GACP,CAAA;AACH,CAAC,CAAA;AAWD,SAASF,mBAAAA,CAAoB;AAAA,EAC3BT,GAAAA;AAAAA,EACAC,GAAAA;AAAAA,EACAI,gBAAAA;AAAAA,EACAH,gBAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAQ;AACwB,CAAA,EAAG;AAC3B,EAAA,MAAM;AAAA,IAAEC,aAAAA;AAAAA,IAAeC,WAAAA;AAAAA,IAAaC;AAAAA,GAAiB,GACnDC,sBAAsBJ,IAAI,CAAA;AAC5B,EAAA,MAAMK,SAAAA,GAAYhB,IAAIY,aAAa,CAAA;AACnC,EAAA,MAAMK,OAAAA,GAAUjB,IAAIa,WAAW,CAAA;AAC/B,EAAA,MAAMK,YAAAA,GAAelB,IAAIc,gBAAgB,CAAA;AAEzC,EAAA,MAAMK,oBAAAA,GAAuBC,wBAAwBpB,GAAAA,EAAK;AAAA,IACxDqB,aAAaL,SAAAA,CAAUM,OAAAA;AAAAA,IACvBX;AAAAA,GACD,CAAA;AAED,EAAA,MAAMY,0BAAAA,GAA6B,CAAClB,gBAAAA,CAAiBmB,QAAAA,CACnDR,UAAUM,OACZ,CAAA;AACA,EAAA,MAAMG,2BACJR,OAAAA,IAAW,CAACE,oBAAAA,CAAqBK,QAAAA,CAASP,QAAQK,OAAO,CAAA;AAE3D,EAAA,MAAMI,8BAAAA,GAAAA,CACH,CAACvB,WAAAA,IAAe,CAACD,gBAAAA,KAAqBgB,YAAAA;AAEzC,EAAA,IAAIK,4BACFI,WAAAA,CAAY;AAAA,IACVC,OAAAA,EAASvB,iBAAiB,CAAC;AAAA,GAC5B,CAAA;AAEH,EAAA,IACEqB,8BAAAA,IACAH,0BAAAA,IACAE,wBAAAA,EAEAxB,GAAAA,CAAIY,aAAagB,MAAS,CAAA;AAC9B;AAEO,SAAAC,uBAAAA,GAAA;AACLC,EAAAA,OAAAA,CAAQjC,gBAAgB,CAAA;AAAC;;;;"}
@@ -1,3 +1,6 @@
1
+ import { SupportedChainId } from '../../lib/web3/wagmi/types';
2
+ import { NonEmptyArray, Prettify } from 'ts-essentials';
3
+ export type EnabledChains = Prettify<NonEmptyArray<SupportedChainId>>;
1
4
  export declare const enabledSrcChainsAtom: import('jotai').Atom<[1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]]>;
2
5
  export declare const enabledDestChainsAtom: import('jotai').Atom<[1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]]>;
3
6
  export declare const allEnabledChainsAtom: import('jotai').Atom<[1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]]>;
@@ -1 +1 @@
1
- {"version":3,"file":"enabledChainsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/enabledChainsAtom.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,oBAAoB,uJAG/B,CAAC;AACH,eAAO,MAAM,qBAAqB,uJAGhC,CAAC;AACH,eAAO,MAAM,oBAAoB,uJAI/B,CAAC;AAEH,eAAO,MAAM,mBAAmB,uIAA2C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,uIAA4C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,uIAA2C,CAAC;AAE5E,eAAO,MAAM,4BAA4B,sEAGxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,sEAGxC,CAAC;AAEF,eAAO,MAAM,0BAA0B,sEAGtC,CAAC"}
1
+ {"version":3,"file":"enabledChainsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/enabledChainsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK7D,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAqCtE,eAAO,MAAM,oBAAoB,uJAG/B,CAAC;AACH,eAAO,MAAM,qBAAqB,uJAGhC,CAAC;AACH,eAAO,MAAM,oBAAoB,uJAI/B,CAAC;AAEH,eAAO,MAAM,mBAAmB,uIAA2C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,uIAA4C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,uIAA2C,CAAC;AAE5E,eAAO,MAAM,4BAA4B,sEAGxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,sEAGxC,CAAC;AAEF,eAAO,MAAM,0BAA0B,sEAGtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"enabledChainsAtom.js","sources":["../../../src/core/state/enabledChainsAtom.ts"],"sourcesContent":["import { supportedChainIds as defaultChainIds } from \"@/lib/web3/wagmi/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { destChainsAtom, srcChainsAtom } from \"./configAtom\";\nimport { getLogger } from \"../logger\";\nimport type { NonEmptyArray, Prettify } from \"ts-essentials\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\nimport { CHAINS_WITH_DELTA } from \"@/lib/constants/delta\";\nimport { CHAINS_WITH_OTC } from \"@/lib/constants/otc\";\n\ntype EnabledChains = Prettify<NonEmptyArray<SupportedChainId>>;\n\n// with guards against invalid or duplicate chain IDs passed in config\nfunction getEnabledChainsWithFallback(\n chainIds: number[],\n logger?: ReturnType<typeof getLogger>\n): EnabledChains {\n // fallback to defaults\n if (chainIds.length === 0) return defaultChainIds;\n const uniqueChainIds = Array.from(new Set(chainIds));\n\n const detectedUnsupportedChains: number[] = [];\n const uniqueSupportedChainIds = uniqueChainIds.filter((id) => {\n const isSupported = isSupportedChainId(id);\n if (!isSupported) detectedUnsupportedChains.push(id);\n return isSupported;\n });\n\n const isAllUnsupported = !isFilledArray(uniqueSupportedChainIds);\n // log once about unsupported IDs\n if (detectedUnsupportedChains.length > 0 && !isAllUnsupported)\n logger?.warn(\n `Specified unsupported IDs. Supported chain IDs are: ${defaultChainIds.join(\", \")}`\n );\n\n // fallback to defaults\n if (isAllUnsupported) {\n logger?.warn(\n `All specified IDs are unsupported. Supported IDs are: ${defaultChainIds.join(\", \")}`\n );\n return defaultChainIds;\n }\n return uniqueSupportedChainIds;\n}\n\nconst logger = getLogger(\"ChainsState\");\n\nexport const enabledSrcChainsAtom = atom<EnabledChains>((get) => {\n const srcChains = get(srcChainsAtom);\n return getEnabledChainsWithFallback(srcChains, logger);\n});\nexport const enabledDestChainsAtom = atom<EnabledChains>((get) => {\n const destChains = get(destChainsAtom);\n return getEnabledChainsWithFallback(destChains, logger);\n});\nexport const allEnabledChainsAtom = atom<EnabledChains>((get) => {\n const srcChains = get(enabledSrcChainsAtom);\n const destChains = get(enabledDestChainsAtom);\n return getEnabledChainsWithFallback([...srcChains, ...destChains]);\n});\n\nexport const useEnabledSrcChains = () => useAtomValue(enabledSrcChainsAtom);\nexport const useEnabledDestChains = () => useAtomValue(enabledDestChainsAtom);\nexport const useAllEnabledChains = () => useAtomValue(allEnabledChainsAtom);\n\nexport const useAllEnabledChainsWithDelta = () => {\n const enabledChains = useAllEnabledChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_DELTA.includes(chainId));\n};\n\nexport const useEnabledSrcChainsWithDelta = () => {\n const enabledChains = useEnabledSrcChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_DELTA.includes(chainId));\n};\n\nexport const useEnabledSrcChainsWithOTC = () => {\n const enabledChains = useEnabledSrcChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_OTC.includes(chainId));\n};\n"],"names":["getEnabledChainsWithFallback","chainIds","logger","length","defaultChainIds","uniqueChainIds","Array","from","Set","detectedUnsupportedChains","uniqueSupportedChainIds","filter","id","isSupported","isSupportedChainId","push","isAllUnsupported","isFilledArray","warn","join","getLogger","enabledSrcChainsAtom","atom","get","srcChains","srcChainsAtom","enabledDestChainsAtom","destChains","destChainsAtom","allEnabledChainsAtom","useEnabledSrcChains","useAtomValue","useEnabledDestChains","useAllEnabledChains","useAllEnabledChainsWithDelta","$","_c","enabledChains","t0","_temp","useEnabledSrcChainsWithDelta","_temp2","useEnabledSrcChainsWithOTC","_temp3","chainId","CHAINS_WITH_DELTA","includes","CHAINS_WITH_OTC"],"mappings":"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"}
1
+ {"version":3,"file":"enabledChainsAtom.js","sources":["../../../src/core/state/enabledChainsAtom.ts"],"sourcesContent":["import { supportedChainIds as defaultChainIds } from \"@/lib/web3/wagmi/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { destChainsAtom, srcChainsAtom } from \"./configAtom\";\nimport { getLogger } from \"../logger\";\nimport type { NonEmptyArray, Prettify } from \"ts-essentials\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\nimport { CHAINS_WITH_DELTA } from \"@/lib/constants/delta\";\nimport { CHAINS_WITH_OTC } from \"@/lib/constants/otc\";\n\nexport type EnabledChains = Prettify<NonEmptyArray<SupportedChainId>>;\n\n// with guards against invalid or duplicate chain IDs passed in config\nfunction getEnabledChainsWithFallback(\n chainIds: number[],\n logger?: ReturnType<typeof getLogger>\n): EnabledChains {\n // fallback to defaults\n if (chainIds.length === 0) return defaultChainIds;\n const uniqueChainIds = Array.from(new Set(chainIds));\n\n const detectedUnsupportedChains: number[] = [];\n const uniqueSupportedChainIds = uniqueChainIds.filter((id) => {\n const isSupported = isSupportedChainId(id);\n if (!isSupported) detectedUnsupportedChains.push(id);\n return isSupported;\n });\n\n const isAllUnsupported = !isFilledArray(uniqueSupportedChainIds);\n // log once about unsupported IDs\n if (detectedUnsupportedChains.length > 0 && !isAllUnsupported)\n logger?.warn(\n `Specified unsupported IDs. Supported chain IDs are: ${defaultChainIds.join(\", \")}`\n );\n\n // fallback to defaults\n if (isAllUnsupported) {\n logger?.warn(\n `All specified IDs are unsupported. Supported IDs are: ${defaultChainIds.join(\", \")}`\n );\n return defaultChainIds;\n }\n return uniqueSupportedChainIds;\n}\n\nconst logger = getLogger(\"ChainsState\");\n\nexport const enabledSrcChainsAtom = atom<EnabledChains>((get) => {\n const srcChains = get(srcChainsAtom);\n return getEnabledChainsWithFallback(srcChains, logger);\n});\nexport const enabledDestChainsAtom = atom<EnabledChains>((get) => {\n const destChains = get(destChainsAtom);\n return getEnabledChainsWithFallback(destChains, logger);\n});\nexport const allEnabledChainsAtom = atom<EnabledChains>((get) => {\n const srcChains = get(enabledSrcChainsAtom);\n const destChains = get(enabledDestChainsAtom);\n return getEnabledChainsWithFallback([...srcChains, ...destChains]);\n});\n\nexport const useEnabledSrcChains = () => useAtomValue(enabledSrcChainsAtom);\nexport const useEnabledDestChains = () => useAtomValue(enabledDestChainsAtom);\nexport const useAllEnabledChains = () => useAtomValue(allEnabledChainsAtom);\n\nexport const useAllEnabledChainsWithDelta = () => {\n const enabledChains = useAllEnabledChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_DELTA.includes(chainId));\n};\n\nexport const useEnabledSrcChainsWithDelta = () => {\n const enabledChains = useEnabledSrcChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_DELTA.includes(chainId));\n};\n\nexport const useEnabledSrcChainsWithOTC = () => {\n const enabledChains = useEnabledSrcChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_OTC.includes(chainId));\n};\n"],"names":["getEnabledChainsWithFallback","chainIds","logger","length","defaultChainIds","uniqueChainIds","Array","from","Set","detectedUnsupportedChains","uniqueSupportedChainIds","filter","id","isSupported","isSupportedChainId","push","isAllUnsupported","isFilledArray","warn","join","getLogger","enabledSrcChainsAtom","atom","get","srcChains","srcChainsAtom","enabledDestChainsAtom","destChains","destChainsAtom","allEnabledChainsAtom","useEnabledSrcChains","useAtomValue","useEnabledDestChains","useAllEnabledChains","useAllEnabledChainsWithDelta","$","_c","enabledChains","t0","_temp","useEnabledSrcChainsWithDelta","_temp2","useEnabledSrcChainsWithOTC","_temp3","chainId","CHAINS_WITH_DELTA","includes","CHAINS_WITH_OTC"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { SupportedChainId } from '../../lib/web3/wagmi/types';
2
+ import { BridgeInfoMode } from '../../hooks/swap/prices/delta/queries/bridgeInfo/types';
3
+ import { Getter } from 'jotai';
4
+ export declare function getSelectableDestChains(get: Getter, { fromChainId, mode }: {
5
+ fromChainId: SupportedChainId;
6
+ mode: BridgeInfoMode;
7
+ }): SupportedChainId[];
8
+ //# sourceMappingURL=getSelectableDestChains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSelectableDestChains.d.ts","sourceRoot":"","sources":["../../../src/core/state/getSelectableDestChains.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEpC,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;IAAE,WAAW,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC7E,gBAAgB,EAAE,CAkBpB"}
@@ -0,0 +1,34 @@
1
+ import { computeSelectableDestChains } from '../../hooks/useSelectableDestChains.js';
2
+ import { deltaEnabledOnAPI } from '../../lib/constants/delta.js';
3
+ import { widgetConfigAtom } from './configAtom.js';
4
+ import { deltaParamAtom } from '../../components/widget/TradeParameters/state/deltaParamAtom.js';
5
+ import { getAvailableCrosses } from '../../hooks/useAvailableCrosses.js';
6
+ import { enabledDestChainsAtom } from './enabledChainsAtom.js';
7
+
8
+ function getSelectableDestChains(get, {
9
+ fromChainId,
10
+ mode
11
+ }) {
12
+ const availableCrosses = getAvailableCrosses({
13
+ fromChainId,
14
+ mode
15
+ });
16
+ const enabledDestChains = get(enabledDestChainsAtom);
17
+ const {
18
+ enableDelta,
19
+ enableCrossChain
20
+ } = get(widgetConfigAtom);
21
+ const deltaEnabledParam = get(deltaParamAtom);
22
+ const deltaEnabledOnChain = deltaEnabledOnAPI[fromChainId];
23
+ const deltaEnabledGlobally = enableDelta && deltaEnabledParam && deltaEnabledOnChain;
24
+ return computeSelectableDestChains({
25
+ fromChainId,
26
+ availableCrosses,
27
+ enabledDestChains,
28
+ enableCrossChain,
29
+ deltaEnabledGlobally
30
+ });
31
+ }
32
+
33
+ export { getSelectableDestChains };
34
+ //# sourceMappingURL=getSelectableDestChains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSelectableDestChains.js","sources":["../../../src/core/state/getSelectableDestChains.ts"],"sourcesContent":["import { computeSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { widgetConfigAtom } from \"./configAtom\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { getAvailableCrosses } from \"@/hooks/useAvailableCrosses\";\nimport { enabledDestChainsAtom } from \"./enabledChainsAtom\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\nimport type { Getter } from \"jotai\";\n\nexport function getSelectableDestChains(\n get: Getter,\n { fromChainId, mode }: { fromChainId: SupportedChainId; mode: BridgeInfoMode }\n): SupportedChainId[] {\n const availableCrosses = getAvailableCrosses({ fromChainId, mode });\n\n const enabledDestChains = get(enabledDestChainsAtom);\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n const deltaEnabledParam = get(deltaParamAtom);\n\n const deltaEnabledOnChain = deltaEnabledOnAPI[fromChainId];\n const deltaEnabledGlobally =\n enableDelta && deltaEnabledParam && deltaEnabledOnChain;\n\n return computeSelectableDestChains({\n fromChainId,\n availableCrosses,\n enabledDestChains,\n enableCrossChain,\n deltaEnabledGlobally,\n });\n}\n"],"names":["getSelectableDestChains","get","fromChainId","mode","availableCrosses","getAvailableCrosses","enabledDestChains","enabledDestChainsAtom","enableDelta","enableCrossChain","widgetConfigAtom","deltaEnabledParam","deltaParamAtom","deltaEnabledOnChain","deltaEnabledOnAPI","deltaEnabledGlobally","computeSelectableDestChains"],"mappings":";;;;;;;AAUO,SAASA,wBACdC,GAAAA,EACA;AAAA,EAAEC,WAAAA;AAAAA,EAAaC;AAA8D,CAAA,EACzD;AACpB,EAAA,MAAMC,mBAAmBC,mBAAAA,CAAoB;AAAA,IAAEH,WAAAA;AAAAA,IAAaC;AAAAA,GAAM,CAAA;AAElE,EAAA,MAAMG,iBAAAA,GAAoBL,IAAIM,qBAAqB,CAAA;AACnD,EAAA,MAAM;AAAA,IAAEC,WAAAA;AAAAA,IAAaC;AAAAA,GAAiB,GAAIR,IAAIS,gBAAgB,CAAA;AAC9D,EAAA,MAAMC,iBAAAA,GAAoBV,IAAIW,cAAc,CAAA;AAE5C,EAAA,MAAMC,mBAAAA,GAAsBC,kBAAkBZ,WAAW,CAAA;AACzD,EAAA,MAAMa,oBAAAA,GACJP,eAAeG,iBAAAA,IAAqBE,mBAAAA;AAEtC,EAAA,OAAOG,2BAAAA,CAA4B;AAAA,IACjCd,WAAAA;AAAAA,IACAE,gBAAAA;AAAAA,IACAE,iBAAAA;AAAAA,IACAG,gBAAAA;AAAAA,IACAM;AAAAA,GACD,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../../src/events/getters/limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAWpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAqBlE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAanE"}
1
+ {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../../src/events/getters/limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAWpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAwBlE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAanE"}
@@ -1,9 +1,10 @@
1
1
  import { getAccount } from '@wagmi/core';
2
2
  import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
3
- import { limitTokenFromAtom, limitTokenToAtom } from '../../core/limit/state/selectedTokenAtom.js';
3
+ import { limitTokenFromAtom, limitTokenToAtom } from '../../core/limit/state/limitTokenAtoms.js';
4
4
  import { limitPayInputAmountAtom, limitReceiveInputAmountAtom, limitPriceAmountAtom } from '../../core/limit/state/limitInputAmountAtom.js';
5
5
  import { deadlineAtom } from '../../core/limit/state/deadlineAtom.js';
6
6
  import { sanitizeTradeFlowToken } from '../../lib/utils/tradeFlow.js';
7
+ import { limitReceiverAddressAtom } from '../../core/limit/state/receiverAddressAtom.js';
7
8
 
8
9
  function getLimitOrderFormInput(get) {
9
10
  const tokenFrom = get(limitTokenFromAtom);
@@ -12,6 +13,7 @@ function getLimitOrderFormInput(get) {
12
13
  const receiveAmount = get(limitReceiveInputAmountAtom);
13
14
  const limitPrice = get(limitPriceAmountAtom);
14
15
  const orderDeadline = get(deadlineAtom);
16
+ const receiverAddress = get(limitReceiverAddressAtom);
15
17
  return {
16
18
  tokenFrom: sanitizeTradeFlowToken(tokenFrom),
17
19
  tokenTo: tokenTo ? sanitizeTradeFlowToken(tokenTo) : void 0,
@@ -21,7 +23,8 @@ function getLimitOrderFormInput(get) {
21
23
  destChainId: tokenTo?.network,
22
24
  limitPrice,
23
25
  orderDeadline,
24
- form: "limit"
26
+ form: "limit",
27
+ receiverAddress
25
28
  };
26
29
  }
27
30
  function getLimitOrderState(get) {
@@ -1 +1 @@
1
- {"version":3,"file":"limit.js","sources":["../../../src/events/getters/limit.ts"],"sourcesContent":["import type { LimitOrderFormState } from \"../types/common\";\nimport { getAccount } from \"@wagmi/core\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { Getter } from \"jotai\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"@/core/limit/state/selectedTokenAtom\";\nimport {\n limitPayInputAmountAtom,\n limitPriceAmountAtom,\n limitReceiveInputAmountAtom,\n} from \"@/core/limit/state/limitInputAmountAtom\";\nimport { deadlineAtom } from \"@/core/limit/state/deadlineAtom\";\nimport type { LimitFormInput } from \"../types/formInput\";\nimport { sanitizeTradeFlowToken } from \"@/lib/utils/tradeFlow\";\n\nexport function getLimitOrderFormInput(get: Getter): LimitFormInput {\n const tokenFrom = get(limitTokenFromAtom);\n const tokenTo = get(limitTokenToAtom);\n\n const sendAmount = get(limitPayInputAmountAtom);\n const receiveAmount = get(limitReceiveInputAmountAtom);\n\n const limitPrice = get(limitPriceAmountAtom);\n const orderDeadline = get(deadlineAtom);\n\n return {\n tokenFrom: sanitizeTradeFlowToken(tokenFrom),\n tokenTo: tokenTo ? sanitizeTradeFlowToken(tokenTo) : undefined,\n sendAmount,\n receiveAmount,\n srcChainId: tokenFrom.network,\n destChainId: tokenTo?.network,\n limitPrice,\n orderDeadline,\n form: \"limit\",\n };\n}\n\nexport function getLimitOrderState(get: Getter): LimitOrderFormState {\n const formInput = getLimitOrderFormInput(get);\n\n const account = getAccount(wagmiConfig).address;\n\n // for LimitOrders user is the receiver\n const receiverAddress = account;\n\n return {\n ...formInput,\n connectedAccount: account,\n receiverAddress,\n };\n}\n"],"names":["getLimitOrderFormInput","get","tokenFrom","limitTokenFromAtom","tokenTo","limitTokenToAtom","sendAmount","limitPayInputAmountAtom","receiveAmount","limitReceiveInputAmountAtom","limitPrice","limitPriceAmountAtom","orderDeadline","deadlineAtom","sanitizeTradeFlowToken","undefined","srcChainId","network","destChainId","form","getLimitOrderState","formInput","account","getAccount","wagmiConfig","address","receiverAddress","connectedAccount"],"mappings":";;;;;;;AAiBO,SAASA,uBAAuBC,GAAAA,EAA6B;AAClE,EAAA,MAAMC,SAAAA,GAAYD,IAAIE,kBAAkB,CAAA;AACxC,EAAA,MAAMC,OAAAA,GAAUH,IAAII,gBAAgB,CAAA;AAEpC,EAAA,MAAMC,UAAAA,GAAaL,IAAIM,uBAAuB,CAAA;AAC9C,EAAA,MAAMC,aAAAA,GAAgBP,IAAIQ,2BAA2B,CAAA;AAErD,EAAA,MAAMC,UAAAA,GAAaT,IAAIU,oBAAoB,CAAA;AAC3C,EAAA,MAAMC,aAAAA,GAAgBX,IAAIY,YAAY,CAAA;AAEtC,EAAA,OAAO;AAAA,IACLX,SAAAA,EAAWY,uBAAuBZ,SAAS,CAAA;AAAA,IAC3CE,OAAAA,EAASA,OAAAA,GAAUU,sBAAAA,CAAuBV,OAAO,CAAA,GAAIW,MAAAA;AAAAA,IACrDT,UAAAA;AAAAA,IACAE,aAAAA;AAAAA,IACAQ,YAAYd,SAAAA,CAAUe,OAAAA;AAAAA,IACtBC,aAAad,OAAAA,EAASa,OAAAA;AAAAA,IACtBP,UAAAA;AAAAA,IACAE,aAAAA;AAAAA,IACAO,IAAAA,EAAM;AAAA,GACR;AACF;AAEO,SAASC,mBAAmBnB,GAAAA,EAAkC;AACnE,EAAA,MAAMoB,SAAAA,GAAYrB,uBAAuBC,GAAG,CAAA;AAE5C,EAAA,MAAMqB,OAAAA,GAAUC,UAAAA,CAAWC,WAAW,CAAA,CAAEC,OAAAA;AAGxC,EAAA,MAAMC,eAAAA,GAAkBJ,OAAAA;AAExB,EAAA,OAAO;AAAA,IACL,GAAGD,SAAAA;AAAAA,IACHM,gBAAAA,EAAkBL,OAAAA;AAAAA,IAClBI;AAAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"limit.js","sources":["../../../src/events/getters/limit.ts"],"sourcesContent":["import type { LimitOrderFormState } from \"../types/common\";\nimport { getAccount } from \"@wagmi/core\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { Getter } from \"jotai\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"@/core/limit/state/limitTokenAtoms\";\nimport {\n limitPayInputAmountAtom,\n limitPriceAmountAtom,\n limitReceiveInputAmountAtom,\n} from \"@/core/limit/state/limitInputAmountAtom\";\nimport { deadlineAtom } from \"@/core/limit/state/deadlineAtom\";\nimport type { LimitFormInput } from \"../types/formInput\";\nimport { sanitizeTradeFlowToken } from \"@/lib/utils/tradeFlow\";\nimport { limitReceiverAddressAtom } from \"@/core/limit/state/receiverAddressAtom\";\n\nexport function getLimitOrderFormInput(get: Getter): LimitFormInput {\n const tokenFrom = get(limitTokenFromAtom);\n const tokenTo = get(limitTokenToAtom);\n\n const sendAmount = get(limitPayInputAmountAtom);\n const receiveAmount = get(limitReceiveInputAmountAtom);\n\n const limitPrice = get(limitPriceAmountAtom);\n const orderDeadline = get(deadlineAtom);\n\n const receiverAddress = get(limitReceiverAddressAtom);\n\n return {\n tokenFrom: sanitizeTradeFlowToken(tokenFrom),\n tokenTo: tokenTo ? sanitizeTradeFlowToken(tokenTo) : undefined,\n sendAmount,\n receiveAmount,\n srcChainId: tokenFrom.network,\n destChainId: tokenTo?.network,\n limitPrice,\n orderDeadline,\n form: \"limit\",\n receiverAddress,\n };\n}\n\nexport function getLimitOrderState(get: Getter): LimitOrderFormState {\n const formInput = getLimitOrderFormInput(get);\n\n const account = getAccount(wagmiConfig).address;\n\n // for LimitOrders user is the receiver\n const receiverAddress = account;\n\n return {\n ...formInput,\n connectedAccount: account,\n receiverAddress,\n };\n}\n"],"names":["getLimitOrderFormInput","get","tokenFrom","limitTokenFromAtom","tokenTo","limitTokenToAtom","sendAmount","limitPayInputAmountAtom","receiveAmount","limitReceiveInputAmountAtom","limitPrice","limitPriceAmountAtom","orderDeadline","deadlineAtom","receiverAddress","limitReceiverAddressAtom","sanitizeTradeFlowToken","undefined","srcChainId","network","destChainId","form","getLimitOrderState","formInput","account","getAccount","wagmiConfig","address","connectedAccount"],"mappings":";;;;;;;;AAkBO,SAASA,uBAAuBC,GAAAA,EAA6B;AAClE,EAAA,MAAMC,SAAAA,GAAYD,IAAIE,kBAAkB,CAAA;AACxC,EAAA,MAAMC,OAAAA,GAAUH,IAAII,gBAAgB,CAAA;AAEpC,EAAA,MAAMC,UAAAA,GAAaL,IAAIM,uBAAuB,CAAA;AAC9C,EAAA,MAAMC,aAAAA,GAAgBP,IAAIQ,2BAA2B,CAAA;AAErD,EAAA,MAAMC,UAAAA,GAAaT,IAAIU,oBAAoB,CAAA;AAC3C,EAAA,MAAMC,aAAAA,GAAgBX,IAAIY,YAAY,CAAA;AAEtC,EAAA,MAAMC,eAAAA,GAAkBb,IAAIc,wBAAwB,CAAA;AAEpD,EAAA,OAAO;AAAA,IACLb,SAAAA,EAAWc,uBAAuBd,SAAS,CAAA;AAAA,IAC3CE,OAAAA,EAASA,OAAAA,GAAUY,sBAAAA,CAAuBZ,OAAO,CAAA,GAAIa,MAAAA;AAAAA,IACrDX,UAAAA;AAAAA,IACAE,aAAAA;AAAAA,IACAU,YAAYhB,SAAAA,CAAUiB,OAAAA;AAAAA,IACtBC,aAAahB,OAAAA,EAASe,OAAAA;AAAAA,IACtBT,UAAAA;AAAAA,IACAE,aAAAA;AAAAA,IACAS,IAAAA,EAAM,OAAA;AAAA,IACNP;AAAAA,GACF;AACF;AAEO,SAASQ,mBAAmBrB,GAAAA,EAAkC;AACnE,EAAA,MAAMsB,SAAAA,GAAYvB,uBAAuBC,GAAG,CAAA;AAE5C,EAAA,MAAMuB,OAAAA,GAAUC,UAAAA,CAAWC,WAAW,CAAA,CAAEC,OAAAA;AAGxC,EAAA,MAAMb,eAAAA,GAAkBU,OAAAA;AAExB,EAAA,OAAO;AAAA,IACL,GAAGD,SAAAA;AAAAA,IACHK,gBAAAA,EAAkBJ,OAAAA;AAAAA,IAClBV;AAAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnPriceUpdates.d.ts","sourceRoot":"","sources":["../../../src/events/hooks/useOnPriceUpdates.ts"],"names":[],"mappings":"AAiBA,wBAAgB,iBAAiB,SAqEhC"}
1
+ {"version":3,"file":"useOnPriceUpdates.d.ts","sourceRoot":"","sources":["../../../src/events/hooks/useOnPriceUpdates.ts"],"names":[],"mappings":"AAkBA,wBAAgB,iBAAiB,SAyEhC"}