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

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 (255) 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 +2 -2
  42. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  43. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +24 -20
  44. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  45. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
  46. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
  47. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +1 -1
  48. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
  49. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +1 -1
  50. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
  51. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
  52. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  53. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +1 -1
  54. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
  55. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +1 -1
  56. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
  57. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +3 -3
  58. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
  59. package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
  60. package/dist/configurator/Configurator.d.ts.map +1 -1
  61. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
  62. package/dist/configurator/components/common/ButtonGroup.d.ts +12 -0
  63. package/dist/configurator/components/common/ButtonGroup.d.ts.map +1 -0
  64. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  65. package/dist/core/LimitOrderButton.js +49 -23
  66. package/dist/core/LimitOrderButton.js.map +1 -1
  67. package/dist/core/Updaters.d.ts.map +1 -1
  68. package/dist/core/Updaters.js +22 -1
  69. package/dist/core/Updaters.js.map +1 -1
  70. package/dist/core/across/isCrosshcainPossible.d.ts +10 -0
  71. package/dist/core/across/isCrosshcainPossible.d.ts.map +1 -0
  72. package/dist/core/across/isCrosshcainPossible.js +41 -0
  73. package/dist/core/across/isCrosshcainPossible.js.map +1 -0
  74. package/dist/core/across/utils.d.ts +7 -3
  75. package/dist/core/across/utils.d.ts.map +1 -1
  76. package/dist/core/across/utils.js +10 -7
  77. package/dist/core/across/utils.js.map +1 -1
  78. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  79. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +56 -33
  80. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  81. package/dist/core/index.d.ts.map +1 -1
  82. package/dist/core/index.js +72 -17
  83. package/dist/core/index.js.map +1 -1
  84. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  85. package/dist/core/inputs/hooks/useTokenToInputProps.js +76 -66
  86. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  87. package/dist/core/inputs/state/common.d.ts +15 -3
  88. package/dist/core/inputs/state/common.d.ts.map +1 -1
  89. package/dist/core/inputs/state/common.js +51 -12
  90. package/dist/core/inputs/state/common.js.map +1 -1
  91. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  92. package/dist/core/inputs/state/selectedTokenActionsAtom.js +33 -44
  93. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  94. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -1
  95. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  96. package/dist/core/inputs/state/setTokenByAddressAtom.js +85 -21
  97. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  98. package/dist/core/inputs/state/types.d.ts +9 -1
  99. package/dist/core/inputs/state/types.d.ts.map +1 -1
  100. package/dist/core/limit/state/deadlineAtom.d.ts +10 -2
  101. package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
  102. package/dist/core/limit/state/deadlineAtom.js +15 -8
  103. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  104. package/dist/core/limit/state/isCrosschainAtom.d.ts +3 -0
  105. package/dist/core/limit/state/isCrosschainAtom.d.ts.map +1 -0
  106. package/dist/core/limit/state/isCrosschainAtom.js +13 -0
  107. package/dist/core/limit/state/isCrosschainAtom.js.map +1 -0
  108. package/dist/core/limit/state/limitInputActionsAtom.d.ts +4 -1
  109. package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -1
  110. package/dist/core/limit/state/limitInputActionsAtom.js +6 -2
  111. package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
  112. package/dist/core/limit/state/limitInputAmountAtom.js +1 -1
  113. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  114. package/dist/core/limit/state/limitTokenAtoms.d.ts +10 -0
  115. package/dist/core/limit/state/limitTokenAtoms.d.ts.map +1 -0
  116. package/dist/core/limit/state/limitTokenAtoms.js +17 -0
  117. package/dist/core/limit/state/limitTokenAtoms.js.map +1 -0
  118. package/dist/core/limit/state/receiverAddressAtom.d.ts +7 -0
  119. package/dist/core/limit/state/receiverAddressAtom.d.ts.map +1 -0
  120. package/dist/core/limit/state/receiverAddressAtom.js +40 -0
  121. package/dist/core/limit/state/receiverAddressAtom.js.map +1 -0
  122. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  123. package/dist/core/limit/state/selectedTokenActionsAtom.js +94 -18
  124. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  125. package/dist/core/limit/state/selectedTokenAtom.d.ts +0 -9
  126. package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
  127. package/dist/core/limit/state/selectedTokenAtom.js +53 -21
  128. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  129. package/dist/core/limit/state/utils.d.ts +9 -1
  130. package/dist/core/limit/state/utils.d.ts.map +1 -1
  131. package/dist/core/limit/state/utils.js +44 -2
  132. package/dist/core/limit/state/utils.js.map +1 -1
  133. package/dist/core/limit/useLimitRate.d.ts +9 -0
  134. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  135. package/dist/core/limit/useLimitRate.js +145 -8
  136. package/dist/core/limit/useLimitRate.js.map +1 -1
  137. package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
  138. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  139. package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
  140. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  141. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  142. package/dist/core/limit/useLimitTokenToInputProps.js +132 -72
  143. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  144. package/dist/core/otc/state/deadlineAtom.d.ts +8 -3
  145. package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
  146. package/dist/core/otc/state/deadlineAtom.js +16 -10
  147. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  148. package/dist/core/otc/state/otcInputActionsAtom.d.ts +4 -1
  149. package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -1
  150. package/dist/core/otc/state/otcInputActionsAtom.js +6 -2
  151. package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
  152. package/dist/core/screen/hooks/useOnClickOutside.d.ts +2 -0
  153. package/dist/core/screen/hooks/useOnClickOutside.d.ts.map +1 -0
  154. package/dist/core/screen/hooks/useOnClickOutside.js +30 -0
  155. package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -0
  156. package/dist/core/screen/screenByType.d.ts +1 -3
  157. package/dist/core/screen/screenByType.d.ts.map +1 -1
  158. package/dist/core/state/chainToAtom.d.ts +2 -0
  159. package/dist/core/state/chainToAtom.d.ts.map +1 -1
  160. package/dist/core/state/chainToAtom.js +37 -7
  161. package/dist/core/state/chainToAtom.js.map +1 -1
  162. package/dist/core/state/configEffectAtom.d.ts +0 -3
  163. package/dist/core/state/configEffectAtom.d.ts.map +1 -1
  164. package/dist/core/state/configEffectAtom.js +49 -37
  165. package/dist/core/state/configEffectAtom.js.map +1 -1
  166. package/dist/core/state/enabledChainsAtom.d.ts +3 -0
  167. package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
  168. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  169. package/dist/core/state/getSelectableDestChains.d.ts +8 -0
  170. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -0
  171. package/dist/core/state/getSelectableDestChains.js +34 -0
  172. package/dist/core/state/getSelectableDestChains.js.map +1 -0
  173. package/dist/events/getters/limit.d.ts.map +1 -1
  174. package/dist/events/getters/limit.js +5 -2
  175. package/dist/events/getters/limit.js.map +1 -1
  176. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
  177. package/dist/events/hooks/useOnPriceUpdates.js +37 -25
  178. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  179. package/dist/events/types/formInput.d.ts +1 -1
  180. package/dist/events/types/formInput.d.ts.map +1 -1
  181. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts +2 -0
  182. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts.map +1 -0
  183. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +24 -0
  184. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -0
  185. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +6 -0
  186. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -0
  187. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -0
  188. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -0
  189. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +4 -0
  190. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -0
  191. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js +12 -0
  192. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -0
  193. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +19 -0
  194. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -0
  195. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +4 -0
  196. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -0
  197. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +81 -0
  198. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -0
  199. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +3 -0
  200. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  201. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +2 -1
  202. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  203. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  204. package/dist/hooks/swap/prices/usePricesParams.js +8 -7
  205. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  206. package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -1
  207. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  208. package/dist/hooks/swap/prices/useSwapPrices.js +61 -43
  209. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  210. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts +0 -2
  211. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts.map +1 -1
  212. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +6 -8
  213. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  214. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  215. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  216. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -0
  217. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  218. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +54 -21
  219. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  220. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
  221. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  222. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +3 -1
  223. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  224. package/dist/hooks/tokens/useAllTokensWithFilter.js +25 -22
  225. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  226. package/dist/hooks/tokens/useTokensFromAcross.d.ts +3 -1
  227. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  228. package/dist/hooks/tokens/useTokensFromAcross.js +36 -25
  229. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  230. package/dist/hooks/useAvailableCrosses.d.ts +7 -2
  231. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  232. package/dist/hooks/useAvailableCrosses.js +39 -25
  233. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  234. package/dist/hooks/useBridgeInfo.d.ts +4 -1
  235. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  236. package/dist/hooks/useBridgeInfo.js +26 -11
  237. package/dist/hooks/useBridgeInfo.js.map +1 -1
  238. package/dist/hooks/useClickOutside.d.ts +1 -1
  239. package/dist/hooks/useClickOutside.d.ts.map +1 -1
  240. package/dist/hooks/useClickOutside.js +27 -13
  241. package/dist/hooks/useClickOutside.js.map +1 -1
  242. package/dist/hooks/useIsCrosschainPossible.d.ts +3 -1
  243. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
  244. package/dist/hooks/useIsCrosschainPossible.js +33 -22
  245. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  246. package/dist/hooks/useSelectableDestChains.d.ts +5 -1
  247. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
  248. package/dist/hooks/useSelectableDestChains.js +42 -36
  249. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  250. package/dist/styles.css +3 -0
  251. package/package.json +2 -2
  252. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +0 -15
  253. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +0 -1
  254. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -92
  255. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +0 -1
@@ -1,27 +1,59 @@
1
- import { jotaiStore, useAtomValue } from '../../store.js';
2
- import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
1
+ import { isCrosschainPossible } from '../../across/isCrosshcainPossible.js';
2
+ import { isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
3
+ import { jotaiStore } from '../../store.js';
4
+ import { getSelectableDestChains } from '../../state/getSelectableDestChains.js';
5
+ import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
3
6
  import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
4
- import { atom } from 'jotai';
7
+ import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
8
+ import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
5
9
 
6
- const [defaultTokenFrom] = pickDefaultTokenPair(wagmiConfig.state.chainId, "limit");
7
- const limitTokenFromAtom = atom(defaultTokenFrom);
8
- const limitTokenToAtom = atom();
9
- const useLimitTokenFrom = () => {
10
- return useAtomValue(limitTokenFromAtom);
11
- };
12
- const useLimitTokenTo = () => {
13
- return useAtomValue(limitTokenToAtom);
14
- };
15
10
  const syncLimitTokensAfterChainSwitch = (chainId) => {
16
- const tokenFrom = jotaiStore.get(limitTokenFromAtom);
17
- const tokenTo = jotaiStore.get(limitTokenToAtom);
18
- if (tokenFrom.network === chainId && // @TODO change to allowed cross chain check when implementing Crosschain Delta Limit Orders,
19
- // look at syncSwapTokensAfterChainSwitch for implementation
20
- (!tokenTo || tokenTo.network === chainId)) return;
21
- const [defaultTokenFrom2, defaultTokenTo] = pickDefaultTokenPair(chainId, "limit");
22
- jotaiStore.set(limitTokenFromAtom, defaultTokenFrom2);
23
- if (tokenTo) jotaiStore.set(limitTokenToAtom, defaultTokenTo);
11
+ const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);
12
+ if (!enabledSrcChains.includes(chainId)) return;
13
+ let tokenFrom = jotaiStore.get(limitTokenFromAtom);
14
+ if (tokenFrom.network === chainId) return;
15
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId, "limit");
16
+ jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);
17
+ tokenFrom = defaultTokenFrom;
18
+ let tokenTo = jotaiStore.get(limitTokenToAtom);
19
+ if (!tokenTo) return;
20
+ const crosschainPossible = isCrosschainPossible({
21
+ get: jotaiStore.get,
22
+ chainIdFrom: chainId,
23
+ chainIdTo: tokenTo.network,
24
+ mode: "limit"
25
+ });
26
+ if (crosschainPossible) {
27
+ const isTokenToFromAcross = isTokenFromAcross({
28
+ token: tokenTo,
29
+ fromChainId: chainId,
30
+ toChainId: tokenTo.network,
31
+ mode: "limit"
32
+ });
33
+ if (!isTokenToFromAcross) {
34
+ const maybeAcrossToken = findFirstTokenFromAcross({
35
+ fromChainId: chainId,
36
+ toChainId: tokenTo.network,
37
+ listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,
38
+ mode: "limit"
39
+ });
40
+ jotaiStore.set(limitTokenToAtom, maybeAcrossToken);
41
+ tokenTo = maybeAcrossToken;
42
+ }
43
+ } else {
44
+ const selectableDestChains = getSelectableDestChains(jotaiStore.get, {
45
+ fromChainId: tokenFrom.network,
46
+ mode: "limit"
47
+ });
48
+ if (selectableDestChains.includes(chainId)) {
49
+ jotaiStore.set(limitTokenToAtom, defaultTokenTo);
50
+ tokenTo = defaultTokenTo;
51
+ } else {
52
+ jotaiStore.set(limitTokenToAtom, void 0);
53
+ tokenTo = void 0;
54
+ }
55
+ }
24
56
  };
25
57
 
26
- export { limitTokenFromAtom, limitTokenToAtom, syncLimitTokensAfterChainSwitch, useLimitTokenFrom, useLimitTokenTo };
58
+ export { syncLimitTokensAfterChainSwitch };
27
59
  //# sourceMappingURL=selectedTokenAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"limit\"\n);\n\nexport const limitTokenFromAtom = atom(defaultTokenFrom);\nexport const limitTokenToAtom = atom<Token>();\n\nexport const useLimitTokenFrom = () => useAtomValue(limitTokenFromAtom);\nexport const useLimitTokenTo = () => useAtomValue(limitTokenToAtom);\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const tokenFrom = jotaiStore.get(limitTokenFromAtom);\n const tokenTo = jotaiStore.get(limitTokenToAtom);\n // token will already be set on new chain, the new token may have been the reason for switchChain\n\n // chains are the same? do nothing\n if (\n tokenFrom.network === chainId &&\n // @TODO change to allowed cross chain check when implementing Crosschain Delta Limit Orders,\n // look at syncSwapTokensAfterChainSwitch for implementation\n (!tokenTo || tokenTo.network === chainId)\n )\n return;\n\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n\n if (tokenTo) jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n};\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo","syncLimitTokensAfterChainSwitch","tokenFrom","jotaiStore","get","tokenTo","network","defaultTokenTo","set"],"mappings":";;;;;AAQA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,OACF,CAAA;AAEO,MAAMC,kBAAAA,GAAqBC,KAAKN,gBAAgB;AAChD,MAAMO,mBAAmBD,IAAAA;AAEzB,MAAME,oBAAoBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,kBAAkB,CAAA;AAAC;AAChE,MAAMK,kBAAkBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,gBAAgB,CAAA;AAAC;AAE5D,MAAMI,+BAAAA,GAAkCA,CAACP,OAAAA,KAA8B;AAC5E,EAAA,MAAMQ,SAAAA,GAAYC,UAAAA,CAAWC,GAAAA,CAAIT,kBAAkB,CAAA;AACnD,EAAA,MAAMU,OAAAA,GAAUF,UAAAA,CAAWC,GAAAA,CAAIP,gBAAgB,CAAA;AAI/C,EAAA,IACEK,UAAUI,OAAAA,KAAYZ,OAAAA;AAAAA;AAAAA,GAGrB,CAACW,OAAAA,IAAWA,OAAAA,CAAQC,OAAAA,KAAYZ,OAAAA,CAAAA,EAEjC;AAEF,EAAA,MAAM,CAACJ,iBAAAA,EAAkBiB,cAAc,CAAA,GAAIhB,oBAAAA,CACzCG,SACA,OACF,CAAA;AAEAS,EAAAA,UAAAA,CAAWK,GAAAA,CAAIb,oBAAoBL,iBAAgB,CAAA;AAEnD,EAAA,IAAIe,OAAAA,EAASF,UAAAA,CAAWK,GAAAA,CAAIX,gBAAAA,EAAkBU,cAAc,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { isCrosschainPossible } from \"@/core/across/isCrosshcainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { jotaiStore } from \"@/core/store\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(limitTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n // token will already be set on new chain, the new token may have been the reason for switchChain\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n // update tokenFrom\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(limitTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n jotaiStore.set(limitTokenToAtom, maybeAcrossToken);\n tokenTo = maybeAcrossToken;\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"limit\",\n });\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n tokenTo = defaultTokenTo;\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(limitTokenToAtom, undefined);\n tokenTo = undefined;\n }\n }\n};\n"],"names":["syncLimitTokensAfterChainSwitch","chainId","enabledSrcChains","jotaiStore","get","enabledSrcChainsAtom","includes","tokenFrom","limitTokenFromAtom","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","set","tokenTo","limitTokenToAtom","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","isTokenFromAcross","token","fromChainId","toChainId","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","selectableDestChains","getSelectableDestChains","undefined"],"mappings":";;;;;;;;;AAaO,MAAMA,+BAAAA,GAAkCA,CAACC,OAAAA,KAA8B;AAC5E,EAAA,MAAMC,gBAAAA,GAAmBC,UAAAA,CAAWC,GAAAA,CAAIC,oBAAoB,CAAA;AAC5D,EAAA,IAAI,CAACH,gBAAAA,CAAiBI,QAAAA,CAASL,OAAO,CAAA,EAAG;AAEzC,EAAA,IAAIM,SAAAA,GAAYJ,UAAAA,CAAWC,GAAAA,CAAII,kBAAkB,CAAA;AAGjD,EAAA,IAAID,SAAAA,CAAUE,YAAYR,OAAAA,EAAS;AAInC,EAAA,MAAM,CAACS,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCX,SACA,OACF,CAAA;AAGAE,EAAAA,UAAAA,CAAWU,GAAAA,CAAIL,oBAAoBE,gBAAgB,CAAA;AACnDH,EAAAA,SAAAA,GAAYG,gBAAAA;AAEZ,EAAA,IAAII,OAAAA,GAAUX,UAAAA,CAAWC,GAAAA,CAAIW,gBAAgB,CAAA;AAG7C,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAME,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,KAAKD,UAAAA,CAAWC,GAAAA;AAAAA,IAChBc,WAAAA,EAAajB,OAAAA;AAAAA,IACbkB,WAAWL,OAAAA,CAAQL,OAAAA;AAAAA,IACnBW,IAAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,IAAIJ,kBAAAA,EAAoB;AACtB,IAAA,MAAMK,sBAAsBC,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOT,OAAAA;AAAAA,MACPU,WAAAA,EAAavB,OAAAA;AAAAA,MACbwB,WAAWX,OAAAA,CAAQL,OAAAA;AAAAA,MACnBW,IAAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,IAAI,CAACC,mBAAAA,EAAqB;AAGxB,MAAA,MAAMK,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDH,WAAAA,EAAavB,OAAAA;AAAAA,QACbwB,WAAWX,OAAAA,CAAQL,OAAAA;AAAAA,QACnBmB,aAAAA,EAAezB,UAAAA,CAAWC,GAAAA,CAAIyB,oBAAoB,CAAA,CAAED,aAAAA;AAAAA,QACpDR,IAAAA,EAAM;AAAA,OACP,CAAA;AAEDjB,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBW,gBAAgB,CAAA;AACjDZ,MAAAA,OAAAA,GAAUY,gBAAAA;AAAAA,IACZ;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAMI,oBAAAA,GAAuBC,uBAAAA,CAAwB5B,UAAAA,CAAWC,GAAAA,EAAK;AAAA,MACnEoB,aAAajB,SAAAA,CAAUE,OAAAA;AAAAA,MACvBW,IAAAA,EAAM;AAAA,KACP,CAAA;AACD,IAAA,IAAIU,oBAAAA,CAAqBxB,QAAAA,CAASL,OAAO,CAAA,EAAG;AAE1CE,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBJ,cAAc,CAAA;AAC/CG,MAAAA,OAAAA,GAAUH,cAAAA;AAAAA,IACZ,CAAA,MAAO;AAELR,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBiB,MAAS,CAAA;AAC1ClB,MAAAA,OAAAA,GAAUkB,MAAAA;AAAAA,IACZ;AAAA,EACF;AACF;;;;"}
@@ -1,6 +1,14 @@
1
- import { TimeUnitObject } from './deadlineAtom';
1
+ import { TimeUnitObject, TimeUnitState } from './deadlineAtom';
2
2
  import { PriceRates } from '../types';
3
3
  export declare function timeUnitToSeconds(timeUnitObj: TimeUnitObject): number;
4
+ export declare function getTimeUnitState(timeUnitObj: TimeUnitObject | TimeUnitState): TimeUnitState;
5
+ export declare function getClosestTimeUnit(timestampS: number): {
6
+ readonly label: "never";
7
+ readonly value: 0;
8
+ } | {
9
+ label: "minutes" | "days" | "hours" | "months";
10
+ value: number;
11
+ };
4
12
  export declare function calculateReceiveAmount(payAmount: string, priceRates: PriceRates, isReversed: boolean): string;
5
13
  export declare function calculatePayAmount(receiveAmount: string, priceRates: PriceRates, isReversed: boolean): string;
6
14
  export declare function calculateRates(receiveAmount: string, payAmount: string): PriceRates;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,UAa5D;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,UAAU,CAYZ;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,UAAU,CAWZ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,UAa5D;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,cAAc,GAAG,aAAa,GAC1C,aAAa,CAWf;AAeD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM;;;;;;EAoBpD;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,UAAU,CAYZ;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,UAAU,CAWZ"}
@@ -1,5 +1,5 @@
1
1
  import Big from 'big.js';
2
- import { zeroRates } from './constants.js';
2
+ import { neverTimeUnit, zeroRates } from './constants.js';
3
3
 
4
4
  function timeUnitToSeconds(timeUnitObj) {
5
5
  switch (timeUnitObj.label) {
@@ -15,6 +15,48 @@ function timeUnitToSeconds(timeUnitObj) {
15
15
  return 0;
16
16
  }
17
17
  }
18
+ function getTimeUnitState(timeUnitObj) {
19
+ if (isTimeUnitState(timeUnitObj)) {
20
+ return timeUnitObj;
21
+ }
22
+ return {
23
+ ...timeUnitObj,
24
+ timestamp: timeUnitObj.label === neverTimeUnit.label ? 0 : Math.floor(Date.now() / 1e3 + timeUnitToSeconds(timeUnitObj))
25
+ };
26
+ }
27
+ function isTimeUnitState(timeUnitObj) {
28
+ return "timestamp" in timeUnitObj && timeUnitObj.timestamp !== void 0;
29
+ }
30
+ const units = [{
31
+ label: "months",
32
+ ms: 30 * 24 * 60 * 60 * 1e3
33
+ }, {
34
+ label: "days",
35
+ ms: 24 * 60 * 60 * 1e3
36
+ }, {
37
+ label: "hours",
38
+ ms: 60 * 60 * 1e3
39
+ }, {
40
+ label: "minutes",
41
+ ms: 60 * 1e3
42
+ }];
43
+ function getClosestTimeUnit(timestampS) {
44
+ if (timestampS <= 0) return neverTimeUnit;
45
+ const timestampMs = timestampS * 1e3;
46
+ const now = Date.now();
47
+ if (timestampMs <= now) return neverTimeUnit;
48
+ const diffMs = timestampMs - now;
49
+ for (const unit of units) {
50
+ const value = Math.floor(diffMs / unit.ms);
51
+ if (value > 0) {
52
+ return {
53
+ label: unit.label,
54
+ value
55
+ };
56
+ }
57
+ }
58
+ return neverTimeUnit;
59
+ }
18
60
  function calculateReceiveAmount(payAmount, priceRates, isReversed) {
19
61
  const pay = Big(payAmount || "0");
20
62
  if (isReversed) {
@@ -62,5 +104,5 @@ function getUpdatedRates(value, isReversed) {
62
104
  return zeroRates;
63
105
  }
64
106
 
65
- export { calculatePayAmount, calculateRates, calculateReceiveAmount, getUpdatedRates, timeUnitToSeconds };
107
+ export { calculatePayAmount, calculateRates, calculateReceiveAmount, getClosestTimeUnit, getTimeUnitState, getUpdatedRates, timeUnitToSeconds };
66
108
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/core/limit/state/utils.ts"],"sourcesContent":["import Big from \"big.js\";\nimport type { TimeUnitObject } from \"./deadlineAtom\";\nimport type { PriceRates } from \"../types\";\nimport { zeroRates } from \"./constants\";\n\nexport function timeUnitToSeconds(timeUnitObj: TimeUnitObject) {\n switch (timeUnitObj.label) {\n case \"minutes\":\n return timeUnitObj.value * 60;\n case \"hours\":\n return timeUnitObj.value * 60 * 60;\n case \"days\":\n return timeUnitObj.value * 60 * 60 * 24;\n case \"months\":\n return timeUnitObj.value * 60 * 60 * 24 * 30;\n default:\n return 0;\n }\n}\n\nexport function calculateReceiveAmount(\n payAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const pay = Big(payAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → receive = pay / price\n const price = Big(priceRates.rateReversed || \"0\");\n if (price.eq(0)) return \"0\";\n return pay.div(price).toFixed();\n }\n\n const price = Big(priceRates.rate || \"0\");\n // normal: price = to/from → receive = pay * price\n return pay.mul(price).toFixed();\n}\n\nexport function calculatePayAmount(\n receiveAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const receive = Big(receiveAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → pay = receive * price\n const price = Big(priceRates.rateReversed || \"0\");\n return receive.mul(price).toFixed();\n }\n\n // normal: pay = receive / price\n const price = Big(priceRates.rate || \"0\");\n if (price.eq(0)) return \"0\";\n return receive.div(price).toFixed();\n}\n\nexport function calculateRates(\n receiveAmount: string,\n payAmount: string\n): PriceRates {\n const receive = Big(receiveAmount || \"0\");\n const pay = Big(payAmount || \"0\");\n\n if (pay.eq(0) || receive.eq(0)) return zeroRates;\n\n // normal: price = to/from → price = receive / pay\n const rate = receive.div(pay).toFixed();\n // reversed: price = from/to → price = pay / receive\n const rateReversed = pay.div(receive).toFixed();\n\n return { rate, rateReversed };\n}\n\nexport function getUpdatedRates(\n value: string,\n isReversed: boolean\n): PriceRates {\n const bigPrice = Big(value || 0);\n if (!bigPrice.eq(0)) {\n const rate = bigPrice.toFixed();\n const rateReversed = Big(1).div(bigPrice).toFixed();\n\n return isReversed\n ? { rate: rateReversed, rateReversed: rate }\n : { rate, rateReversed };\n }\n return zeroRates;\n}\n"],"names":["timeUnitToSeconds","timeUnitObj","label","value","calculateReceiveAmount","payAmount","priceRates","isReversed","pay","Big","price","rateReversed","eq","div","toFixed","rate","mul","calculatePayAmount","receiveAmount","receive","calculateRates","zeroRates","getUpdatedRates","bigPrice"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/core/limit/state/utils.ts"],"sourcesContent":["import Big from \"big.js\";\nimport type { TimeUnitObject, TimeUnitState } from \"./deadlineAtom\";\nimport type { PriceRates } from \"../types\";\nimport { neverTimeUnit, zeroRates } from \"./constants\";\n\nexport function timeUnitToSeconds(timeUnitObj: TimeUnitObject) {\n switch (timeUnitObj.label) {\n case \"minutes\":\n return timeUnitObj.value * 60;\n case \"hours\":\n return timeUnitObj.value * 60 * 60;\n case \"days\":\n return timeUnitObj.value * 60 * 60 * 24;\n case \"months\":\n return timeUnitObj.value * 60 * 60 * 24 * 30;\n default:\n return 0;\n }\n}\n\nexport function getTimeUnitState(\n timeUnitObj: TimeUnitObject | TimeUnitState\n): TimeUnitState {\n if (isTimeUnitState(timeUnitObj)) {\n return timeUnitObj;\n }\n return {\n ...timeUnitObj,\n timestamp:\n timeUnitObj.label === neverTimeUnit.label\n ? 0\n : Math.floor(Date.now() / 1000 + timeUnitToSeconds(timeUnitObj)),\n };\n}\n\nfunction isTimeUnitState(\n timeUnitObj: TimeUnitObject | TimeUnitState\n): timeUnitObj is TimeUnitState {\n return \"timestamp\" in timeUnitObj && timeUnitObj.timestamp !== undefined;\n}\n\nconst units = [\n { label: \"months\", ms: 30 * 24 * 60 * 60 * 1000 },\n { label: \"days\", ms: 24 * 60 * 60 * 1000 },\n { label: \"hours\", ms: 60 * 60 * 1000 },\n { label: \"minutes\", ms: 60 * 1000 },\n] as const;\n\nexport function getClosestTimeUnit(timestampS: number) {\n if (timestampS <= 0) return neverTimeUnit;\n const timestampMs = timestampS * 1000;\n\n const now = Date.now();\n\n if (timestampMs <= now) return neverTimeUnit;\n\n const diffMs = timestampMs - now;\n\n for (const unit of units) {\n const value = Math.floor(diffMs / unit.ms);\n if (value > 0) {\n return {\n label: unit.label,\n value,\n };\n }\n }\n return neverTimeUnit;\n}\n\nexport function calculateReceiveAmount(\n payAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const pay = Big(payAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → receive = pay / price\n const price = Big(priceRates.rateReversed || \"0\");\n if (price.eq(0)) return \"0\";\n return pay.div(price).toFixed();\n }\n\n const price = Big(priceRates.rate || \"0\");\n // normal: price = to/from → receive = pay * price\n return pay.mul(price).toFixed();\n}\n\nexport function calculatePayAmount(\n receiveAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const receive = Big(receiveAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → pay = receive * price\n const price = Big(priceRates.rateReversed || \"0\");\n return receive.mul(price).toFixed();\n }\n\n // normal: pay = receive / price\n const price = Big(priceRates.rate || \"0\");\n if (price.eq(0)) return \"0\";\n return receive.div(price).toFixed();\n}\n\nexport function calculateRates(\n receiveAmount: string,\n payAmount: string\n): PriceRates {\n const receive = Big(receiveAmount || \"0\");\n const pay = Big(payAmount || \"0\");\n\n if (pay.eq(0) || receive.eq(0)) return zeroRates;\n\n // normal: price = to/from → price = receive / pay\n const rate = receive.div(pay).toFixed();\n // reversed: price = from/to → price = pay / receive\n const rateReversed = pay.div(receive).toFixed();\n\n return { rate, rateReversed };\n}\n\nexport function getUpdatedRates(\n value: string,\n isReversed: boolean\n): PriceRates {\n const bigPrice = Big(value || 0);\n if (!bigPrice.eq(0)) {\n const rate = bigPrice.toFixed();\n const rateReversed = Big(1).div(bigPrice).toFixed();\n\n return isReversed\n ? { rate: rateReversed, rateReversed: rate }\n : { rate, rateReversed };\n }\n return zeroRates;\n}\n"],"names":["timeUnitToSeconds","timeUnitObj","label","value","getTimeUnitState","isTimeUnitState","timestamp","neverTimeUnit","Math","floor","Date","now","undefined","units","ms","getClosestTimeUnit","timestampS","timestampMs","diffMs","unit","calculateReceiveAmount","payAmount","priceRates","isReversed","pay","Big","price","rateReversed","eq","div","toFixed","rate","mul","calculatePayAmount","receiveAmount","receive","calculateRates","zeroRates","getUpdatedRates","bigPrice"],"mappings":"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"}
@@ -1,3 +1,12 @@
1
1
  import { UseLimitRateResult } from './types';
2
+ export declare const useDeltaSwapPriceForLimit: ({ enabled, refetchInterval, tradeMode, }: {
3
+ enabled?: boolean;
4
+ refetchInterval?: number;
5
+ tradeMode: "limit" | "otc";
6
+ }) => {
7
+ price: import('@velora-dex/sdk').DeltaPrice | import('@velora-dex/sdk').BridgePrice | undefined;
8
+ isLoading: boolean;
9
+ error: Error | null;
10
+ };
2
11
  export declare const useLimitRate: (tradeMode: "limit" | "otc") => UseLimitRateResult;
3
12
  //# sourceMappingURL=useLimitRate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitRate.d.ts","sourceRoot":"","sources":["../../../src/core/limit/useLimitRate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAmDlD,eAAO,MAAM,YAAY,GACvB,WAAW,OAAO,GAAG,KAAK,KACzB,kBA6DF,CAAC"}
1
+ {"version":3,"file":"useLimitRate.d.ts","sourceRoot":"","sources":["../../../src/core/limit/useLimitRate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAqDlD,eAAO,MAAM,yBAAyB,GAAI,0CAIvC;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC;CAC5B;;;;CAkDA,CAAC;AAGF,eAAO,MAAM,YAAY,GACvB,WAAW,OAAO,GAAG,KAAK,KACzB,kBA8FF,CAAC"}
@@ -7,6 +7,9 @@ import { formatUnits, parseUnits } from 'viem';
7
7
  import { useWidgetTokens, tradeModeToTokenAtoms } from '../inputs/state/common.js';
8
8
  import { useAtomValue } from '../store.js';
9
9
  import { useMemo } from 'react';
10
+ import { useDeltaPriceQuery } from '../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
11
+ import { isETH } from '../../tokens/utils/eth.js';
12
+ import { wrappedNativeCurrency } from '../../lib/constants/weth.js';
10
13
 
11
14
  const PRICE_REFETCH_INTERVAL = 6e4 * 5;
12
15
  const useSwapPriceForLimit = (t0) => {
@@ -93,6 +96,115 @@ const useSwapPriceForLimit = (t0) => {
93
96
  }
94
97
  return t7;
95
98
  };
99
+ const useDeltaSwapPriceForLimit = (t0) => {
100
+ const $ = distExports.c(22);
101
+ const {
102
+ enabled: t1,
103
+ refetchInterval: t2,
104
+ tradeMode
105
+ } = t0;
106
+ const enabled = t1 === void 0 ? true : t1;
107
+ const refetchInterval = t2 === void 0 ? 1e4 : t2;
108
+ const {
109
+ priceParams,
110
+ chainId,
111
+ destChainId,
112
+ isCrossChain
113
+ } = usePricesParams(tradeMode);
114
+ const queryEnabled = enabled && tradeMode === "limit";
115
+ let t3;
116
+ if ($[0] !== priceParams) {
117
+ t3 = {
118
+ ...priceParams,
119
+ side: "SELL",
120
+ ignoreBadUsdPrice: true
121
+ };
122
+ $[0] = priceParams;
123
+ $[1] = t3;
124
+ } else {
125
+ t3 = $[1];
126
+ }
127
+ const crosschainPriceParams = t3;
128
+ const isLimitOrder = tradeMode === "limit";
129
+ const allowBridgeAndSwap = isCrossChain && isLimitOrder ? false : void 0;
130
+ let t4;
131
+ if ($[2] !== chainId || $[3] !== isLimitOrder || $[4] !== priceParams) {
132
+ t4 = isLimitOrder && isETH({
133
+ address: priceParams.srcToken
134
+ }) ? wrappedNativeCurrency[chainId] : priceParams.srcToken;
135
+ $[2] = chainId;
136
+ $[3] = isLimitOrder;
137
+ $[4] = priceParams;
138
+ $[5] = t4;
139
+ } else {
140
+ t4 = $[5];
141
+ }
142
+ const srcTokenForDelta = t4;
143
+ let t5;
144
+ if ($[6] !== allowBridgeAndSwap || $[7] !== crosschainPriceParams || $[8] !== srcTokenForDelta) {
145
+ t5 = {
146
+ ...crosschainPriceParams,
147
+ allowBridgeAndSwap,
148
+ srcToken: srcTokenForDelta
149
+ };
150
+ $[6] = allowBridgeAndSwap;
151
+ $[7] = crosschainPriceParams;
152
+ $[8] = srcTokenForDelta;
153
+ $[9] = t5;
154
+ } else {
155
+ t5 = $[9];
156
+ }
157
+ let t6;
158
+ if ($[10] !== queryEnabled || $[11] !== refetchInterval) {
159
+ t6 = {
160
+ enabled: queryEnabled,
161
+ refetchInterval,
162
+ retry: false,
163
+ refetchOnWindowFocus: false,
164
+ refetchOnMount: false
165
+ };
166
+ $[10] = queryEnabled;
167
+ $[11] = refetchInterval;
168
+ $[12] = t6;
169
+ } else {
170
+ t6 = $[12];
171
+ }
172
+ let t7;
173
+ if ($[13] !== chainId || $[14] !== destChainId || $[15] !== t5 || $[16] !== t6) {
174
+ t7 = {
175
+ priceParams: t5,
176
+ chainId,
177
+ destChainId,
178
+ timeout: 5e3,
179
+ query: t6
180
+ };
181
+ $[13] = chainId;
182
+ $[14] = destChainId;
183
+ $[15] = t5;
184
+ $[16] = t6;
185
+ $[17] = t7;
186
+ } else {
187
+ t7 = $[17];
188
+ }
189
+ const {
190
+ result: deltaPriceQuery
191
+ } = useDeltaPriceQuery(t7);
192
+ let t8;
193
+ if ($[18] !== deltaPriceQuery.data || $[19] !== deltaPriceQuery.error || $[20] !== deltaPriceQuery.isLoading) {
194
+ t8 = {
195
+ price: deltaPriceQuery.data,
196
+ isLoading: deltaPriceQuery.isLoading,
197
+ error: deltaPriceQuery.error
198
+ };
199
+ $[18] = deltaPriceQuery.data;
200
+ $[19] = deltaPriceQuery.error;
201
+ $[20] = deltaPriceQuery.isLoading;
202
+ $[21] = t8;
203
+ } else {
204
+ t8 = $[21];
205
+ }
206
+ return t8;
207
+ };
96
208
  const useLimitRate = (tradeMode) => {
97
209
  const {
98
210
  tokenFrom,
@@ -111,8 +223,9 @@ const useLimitRate = (tradeMode) => {
111
223
  refetchInterval: PRICE_REFETCH_INTERVAL
112
224
  });
113
225
  const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;
226
+ const isCrosschainLOrder = tradeMode === "limit" && tokenTo && tokenTo.network !== tokenFrom.network;
114
227
  const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);
115
- const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading;
228
+ const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading && !isCrosschainLOrder;
116
229
  const {
117
230
  price: swapPrice,
118
231
  isLoading: isSwapPriceLoading
@@ -120,6 +233,13 @@ const useLimitRate = (tradeMode) => {
120
233
  enabled: fetchSwapPrice,
121
234
  tradeMode
122
235
  });
236
+ const {
237
+ price: deltaCrosschainPrice,
238
+ isLoading: isDeltaCrosschainPriceLoading
239
+ } = useDeltaSwapPriceForLimit({
240
+ enabled: isCrosschainLOrder,
241
+ tradeMode
242
+ });
123
243
  const isLoading = areFiatPricesLoading || isSwapPriceLoading;
124
244
  return useMemo(() => {
125
245
  if (!tokenTo) {
@@ -129,14 +249,31 @@ const useLimitRate = (tradeMode) => {
129
249
  }
130
250
  let rate = void 0;
131
251
  let rateReversed = void 0;
132
- if (fiatPricesAvailable) {
252
+ if (isCrosschainLOrder && deltaCrosschainPrice) {
253
+ const srcUnits = formatUnits(BigInt(deltaCrosschainPrice.srcAmount), tokenFrom.decimals);
254
+ const destUnits = formatUnits(
255
+ // amount on destChain accounting for decimals
256
+ BigInt(deltaCrosschainPrice.receivedDestAmount),
257
+ tokenTo.decimals
258
+ );
259
+ rate = Big(destUnits).div(srcUnits).toFixed();
260
+ rateReversed = Big(srcUnits).div(destUnits).toFixed();
261
+ return {
262
+ rates: {
263
+ rate,
264
+ rateReversed
265
+ },
266
+ // for Crosschain price we care only about its loading state, not all others
267
+ isLoading: isDeltaCrosschainPriceLoading
268
+ };
269
+ } else if (fiatPricesAvailable) {
133
270
  rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();
134
271
  rateReversed = Big(tokenToPrice.price).div(tokenFromPrice.price).toFixed();
135
272
  } else if (swapPrice) {
136
- const srcUnits = formatUnits(BigInt(swapPrice.srcAmount), tokenFrom.decimals);
137
- const destUnits = formatUnits(BigInt(swapPrice.destAmount), tokenTo.decimals);
138
- rate = Big(destUnits).div(srcUnits).toFixed();
139
- rateReversed = Big(srcUnits).div(destUnits).toFixed();
273
+ const srcUnits_0 = formatUnits(BigInt(swapPrice.srcAmount), tokenFrom.decimals);
274
+ const destUnits_0 = formatUnits(BigInt(swapPrice.destAmount), tokenTo.decimals);
275
+ rate = Big(destUnits_0).div(srcUnits_0).toFixed();
276
+ rateReversed = Big(srcUnits_0).div(destUnits_0).toFixed();
140
277
  }
141
278
  if (!rate || !rateReversed) {
142
279
  return {
@@ -150,8 +287,8 @@ const useLimitRate = (tradeMode) => {
150
287
  },
151
288
  isLoading
152
289
  };
153
- }, [fiatPricesAvailable, isLoading, swapPrice, tokenFrom.decimals, tokenFromPrice?.price, tokenTo, tokenToPrice?.price]);
290
+ }, [fiatPricesAvailable, isLoading, swapPrice, tokenFrom.decimals, tokenFromPrice?.price, tokenTo, tokenToPrice?.price, isCrosschainLOrder, deltaCrosschainPrice, isDeltaCrosschainPriceLoading]);
154
291
  };
155
292
 
156
- export { useLimitRate };
293
+ export { useDeltaSwapPriceForLimit, useLimitRate };
157
294
  //# sourceMappingURL=useLimitRate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitRate.js","sources":["../../../src/core/limit/useLimitRate.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport {\n usePricesParams,\n type FetchPriceParams,\n} from \"@/hooks/swap/prices/usePricesParams\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport type { UseLimitRateResult } from \"./types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { useMemo } from \"react\";\n\n// 5 min, so as not to change limit price in front of the user too often\nconst PRICE_REFETCH_INTERVAL = 60_000 * 5;\n\nconst useSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = PRICE_REFETCH_INTERVAL,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const tokenFrom = useAtomValue(\n tradeModeToTokenAtoms[tradeMode].tokenFromAtom\n );\n const { priceParams, chainId } = usePricesParams(tradeMode);\n\n const priceParamsWithAmount: FetchPriceParams = {\n ...priceParams,\n amount: parseUnits(\"1\", tokenFrom.decimals).toString(),\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n // @TODO: delta price return quote for less tokens than market price with srcAmount=1,\n // but maybe we should increase srcAmount and use delta prices instead, need to test.\n const { result: marketPriceQuery } = useMarketPriceQuery({\n priceParams: priceParamsWithAmount,\n chainId,\n timeout: 5000,\n query: {\n enabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n };\n};\n\n// define how many tokenTo units one tokenFrom (tokenTo if reversed) unit costs, eg 1 ETH = 3000 USDC\nexport const useLimitRate = (\n tradeMode: \"limit\" | \"otc\"\n): UseLimitRateResult => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n const { data: tokenFromPrice, isLoading: isTokenFromPriceLoading } =\n useTokenPrice(tokenFrom, { refetchInterval: PRICE_REFETCH_INTERVAL });\n const { data: tokenToPrice, isLoading: isTokenToPriceLoading } =\n useTokenPrice(tokenTo, { refetchInterval: PRICE_REFETCH_INTERVAL });\n\n const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;\n\n const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);\n const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading;\n\n const { price: swapPrice, isLoading: isSwapPriceLoading } =\n useSwapPriceForLimit({ enabled: fetchSwapPrice, tradeMode });\n\n const isLoading = areFiatPricesLoading || isSwapPriceLoading;\n\n return useMemo(() => {\n if (!tokenTo) {\n return { isLoading };\n }\n\n let rate: string | undefined = undefined;\n let rateReversed: string | undefined = undefined;\n if (fiatPricesAvailable) {\n rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();\n rateReversed = Big(tokenToPrice.price)\n .div(tokenFromPrice.price)\n .toFixed();\n } else if (swapPrice) {\n const srcUnits = formatUnits(\n BigInt(swapPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n BigInt(swapPrice.destAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n }\n\n if (!rate || !rateReversed) {\n return { isLoading };\n }\n\n return {\n rates: { rate, rateReversed },\n isLoading,\n };\n }, [\n fiatPricesAvailable,\n isLoading,\n swapPrice,\n tokenFrom.decimals,\n tokenFromPrice?.price,\n tokenTo,\n tokenToPrice?.price,\n ]);\n};\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPriceForLimit","t0","$","_c","enabled","t1","refetchInterval","t2","tradeMode","undefined","tokenFrom","useAtomValue","tradeModeToTokenAtoms","tokenFromAtom","priceParams","chainId","usePricesParams","t3","decimals","parseUnits","toString","t4","amount","side","ignoreBadUsdPrice","priceParamsWithAmount","t5","retry","refetchOnWindowFocus","refetchOnMount","t6","timeout","query","result","marketPriceQuery","useMarketPriceQuery","t7","data","isLoading","price","useLimitRate","tokenTo","useWidgetTokens","tokenFromPrice","isTokenFromPriceLoading","useTokenPrice","tokenToPrice","isTokenToPriceLoading","areFiatPricesLoading","fiatPricesAvailable","fetchSwapPrice","swapPrice","isSwapPriceLoading","useMemo","rate","rateReversed","Big","div","toFixed","srcUnits","formatUnits","BigInt","srcAmount","destUnits","destAmount","rates"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitRate.js","sources":["../../../src/core/limit/useLimitRate.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport {\n usePricesParams,\n type FetchPriceParams,\n} from \"@/hooks/swap/prices/usePricesParams\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport type { UseLimitRateResult } from \"./types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { useMemo } from \"react\";\nimport { useDeltaPriceQuery } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\n\n// 5 min, so as not to change limit price in front of the user too often\nconst PRICE_REFETCH_INTERVAL = 60_000 * 5;\n\nconst useSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = PRICE_REFETCH_INTERVAL,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const tokenFrom = useAtomValue(\n tradeModeToTokenAtoms[tradeMode].tokenFromAtom\n );\n const { priceParams, chainId } = usePricesParams(tradeMode);\n\n const priceParamsWithAmount: FetchPriceParams = {\n ...priceParams,\n amount: parseUnits(\"1\", tokenFrom.decimals).toString(),\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n // @TODO: delta price return quote for less tokens than market price with srcAmount=1,\n // but maybe we should increase srcAmount and use delta prices instead, need to test.\n const { result: marketPriceQuery } = useMarketPriceQuery({\n priceParams: priceParamsWithAmount,\n chainId,\n timeout: 5000,\n query: {\n enabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n };\n};\n\nexport const useDeltaSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = 10_000,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const { priceParams, chainId, destChainId, isCrossChain } =\n usePricesParams(tradeMode);\n\n // should fetch delta price for crosschain limit order?\n const queryEnabled = enabled && tradeMode === \"limit\";\n\n const crosschainPriceParams: FetchPriceParams = {\n // keep Limit tokenFrom amount because its gas sensitive\n ...priceParams,\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n const isLimitOrder = tradeMode === \"limit\";\n\n // disable price routes for crosschain limit orders, as destChain-side swaps are not supported\n const allowBridgeAndSwap = isCrossChain && isLimitOrder ? false : undefined;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta =\n isLimitOrder && isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery } = useDeltaPriceQuery({\n priceParams: {\n ...crosschainPriceParams,\n allowBridgeAndSwap,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: queryEnabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n error: deltaPriceQuery.error,\n };\n};\n\n// define how many tokenTo units one tokenFrom (tokenTo if reversed) unit costs, eg 1 ETH = 3000 USDC\nexport const useLimitRate = (\n tradeMode: \"limit\" | \"otc\"\n): UseLimitRateResult => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n const { data: tokenFromPrice, isLoading: isTokenFromPriceLoading } =\n useTokenPrice(tokenFrom, { refetchInterval: PRICE_REFETCH_INTERVAL });\n const { data: tokenToPrice, isLoading: isTokenToPriceLoading } =\n useTokenPrice(tokenTo, { refetchInterval: PRICE_REFETCH_INTERVAL });\n\n const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;\n\n // for crosschain limit orders, use the delta price query to correctly set the starting price,\n // accounting for bridge fees, because ex. 1USDC=1USDT will never be possible\n const isCrosschainLOrder =\n tradeMode === \"limit\" && tokenTo && tokenTo.network !== tokenFrom.network;\n\n const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);\n const fetchSwapPrice =\n !fiatPricesAvailable && !areFiatPricesLoading && !isCrosschainLOrder;\n\n const { price: swapPrice, isLoading: isSwapPriceLoading } =\n useSwapPriceForLimit({ enabled: fetchSwapPrice, tradeMode });\n\n const {\n price: deltaCrosschainPrice,\n isLoading: isDeltaCrosschainPriceLoading,\n } = useDeltaSwapPriceForLimit({ enabled: isCrosschainLOrder, tradeMode });\n\n const isLoading = areFiatPricesLoading || isSwapPriceLoading;\n\n return useMemo(() => {\n if (!tokenTo) {\n return { isLoading };\n }\n\n let rate: string | undefined = undefined;\n let rateReversed: string | undefined = undefined;\n if (isCrosschainLOrder && deltaCrosschainPrice) {\n const srcUnits = formatUnits(\n BigInt(deltaCrosschainPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n // amount on destChain accounting for decimals\n BigInt(deltaCrosschainPrice.receivedDestAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n\n return {\n rates: { rate, rateReversed },\n // for Crosschain price we care only about its loading state, not all others\n isLoading: isDeltaCrosschainPriceLoading,\n };\n } else if (fiatPricesAvailable) {\n rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();\n rateReversed = Big(tokenToPrice.price)\n .div(tokenFromPrice.price)\n .toFixed();\n } else if (swapPrice) {\n const srcUnits = formatUnits(\n BigInt(swapPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n BigInt(swapPrice.destAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n }\n\n if (!rate || !rateReversed) {\n return { isLoading };\n }\n\n return {\n rates: { rate, rateReversed },\n isLoading,\n };\n }, [\n fiatPricesAvailable,\n isLoading,\n swapPrice,\n tokenFrom.decimals,\n tokenFromPrice?.price,\n tokenTo,\n tokenToPrice?.price,\n isCrosschainLOrder,\n deltaCrosschainPrice,\n isDeltaCrosschainPriceLoading,\n ]);\n};\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPriceForLimit","t0","$","_c","enabled","t1","refetchInterval","t2","tradeMode","undefined","tokenFrom","useAtomValue","tradeModeToTokenAtoms","tokenFromAtom","priceParams","chainId","usePricesParams","t3","decimals","parseUnits","toString","t4","amount","side","ignoreBadUsdPrice","priceParamsWithAmount","t5","retry","refetchOnWindowFocus","refetchOnMount","t6","timeout","query","result","marketPriceQuery","useMarketPriceQuery","t7","data","isLoading","price","useDeltaSwapPriceForLimit","destChainId","isCrossChain","queryEnabled","crosschainPriceParams","isLimitOrder","allowBridgeAndSwap","isETH","address","srcToken","wrappedNativeCurrency","srcTokenForDelta","deltaPriceQuery","useDeltaPriceQuery","t8","error","useLimitRate","tokenTo","useWidgetTokens","tokenFromPrice","isTokenFromPriceLoading","useTokenPrice","tokenToPrice","isTokenToPriceLoading","areFiatPricesLoading","isCrosschainLOrder","network","fiatPricesAvailable","fetchSwapPrice","swapPrice","isSwapPriceLoading","deltaCrosschainPrice","isDeltaCrosschainPriceLoading","useMemo","rate","rateReversed","srcUnits","formatUnits","BigInt","srcAmount","destUnits","receivedDestAmount","Big","div","toFixed","rates","destAmount"],"mappings":"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"}
@@ -17,7 +17,7 @@ import Big from 'big.js';
17
17
  import { WRAP_ETH_GAS_LIMIT_INACCURATE } from '../../lib/constants/index.js';
18
18
  import { useUnsupportedLimitChain } from './useLimitNotSupported.js';
19
19
  import { selectLimitTokenFromAtom } from './state/selectedTokenActionsAtom.js';
20
- import { useLimitTokenFrom } from './state/selectedTokenAtom.js';
20
+ import { useLimitTokenFrom } from './state/limitTokenAtoms.js';
21
21
  import { formatTokenAmount } from '../../lib/utils/formatTokenBalance.js';
22
22
  import { getInsufficientBalanceToFillOrderMessage } from '../../lib/utils/delta.js';
23
23
  import { useDeltaOrderRequiredAllowance } from '../../hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js';