@velora-dex/widget 0.2.5-dev.1 → 0.2.5-dev.10

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 (492) hide show
  1. package/dist/components/ui/input.js +1 -1
  2. package/dist/components/ui/input.js.map +1 -1
  3. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  4. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +7 -7
  5. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  6. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.d.ts +2 -0
  7. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.d.ts.map +1 -0
  8. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js +132 -0
  9. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -0
  10. package/dist/components/widget/AppHeader/Activities/ActivityItems.js +2 -2
  11. package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
  12. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts +6 -21
  13. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  14. package/dist/components/widget/AppHeader/Activities/Drawers.js +61 -219
  15. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  16. package/dist/components/widget/AppHeader/Activities/hooks.d.ts +7 -10
  17. package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
  18. package/dist/components/widget/AppHeader/Activities/hooks.js +37 -75
  19. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  20. package/dist/components/widget/AppHeader/Activities/utils.d.ts +2 -2
  21. package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -1
  22. package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
  23. package/dist/components/widget/AppHeader/ActivityButton.d.ts +0 -1
  24. package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +1 -1
  25. package/dist/components/widget/AppHeader/ActivityButton.js +38 -160
  26. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
  27. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +4 -14
  28. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  29. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +7 -2
  30. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  31. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +174 -99
  32. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  33. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +3 -1
  34. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
  35. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +17 -14
  36. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  37. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts.map +1 -1
  38. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js +3 -2
  39. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
  40. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.d.ts.map +1 -1
  41. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +17 -9
  42. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  43. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js +1 -1
  44. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  45. package/dist/components/widget/Drawer/index.d.ts +3 -2
  46. package/dist/components/widget/Drawer/index.d.ts.map +1 -1
  47. package/dist/components/widget/Drawer/index.js +96 -80
  48. package/dist/components/widget/Drawer/index.js.map +1 -1
  49. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +2 -3
  50. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  51. package/dist/components/widget/Drawer/state/useDrawerControls.js +18 -19
  52. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  53. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -0
  54. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -0
  55. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -0
  56. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -0
  57. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -0
  58. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -0
  59. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -0
  60. package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderListItem.js +1 -1
  61. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -0
  62. package/dist/components/widget/LimitOrderItem/constants.d.ts.map +1 -0
  63. package/dist/components/widget/LimitOrderItem/constants.js.map +1 -0
  64. package/dist/components/widget/LimitOrderItem/types.d.ts.map +1 -0
  65. package/dist/components/widget/LimitOrderItem/utils.d.ts.map +1 -0
  66. package/dist/components/widget/LimitOrderItem/utils.js.map +1 -0
  67. package/dist/components/widget/OrderExpiryInput/index.d.ts.map +1 -1
  68. package/dist/components/widget/OrderExpiryInput/index.js +76 -73
  69. package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
  70. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -0
  71. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -0
  72. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -0
  73. package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/OtcOrderDetails.js +1 -1
  74. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -0
  75. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.d.ts.map +1 -0
  76. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.js.map +1 -0
  77. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.d.ts.map +1 -0
  78. package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderListItem.js +1 -1
  79. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js.map +1 -0
  80. package/dist/components/widget/OtcOrderItem/constants.d.ts.map +1 -0
  81. package/dist/components/widget/OtcOrderItem/constants.js.map +1 -0
  82. package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/types.d.ts +1 -1
  83. package/dist/components/widget/OtcOrderItem/types.d.ts.map +1 -0
  84. package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/utils.d.ts +0 -6
  85. package/dist/components/widget/OtcOrderItem/utils.d.ts.map +1 -0
  86. package/dist/components/widget/OtcOrderItem/utils.js.map +1 -0
  87. package/dist/components/widget/PoweredBy/PoweredBy.js +1 -1
  88. package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
  89. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +1 -1
  90. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  91. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +3 -0
  92. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  93. package/dist/components/widget/ReceiverAddress/types.d.ts +2 -1
  94. package/dist/components/widget/ReceiverAddress/types.d.ts.map +1 -1
  95. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts +2 -2
  96. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -1
  97. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  98. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts +1 -1
  99. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -1
  100. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js +2 -2
  101. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
  102. package/dist/components/widget/Screen/GenericScreen.d.ts +13 -0
  103. package/dist/components/widget/Screen/GenericScreen.d.ts.map +1 -0
  104. package/dist/components/widget/Screen/GenericScreen.js +67 -0
  105. package/dist/components/widget/Screen/GenericScreen.js.map +1 -0
  106. package/dist/components/widget/Screen/ScreenContainer.d.ts +7 -0
  107. package/dist/components/widget/Screen/ScreenContainer.d.ts.map +1 -0
  108. package/dist/components/widget/Screen/ScreenContainer.js +36 -0
  109. package/dist/components/widget/Screen/ScreenContainer.js.map +1 -0
  110. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
  111. package/dist/components/widget/SelectToken/SelectTokenButton.js +109 -201
  112. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  113. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
  114. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +5 -0
  115. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  116. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts +3 -2
  117. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  118. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  119. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +10 -3
  120. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  121. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +138 -9
  122. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  123. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts +6 -0
  124. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
  125. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js +86 -1
  126. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
  127. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +8 -2
  128. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
  129. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +103 -1
  130. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
  131. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +10 -3
  132. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
  133. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +152 -9
  134. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  135. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +8 -2
  136. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
  137. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +101 -1
  138. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
  139. package/dist/components/widget/TradeOverview/TradeDetails.d.ts.map +1 -1
  140. package/dist/components/widget/TradeOverview/TradeDetails.js +105 -78
  141. package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
  142. package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -1
  143. package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
  144. package/dist/components/widget/TradeOverview/TradeOverview.js +26 -21
  145. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  146. package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts +30 -0
  147. package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts.map +1 -0
  148. package/dist/components/widget/TradeOverview/TradeOverviewScreen.js +75 -0
  149. package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -0
  150. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +1 -1
  151. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
  152. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  153. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +14 -0
  154. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -0
  155. package/dist/components/widget/TradeOverview/utils/preWrap.js +37 -0
  156. package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -0
  157. package/dist/components/widget/TransactionDetails/types.d.ts +1 -1
  158. package/dist/components/widget/TransactionDetails/types.d.ts.map +1 -1
  159. package/dist/configurator/Configurator.d.ts.map +1 -1
  160. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
  161. package/dist/configurator/components/common/ButtonGroup.d.ts +12 -0
  162. package/dist/configurator/components/common/ButtonGroup.d.ts.map +1 -0
  163. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  164. package/dist/core/LimitOrderButton.js +58 -33
  165. package/dist/core/LimitOrderButton.js.map +1 -1
  166. package/dist/core/OtcOrderButton.d.ts.map +1 -1
  167. package/dist/core/OtcOrderButton.js +10 -14
  168. package/dist/core/OtcOrderButton.js.map +1 -1
  169. package/dist/core/TradeFlowScreenButton.d.ts +27 -0
  170. package/dist/core/TradeFlowScreenButton.d.ts.map +1 -0
  171. package/dist/core/TradeFlowScreenButton.js +206 -0
  172. package/dist/core/TradeFlowScreenButton.js.map +1 -0
  173. package/dist/core/Updaters.d.ts.map +1 -1
  174. package/dist/core/Updaters.js +22 -1
  175. package/dist/core/Updaters.js.map +1 -1
  176. package/dist/core/across/isCrosshcainPossible.d.ts +10 -0
  177. package/dist/core/across/isCrosshcainPossible.d.ts.map +1 -0
  178. package/dist/core/across/isCrosshcainPossible.js +41 -0
  179. package/dist/core/across/isCrosshcainPossible.js.map +1 -0
  180. package/dist/core/across/utils.d.ts +7 -3
  181. package/dist/core/across/utils.d.ts.map +1 -1
  182. package/dist/core/across/utils.js +10 -7
  183. package/dist/core/across/utils.js.map +1 -1
  184. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  185. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +56 -33
  186. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  187. package/dist/core/index.d.ts.map +1 -1
  188. package/dist/core/index.js +253 -166
  189. package/dist/core/index.js.map +1 -1
  190. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  191. package/dist/core/inputs/hooks/useTokenToInputProps.js +76 -66
  192. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  193. package/dist/core/inputs/state/common.d.ts +15 -3
  194. package/dist/core/inputs/state/common.d.ts.map +1 -1
  195. package/dist/core/inputs/state/common.js +51 -12
  196. package/dist/core/inputs/state/common.js.map +1 -1
  197. package/dist/core/inputs/state/inputAmountAtom.d.ts.map +1 -1
  198. package/dist/core/inputs/state/inputAmountAtom.js +1 -1
  199. package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
  200. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  201. package/dist/core/inputs/state/selectedTokenActionsAtom.js +33 -44
  202. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  203. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -1
  204. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  205. package/dist/core/inputs/state/setTokenByAddressAtom.js +85 -21
  206. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  207. package/dist/core/inputs/state/types.d.ts +9 -1
  208. package/dist/core/inputs/state/types.d.ts.map +1 -1
  209. package/dist/core/limit/state/deadlineAtom.d.ts +10 -2
  210. package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
  211. package/dist/core/limit/state/deadlineAtom.js +15 -8
  212. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  213. package/dist/core/limit/state/isCrosschainAtom.d.ts +3 -0
  214. package/dist/core/limit/state/isCrosschainAtom.d.ts.map +1 -0
  215. package/dist/core/limit/state/isCrosschainAtom.js +13 -0
  216. package/dist/core/limit/state/isCrosschainAtom.js.map +1 -0
  217. package/dist/core/limit/state/limitInputActionsAtom.d.ts +4 -1
  218. package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -1
  219. package/dist/core/limit/state/limitInputActionsAtom.js +6 -2
  220. package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
  221. package/dist/core/limit/state/limitInputAmountAtom.d.ts.map +1 -1
  222. package/dist/core/limit/state/limitInputAmountAtom.js +2 -2
  223. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  224. package/dist/core/limit/state/limitTokenAtoms.d.ts +10 -0
  225. package/dist/core/limit/state/limitTokenAtoms.d.ts.map +1 -0
  226. package/dist/core/limit/state/limitTokenAtoms.js +17 -0
  227. package/dist/core/limit/state/limitTokenAtoms.js.map +1 -0
  228. package/dist/core/limit/state/receiverAddressAtom.d.ts +7 -0
  229. package/dist/core/limit/state/receiverAddressAtom.d.ts.map +1 -0
  230. package/dist/core/limit/state/receiverAddressAtom.js +40 -0
  231. package/dist/core/limit/state/receiverAddressAtom.js.map +1 -0
  232. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  233. package/dist/core/limit/state/selectedTokenActionsAtom.js +94 -18
  234. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  235. package/dist/core/limit/state/selectedTokenAtom.d.ts +0 -9
  236. package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
  237. package/dist/core/limit/state/selectedTokenAtom.js +53 -21
  238. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  239. package/dist/core/limit/state/utils.d.ts +9 -1
  240. package/dist/core/limit/state/utils.d.ts.map +1 -1
  241. package/dist/core/limit/state/utils.js +44 -2
  242. package/dist/core/limit/state/utils.js.map +1 -1
  243. package/dist/core/limit/useLimitRate.d.ts +9 -0
  244. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  245. package/dist/core/limit/useLimitRate.js +145 -8
  246. package/dist/core/limit/useLimitRate.js.map +1 -1
  247. package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
  248. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  249. package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
  250. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  251. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  252. package/dist/core/limit/useLimitTokenToInputProps.js +132 -72
  253. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  254. package/dist/core/otc/state/deadlineAtom.d.ts +8 -3
  255. package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
  256. package/dist/core/otc/state/deadlineAtom.js +16 -10
  257. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  258. package/dist/core/otc/state/otcInputActionsAtom.d.ts +4 -1
  259. package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -1
  260. package/dist/core/otc/state/otcInputActionsAtom.js +6 -2
  261. package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
  262. package/dist/core/otc/state/otcInputAmountAtom.d.ts.map +1 -1
  263. package/dist/core/otc/state/otcInputAmountAtom.js +1 -1
  264. package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
  265. package/dist/core/otc/state/receiverAddressAtom.js +1 -1
  266. package/dist/core/screen/hooks/useOnClickOutside.d.ts +2 -0
  267. package/dist/core/screen/hooks/useOnClickOutside.d.ts.map +1 -0
  268. package/dist/core/screen/hooks/useOnClickOutside.js +30 -0
  269. package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -0
  270. package/dist/core/screen/screenByType.d.ts +7 -0
  271. package/dist/core/screen/screenByType.d.ts.map +1 -0
  272. package/dist/core/screen/screenByType.js +13 -0
  273. package/dist/core/screen/screenByType.js.map +1 -0
  274. package/dist/core/screen/state/screenAtom.d.ts +20 -0
  275. package/dist/core/screen/state/screenAtom.d.ts.map +1 -0
  276. package/dist/core/screen/state/screenAtom.js +110 -0
  277. package/dist/core/screen/state/screenAtom.js.map +1 -0
  278. package/dist/core/state/chainToAtom.d.ts +2 -0
  279. package/dist/core/state/chainToAtom.d.ts.map +1 -1
  280. package/dist/core/state/chainToAtom.js +37 -7
  281. package/dist/core/state/chainToAtom.js.map +1 -1
  282. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  283. package/dist/core/state/configActionsAtom.js +3 -1
  284. package/dist/core/state/configActionsAtom.js.map +1 -1
  285. package/dist/core/state/configAtom.d.ts +4 -2
  286. package/dist/core/state/configAtom.d.ts.map +1 -1
  287. package/dist/core/state/configAtom.js +7 -3
  288. package/dist/core/state/configAtom.js.map +1 -1
  289. package/dist/core/state/configEffectAtom.d.ts +0 -3
  290. package/dist/core/state/configEffectAtom.d.ts.map +1 -1
  291. package/dist/core/state/configEffectAtom.js +49 -37
  292. package/dist/core/state/configEffectAtom.js.map +1 -1
  293. package/dist/core/state/enabledChainsAtom.d.ts +3 -0
  294. package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
  295. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  296. package/dist/core/state/getSelectableDestChains.d.ts +8 -0
  297. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -0
  298. package/dist/core/state/getSelectableDestChains.js +34 -0
  299. package/dist/core/state/getSelectableDestChains.js.map +1 -0
  300. package/dist/core/types.d.ts +6 -0
  301. package/dist/core/types.d.ts.map +1 -1
  302. package/dist/events/getters/limit.d.ts.map +1 -1
  303. package/dist/events/getters/limit.js +5 -2
  304. package/dist/events/getters/limit.js.map +1 -1
  305. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
  306. package/dist/events/hooks/useOnPriceUpdates.js +37 -25
  307. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  308. package/dist/events/types/formInput.d.ts +1 -1
  309. package/dist/events/types/formInput.d.ts.map +1 -1
  310. package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -1
  311. package/dist/hooks/batch/useCanBatchTxs.js +33 -29
  312. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  313. package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
  314. package/dist/hooks/gas/useGasPrices.js +15 -14
  315. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  316. package/dist/hooks/otc/mutations/useFillOrder.js +6 -1
  317. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  318. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts +1 -1
  319. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  320. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -1
  321. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  322. package/dist/hooks/permit/utils/encodeArgs.js +1 -1
  323. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts +2 -0
  324. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts.map +1 -0
  325. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +24 -0
  326. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -0
  327. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +6 -0
  328. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -0
  329. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -0
  330. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -0
  331. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +4 -0
  332. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -0
  333. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js +12 -0
  334. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -0
  335. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +19 -0
  336. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -0
  337. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +4 -0
  338. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -0
  339. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +81 -0
  340. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -0
  341. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +3 -0
  342. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  343. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +2 -1
  344. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  345. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +1 -1
  346. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  347. package/dist/hooks/swap/prices/usePricesParams.js +8 -12
  348. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  349. package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -1
  350. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  351. package/dist/hooks/swap/prices/useSwapPrices.js +63 -43
  352. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  353. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  354. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  355. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -0
  356. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  357. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +54 -21
  358. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  359. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
  360. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  361. package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
  362. package/dist/hooks/tokens/prices/queries.js +2 -2
  363. package/dist/hooks/tokens/prices/queries.js.map +1 -1
  364. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +3 -1
  365. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  366. package/dist/hooks/tokens/useAllTokensWithFilter.js +25 -22
  367. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  368. package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
  369. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  370. package/dist/hooks/tokens/useTokensFromAcross.d.ts +3 -1
  371. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  372. package/dist/hooks/tokens/useTokensFromAcross.js +36 -25
  373. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  374. package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
  375. package/dist/hooks/txs/queries/useTxHistory.js +2 -2
  376. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  377. package/dist/hooks/useAvailableCrosses.d.ts +7 -2
  378. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  379. package/dist/hooks/useAvailableCrosses.js +39 -25
  380. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  381. package/dist/hooks/useBridgeInfo.d.ts +4 -1
  382. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  383. package/dist/hooks/useBridgeInfo.js +26 -11
  384. package/dist/hooks/useBridgeInfo.js.map +1 -1
  385. package/dist/hooks/useClickOutside.d.ts +4 -0
  386. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  387. package/dist/hooks/useClickOutside.js +49 -0
  388. package/dist/hooks/useClickOutside.js.map +1 -0
  389. package/dist/hooks/useIsCrosschainPossible.d.ts +3 -1
  390. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
  391. package/dist/hooks/useIsCrosschainPossible.js +33 -22
  392. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  393. package/dist/hooks/useSDK.d.ts.map +1 -1
  394. package/dist/hooks/useSDK.js +11 -11
  395. package/dist/hooks/useSDK.js.map +1 -1
  396. package/dist/hooks/useSelectableDestChains.d.ts +5 -1
  397. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
  398. package/dist/hooks/useSelectableDestChains.js +42 -36
  399. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  400. package/dist/lib/constants/index.d.ts +0 -2
  401. package/dist/lib/constants/index.d.ts.map +1 -1
  402. package/dist/lib/constants/index.js +1 -4
  403. package/dist/lib/constants/index.js.map +1 -1
  404. package/dist/lib/constants/urls.d.ts +4 -0
  405. package/dist/lib/constants/urls.d.ts.map +1 -0
  406. package/dist/lib/constants/urls.js +30 -0
  407. package/dist/lib/constants/urls.js.map +1 -0
  408. package/dist/lib/utils/explorer.d.ts.map +1 -1
  409. package/dist/lib/utils/explorer.js +3 -3
  410. package/dist/lib/utils/explorer.js.map +1 -1
  411. package/dist/lib/utils/price.js +1 -1
  412. package/dist/styles.css +22 -22
  413. package/dist/tokens/utils/sorting.d.ts.map +1 -1
  414. package/dist/tokens/utils/sorting.js +3 -0
  415. package/dist/tokens/utils/sorting.js.map +1 -1
  416. package/dist/transactions/state/hooks/useTransactions.js +1 -1
  417. package/package.json +4 -4
  418. package/dist/components/ui/dialog.js +0 -261
  419. package/dist/components/ui/dialog.js.map +0 -1
  420. package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts +0 -2
  421. package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts.map +0 -1
  422. package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js +0 -24
  423. package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js.map +0 -1
  424. package/dist/components/widget/Dialog/DialogRoot.js +0 -47
  425. package/dist/components/widget/Dialog/DialogRoot.js.map +0 -1
  426. package/dist/components/widget/Dialog/dialogByType.js +0 -10
  427. package/dist/components/widget/Dialog/dialogByType.js.map +0 -1
  428. package/dist/components/widget/Dialog/state/dialogAtom.js +0 -86
  429. package/dist/components/widget/Dialog/state/dialogAtom.js.map +0 -1
  430. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.d.ts.map +0 -1
  431. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +0 -1
  432. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.d.ts.map +0 -1
  433. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +0 -1
  434. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.d.ts.map +0 -1
  435. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.js.map +0 -1
  436. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +0 -1
  437. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +0 -1
  438. package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts +0 -7
  439. package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts.map +0 -1
  440. package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts +0 -7
  441. package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts.map +0 -1
  442. package/dist/components/widget/LimitOrdersDrawer/constants.d.ts.map +0 -1
  443. package/dist/components/widget/LimitOrdersDrawer/constants.js.map +0 -1
  444. package/dist/components/widget/LimitOrdersDrawer/types.d.ts.map +0 -1
  445. package/dist/components/widget/LimitOrdersDrawer/utils.d.ts.map +0 -1
  446. package/dist/components/widget/LimitOrdersDrawer/utils.js.map +0 -1
  447. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.d.ts.map +0 -1
  448. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +0 -1
  449. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +0 -1
  450. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +0 -1
  451. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.d.ts.map +0 -1
  452. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.js.map +0 -1
  453. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.d.ts.map +0 -1
  454. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +0 -1
  455. package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts +0 -7
  456. package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts.map +0 -1
  457. package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts +0 -12
  458. package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts.map +0 -1
  459. package/dist/components/widget/OtcOrdersDrawer/constants.d.ts.map +0 -1
  460. package/dist/components/widget/OtcOrdersDrawer/constants.js.map +0 -1
  461. package/dist/components/widget/OtcOrdersDrawer/types.d.ts.map +0 -1
  462. package/dist/components/widget/OtcOrdersDrawer/utils.d.ts.map +0 -1
  463. package/dist/components/widget/OtcOrdersDrawer/utils.js.map +0 -1
  464. package/dist/core/TradeFlowButton.d.ts +0 -27
  465. package/dist/core/TradeFlowButton.d.ts.map +0 -1
  466. package/dist/core/TradeFlowButton.js +0 -963
  467. package/dist/core/TradeFlowButton.js.map +0 -1
  468. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +0 -15
  469. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +0 -1
  470. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -92
  471. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +0 -1
  472. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/Controls.d.ts +0 -0
  473. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/Controls.js +0 -0
  474. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/LimitOrderDetails.d.ts +0 -0
  475. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/LimitOrderDetails.js +0 -0
  476. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/utils.d.ts +0 -0
  477. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/utils.js +0 -0
  478. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderListItem.d.ts +0 -0
  479. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/constants.d.ts +0 -0
  480. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/constants.js +0 -0
  481. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/types.d.ts +0 -0
  482. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/utils.d.ts +0 -0
  483. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/utils.js +0 -0
  484. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/Controls.d.ts +0 -0
  485. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/Controls.js +0 -0
  486. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/OtcOrderDetails.d.ts +0 -0
  487. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/utils.d.ts +0 -0
  488. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/utils.js +0 -0
  489. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderListItem.d.ts +0 -0
  490. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/constants.d.ts +0 -0
  491. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/constants.js +0 -0
  492. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/utils.js +0 -0
@@ -30,7 +30,7 @@ const setLimitPayAmountAtom = atom(null, (get, set, payAmount) => {
30
30
  const newReceiveAmount = calculateReceiveAmount(payAmount, priceRates, isReversed);
31
31
  set(setLimitReceiveAmountAtom, newReceiveAmount);
32
32
  });
33
- const setLimitAmountAtomFromProps = atom(null, (_, set, amount) => {
33
+ const setLimitPayAmountAtomFromProps = atom(null, (_, set, amount) => {
34
34
  set(currentLimitInputAtom, "from");
35
35
  set(setLimitPayAmountAtom, amount);
36
36
  });
@@ -49,6 +49,10 @@ const setLimitReceiveAmountAtom = atom(null, (get, set, receiveAmount) => {
49
49
  set(setLimitPriceRatesAtom, updatedRates, false);
50
50
  }
51
51
  });
52
+ const setLimitReceiveAmountAtomFromProps = atom(null, (_, set, amount) => {
53
+ set(currentLimitInputAtom, "to");
54
+ set(setLimitReceiveAmountAtom, amount);
55
+ });
52
56
  const resetLimitPriceAtom = atom(null, (get, set, priceRates = zeroRates) => {
53
57
  const isLocked = get(isLimitPriceLockedAtom);
54
58
  if (isLocked) return;
@@ -70,5 +74,5 @@ const toggleLimitPriceReverseAtom = atom(null, (get, set) => {
70
74
  set(isLimitPriceReversedAtom, !isReversed);
71
75
  });
72
76
 
73
- export { resetLimitPriceAtom, setLimitAmountAtomFromProps, setLimitPayAmountAtom, setLimitPriceRatesAtom, setLimitReceiveAmountAtom, toggleLimitPriceLockAtom, toggleLimitPriceReverseAtom, unlockLimitPriceAtom };
77
+ export { resetLimitPriceAtom, setLimitPayAmountAtom, setLimitPayAmountAtomFromProps, setLimitPriceRatesAtom, setLimitReceiveAmountAtom, setLimitReceiveAmountAtomFromProps, toggleLimitPriceLockAtom, toggleLimitPriceReverseAtom, unlockLimitPriceAtom };
74
78
  //# sourceMappingURL=limitInputActionsAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"limitInputActionsAtom.js","sources":["../../../../src/core/limit/state/limitInputActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n limitPayInputAmountAtom,\n limitReceiveInputAmountAtom,\n limitPriceRatesAtom,\n limitPriceAmountAtom,\n} from \"./limitInputAmountAtom\";\nimport { isLimitPriceLockedAtom } from \"./isLimitPriceLockedAtom\";\nimport Big from \"big.js\";\nimport { currentLimitInputAtom } from \"./currentLimitInputAtom\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\nimport {\n calculateReceiveAmount,\n calculatePayAmount,\n calculateRates,\n} from \"./utils\";\n\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\n\nexport const setLimitPriceRatesAtom = atom(\n null,\n (get, set, priceRates: PriceRates, recalculateReceive: boolean = true) => {\n const isLocked = get(isLimitPriceLockedAtom);\n // ignore updates if price is locked\n if (isLocked) return;\n\n set(limitPriceRatesAtom, priceRates);\n\n const payAmount = get(limitPayInputAmountAtom);\n const payGtZero = Big(payAmount || \"0\").gt(0);\n\n // ignore updates if pay amount is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (recalculateReceive && payGtZero) {\n const isReversed = get(isLimitPriceReversedAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n }\n);\n\nexport const setLimitPayAmountAtom = atom(\n null,\n (get, set, payAmount: string) => {\n set(limitPayInputAmountAtom, payAmount);\n\n // ignore updates that did not come from pay input\n if (get(currentLimitInputAtom) !== \"from\") return;\n\n const priceRates = get(limitPriceRatesAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n const limitPriceAmount = get(limitPriceAmountAtom);\n const limitPriceGtZero = Big(limitPriceAmount || \"0\").gt(0);\n // ignore updates if limit price is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (!limitPriceGtZero) return;\n\n // update receive amount\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const setLimitAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentLimitInputAtom, \"from\"); // unblock pay -> receive sync if it was previously blocked\n set(setLimitPayAmountAtom, amount);\n }\n);\n\nexport const setLimitReceiveAmountAtom = atom(\n null,\n (get, set, receiveAmount: string) => {\n set(limitReceiveInputAmountAtom, receiveAmount);\n\n // ignore updates that did not come from receive input\n if (get(currentLimitInputAtom) !== \"to\") return;\n\n const isLocked = get(isLimitPriceLockedAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n if (isLocked) {\n // update pay amount if price is locked\n const priceRates = get(limitPriceRatesAtom);\n const newPayAmount = calculatePayAmount(\n receiveAmount,\n priceRates,\n isReversed\n );\n set(setLimitPayAmountAtom, newPayAmount);\n } else {\n // update limit price otherwise\n const payAmount = get(limitPayInputAmountAtom);\n const updatedRates = calculateRates(receiveAmount, payAmount);\n set(setLimitPriceRatesAtom, updatedRates, false);\n }\n }\n);\n\nexport const resetLimitPriceAtom = atom(\n null,\n (get, set, priceRates: PriceRates = zeroRates) => {\n const isLocked = get(isLimitPriceLockedAtom);\n if (isLocked) return;\n\n set(setLimitPriceRatesAtom, priceRates);\n\n const isReversed = get(isLimitPriceReversedAtom);\n const payAmount = get(limitPayInputAmountAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const unlockLimitPriceAtom = atom(null, (_, set) => {\n set(isLimitPriceLockedAtom, false);\n});\n\nexport const toggleLimitPriceLockAtom = atom(null, (get, set) => {\n const isLocked = get(isLimitPriceLockedAtom);\n set(isLimitPriceLockedAtom, !isLocked);\n});\n\nexport const toggleLimitPriceReverseAtom = atom(null, (get, set) => {\n const isReversed = get(isLimitPriceReversedAtom);\n set(isLimitPriceReversedAtom, !isReversed);\n});\n"],"names":["setLimitPriceRatesAtom","atom","get","set","priceRates","recalculateReceive","isLocked","isLimitPriceLockedAtom","limitPriceRatesAtom","payAmount","limitPayInputAmountAtom","payGtZero","Big","gt","isReversed","isLimitPriceReversedAtom","newReceiveAmount","calculateReceiveAmount","setLimitReceiveAmountAtom","setLimitPayAmountAtom","currentLimitInputAtom","limitPriceAmount","limitPriceAmountAtom","limitPriceGtZero","setLimitAmountAtomFromProps","_","amount","receiveAmount","limitReceiveInputAmountAtom","newPayAmount","calculatePayAmount","updatedRates","calculateRates","resetLimitPriceAtom","zeroRates","unlockLimitPriceAtom","toggleLimitPriceLockAtom","toggleLimitPriceReverseAtom"],"mappings":"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"}
1
+ {"version":3,"file":"limitInputActionsAtom.js","sources":["../../../../src/core/limit/state/limitInputActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n limitPayInputAmountAtom,\n limitReceiveInputAmountAtom,\n limitPriceRatesAtom,\n limitPriceAmountAtom,\n} from \"./limitInputAmountAtom\";\nimport { isLimitPriceLockedAtom } from \"./isLimitPriceLockedAtom\";\nimport Big from \"big.js\";\nimport { currentLimitInputAtom } from \"./currentLimitInputAtom\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\nimport {\n calculateReceiveAmount,\n calculatePayAmount,\n calculateRates,\n} from \"./utils\";\n\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\n\nexport const setLimitPriceRatesAtom = atom(\n null,\n (get, set, priceRates: PriceRates, recalculateReceive: boolean = true) => {\n const isLocked = get(isLimitPriceLockedAtom);\n // ignore updates if price is locked\n if (isLocked) return;\n\n set(limitPriceRatesAtom, priceRates);\n\n const payAmount = get(limitPayInputAmountAtom);\n const payGtZero = Big(payAmount || \"0\").gt(0);\n\n // ignore updates if pay amount is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (recalculateReceive && payGtZero) {\n const isReversed = get(isLimitPriceReversedAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n }\n);\n\nexport const setLimitPayAmountAtom = atom(\n null,\n (get, set, payAmount: string) => {\n set(limitPayInputAmountAtom, payAmount);\n\n // ignore updates that did not come from pay input\n if (get(currentLimitInputAtom) !== \"from\") return;\n\n const priceRates = get(limitPriceRatesAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n const limitPriceAmount = get(limitPriceAmountAtom);\n const limitPriceGtZero = Big(limitPriceAmount || \"0\").gt(0);\n // ignore updates if limit price is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (!limitPriceGtZero) return;\n\n // update receive amount\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const setLimitPayAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentLimitInputAtom, \"from\"); // unblock pay -> receive sync if it was previously blocked\n set(setLimitPayAmountAtom, amount);\n }\n);\n\nexport const setLimitReceiveAmountAtom = atom(\n null,\n (get, set, receiveAmount: string) => {\n set(limitReceiveInputAmountAtom, receiveAmount);\n\n // ignore updates that did not come from receive input\n if (get(currentLimitInputAtom) !== \"to\") return;\n\n const isLocked = get(isLimitPriceLockedAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n if (isLocked) {\n // update pay amount if price is locked\n const priceRates = get(limitPriceRatesAtom);\n const newPayAmount = calculatePayAmount(\n receiveAmount,\n priceRates,\n isReversed\n );\n set(setLimitPayAmountAtom, newPayAmount);\n } else {\n // update limit price otherwise\n const payAmount = get(limitPayInputAmountAtom);\n const updatedRates = calculateRates(receiveAmount, payAmount);\n set(setLimitPriceRatesAtom, updatedRates, false);\n }\n }\n);\n\nexport const setLimitReceiveAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentLimitInputAtom, \"to\"); // unblock receive -> pay sync if it was previously blocked\n set(setLimitReceiveAmountAtom, amount);\n }\n);\n\nexport const resetLimitPriceAtom = atom(\n null,\n (get, set, priceRates: PriceRates = zeroRates) => {\n const isLocked = get(isLimitPriceLockedAtom);\n if (isLocked) return;\n\n set(setLimitPriceRatesAtom, priceRates);\n\n const isReversed = get(isLimitPriceReversedAtom);\n const payAmount = get(limitPayInputAmountAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const unlockLimitPriceAtom = atom(null, (_, set) => {\n set(isLimitPriceLockedAtom, false);\n});\n\nexport const toggleLimitPriceLockAtom = atom(null, (get, set) => {\n const isLocked = get(isLimitPriceLockedAtom);\n set(isLimitPriceLockedAtom, !isLocked);\n});\n\nexport const toggleLimitPriceReverseAtom = atom(null, (get, set) => {\n const isReversed = get(isLimitPriceReversedAtom);\n set(isLimitPriceReversedAtom, !isReversed);\n});\n"],"names":["setLimitPriceRatesAtom","atom","get","set","priceRates","recalculateReceive","isLocked","isLimitPriceLockedAtom","limitPriceRatesAtom","payAmount","limitPayInputAmountAtom","payGtZero","Big","gt","isReversed","isLimitPriceReversedAtom","newReceiveAmount","calculateReceiveAmount","setLimitReceiveAmountAtom","setLimitPayAmountAtom","currentLimitInputAtom","limitPriceAmount","limitPriceAmountAtom","limitPriceGtZero","setLimitPayAmountAtomFromProps","_","amount","receiveAmount","limitReceiveInputAmountAtom","newPayAmount","calculatePayAmount","updatedRates","calculateRates","setLimitReceiveAmountAtomFromProps","resetLimitPriceAtom","zeroRates","unlockLimitPriceAtom","toggleLimitPriceLockAtom","toggleLimitPriceReverseAtom"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"limitInputAmountAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,mBAAmB;;CAA8B,CAAC;AAE/D,eAAO,MAAM,oBAAoB,8BAI/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAAY,CAAC;AAEjD,eAAO,MAAM,2BAA2B;;CAAY,CAAC;AAErD,eAAO,MAAM,0BAA0B,8BAKrC,CAAC;AAEH,eAAO,MAAM,8BAA8B,0CAOzC,CAAC"}
1
+ {"version":3,"file":"limitInputAmountAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,mBAAmB;;CAA8B,CAAC;AAE/D,eAAO,MAAM,oBAAoB,8BAI/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAAc,CAAC;AAEnD,eAAO,MAAM,2BAA2B;;CAAY,CAAC;AAErD,eAAO,MAAM,0BAA0B,8BAKrC,CAAC;AAEH,eAAO,MAAM,8BAA8B,0CAOzC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { limitTokenFromAtom, limitTokenToAtom } from './selectedTokenAtom.js';
1
+ import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
2
2
  import { atom } from 'jotai';
3
3
  import { parseUnits } from 'viem';
4
4
  import { zeroRates } from './constants.js';
@@ -10,7 +10,7 @@ const limitPriceAmountAtom = atom((get) => {
10
10
  const priceRates = get(limitPriceRatesAtom);
11
11
  return isReversed ? priceRates.rateReversed : priceRates.rate;
12
12
  });
13
- const limitPayInputAmountAtom = atom("0");
13
+ const limitPayInputAmountAtom = atom("100");
14
14
  const limitReceiveInputAmountAtom = atom("0");
15
15
  const limitPayInputAmountWeiAtom = atom((get) => {
16
16
  const tokenFrom = get(limitTokenFromAtom);
@@ -1 +1 @@
1
- {"version":3,"file":"limitInputAmountAtom.js","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"sourcesContent":["import { limitTokenFromAtom, limitTokenToAtom } from \"./selectedTokenAtom\";\nimport { atom } from \"jotai\";\nimport { parseUnits } from \"viem\";\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\n\nexport const limitPriceRatesAtom = atom<PriceRates>(zeroRates);\n\nexport const limitPriceAmountAtom = atom((get) => {\n const isReversed = get(isLimitPriceReversedAtom);\n const priceRates = get(limitPriceRatesAtom);\n return isReversed ? priceRates.rateReversed : priceRates.rate;\n});\n\nexport const limitPayInputAmountAtom = atom(\"0\");\n\nexport const limitReceiveInputAmountAtom = atom(\"0\");\n\nexport const limitPayInputAmountWeiAtom = atom((get) => {\n // amountWei derived from limitPayInputAmountAtom\n const tokenFrom = get(limitTokenFromAtom);\n const payInputAmount = get(limitPayInputAmountAtom);\n return parseUnits(payInputAmount, tokenFrom.decimals).toString();\n});\n\nexport const limitReceiveInputAmountWeiAtom = atom((get) => {\n // amountWei derived from limitReceiveInputAmountAtom\n const tokenTo = get(limitTokenToAtom);\n if (tokenTo) {\n const receiveInputAmount = get(limitReceiveInputAmountAtom);\n return parseUnits(receiveInputAmount, tokenTo.decimals).toString();\n }\n});\n"],"names":["limitPriceRatesAtom","atom","zeroRates","limitPriceAmountAtom","get","isReversed","isLimitPriceReversedAtom","priceRates","rateReversed","rate","limitPayInputAmountAtom","limitReceiveInputAmountAtom","limitPayInputAmountWeiAtom","tokenFrom","limitTokenFromAtom","payInputAmount","parseUnits","decimals","toString","limitReceiveInputAmountWeiAtom","tokenTo","limitTokenToAtom","receiveInputAmount"],"mappings":";;;;;;AAOO,MAAMA,mBAAAA,GAAsBC,KAAiBC,SAAS;AAEtD,MAAMC,oBAAAA,GAAuBF,KAAMG,CAAAA,GAAAA,KAAQ;AAChD,EAAA,MAAMC,UAAAA,GAAaD,IAAIE,wBAAwB,CAAA;AAC/C,EAAA,MAAMC,UAAAA,GAAaH,IAAIJ,mBAAmB,CAAA;AAC1C,EAAA,OAAOK,UAAAA,GAAaE,UAAAA,CAAWC,YAAAA,GAAeD,UAAAA,CAAWE,IAAAA;AAC3D,CAAC;AAEM,MAAMC,uBAAAA,GAA0BT,KAAK,GAAG;AAExC,MAAMU,2BAAAA,GAA8BV,KAAK,GAAG;AAE5C,MAAMW,0BAAAA,GAA6BX,KAAMG,CAAAA,GAAAA,KAAQ;AAEtD,EAAA,MAAMS,SAAAA,GAAYT,IAAIU,kBAAkB,CAAA;AACxC,EAAA,MAAMC,cAAAA,GAAiBX,IAAIM,uBAAuB,CAAA;AAClD,EAAA,OAAOM,UAAAA,CAAWD,cAAAA,EAAgBF,SAAAA,CAAUI,QAAQ,EAAEC,QAAAA,EAAS;AACjE,CAAC;AAEM,MAAMC,8BAAAA,GAAiClB,KAAMG,CAAAA,GAAAA,KAAQ;AAE1D,EAAA,MAAMgB,OAAAA,GAAUhB,IAAIiB,gBAAgB,CAAA;AACpC,EAAA,IAAID,OAAAA,EAAS;AACX,IAAA,MAAME,kBAAAA,GAAqBlB,IAAIO,2BAA2B,CAAA;AAC1D,IAAA,OAAOK,UAAAA,CAAWM,kBAAAA,EAAoBF,OAAAA,CAAQH,QAAQ,EAAEC,QAAAA,EAAS;AAAA,EACnE;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"limitInputAmountAtom.js","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"sourcesContent":["import { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\nimport { atom } from \"jotai\";\nimport { parseUnits } from \"viem\";\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\n\nexport const limitPriceRatesAtom = atom<PriceRates>(zeroRates);\n\nexport const limitPriceAmountAtom = atom((get) => {\n const isReversed = get(isLimitPriceReversedAtom);\n const priceRates = get(limitPriceRatesAtom);\n return isReversed ? priceRates.rateReversed : priceRates.rate;\n});\n\nexport const limitPayInputAmountAtom = atom(\"100\");\n\nexport const limitReceiveInputAmountAtom = atom(\"0\");\n\nexport const limitPayInputAmountWeiAtom = atom((get) => {\n // amountWei derived from limitPayInputAmountAtom\n const tokenFrom = get(limitTokenFromAtom);\n const payInputAmount = get(limitPayInputAmountAtom);\n return parseUnits(payInputAmount, tokenFrom.decimals).toString();\n});\n\nexport const limitReceiveInputAmountWeiAtom = atom((get) => {\n // amountWei derived from limitReceiveInputAmountAtom\n const tokenTo = get(limitTokenToAtom);\n if (tokenTo) {\n const receiveInputAmount = get(limitReceiveInputAmountAtom);\n return parseUnits(receiveInputAmount, tokenTo.decimals).toString();\n }\n});\n"],"names":["limitPriceRatesAtom","atom","zeroRates","limitPriceAmountAtom","get","isReversed","isLimitPriceReversedAtom","priceRates","rateReversed","rate","limitPayInputAmountAtom","limitReceiveInputAmountAtom","limitPayInputAmountWeiAtom","tokenFrom","limitTokenFromAtom","payInputAmount","parseUnits","decimals","toString","limitReceiveInputAmountWeiAtom","tokenTo","limitTokenToAtom","receiveInputAmount"],"mappings":";;;;;;AAOO,MAAMA,mBAAAA,GAAsBC,KAAiBC,SAAS;AAEtD,MAAMC,oBAAAA,GAAuBF,KAAMG,CAAAA,GAAAA,KAAQ;AAChD,EAAA,MAAMC,UAAAA,GAAaD,IAAIE,wBAAwB,CAAA;AAC/C,EAAA,MAAMC,UAAAA,GAAaH,IAAIJ,mBAAmB,CAAA;AAC1C,EAAA,OAAOK,UAAAA,GAAaE,UAAAA,CAAWC,YAAAA,GAAeD,UAAAA,CAAWE,IAAAA;AAC3D,CAAC;AAEM,MAAMC,uBAAAA,GAA0BT,KAAK,KAAK;AAE1C,MAAMU,2BAAAA,GAA8BV,KAAK,GAAG;AAE5C,MAAMW,0BAAAA,GAA6BX,KAAMG,CAAAA,GAAAA,KAAQ;AAEtD,EAAA,MAAMS,SAAAA,GAAYT,IAAIU,kBAAkB,CAAA;AACxC,EAAA,MAAMC,cAAAA,GAAiBX,IAAIM,uBAAuB,CAAA;AAClD,EAAA,OAAOM,UAAAA,CAAWD,cAAAA,EAAgBF,SAAAA,CAAUI,QAAQ,EAAEC,QAAAA,EAAS;AACjE,CAAC;AAEM,MAAMC,8BAAAA,GAAiClB,KAAMG,CAAAA,GAAAA,KAAQ;AAE1D,EAAA,MAAMgB,OAAAA,GAAUhB,IAAIiB,gBAAgB,CAAA;AACpC,EAAA,IAAID,OAAAA,EAAS;AACX,IAAA,MAAME,kBAAAA,GAAqBlB,IAAIO,2BAA2B,CAAA;AAC1D,IAAA,OAAOK,UAAAA,CAAWM,kBAAAA,EAAoBF,OAAAA,CAAQH,QAAQ,EAAEC,QAAAA,EAAS;AAAA,EACnE;AACF,CAAC;;;;"}
@@ -0,0 +1,10 @@
1
+ import { Token } from '../../../tokens/state/types';
2
+ export declare const limitTokenFromAtom: import('jotai').PrimitiveAtom<Token> & {
3
+ init: Token;
4
+ };
5
+ export declare const limitTokenToAtom: import('jotai').PrimitiveAtom<Token | undefined> & {
6
+ init: Token | undefined;
7
+ };
8
+ export declare const useLimitTokenFrom: () => Token;
9
+ export declare const useLimitTokenTo: () => Token | undefined;
10
+ //# sourceMappingURL=limitTokenAtoms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limitTokenAtoms.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitTokenAtoms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,eAAO,MAAM,kBAAkB;;CAAyB,CAAC;AACzD,eAAO,MAAM,gBAAgB;;CAAgB,CAAC;AAE9C,eAAO,MAAM,iBAAiB,aAAyC,CAAC;AACxE,eAAO,MAAM,eAAe,yBAAuC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
2
+ import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
3
+ import { atom } from 'jotai';
4
+ import { useAtomValue } from '../../store.js';
5
+
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
+
16
+ export { limitTokenFromAtom, limitTokenToAtom, useLimitTokenFrom, useLimitTokenTo };
17
+ //# sourceMappingURL=limitTokenAtoms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limitTokenAtoms.js","sources":["../../../../src/core/limit/state/limitTokenAtoms.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\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"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo"],"mappings":";;;;;AAMA,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;;;;"}
@@ -0,0 +1,7 @@
1
+ import { UseReceiverAddressReturn } from '../../../components/widget/ReceiverAddress/state/types';
2
+ export declare const limitReceiverAddressAtom: import('jotai').PrimitiveAtom<`0x${string}` | undefined> & {
3
+ init: `0x${string}` | undefined;
4
+ };
5
+ export declare const useLimitReceiverAddress: () => UseReceiverAddressReturn;
6
+ export declare const useLimitReceiverAddressValue: () => `0x${string}` | undefined;
7
+ //# sourceMappingURL=receiverAddressAtom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiverAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/receiverAddressAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAMhG,eAAO,MAAM,wBAAwB;;CAA8B,CAAC;AAEpE,eAAO,MAAM,uBAAuB,QAAO,wBAK1C,CAAC;AAEF,eAAO,MAAM,4BAA4B,iCAExC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { d as distExports } from '../../../_virtual/index.js';
2
+ import { shortenAddress } from '../../../lib/utils/index.js';
3
+ import { atom } from 'jotai';
4
+ import { useAtomValue, useAtom } from '../../store.js';
5
+
6
+ const limitReceiverAddressAtom = atom();
7
+ const useLimitReceiverAddress = () => {
8
+ const $ = distExports.c(6);
9
+ const [address, setAddress] = useAtom(limitReceiverAddressAtom);
10
+ let t0;
11
+ if ($[0] !== address) {
12
+ t0 = address ? shortenAddress(address) : void 0;
13
+ $[0] = address;
14
+ $[1] = t0;
15
+ } else {
16
+ t0 = $[1];
17
+ }
18
+ const shortAddress = t0;
19
+ let t1;
20
+ if ($[2] !== address || $[3] !== setAddress || $[4] !== shortAddress) {
21
+ t1 = {
22
+ address,
23
+ setAddress,
24
+ shortAddress
25
+ };
26
+ $[2] = address;
27
+ $[3] = setAddress;
28
+ $[4] = shortAddress;
29
+ $[5] = t1;
30
+ } else {
31
+ t1 = $[5];
32
+ }
33
+ return t1;
34
+ };
35
+ const useLimitReceiverAddressValue = () => {
36
+ return useAtomValue(limitReceiverAddressAtom);
37
+ };
38
+
39
+ export { limitReceiverAddressAtom, useLimitReceiverAddress, useLimitReceiverAddressValue };
40
+ //# sourceMappingURL=receiverAddressAtom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiverAddressAtom.js","sources":["../../../../src/core/limit/state/receiverAddressAtom.ts"],"sourcesContent":["import type { UseReceiverAddressReturn } from \"@/components/widget/ReceiverAddress/state/types\";\nimport { shortenAddress } from \"@/lib/utils\";\nimport { atom } from \"jotai\";\nimport { useAtom, useAtomValue } from \"@/core/store\";\nimport type { Address } from \"viem\";\n\nexport const limitReceiverAddressAtom = atom<Address | undefined>();\n\nexport const useLimitReceiverAddress = (): UseReceiverAddressReturn => {\n const [address, setAddress] = useAtom(limitReceiverAddressAtom);\n const shortAddress = address ? shortenAddress(address) : undefined;\n\n return { address, setAddress, shortAddress };\n};\n\nexport const useLimitReceiverAddressValue = () => {\n return useAtomValue(limitReceiverAddressAtom);\n};\n"],"names":["limitReceiverAddressAtom","atom","useLimitReceiverAddress","$","_c","address","setAddress","useAtom","t0","shortenAddress","undefined","shortAddress","t1","useLimitReceiverAddressValue","useAtomValue"],"mappings":";;;;;AAMO,MAAMA,2BAA2BC,IAAAA;AAEjC,MAAMC,0BAA0BA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACrC,EAAA,MAAA,CAAAC,OAAAA,EAAAC,UAAA,CAAA,GAA8BC,QAAQP,wBAAwB,CAAA;AAAE,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAE,OAAAA,EAAA;AAC3CG,IAAAA,EAAAA,GAAAH,OAAAA,GAAUI,cAAAA,CAAeJ,OAAmB,CAAA,GAA5CK,MAAAA;AAA6CP,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlE,EAAA,MAAAQ,YAAAA,GAAqBH,EAAAA;AAA8C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,OAAAA,IAAAF,CAAAA,QAAAG,UAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAQ,YAAAA,EAAA;AAE5DC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,OAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAK;AAAAA,KAAoC;AAACR,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAG,UAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAArCS,EAAAA;AAAqC;AAGvC,MAAMC,+BAA+BA,MAAA;AAAA,EAAA,OACnCC,aAAad,wBAAwB,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,eAAO,MAAM,qBAAqB;;CAahC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA6CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CA2ClC,CAAC"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAYlD,eAAO,MAAM,qBAAqB;;CAwBhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA2EpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CAuGlC,CAAC"}
@@ -2,17 +2,29 @@ import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
2
2
  import { areTokensSame } from '../../../tokens/utils/areTokensSame.js';
3
3
  import { atom } from 'jotai';
4
4
  import { unlockLimitPriceAtom } from './limitInputActionsAtom.js';
5
- import { limitTokenFromAtom, limitTokenToAtom } from './selectedTokenAtom.js';
5
+ import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
6
6
  import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
7
7
  import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
8
+ import { isCrosschainPossible } from '../../across/isCrosshcainPossible.js';
9
+ import { isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
10
+ import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
11
+ import { getSelectableDestChains } from '../../state/getSelectableDestChains.js';
12
+ import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
8
13
 
9
14
  const switchLimitTokensAtom = atom(null, async (get, set) => {
10
15
  const tokenTo = get(limitTokenToAtom);
11
16
  if (!tokenTo) return;
12
17
  const tokenFrom = get(limitTokenFromAtom);
18
+ const initChainFrom = tokenFrom.network;
13
19
  set(limitTokenFromAtom, tokenTo);
14
- set(limitTokenToAtom, tokenFrom);
20
+ set(selectLimitTokenToAtom, tokenFrom);
15
21
  set(unlockLimitPriceAtom);
22
+ const currentTokenFrom = get(limitTokenFromAtom);
23
+ if (currentTokenFrom.network !== initChainFrom) {
24
+ switchChain({
25
+ chainId: tokenTo.network
26
+ });
27
+ }
16
28
  });
17
29
  const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
18
30
  let tokenFrom = get(limitTokenFromAtom);
@@ -20,16 +32,6 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
20
32
  const initTokenFrom = tokenFrom;
21
33
  set(limitTokenFromAtom, newTokenFrom);
22
34
  tokenFrom = newTokenFrom;
23
- if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {
24
- set(limitTokenToAtom, initTokenFrom);
25
- tokenTo = initTokenFrom;
26
- }
27
- if (tokenTo && tokenTo.network !== tokenFrom.network) {
28
- const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenFrom.network, "limit");
29
- const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
30
- set(limitTokenToAtom, newTokenTo);
31
- tokenTo = newTokenTo;
32
- }
33
35
  if (!areTokensSame(tokenFrom, initTokenFrom)) {
34
36
  set(unlockLimitPriceAtom);
35
37
  }
@@ -38,27 +40,101 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
38
40
  chainId: tokenFrom.network
39
41
  });
40
42
  }
43
+ if (!tokenTo) return;
44
+ const crosschainPossible = isCrosschainPossible({
45
+ get,
46
+ chainIdFrom: tokenFrom.network,
47
+ chainIdTo: tokenTo.network,
48
+ mode: "limit"
49
+ });
50
+ if (crosschainPossible) {
51
+ const isTokenToFromAcross = isTokenFromAcross({
52
+ token: tokenTo,
53
+ fromChainId: tokenFrom.network,
54
+ toChainId: tokenTo.network,
55
+ mode: "limit"
56
+ });
57
+ if (!isTokenToFromAcross) {
58
+ const maybeAcrossToken = findFirstTokenFromAcross({
59
+ fromChainId: tokenFrom.network,
60
+ toChainId: tokenTo.network,
61
+ listByChainId: get(allTokensByChainAtom).listByChainId,
62
+ mode: "limit"
63
+ });
64
+ set(limitTokenToAtom, maybeAcrossToken);
65
+ }
66
+ } else {
67
+ if (tokenFrom.network !== tokenTo.network) {
68
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenFrom.network, "limit");
69
+ tokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
70
+ set(limitTokenToAtom, tokenTo);
71
+ } else {
72
+ if (areTokensSame(tokenFrom, tokenTo)) {
73
+ set(limitTokenToAtom, initTokenFrom);
74
+ tokenTo = initTokenFrom;
75
+ }
76
+ }
77
+ }
41
78
  });
42
79
  const selectLimitTokenToAtom = atom(null, async (get, set, newTokenTo) => {
43
80
  let tokenFrom = get(limitTokenFromAtom);
81
+ const selectableDestChains = getSelectableDestChains(get, {
82
+ fromChainId: tokenFrom.network,
83
+ mode: "limit"
84
+ });
85
+ if (!selectableDestChains.includes(newTokenTo.network)) return;
44
86
  let tokenTo = get(limitTokenToAtom);
45
87
  const initTokenTo = tokenTo;
46
88
  set(limitTokenToAtom, newTokenTo);
47
89
  tokenTo = newTokenTo;
48
- if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {
49
- set(limitTokenFromAtom, initTokenTo);
50
- tokenFrom = initTokenTo;
90
+ if (areTokensSame(tokenTo, tokenFrom)) {
91
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "limit");
92
+ const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
93
+ const wasCrosschain = initTokenTo && tokenFrom.network !== initTokenTo.network;
94
+ const newTokenFrom = wasCrosschain ? (
95
+ // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.
96
+ // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.
97
+ // Maybe user wants to trade singlechain but we are forcing crosschain.
98
+ defaultToken
99
+ ) : (
100
+ // Otherwise, we can flip the tokens, or pick from defaults
101
+ initTokenTo ?? defaultToken
102
+ );
103
+ set(limitTokenFromAtom, newTokenFrom);
104
+ tokenFrom = newTokenFrom;
51
105
  }
52
- if (tokenTo.network !== tokenFrom.network) {
106
+ let needResetTokenFrom = false;
107
+ const crosschainPossible = isCrosschainPossible({
108
+ get,
109
+ chainIdFrom: tokenFrom.network,
110
+ chainIdTo: tokenTo.network,
111
+ mode: "limit"
112
+ });
113
+ if (crosschainPossible) {
114
+ const isTokenToFromAcross = isTokenFromAcross({
115
+ token: tokenTo,
116
+ fromChainId: tokenFrom.network,
117
+ toChainId: tokenTo.network,
118
+ mode: "limit"
119
+ });
120
+ if (!isTokenToFromAcross) {
121
+ needResetTokenFrom = true;
122
+ }
123
+ }
124
+ if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {
125
+ needResetTokenFrom = true;
126
+ }
127
+ const enabledSrcChains = get(enabledSrcChainsAtom);
128
+ if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {
53
129
  const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "limit");
54
- const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
130
+ const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
55
131
  set(limitTokenFromAtom, newTokenFrom);
56
132
  tokenFrom = newTokenFrom;
57
133
  }
58
134
  if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {
59
135
  set(unlockLimitPriceAtom);
60
136
  }
61
- if (tokenTo.network !== wagmiConfig.state.chainId) {
137
+ if (tokenFrom.network !== wagmiConfig.state.chainId) {
62
138
  switchChain({
63
139
  chainId: tokenTo.network
64
140
  });
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n\n // set tokenFrom\n set(limitTokenFromAtom, tokenTo);\n\n set(limitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenToAtom, initTokenFrom);\n // set tokenTo to previous tokenFrom\n tokenTo = initTokenFrom;\n }\n\n if (tokenTo && tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n // @TODO change when implementing Crosschain Delta Limit Orders,\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n // so set tokenTo to one of the default tokens for tokenFrom.network chain\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n }\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenFromAtom, initTokenTo);\n // set tokenFrom to previous tokenTo\n tokenFrom = initTokenTo;\n }\n\n if (tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // so set tokenFrom to one of the default tokens for tokenTo.network chain\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenTo.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","unlockLimitPriceAtom","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","wagmiConfig","state","chainId","switchChain","selectLimitTokenToAtom","initTokenTo"],"mappings":"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"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { isCrosschainPossible } from \"@/core/across/isCrosshcainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(limitTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectLimitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n\n const currentTokenFrom = get(limitTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\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: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n set(limitTokenToAtom, maybeAcrossToken);\n }\n } else {\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, tokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(tokenFrom, tokenTo)) {\n set(limitTokenToAtom, initTokenFrom);\n tokenTo = initTokenFrom;\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"limit\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n defaultToken\n : // Otherwise, we can flip the tokens, or pick from defaults\n (initTokenTo ?? defaultToken);\n\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","initChainFrom","network","selectLimitTokenToAtom","unlockLimitPriceAtom","currentTokenFrom","switchChain","chainId","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","wagmiConfig","state","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","isTokenFromAcross","token","fromChainId","toChainId","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectableDestChains","getSelectableDestChains","includes","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","enabledSrcChains","enabledSrcChainsAtom"],"mappings":"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"}
@@ -1,12 +1,3 @@
1
1
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
2
- import { Token } from '../../../tokens/state/types';
3
- export declare const limitTokenFromAtom: import('jotai').PrimitiveAtom<Token> & {
4
- init: Token;
5
- };
6
- export declare const limitTokenToAtom: import('jotai').PrimitiveAtom<Token | undefined> & {
7
- init: Token | undefined;
8
- };
9
- export declare const useLimitTokenFrom: () => Token;
10
- export declare const useLimitTokenTo: () => Token | undefined;
11
2
  export declare const syncLimitTokensAfterChainSwitch: (chainId: SupportedChainId) => void;
12
3
  //# sourceMappingURL=selectedTokenAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,eAAO,MAAM,kBAAkB;;CAAyB,CAAC;AACzD,eAAO,MAAM,gBAAgB;;CAAgB,CAAC;AAE9C,eAAO,MAAM,iBAAiB,aAAyC,CAAC;AACxE,eAAO,MAAM,eAAe,yBAAuC,CAAC;AAEpE,eAAO,MAAM,+BAA+B,GAAI,SAAS,gBAAgB,SAsBxE,CAAC"}
1
+ {"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,eAAO,MAAM,+BAA+B,GAAI,SAAS,gBAAgB,SAoExE,CAAC"}
@@ -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"}