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

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 (503) 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/useMaxButtonProps.d.ts +18 -0
  191. package/dist/core/inputs/hooks/useMaxButtonProps.d.ts.map +1 -0
  192. package/dist/core/inputs/hooks/useMaxButtonProps.js +111 -0
  193. package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -0
  194. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  195. package/dist/core/inputs/hooks/useTokenFromInputProps.js +28 -80
  196. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  197. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  198. package/dist/core/inputs/hooks/useTokenToInputProps.js +76 -66
  199. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  200. package/dist/core/inputs/state/common.d.ts +15 -3
  201. package/dist/core/inputs/state/common.d.ts.map +1 -1
  202. package/dist/core/inputs/state/common.js +51 -12
  203. package/dist/core/inputs/state/common.js.map +1 -1
  204. package/dist/core/inputs/state/inputAmountAtom.d.ts.map +1 -1
  205. package/dist/core/inputs/state/inputAmountAtom.js +1 -1
  206. package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
  207. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  208. package/dist/core/inputs/state/selectedTokenActionsAtom.js +33 -44
  209. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  210. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -1
  211. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  212. package/dist/core/inputs/state/setTokenByAddressAtom.js +85 -21
  213. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  214. package/dist/core/inputs/state/types.d.ts +9 -1
  215. package/dist/core/inputs/state/types.d.ts.map +1 -1
  216. package/dist/core/limit/state/deadlineAtom.d.ts +10 -2
  217. package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
  218. package/dist/core/limit/state/deadlineAtom.js +15 -8
  219. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  220. package/dist/core/limit/state/isCrosschainAtom.d.ts +3 -0
  221. package/dist/core/limit/state/isCrosschainAtom.d.ts.map +1 -0
  222. package/dist/core/limit/state/isCrosschainAtom.js +13 -0
  223. package/dist/core/limit/state/isCrosschainAtom.js.map +1 -0
  224. package/dist/core/limit/state/limitInputActionsAtom.d.ts +4 -1
  225. package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -1
  226. package/dist/core/limit/state/limitInputActionsAtom.js +6 -2
  227. package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
  228. package/dist/core/limit/state/limitInputAmountAtom.d.ts.map +1 -1
  229. package/dist/core/limit/state/limitInputAmountAtom.js +2 -2
  230. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  231. package/dist/core/limit/state/limitTokenAtoms.d.ts +10 -0
  232. package/dist/core/limit/state/limitTokenAtoms.d.ts.map +1 -0
  233. package/dist/core/limit/state/limitTokenAtoms.js +17 -0
  234. package/dist/core/limit/state/limitTokenAtoms.js.map +1 -0
  235. package/dist/core/limit/state/receiverAddressAtom.d.ts +7 -0
  236. package/dist/core/limit/state/receiverAddressAtom.d.ts.map +1 -0
  237. package/dist/core/limit/state/receiverAddressAtom.js +40 -0
  238. package/dist/core/limit/state/receiverAddressAtom.js.map +1 -0
  239. package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
  240. package/dist/core/limit/state/selectedTokenActionsAtom.js +94 -18
  241. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  242. package/dist/core/limit/state/selectedTokenAtom.d.ts +0 -9
  243. package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
  244. package/dist/core/limit/state/selectedTokenAtom.js +53 -21
  245. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  246. package/dist/core/limit/state/utils.d.ts +9 -1
  247. package/dist/core/limit/state/utils.d.ts.map +1 -1
  248. package/dist/core/limit/state/utils.js +44 -2
  249. package/dist/core/limit/state/utils.js.map +1 -1
  250. package/dist/core/limit/useLimitRate.d.ts +9 -0
  251. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  252. package/dist/core/limit/useLimitRate.js +145 -8
  253. package/dist/core/limit/useLimitRate.js.map +1 -1
  254. package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
  255. package/dist/core/limit/useLimitTokenFromInputProps.js +21 -64
  256. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  257. package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
  258. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  259. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  260. package/dist/core/limit/useLimitTokenToInputProps.js +132 -72
  261. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  262. package/dist/core/otc/state/deadlineAtom.d.ts +8 -3
  263. package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
  264. package/dist/core/otc/state/deadlineAtom.js +16 -10
  265. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  266. package/dist/core/otc/state/otcInputActionsAtom.d.ts +4 -1
  267. package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -1
  268. package/dist/core/otc/state/otcInputActionsAtom.js +6 -2
  269. package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
  270. package/dist/core/otc/state/otcInputAmountAtom.d.ts.map +1 -1
  271. package/dist/core/otc/state/otcInputAmountAtom.js +1 -1
  272. package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
  273. package/dist/core/otc/state/receiverAddressAtom.js +1 -1
  274. package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
  275. package/dist/core/otc/useOtcTokenFromInputProps.js +21 -64
  276. package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
  277. package/dist/core/screen/hooks/useOnClickOutside.d.ts +2 -0
  278. package/dist/core/screen/hooks/useOnClickOutside.d.ts.map +1 -0
  279. package/dist/core/screen/hooks/useOnClickOutside.js +30 -0
  280. package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -0
  281. package/dist/core/screen/screenByType.d.ts +7 -0
  282. package/dist/core/screen/screenByType.d.ts.map +1 -0
  283. package/dist/core/screen/screenByType.js +13 -0
  284. package/dist/core/screen/screenByType.js.map +1 -0
  285. package/dist/core/screen/state/screenAtom.d.ts +20 -0
  286. package/dist/core/screen/state/screenAtom.d.ts.map +1 -0
  287. package/dist/core/screen/state/screenAtom.js +110 -0
  288. package/dist/core/screen/state/screenAtom.js.map +1 -0
  289. package/dist/core/state/chainToAtom.d.ts +2 -0
  290. package/dist/core/state/chainToAtom.d.ts.map +1 -1
  291. package/dist/core/state/chainToAtom.js +37 -7
  292. package/dist/core/state/chainToAtom.js.map +1 -1
  293. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  294. package/dist/core/state/configActionsAtom.js +3 -1
  295. package/dist/core/state/configActionsAtom.js.map +1 -1
  296. package/dist/core/state/configAtom.d.ts +4 -2
  297. package/dist/core/state/configAtom.d.ts.map +1 -1
  298. package/dist/core/state/configAtom.js +7 -3
  299. package/dist/core/state/configAtom.js.map +1 -1
  300. package/dist/core/state/configEffectAtom.d.ts +0 -3
  301. package/dist/core/state/configEffectAtom.d.ts.map +1 -1
  302. package/dist/core/state/configEffectAtom.js +49 -37
  303. package/dist/core/state/configEffectAtom.js.map +1 -1
  304. package/dist/core/state/enabledChainsAtom.d.ts +3 -0
  305. package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
  306. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  307. package/dist/core/state/getSelectableDestChains.d.ts +8 -0
  308. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -0
  309. package/dist/core/state/getSelectableDestChains.js +34 -0
  310. package/dist/core/state/getSelectableDestChains.js.map +1 -0
  311. package/dist/core/types.d.ts +6 -0
  312. package/dist/core/types.d.ts.map +1 -1
  313. package/dist/events/getters/limit.d.ts.map +1 -1
  314. package/dist/events/getters/limit.js +5 -2
  315. package/dist/events/getters/limit.js.map +1 -1
  316. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
  317. package/dist/events/hooks/useOnPriceUpdates.js +37 -25
  318. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  319. package/dist/events/types/formInput.d.ts +1 -1
  320. package/dist/events/types/formInput.d.ts.map +1 -1
  321. package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -1
  322. package/dist/hooks/batch/useCanBatchTxs.js +33 -29
  323. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  324. package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
  325. package/dist/hooks/gas/useGasPrices.js +15 -14
  326. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  327. package/dist/hooks/otc/mutations/useFillOrder.js +6 -1
  328. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  329. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts +1 -1
  330. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  331. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -1
  332. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  333. package/dist/hooks/permit/utils/encodeArgs.js +1 -1
  334. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts +2 -0
  335. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts.map +1 -0
  336. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +24 -0
  337. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -0
  338. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +6 -0
  339. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -0
  340. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -0
  341. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -0
  342. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +4 -0
  343. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -0
  344. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js +12 -0
  345. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -0
  346. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +19 -0
  347. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -0
  348. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +4 -0
  349. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -0
  350. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +81 -0
  351. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -0
  352. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +3 -0
  353. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  354. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +2 -1
  355. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  356. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +1 -1
  357. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  358. package/dist/hooks/swap/prices/usePricesParams.js +8 -12
  359. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  360. package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -1
  361. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  362. package/dist/hooks/swap/prices/useSwapPrices.js +63 -43
  363. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  364. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  365. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  366. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -0
  367. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  368. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +54 -21
  369. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  370. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
  371. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  372. package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
  373. package/dist/hooks/tokens/prices/queries.js +2 -2
  374. package/dist/hooks/tokens/prices/queries.js.map +1 -1
  375. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +3 -1
  376. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  377. package/dist/hooks/tokens/useAllTokensWithFilter.js +25 -22
  378. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  379. package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
  380. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  381. package/dist/hooks/tokens/useTokensFromAcross.d.ts +3 -1
  382. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  383. package/dist/hooks/tokens/useTokensFromAcross.js +36 -25
  384. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  385. package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
  386. package/dist/hooks/txs/queries/useTxHistory.js +2 -2
  387. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  388. package/dist/hooks/useAvailableCrosses.d.ts +7 -2
  389. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  390. package/dist/hooks/useAvailableCrosses.js +39 -25
  391. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  392. package/dist/hooks/useBridgeInfo.d.ts +4 -1
  393. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  394. package/dist/hooks/useBridgeInfo.js +26 -11
  395. package/dist/hooks/useBridgeInfo.js.map +1 -1
  396. package/dist/hooks/useClickOutside.d.ts +4 -0
  397. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  398. package/dist/hooks/useClickOutside.js +49 -0
  399. package/dist/hooks/useClickOutside.js.map +1 -0
  400. package/dist/hooks/useIsCrosschainPossible.d.ts +3 -1
  401. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
  402. package/dist/hooks/useIsCrosschainPossible.js +33 -22
  403. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  404. package/dist/hooks/useSDK.d.ts.map +1 -1
  405. package/dist/hooks/useSDK.js +11 -11
  406. package/dist/hooks/useSDK.js.map +1 -1
  407. package/dist/hooks/useSelectableDestChains.d.ts +5 -1
  408. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
  409. package/dist/hooks/useSelectableDestChains.js +42 -36
  410. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  411. package/dist/lib/constants/index.d.ts +1 -2
  412. package/dist/lib/constants/index.d.ts.map +1 -1
  413. package/dist/lib/constants/index.js +2 -4
  414. package/dist/lib/constants/index.js.map +1 -1
  415. package/dist/lib/constants/urls.d.ts +4 -0
  416. package/dist/lib/constants/urls.d.ts.map +1 -0
  417. package/dist/lib/constants/urls.js +30 -0
  418. package/dist/lib/constants/urls.js.map +1 -0
  419. package/dist/lib/utils/explorer.d.ts.map +1 -1
  420. package/dist/lib/utils/explorer.js +3 -3
  421. package/dist/lib/utils/explorer.js.map +1 -1
  422. package/dist/lib/utils/price.js +1 -1
  423. package/dist/styles.css +22 -22
  424. package/dist/tokens/utils/sorting.d.ts.map +1 -1
  425. package/dist/tokens/utils/sorting.js +3 -0
  426. package/dist/tokens/utils/sorting.js.map +1 -1
  427. package/dist/transactions/state/hooks/useTransactions.js +1 -1
  428. package/package.json +4 -4
  429. package/dist/components/ui/dialog.js +0 -261
  430. package/dist/components/ui/dialog.js.map +0 -1
  431. package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts +0 -2
  432. package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts.map +0 -1
  433. package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js +0 -24
  434. package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js.map +0 -1
  435. package/dist/components/widget/Dialog/DialogRoot.js +0 -47
  436. package/dist/components/widget/Dialog/DialogRoot.js.map +0 -1
  437. package/dist/components/widget/Dialog/dialogByType.js +0 -10
  438. package/dist/components/widget/Dialog/dialogByType.js.map +0 -1
  439. package/dist/components/widget/Dialog/state/dialogAtom.js +0 -86
  440. package/dist/components/widget/Dialog/state/dialogAtom.js.map +0 -1
  441. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.d.ts.map +0 -1
  442. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +0 -1
  443. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.d.ts.map +0 -1
  444. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +0 -1
  445. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.d.ts.map +0 -1
  446. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.js.map +0 -1
  447. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +0 -1
  448. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +0 -1
  449. package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts +0 -7
  450. package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts.map +0 -1
  451. package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts +0 -7
  452. package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts.map +0 -1
  453. package/dist/components/widget/LimitOrdersDrawer/constants.d.ts.map +0 -1
  454. package/dist/components/widget/LimitOrdersDrawer/constants.js.map +0 -1
  455. package/dist/components/widget/LimitOrdersDrawer/types.d.ts.map +0 -1
  456. package/dist/components/widget/LimitOrdersDrawer/utils.d.ts.map +0 -1
  457. package/dist/components/widget/LimitOrdersDrawer/utils.js.map +0 -1
  458. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.d.ts.map +0 -1
  459. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +0 -1
  460. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +0 -1
  461. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +0 -1
  462. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.d.ts.map +0 -1
  463. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.js.map +0 -1
  464. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.d.ts.map +0 -1
  465. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +0 -1
  466. package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts +0 -7
  467. package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts.map +0 -1
  468. package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts +0 -12
  469. package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts.map +0 -1
  470. package/dist/components/widget/OtcOrdersDrawer/constants.d.ts.map +0 -1
  471. package/dist/components/widget/OtcOrdersDrawer/constants.js.map +0 -1
  472. package/dist/components/widget/OtcOrdersDrawer/types.d.ts.map +0 -1
  473. package/dist/components/widget/OtcOrdersDrawer/utils.d.ts.map +0 -1
  474. package/dist/components/widget/OtcOrdersDrawer/utils.js.map +0 -1
  475. package/dist/core/TradeFlowButton.d.ts +0 -27
  476. package/dist/core/TradeFlowButton.d.ts.map +0 -1
  477. package/dist/core/TradeFlowButton.js +0 -963
  478. package/dist/core/TradeFlowButton.js.map +0 -1
  479. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +0 -15
  480. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +0 -1
  481. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -92
  482. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +0 -1
  483. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/Controls.d.ts +0 -0
  484. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/Controls.js +0 -0
  485. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/LimitOrderDetails.d.ts +0 -0
  486. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/LimitOrderDetails.js +0 -0
  487. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/utils.d.ts +0 -0
  488. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/utils.js +0 -0
  489. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderListItem.d.ts +0 -0
  490. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/constants.d.ts +0 -0
  491. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/constants.js +0 -0
  492. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/types.d.ts +0 -0
  493. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/utils.d.ts +0 -0
  494. /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/utils.js +0 -0
  495. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/Controls.d.ts +0 -0
  496. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/Controls.js +0 -0
  497. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/OtcOrderDetails.d.ts +0 -0
  498. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/utils.d.ts +0 -0
  499. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/utils.js +0 -0
  500. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderListItem.d.ts +0 -0
  501. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/constants.d.ts +0 -0
  502. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/constants.js +0 -0
  503. /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/utils.js +0 -0
@@ -12,14 +12,17 @@ import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
12
12
  import { areTokensSame } from '../../../tokens/utils/areTokensSame.js';
13
13
  import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
14
14
  import { tradeModeAtom, userTradeModeAtom } from '../../state/tradeModeAtom.js';
15
- import { tradeModeToTokenAtoms, tradeModeToSetTokenAtoms, tradeModeToPayAmountUnitAtom } from './common.js';
15
+ import { tradeModeToTokenAtoms, tradeModeToSetTokenAtoms, sideToInputType, tradeModeToPayAmountUnitAtom, tradeModeToReceiveAmountUnitAtom, tradeModeToTimeUnitAtom } from './common.js';
16
16
  import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
17
17
  import { autoAddImportedTokenAtom } from '../../../tokens/state/addImportedTokenAtom.js';
18
18
  import { getLogger } from '../../logger.js';
19
19
  import { assert } from 'ts-essentials';
20
- import { bridgeInfoAtom } from '../../../hooks/swap/prices/delta/queries/useBridgeInfo.js';
20
+ import { bridgeInfosLoadedAtom } from '../../../hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js';
21
21
  import { isTradeMode } from '../../../lib/tradeMode.js';
22
22
  import { enabledTradeModesAtom } from '../../state/enabledTradeModesAtom.js';
23
+ import { swapSideAtom } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
24
+ import { currentSwapInputAtom } from '../../state/currentSwapInputAtom.js';
25
+ import { getClosestTimeUnit } from '../../limit/state/utils.js';
23
26
 
24
27
  const formInputPropsAtom = atom({});
25
28
  const logger = getLogger("FormInputProps");
@@ -59,14 +62,18 @@ function findTokenInAtoms({
59
62
  chainId
60
63
  });
61
64
  }
65
+ function isValidSide(side) {
66
+ return side === "BUY" || side === "SELL";
67
+ }
62
68
  const formInputPropsEffectAtom = atomEffect((get, set) => {
63
- get(bridgeInfoAtom);
69
+ get(bridgeInfosLoadedAtom);
64
70
  const enabledTradeModes = get(enabledTradeModesAtom);
65
71
  const formInputProps = get(formInputPropsAtom);
66
72
  const {
67
73
  tokenFromAddress,
68
74
  srcChainId,
69
- sendAmount
75
+ sendAmount,
76
+ receiveAmount
70
77
  } = formInputProps;
71
78
  logger.log("using external props to set Widget form input", formInputProps);
72
79
  let destChainId = formInputProps.destChainId;
@@ -89,7 +96,7 @@ const formInputPropsEffectAtom = atomEffect((get, set) => {
89
96
  let newTokenFrom;
90
97
  let newTokenTo;
91
98
  const defaultChainId = currentTokenFrom.network;
92
- if (selectedForm !== "swap") {
99
+ if (selectedForm !== "swap" && selectedForm !== "limit") {
93
100
  destChainId = srcChainId;
94
101
  }
95
102
  if (selectedForm === "otc" && tokenToAddress && isETHaddress(tokenToAddress)) {
@@ -149,13 +156,61 @@ const formInputPropsEffectAtom = atomEffect((get, set) => {
149
156
  const selectTokenToAtom = tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;
150
157
  set(selectTokenToAtom, newTokenTo);
151
158
  }
152
- if (sendAmount && Number(sendAmount) >= 0) {
159
+ let side = formInputProps.side;
160
+ if (isValidSide(side)) {
161
+ set(currentSwapInputAtom, sideToInputType[side]);
162
+ } else {
163
+ if (side) {
164
+ logger.warn("invalid side provided, must be BUY or SELL", {
165
+ side
166
+ });
167
+ }
168
+ if (selectedForm === "swap") {
169
+ if (sendAmount && !receiveAmount) {
170
+ side = "SELL";
171
+ } else if (receiveAmount && !sendAmount) {
172
+ side = "BUY";
173
+ } else {
174
+ side = get.peek(swapSideAtom);
175
+ }
176
+ } else {
177
+ side = get.peek(swapSideAtom);
178
+ }
179
+ }
180
+ assert(isValidSide(side), "side must be BUY or SELL");
181
+ const isSwap = selectedForm === "swap";
182
+ const isLimitOrOtc = selectedForm === "limit" || selectedForm === "otc";
183
+ const isSwapWithSell = isSwap && side === "SELL";
184
+ const isSwapWithBuy = isSwap && side === "BUY";
185
+ if (sendAmount && Number(sendAmount) >= 0 && (isSwapWithSell || isLimitOrOtc)) {
153
186
  const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];
154
187
  const currentSendAmount = get.peek(formPayAmountAtom.read);
155
188
  if (currentSendAmount !== sendAmount) {
156
189
  set(formPayAmountAtom.write, sendAmount);
157
190
  }
158
191
  }
192
+ if (receiveAmount && Number(receiveAmount) >= 0 && (isSwapWithBuy || isLimitOrOtc)) {
193
+ const formReceiveAmountAtom = tradeModeToReceiveAmountUnitAtom[selectedForm];
194
+ const currentReceiveAmount = get.peek(formReceiveAmountAtom.read);
195
+ if (currentReceiveAmount !== receiveAmount) {
196
+ set(formReceiveAmountAtom.write, receiveAmount);
197
+ }
198
+ }
199
+ if (selectedForm === "limit" || selectedForm === "otc") {
200
+ const orderDeadline = Number(formInputProps.orderDeadline);
201
+ if (orderDeadline !== void 0 && !isNaN(orderDeadline)) {
202
+ const timeUnitAtom = tradeModeToTimeUnitAtom[selectedForm];
203
+ const currentTimeUnit = get.peek(timeUnitAtom);
204
+ if (currentTimeUnit.timestamp !== orderDeadline) {
205
+ set(timeUnitAtom, {
206
+ // set closest time unit for better UX
207
+ ...getClosestTimeUnit(orderDeadline),
208
+ // set exact timestamp
209
+ timestamp: orderDeadline
210
+ });
211
+ }
212
+ }
213
+ }
159
214
  });
160
215
  function getTokenToFind({
161
216
  tokenFromProps,
@@ -191,7 +246,7 @@ function useActivateFormInputEffects() {
191
246
  useAtom(formInputPropsEffectAtom);
192
247
  }
193
248
  function useSetFormInputFromProps(t0) {
194
- const $ = distExports.c(11);
249
+ const $ = distExports.c(14);
195
250
  let t1;
196
251
  if ($[0] !== t0) {
197
252
  t1 = t0 === void 0 ? {} : t0;
@@ -206,12 +261,15 @@ function useSetFormInputFromProps(t0) {
206
261
  srcChainId,
207
262
  tokenToAddress,
208
263
  destChainId,
209
- sendAmount
264
+ sendAmount,
265
+ receiveAmount,
266
+ side,
267
+ orderDeadline
210
268
  } = t1;
211
269
  const setFormInputProps = useSetAtom(formInputPropsAtom);
212
270
  let t2;
213
271
  let t3;
214
- if ($[2] !== destChainId || $[3] !== selectedForm || $[4] !== sendAmount || $[5] !== setFormInputProps || $[6] !== srcChainId || $[7] !== tokenFromAddress || $[8] !== tokenToAddress) {
272
+ if ($[2] !== destChainId || $[3] !== orderDeadline || $[4] !== receiveAmount || $[5] !== selectedForm || $[6] !== sendAmount || $[7] !== setFormInputProps || $[8] !== side || $[9] !== srcChainId || $[10] !== tokenFromAddress || $[11] !== tokenToAddress) {
215
273
  t2 = () => {
216
274
  setFormInputProps({
217
275
  selectedForm,
@@ -219,22 +277,28 @@ function useSetFormInputFromProps(t0) {
219
277
  srcChainId,
220
278
  tokenToAddress,
221
279
  destChainId,
222
- sendAmount
280
+ sendAmount,
281
+ receiveAmount,
282
+ side,
283
+ orderDeadline
223
284
  });
224
285
  };
225
- t3 = [selectedForm, tokenFromAddress, srcChainId, tokenToAddress, destChainId, sendAmount, setFormInputProps];
286
+ t3 = [selectedForm, tokenFromAddress, srcChainId, tokenToAddress, destChainId, sendAmount, setFormInputProps, receiveAmount, side, orderDeadline];
226
287
  $[2] = destChainId;
227
- $[3] = selectedForm;
228
- $[4] = sendAmount;
229
- $[5] = setFormInputProps;
230
- $[6] = srcChainId;
231
- $[7] = tokenFromAddress;
232
- $[8] = tokenToAddress;
233
- $[9] = t2;
234
- $[10] = t3;
288
+ $[3] = orderDeadline;
289
+ $[4] = receiveAmount;
290
+ $[5] = selectedForm;
291
+ $[6] = sendAmount;
292
+ $[7] = setFormInputProps;
293
+ $[8] = side;
294
+ $[9] = srcChainId;
295
+ $[10] = tokenFromAddress;
296
+ $[11] = tokenToAddress;
297
+ $[12] = t2;
298
+ $[13] = t3;
235
299
  } else {
236
- t2 = $[9];
237
- t3 = $[10];
300
+ t2 = $[12];
301
+ t3 = $[13];
238
302
  }
239
303
  useLayoutEffect(t2, t3);
240
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.js","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"sourcesContent":["import { atom, type Setter } from \"jotai\";\nimport { useAtom, useSetAtom } from \"@/core/store\";\nimport { atomEffect, type Effect } from \"jotai-effect\";\nimport { isAddress, type Address } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { nativeTokensByChainId } from \"@/tokens/constructor\";\nimport { fromListsAtom } from \"@/tokens/state/fromListsAtom\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"@/tokens/state/importedTokensAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useLayoutEffect } from \"react\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { tradeModeAtom, userTradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToTokenAtoms,\n} from \"./common\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { autoAddImportedTokenAtom } from \"@/tokens/state/addImportedTokenAtom\";\nimport { getLogger } from \"@/core/logger\";\nimport { assert } from \"ts-essentials\";\nimport { bridgeInfoAtom } from \"@/hooks/swap/prices/delta/queries/useBridgeInfo\";\nimport { isTradeMode } from \"@/lib/tradeMode\";\nimport { enabledTradeModesAtom } from \"@/core/state/enabledTradeModesAtom\";\nimport type { FormInputProps } from \"./types\";\n\nexport const formInputPropsAtom = atom<FormInputProps>({});\n\n// in case formInputPros passed to Widget are not exactly expected types\ntype RelaxedFormInputProps = {\n [K in keyof FormInputProps]?: NonNullable<FormInputProps[K]> extends string\n ? string\n : NonNullable<FormInputProps[K]> extends number\n ? number\n : FormInputProps[K];\n};\n\nconst logger = getLogger(\"FormInputProps\");\n\ntype GetterWithPeek = Parameters<Effect>[0];\n\ntype FindTokenAtomsInput = {\n tokenToFind: { address: Address; network: SupportedChainId };\n get: GetterWithPeek;\n set: Setter;\n};\n\nfunction findTokenInAtoms({\n get,\n set,\n tokenToFind,\n}: FindTokenAtomsInput): Token | undefined {\n const tokenFromAddress = tokenToFind.address;\n const chainId = tokenToFind.network;\n\n if (isETHaddress(tokenFromAddress)) {\n // if tokenFrom is ETH, set the native token for tokenFrom Input\n const nativeToken = nativeTokensByChainId[chainId];\n return nativeToken;\n }\n\n const tokenFromLowercase = tokenFromAddress.toLowerCase();\n\n // find the token from the token Lists for the srcChainId,\n // and retry to find the token when allTokens are updated (token lists loaded)\n const tokensMap = get(fromListsAtom).listByChainId[chainId]?.addressMap;\n const tokenFromLists = tokensMap?.[tokenFromLowercase];\n if (tokenFromLists) {\n return tokenFromLists;\n }\n\n // find the token from the imported tokens,\n // don't retry if user imports more tokens during the session\n const importedTokens = get.peek(importedTokensAtom);\n const importedToken = importedTokens[chainId]?.find(\n (token) => token.address.toLowerCase() === tokenFromLowercase\n );\n if (importedToken) {\n return importedToken;\n }\n\n // subscribe to auto-imported tokens, which will be added to only when tokenAddress prop is supplied from outside the widget\n const autoImportedTokens = get(autoImportedTokensAtom);\n // looking through auto-imported tokens isn't strictly necessary because importedTokens atom is updated together with autoImportedTokens atom,\n // except for consistency, and so that we don't have to subscribe to importedTokens atom that would retrigger formProps matching on manual token import\n const autoImportedToken = autoImportedTokens.find(\n (token) =>\n token.address.toLowerCase() === tokenFromLowercase &&\n token.network === chainId\n );\n if (autoImportedToken) {\n return autoImportedToken;\n }\n\n logger.info(\n \"token not available in widget. Will attempt to import from chain\",\n {\n address: tokenFromAddress,\n chainId,\n }\n );\n\n // trigger Token fetch and eventual import when tokenFromAddress is not found in available token lists and atoms\n set(autoAddImportedTokenAtom, { address: tokenFromAddress, chainId });\n}\n\nconst formInputPropsEffectAtom = atomEffect((get, set) => {\n // subscribe to bridgeInfoAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfoAtom);\n\n const enabledTradeModes = get(enabledTradeModesAtom);\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const { tokenFromAddress, srcChainId, sendAmount } = formInputProps;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId = formInputProps.destChainId;\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || \"swap\";\n if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid or disabled selectedForm provided\", { selectedForm });\n // fallback to first enabled trade mode from the config\n selectedForm = enabledTradeModes[0];\n }\n\n // necessary for type safety\n assert(isTradeMode(selectedForm), \"selectedForm must be a valid trade mode\");\n\n const formAtoms = tradeModeToTokenAtoms[selectedForm];\n const currentTokenFrom = get.peek(formAtoms.tokenFromAtom);\n const currentTokenTo = get.peek(formAtoms.tokenToAtom);\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n if (currentTradeMode !== selectedForm) {\n set(userTradeModeAtom, selectedForm);\n }\n\n let newTokenFrom: Token | undefined;\n let newTokenTo: Token | undefined;\n\n // if chain isn't given in props, match current srcChainId\n const defaultChainId = currentTokenFrom.network;\n\n if (selectedForm !== \"swap\") {\n // non-swap forms are single-chain only,\n // force destChainId = srcChainId\n destChainId = srcChainId;\n }\n\n if (\n selectedForm === \"otc\" &&\n tokenToAddress &&\n isETHaddress(tokenToAddress)\n ) {\n const wethMapping: Record<number, Address> = wrappedNativeCurrency;\n // OTC Orders don't support ETH as tokenTo=takerAsset,\n // more logical to use WETH instead of no token at all\n tokenToAddress = wethMapping[destChainId || defaultChainId];\n }\n\n {\n // match tokenFromAddress and srcChainId to a new tokenFrom to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenFromAddress, network: srcChainId },\n currentToken: currentTokenFrom,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenFrom = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n {\n // match tokenToAddress and destChainId to a new tokenTo to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenToAddress, network: destChainId },\n currentToken: currentTokenTo,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenTo = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n if (newTokenFrom && newTokenTo && areTokensSame(newTokenFrom, newTokenTo)) {\n // if tokens are the same, skip tokenTo\n newTokenTo = undefined;\n }\n\n if (\n !newTokenFrom &&\n !tokenFromAddress &&\n srcChainId &&\n isSupportedChainId(srcChainId) &&\n srcChainId !== currentTokenFrom.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [defaultTokenFrom] = pickDefaultTokenPair(srcChainId, selectedForm);\n // set default token for the chain\n newTokenFrom = defaultTokenFrom;\n }\n\n if (\n !newTokenTo &&\n !tokenToAddress &&\n destChainId &&\n isSupportedChainId(destChainId) &&\n destChainId !== currentTokenTo?.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [, defaultTokenTo] = pickDefaultTokenPair(destChainId, selectedForm);\n // set default token for the chain\n newTokenTo = defaultTokenTo;\n }\n\n if (newTokenFrom) {\n const selectTokenFromAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenFromAtom;\n set(selectTokenFromAtom, newTokenFrom);\n }\n if (newTokenTo) {\n const selectTokenToAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;\n set(selectTokenToAtom, newTokenTo);\n }\n\n if (sendAmount && Number(sendAmount) >= 0) {\n const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];\n const currentSendAmount = get.peek(formPayAmountAtom.read);\n if (currentSendAmount !== sendAmount) {\n set(formPayAmountAtom.write, sendAmount);\n }\n }\n});\n\nfunction getTokenToFind({\n tokenFromProps,\n currentToken,\n defaultChainId,\n}: {\n tokenFromProps: { address?: string; network?: number };\n currentToken?: Token;\n defaultChainId: SupportedChainId;\n}): { address: Address; network: SupportedChainId } | undefined {\n if (!tokenFromProps.address) return;\n // guard against malformed addresses passed through props\n if (!isAddress(tokenFromProps.address)) {\n logger.warn(\"malformed token address provided\", {\n address: tokenFromProps.address,\n });\n return;\n }\n\n const network = tokenFromProps.network || defaultChainId;\n\n // unsupported chainId provided, can't select this Token\n if (!isSupportedChainId(network)) {\n logger.warn(\"unsupported chainId provided\", { network });\n return;\n }\n\n if (\n currentToken &&\n areTokensSame(currentToken, {\n address: tokenFromProps.address,\n network,\n })\n ) {\n // same token already there\n return;\n }\n\n return { address: tokenFromProps.address, network };\n}\n\nexport function useActivateFormInputEffects() {\n useAtom(formInputPropsEffectAtom);\n}\n\nexport function useSetFormInputFromProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n}: FormInputProps = {}) {\n const setFormInputProps = useSetAtom(formInputPropsAtom);\n\n // match props together as they are supplied together from outside the Widget,\n // on any one prop change, the whole form input props are updated as long as they are passed together to the Widget\n useLayoutEffect(() => {\n setFormInputProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n });\n }, [\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n setFormInputProps,\n ]);\n}\n"],"names":["formInputPropsAtom","atom","logger","getLogger","findTokenInAtoms","get","set","tokenToFind","tokenFromAddress","address","chainId","network","isETHaddress","nativeToken","nativeTokensByChainId","tokenFromLowercase","toLowerCase","tokensMap","fromListsAtom","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedTokensAtom","importedToken","find","token","autoImportedTokens","autoImportedTokensAtom","autoImportedToken","info","autoAddImportedTokenAtom","formInputPropsEffectAtom","atomEffect","bridgeInfoAtom","enabledTradeModes","enabledTradeModesAtom","formInputProps","srcChainId","sendAmount","log","destChainId","tokenToAddress","selectedForm","isTradeMode","includes","warn","assert","formAtoms","tradeModeToTokenAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","tradeModeAtom","userTradeModeAtom","newTokenFrom","newTokenTo","defaultChainId","wethMapping","wrappedNativeCurrency","getTokenToFind","tokenFromProps","currentToken","areTokensSame","undefined","isSupportedChainId","defaultTokenFrom","pickDefaultTokenPair","defaultTokenTo","selectTokenFromAtom","tradeModeToSetTokenAtoms","selectTokenToAtom","Number","formPayAmountAtom","tradeModeToPayAmountUnitAtom","currentSendAmount","read","write","isAddress","useActivateFormInputEffects","useAtom","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","useSetAtom","t2","t3","useLayoutEffect"],"mappings":"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"}
1
+ {"version":3,"file":"setTokenByAddressAtom.js","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"sourcesContent":["import { atom, type Setter } from \"jotai\";\nimport { useAtom, useSetAtom } from \"@/core/store\";\nimport { atomEffect, type Effect } from \"jotai-effect\";\nimport { isAddress, type Address } from \"viem\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { nativeTokensByChainId } from \"@/tokens/constructor\";\nimport { fromListsAtom } from \"@/tokens/state/fromListsAtom\";\nimport {\n autoImportedTokensAtom,\n importedTokensAtom,\n} from \"@/tokens/state/importedTokensAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useLayoutEffect } from \"react\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { tradeModeAtom, userTradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport {\n sideToInputType,\n tradeModeToPayAmountUnitAtom,\n tradeModeToReceiveAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToTimeUnitAtom,\n tradeModeToTokenAtoms,\n} from \"./common\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { autoAddImportedTokenAtom } from \"@/tokens/state/addImportedTokenAtom\";\nimport { getLogger } from \"@/core/logger\";\nimport { assert } from \"ts-essentials\";\nimport { bridgeInfosLoadedAtom } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom\";\nimport { isTradeMode } from \"@/lib/tradeMode\";\nimport { enabledTradeModesAtom } from \"@/core/state/enabledTradeModesAtom\";\nimport type { FormInputProps } from \"./types\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { swapSideAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { getClosestTimeUnit } from \"@/core/limit/state/utils\";\n\nexport const formInputPropsAtom = atom<FormInputProps>({});\n\n// in case formInputPros passed to Widget are not exactly expected types\ntype RelaxedFormInputProps = {\n [K in keyof FormInputProps]?: NonNullable<FormInputProps[K]> extends string\n ? string\n : NonNullable<FormInputProps[K]> extends number\n ? number\n : FormInputProps[K];\n};\n\nconst logger = getLogger(\"FormInputProps\");\n\ntype GetterWithPeek = Parameters<Effect>[0];\n\ntype FindTokenAtomsInput = {\n tokenToFind: { address: Address; network: SupportedChainId };\n get: GetterWithPeek;\n set: Setter;\n};\n\nfunction findTokenInAtoms({\n get,\n set,\n tokenToFind,\n}: FindTokenAtomsInput): Token | undefined {\n const tokenFromAddress = tokenToFind.address;\n const chainId = tokenToFind.network;\n\n if (isETHaddress(tokenFromAddress)) {\n // if tokenFrom is ETH, set the native token for tokenFrom Input\n const nativeToken = nativeTokensByChainId[chainId];\n return nativeToken;\n }\n\n const tokenFromLowercase = tokenFromAddress.toLowerCase();\n\n // find the token from the token Lists for the srcChainId,\n // and retry to find the token when allTokens are updated (token lists loaded)\n const tokensMap = get(fromListsAtom).listByChainId[chainId]?.addressMap;\n const tokenFromLists = tokensMap?.[tokenFromLowercase];\n if (tokenFromLists) {\n return tokenFromLists;\n }\n\n // find the token from the imported tokens,\n // don't retry if user imports more tokens during the session\n const importedTokens = get.peek(importedTokensAtom);\n const importedToken = importedTokens[chainId]?.find(\n (token) => token.address.toLowerCase() === tokenFromLowercase\n );\n if (importedToken) {\n return importedToken;\n }\n\n // subscribe to auto-imported tokens, which will be added to only when tokenAddress prop is supplied from outside the widget\n const autoImportedTokens = get(autoImportedTokensAtom);\n // looking through auto-imported tokens isn't strictly necessary because importedTokens atom is updated together with autoImportedTokens atom,\n // except for consistency, and so that we don't have to subscribe to importedTokens atom that would retrigger formProps matching on manual token import\n const autoImportedToken = autoImportedTokens.find(\n (token) =>\n token.address.toLowerCase() === tokenFromLowercase &&\n token.network === chainId\n );\n if (autoImportedToken) {\n return autoImportedToken;\n }\n\n logger.info(\n \"token not available in widget. Will attempt to import from chain\",\n {\n address: tokenFromAddress,\n chainId,\n }\n );\n\n // trigger Token fetch and eventual import when tokenFromAddress is not found in available token lists and atoms\n set(autoAddImportedTokenAtom, { address: tokenFromAddress, chainId });\n}\n\nfunction isValidSide(side: string | undefined): side is SwapSideUnion {\n return side === \"BUY\" || side === \"SELL\";\n}\n\nconst formInputPropsEffectAtom = atomEffect((get, set) => {\n // subscribe to bridgeInfosLoadedAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfosLoadedAtom);\n\n const enabledTradeModes = get(enabledTradeModesAtom);\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const { tokenFromAddress, srcChainId, sendAmount, receiveAmount } =\n formInputProps;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId = formInputProps.destChainId;\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || \"swap\";\n if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid or disabled selectedForm provided\", { selectedForm });\n // fallback to first enabled trade mode from the config\n selectedForm = enabledTradeModes[0];\n }\n\n // necessary for type safety\n assert(isTradeMode(selectedForm), \"selectedForm must be a valid trade mode\");\n\n const formAtoms = tradeModeToTokenAtoms[selectedForm];\n const currentTokenFrom = get.peek(formAtoms.tokenFromAtom);\n const currentTokenTo = get.peek(formAtoms.tokenToAtom);\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n if (currentTradeMode !== selectedForm) {\n set(userTradeModeAtom, selectedForm);\n }\n\n let newTokenFrom: Token | undefined;\n let newTokenTo: Token | undefined;\n\n // if chain isn't given in props, match current srcChainId\n const defaultChainId = currentTokenFrom.network;\n\n if (selectedForm !== \"swap\" && selectedForm !== \"limit\") {\n // swap and limit forms support crosschain,\n // force destChainId = srcChainId for any other form\n destChainId = srcChainId;\n }\n\n if (\n selectedForm === \"otc\" &&\n tokenToAddress &&\n isETHaddress(tokenToAddress)\n ) {\n const wethMapping: Record<number, Address> = wrappedNativeCurrency;\n // OTC Orders don't support ETH as tokenTo=takerAsset,\n // more logical to use WETH instead of no token at all\n tokenToAddress = wethMapping[destChainId || defaultChainId];\n }\n\n {\n // match tokenFromAddress and srcChainId to a new tokenFrom to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenFromAddress, network: srcChainId },\n currentToken: currentTokenFrom,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenFrom = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n {\n // match tokenToAddress and destChainId to a new tokenTo to select\n const tokenToFind = getTokenToFind({\n tokenFromProps: { address: tokenToAddress, network: destChainId },\n currentToken: currentTokenTo,\n defaultChainId,\n });\n if (tokenToFind) {\n newTokenTo = findTokenInAtoms({\n get,\n tokenToFind,\n set,\n });\n }\n }\n\n if (newTokenFrom && newTokenTo && areTokensSame(newTokenFrom, newTokenTo)) {\n // if tokens are the same, skip tokenTo\n newTokenTo = undefined;\n }\n\n if (\n !newTokenFrom &&\n !tokenFromAddress &&\n srcChainId &&\n isSupportedChainId(srcChainId) &&\n srcChainId !== currentTokenFrom.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [defaultTokenFrom] = pickDefaultTokenPair(srcChainId, selectedForm);\n // set default token for the chain\n newTokenFrom = defaultTokenFrom;\n }\n\n if (\n !newTokenTo &&\n !tokenToAddress &&\n destChainId &&\n isSupportedChainId(destChainId) &&\n destChainId !== currentTokenTo?.network\n ) {\n // no tokenAddress given, but chainId is provided and different from current\n const [, defaultTokenTo] = pickDefaultTokenPair(destChainId, selectedForm);\n // set default token for the chain\n newTokenTo = defaultTokenTo;\n }\n\n if (newTokenFrom) {\n const selectTokenFromAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenFromAtom;\n set(selectTokenFromAtom, newTokenFrom);\n }\n if (newTokenTo) {\n const selectTokenToAtom =\n tradeModeToSetTokenAtoms[selectedForm].tokenToAtom;\n set(selectTokenToAtom, newTokenTo);\n }\n\n let side = formInputProps.side;\n if (isValidSide(side)) {\n set(currentSwapInputAtom, sideToInputType[side]);\n } else {\n if (side) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid side provided, must be BUY or SELL\", { side });\n }\n if (selectedForm === \"swap\") {\n if (sendAmount && !receiveAmount) {\n side = \"SELL\"; // sendAmount is given and receiveAmount isn't -> SELL\n } else if (receiveAmount && !sendAmount) {\n side = \"BUY\"; // receiveAmount is given and sendAmount isn't -> BUY\n } else {\n // fallback to current swap side if both or none amounts are given\n side = get.peek(swapSideAtom);\n }\n } else {\n // fallback to current swap side for non-swap forms\n side = get.peek(swapSideAtom);\n }\n }\n\n // necessary for type safety\n assert(isValidSide(side), \"side must be BUY or SELL\");\n\n const isSwap = selectedForm === \"swap\";\n const isLimitOrOtc = selectedForm === \"limit\" || selectedForm === \"otc\";\n\n const isSwapWithSell = isSwap && side === \"SELL\";\n const isSwapWithBuy = isSwap && side === \"BUY\";\n\n if (\n sendAmount &&\n Number(sendAmount) >= 0 &&\n (isSwapWithSell || isLimitOrOtc)\n ) {\n const formPayAmountAtom = tradeModeToPayAmountUnitAtom[selectedForm];\n const currentSendAmount = get.peek(formPayAmountAtom.read);\n if (currentSendAmount !== sendAmount) {\n set(formPayAmountAtom.write, sendAmount);\n }\n }\n\n if (\n receiveAmount &&\n Number(receiveAmount) >= 0 &&\n (isSwapWithBuy || isLimitOrOtc)\n ) {\n const formReceiveAmountAtom =\n tradeModeToReceiveAmountUnitAtom[selectedForm];\n const currentReceiveAmount = get.peek(formReceiveAmountAtom.read);\n if (currentReceiveAmount !== receiveAmount) {\n set(formReceiveAmountAtom.write, receiveAmount);\n }\n }\n\n if (selectedForm === \"limit\" || selectedForm === \"otc\") {\n const orderDeadline = Number(formInputProps.orderDeadline);\n if (orderDeadline !== undefined && !isNaN(orderDeadline)) {\n const timeUnitAtom = tradeModeToTimeUnitAtom[selectedForm];\n const currentTimeUnit = get.peek(timeUnitAtom);\n\n if (currentTimeUnit.timestamp !== orderDeadline) {\n set(timeUnitAtom, {\n // set closest time unit for better UX\n ...getClosestTimeUnit(orderDeadline),\n // set exact timestamp\n timestamp: orderDeadline,\n });\n }\n }\n }\n});\n\nfunction getTokenToFind({\n tokenFromProps,\n currentToken,\n defaultChainId,\n}: {\n tokenFromProps: { address?: string; network?: number };\n currentToken?: Token;\n defaultChainId: SupportedChainId;\n}): { address: Address; network: SupportedChainId } | undefined {\n if (!tokenFromProps.address) return;\n // guard against malformed addresses passed through props\n if (!isAddress(tokenFromProps.address)) {\n logger.warn(\"malformed token address provided\", {\n address: tokenFromProps.address,\n });\n return;\n }\n\n const network = tokenFromProps.network || defaultChainId;\n\n // unsupported chainId provided, can't select this Token\n if (!isSupportedChainId(network)) {\n logger.warn(\"unsupported chainId provided\", { network });\n return;\n }\n\n if (\n currentToken &&\n areTokensSame(currentToken, {\n address: tokenFromProps.address,\n network,\n })\n ) {\n // same token already there\n return;\n }\n\n return { address: tokenFromProps.address, network };\n}\n\nexport function useActivateFormInputEffects() {\n useAtom(formInputPropsEffectAtom);\n}\n\nexport function useSetFormInputFromProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n receiveAmount,\n side,\n orderDeadline,\n}: FormInputProps = {}) {\n const setFormInputProps = useSetAtom(formInputPropsAtom);\n\n // match props together as they are supplied together from outside the Widget,\n // on any one prop change, the whole form input props are updated as long as they are passed together to the Widget\n useLayoutEffect(() => {\n setFormInputProps({\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n receiveAmount,\n side,\n orderDeadline,\n });\n }, [\n selectedForm,\n tokenFromAddress,\n srcChainId,\n tokenToAddress,\n destChainId,\n sendAmount,\n setFormInputProps,\n receiveAmount,\n side,\n orderDeadline,\n ]);\n}\n"],"names":["formInputPropsAtom","atom","logger","getLogger","findTokenInAtoms","get","set","tokenToFind","tokenFromAddress","address","chainId","network","isETHaddress","nativeToken","nativeTokensByChainId","tokenFromLowercase","toLowerCase","tokensMap","fromListsAtom","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedTokensAtom","importedToken","find","token","autoImportedTokens","autoImportedTokensAtom","autoImportedToken","info","autoAddImportedTokenAtom","isValidSide","side","formInputPropsEffectAtom","atomEffect","bridgeInfosLoadedAtom","enabledTradeModes","enabledTradeModesAtom","formInputProps","srcChainId","sendAmount","receiveAmount","log","destChainId","tokenToAddress","selectedForm","isTradeMode","includes","warn","assert","formAtoms","tradeModeToTokenAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","tradeModeAtom","userTradeModeAtom","newTokenFrom","newTokenTo","defaultChainId","wethMapping","wrappedNativeCurrency","getTokenToFind","tokenFromProps","currentToken","areTokensSame","undefined","isSupportedChainId","defaultTokenFrom","pickDefaultTokenPair","defaultTokenTo","selectTokenFromAtom","tradeModeToSetTokenAtoms","selectTokenToAtom","currentSwapInputAtom","sideToInputType","swapSideAtom","isSwap","isLimitOrOtc","isSwapWithSell","isSwapWithBuy","Number","formPayAmountAtom","tradeModeToPayAmountUnitAtom","currentSendAmount","read","write","formReceiveAmountAtom","tradeModeToReceiveAmountUnitAtom","currentReceiveAmount","orderDeadline","isNaN","timeUnitAtom","tradeModeToTimeUnitAtom","currentTimeUnit","timestamp","getClosestTimeUnit","isAddress","useActivateFormInputEffects","useAtom","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","useSetAtom","t2","t3","useLayoutEffect"],"mappings":"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"}
@@ -1,15 +1,23 @@
1
1
  import { TradeMode } from '../../state/tradeModeAtom';
2
2
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
3
+ import { SwapSideUnion } from '@velora-dex/sdk';
3
4
  import { Address } from 'viem';
4
5
  export type FormInputProps = {
5
6
  /** @description The form to activate, defaults to "swap" */
6
7
  selectedForm?: TradeMode;
7
8
  tokenFromAddress?: Address;
8
- /** @description The chainId of the tokenFrom, for selectedForm!=swap some chains are disabled */
9
+ /** @description The chainId of the tokenFrom, for selectedForm != swap some chains are disabled */
9
10
  srcChainId?: SupportedChainId;
10
11
  tokenToAddress?: Address;
11
12
  /** @description The chainId of the tokenTo, only functional together with selectedForm = "swap"*/
12
13
  destChainId?: SupportedChainId;
14
+ /** @description The amount of the pay input, functional when selectedForm is "limit" or "otc", or when selectedForm is "swap" with side = "SELL" */
13
15
  sendAmount?: string;
16
+ /** @description The amount of the receive input, functional when selectedForm is "limit" or "otc", or when selectedForm is "swap" with side = "BUY" */
17
+ receiveAmount?: string;
18
+ /** @description The side of the swap, only functional together with selectedForm = "swap" */
19
+ side?: SwapSideUnion;
20
+ /** @description The order deadline in seconds, only functional together with selectedForm = "limit" or "otc" */
21
+ orderDeadline?: string;
14
22
  };
15
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CAGrB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mGAAmG;IACnG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,oJAAoJ;IACpJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uJAAuJ;IACvJ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,gHAAgH;IAChH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -1,11 +1,19 @@
1
+ import { SetStateAction } from 'jotai';
1
2
  import { timeUnits } from './constants';
2
3
  export type TimeUnit = (typeof timeUnits)[number]["label"];
3
4
  export type TimeUnitObject = {
4
5
  label: TimeUnit;
5
6
  value: number;
6
7
  };
7
- export declare const timeUnitAtom: import('jotai').PrimitiveAtom<TimeUnitObject> & {
8
- init: TimeUnitObject;
8
+ export type TimeUnitState = TimeUnitObject & {
9
+ timestamp: number;
10
+ };
11
+ export declare const timeUnitAtom: import('jotai').WritableAtom<TimeUnitState, [SetStateAction<{
12
+ label: TimeUnit;
13
+ value: number;
14
+ timestamp?: number | undefined;
15
+ }>], void> & {
16
+ init: TimeUnitState;
9
17
  };
10
18
  export declare const deadlineAtom: import('jotai').Atom<number>;
11
19
  export declare const useLimitDeadline: () => number;
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/deadlineAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,SAAS,EAAE,MAAM,aAAa,CAAC;AAGtE,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY;;CAAwC,CAAC;AAElE,eAAO,MAAM,YAAY,8BAWvB,CAAC;AAEH,eAAO,MAAM,gBAAgB,cAE5B,CAAC"}
1
+ {"version":3,"file":"deadlineAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/deadlineAtom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAIL,SAAS,EACV,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,YAAY;WARhB,QAAQ;WACR,MAAM;;;;CAiCb,CAAC;AAEH,eAAO,MAAM,YAAY,8BAA6C,CAAC;AAEvE,eAAO,MAAM,gBAAgB,cAE5B,CAAC"}
@@ -1,16 +1,23 @@
1
1
  import { atom } from 'jotai';
2
2
  import { useAtomValue } from '../../store.js';
3
- import { defaultTimeUnit, minTimeUnit } from './constants.js';
4
- import { timeUnitToSeconds } from './utils.js';
3
+ import { neverTimeUnit, minTimeUnit, defaultTimeUnit } from './constants.js';
4
+ import { getTimeUnitState } from './utils.js';
5
5
 
6
- const timeUnitAtom = atom(defaultTimeUnit);
7
- const deadlineAtom = atom((get) => {
8
- let timeUnit = get(timeUnitAtom);
9
- if (timeUnit.label === minTimeUnit.label && timeUnit.value < minTimeUnit.value) {
10
- timeUnit = minTimeUnit;
6
+ const timeUnitAtom = atom(getTimeUnitState(defaultTimeUnit), (get, set, _newState) => {
7
+ const newState = typeof _newState === "function" ? _newState(get(timeUnitAtom)) : _newState;
8
+ let stateToSet = getTimeUnitState(newState);
9
+ const minTimeUnitState = getTimeUnitState(minTimeUnit);
10
+ const isTimestampInvalid = (
11
+ // Limit orders cannot have 0 deadline
12
+ stateToSet.timestamp <= 0 || stateToSet.timestamp < minTimeUnitState.timestamp
13
+ );
14
+ const isUnitInvalid = stateToSet.label === neverTimeUnit.label || stateToSet.label === minTimeUnit.label && stateToSet.value < minTimeUnitState.value;
15
+ if (isTimestampInvalid || isUnitInvalid) {
16
+ stateToSet = minTimeUnitState;
11
17
  }
12
- return Math.floor(Date.now() / 1e3 + timeUnitToSeconds(timeUnit));
18
+ set(timeUnitAtom, stateToSet);
13
19
  });
20
+ const deadlineAtom = atom((get) => get(timeUnitAtom).timestamp);
14
21
  const useLimitDeadline = () => {
15
22
  return useAtomValue(deadlineAtom);
16
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineAtom.js","sources":["../../../../src/core/limit/state/deadlineAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { defaultTimeUnit, minTimeUnit, timeUnits } from \"./constants\";\nimport { timeUnitToSeconds } from \"./utils\";\n\nexport type TimeUnit = (typeof timeUnits)[number][\"label\"];\n\nexport type TimeUnitObject = {\n label: TimeUnit;\n value: number;\n};\n\nexport const timeUnitAtom = atom<TimeUnitObject>(defaultTimeUnit);\n\nexport const deadlineAtom = atom((get) => {\n let timeUnit = get(timeUnitAtom);\n\n if (\n timeUnit.label === minTimeUnit.label &&\n timeUnit.value < minTimeUnit.value\n ) {\n timeUnit = minTimeUnit;\n }\n\n return Math.floor(Date.now() / 1000 + timeUnitToSeconds(timeUnit));\n});\n\nexport const useLimitDeadline = () => {\n return useAtomValue(deadlineAtom);\n};\n"],"names":["timeUnitAtom","atom","defaultTimeUnit","deadlineAtom","get","timeUnit","label","minTimeUnit","value","Math","floor","Date","now","timeUnitToSeconds","useLimitDeadline","useAtomValue"],"mappings":";;;;;AAYO,MAAMA,YAAAA,GAAeC,KAAqBC,eAAe;AAEzD,MAAMC,YAAAA,GAAeF,KAAMG,CAAAA,GAAAA,KAAQ;AACxC,EAAA,IAAIC,QAAAA,GAAWD,IAAIJ,YAAY,CAAA;AAE/B,EAAA,IACEK,SAASC,KAAAA,KAAUC,WAAAA,CAAYD,SAC/BD,QAAAA,CAASG,KAAAA,GAAQD,YAAYC,KAAAA,EAC7B;AACAH,IAAAA,QAAAA,GAAWE,WAAAA;AAAAA,EACb;AAEA,EAAA,OAAOE,IAAAA,CAAKC,MAAMC,IAAAA,CAAKC,GAAAA,KAAQ,GAAA,GAAOC,iBAAAA,CAAkBR,QAAQ,CAAC,CAAA;AACnE,CAAC;AAEM,MAAMS,mBAAmBA,MAAA;AAAA,EAAA,OACvBC,aAAaZ,YAAY,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"deadlineAtom.js","sources":["../../../../src/core/limit/state/deadlineAtom.ts"],"sourcesContent":["import { atom, type SetStateAction } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n defaultTimeUnit,\n minTimeUnit,\n neverTimeUnit,\n timeUnits,\n} from \"./constants\";\nimport { getTimeUnitState } from \"./utils\";\nimport type { MarkOptional } from \"ts-essentials\";\n\nexport type TimeUnit = (typeof timeUnits)[number][\"label\"];\n\nexport type TimeUnitObject = {\n label: TimeUnit;\n value: number;\n};\n\nexport type TimeUnitState = TimeUnitObject & {\n timestamp: number;\n};\n\nexport const timeUnitAtom = atom<\n TimeUnitState,\n [SetStateAction<MarkOptional<TimeUnitState, \"timestamp\">>],\n void\n>(getTimeUnitState(defaultTimeUnit), (get, set, _newState) => {\n const newState =\n typeof _newState === \"function\" ? _newState(get(timeUnitAtom)) : _newState;\n\n let stateToSet = getTimeUnitState(newState);\n\n const minTimeUnitState = getTimeUnitState(minTimeUnit);\n\n const isTimestampInvalid =\n // Limit orders cannot have 0 deadline\n stateToSet.timestamp <= 0 ||\n stateToSet.timestamp < minTimeUnitState.timestamp;\n const isUnitInvalid =\n stateToSet.label === neverTimeUnit.label ||\n (stateToSet.label === minTimeUnit.label &&\n stateToSet.value < minTimeUnitState.value);\n\n if (isTimestampInvalid || isUnitInvalid) {\n stateToSet = minTimeUnitState;\n }\n\n set(timeUnitAtom, stateToSet);\n});\n\nexport const deadlineAtom = atom((get) => get(timeUnitAtom).timestamp);\n\nexport const useLimitDeadline = () => {\n return useAtomValue(deadlineAtom);\n};\n"],"names":["timeUnitAtom","atom","getTimeUnitState","defaultTimeUnit","get","set","_newState","newState","stateToSet","minTimeUnitState","minTimeUnit","isTimestampInvalid","timestamp","isUnitInvalid","label","neverTimeUnit","value","deadlineAtom","useLimitDeadline","useAtomValue"],"mappings":";;;;;AAsBO,MAAMA,YAAAA,GAAeC,KAI1BC,gBAAAA,CAAiBC,eAAe,GAAG,CAACC,GAAAA,EAAKC,KAAKC,SAAAA,KAAc;AAC5D,EAAA,MAAMC,QAAAA,GACJ,OAAOD,SAAAA,KAAc,UAAA,GAAaA,UAAUF,GAAAA,CAAIJ,YAAY,CAAC,CAAA,GAAIM,SAAAA;AAEnE,EAAA,IAAIE,UAAAA,GAAaN,iBAAiBK,QAAQ,CAAA;AAE1C,EAAA,MAAME,gBAAAA,GAAmBP,iBAAiBQ,WAAW,CAAA;AAErD,EAAA,MAAMC,kBAAAA;AAAAA;AAAAA,IAEJH,UAAAA,CAAWI,SAAAA,IAAa,CAAA,IACxBJ,UAAAA,CAAWI,YAAYH,gBAAAA,CAAiBG;AAAAA,GAAAA;AAC1C,EAAA,MAAMC,aAAAA,GACJL,UAAAA,CAAWM,KAAAA,KAAUC,aAAAA,CAAcD,KAAAA,IAClCN,UAAAA,CAAWM,KAAAA,KAAUJ,WAAAA,CAAYI,KAAAA,IAChCN,UAAAA,CAAWQ,KAAAA,GAAQP,gBAAAA,CAAiBO,KAAAA;AAExC,EAAA,IAAIL,sBAAsBE,aAAAA,EAAe;AACvCL,IAAAA,UAAAA,GAAaC,gBAAAA;AAAAA,EACf;AAEAJ,EAAAA,GAAAA,CAAIL,cAAcQ,UAAU,CAAA;AAC9B,CAAC;AAEM,MAAMS,eAAehB,IAAAA,CAAMG,CAAAA,GAAAA,KAAQA,GAAAA,CAAIJ,YAAY,EAAEY,SAAS;AAE9D,MAAMM,mBAAmBA,MAAA;AAAA,EAAA,OACvBC,aAAaF,YAAY,CAAA;AAAC;;;;"}
@@ -0,0 +1,3 @@
1
+ export declare const isLimitCrossChainAtom: import('jotai').Atom<boolean>;
2
+ export declare const useIsLimitCrossChain: () => boolean;
3
+ //# sourceMappingURL=isCrosschainAtom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isCrosschainAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/isCrosschainAtom.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,+BAOhC,CAAC;AAEH,eAAO,MAAM,oBAAoB,eAEhC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { atom } from 'jotai';
2
+ import '../../store.js';
3
+ import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
4
+
5
+ const isLimitCrossChainAtom = atom((get) => {
6
+ const tokenFrom = get(limitTokenFromAtom);
7
+ const tokenTo = get(limitTokenToAtom);
8
+ if (!tokenTo) return false;
9
+ return tokenFrom.network !== tokenTo.network;
10
+ });
11
+
12
+ export { isLimitCrossChainAtom };
13
+ //# sourceMappingURL=isCrosschainAtom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isCrosschainAtom.js","sources":["../../../../src/core/limit/state/isCrosschainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\n\nexport const isLimitCrossChainAtom = atom((get) => {\n const tokenFrom = get(limitTokenFromAtom);\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return false;\n\n return tokenFrom.network !== tokenTo.network;\n});\n\nexport const useIsLimitCrossChain = () => {\n return useAtomValue(isLimitCrossChainAtom);\n};\n"],"names":["isLimitCrossChainAtom","atom","get","tokenFrom","limitTokenFromAtom","tokenTo","limitTokenToAtom","network"],"mappings":";;;;AAIO,MAAMA,qBAAAA,GAAwBC,KAAMC,CAAAA,GAAAA,KAAQ;AACjD,EAAA,MAAMC,SAAAA,GAAYD,IAAIE,kBAAkB,CAAA;AACxC,EAAA,MAAMC,OAAAA,GAAUH,IAAII,gBAAgB,CAAA;AAEpC,EAAA,IAAI,CAACD,SAAS,OAAO,KAAA;AAErB,EAAA,OAAOF,SAAAA,CAAUI,YAAYF,OAAAA,CAAQE,OAAAA;AACvC,CAAC;;;;"}
@@ -5,12 +5,15 @@ export declare const setLimitPriceRatesAtom: import('jotai').WritableAtom<null,
5
5
  export declare const setLimitPayAmountAtom: import('jotai').WritableAtom<null, [payAmount: string], void> & {
6
6
  init: null;
7
7
  };
8
- export declare const setLimitAmountAtomFromProps: import('jotai').WritableAtom<null, [amount: string], void> & {
8
+ export declare const setLimitPayAmountAtomFromProps: import('jotai').WritableAtom<null, [amount: string], void> & {
9
9
  init: null;
10
10
  };
11
11
  export declare const setLimitReceiveAmountAtom: import('jotai').WritableAtom<null, [receiveAmount: string], void> & {
12
12
  init: null;
13
13
  };
14
+ export declare const setLimitReceiveAmountAtomFromProps: import('jotai').WritableAtom<null, [amount: string], void> & {
15
+ init: null;
16
+ };
14
17
  export declare const resetLimitPriceAtom: import('jotai').WritableAtom<null, [priceRates?: PriceRates | undefined], void> & {
15
18
  init: null;
16
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"limitInputActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitInputActionsAtom.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,sBAAsB;;CAwBlC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;CAyBjC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;CAMvC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;CA2BrC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;CAiB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;CAE/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CAGnC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;CAGtC,CAAC"}
1
+ {"version":3,"file":"limitInputActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitInputActionsAtom.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,sBAAsB;;CAwBlC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;CAyBjC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;CAM1C,CAAC;AAEF,eAAO,MAAM,yBAAyB;;CA2BrC,CAAC;AAEF,eAAO,MAAM,kCAAkC;;CAM9C,CAAC;AAEF,eAAO,MAAM,mBAAmB;;CAiB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;CAE/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CAGnC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;CAGtC,CAAC"}
@@ -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