@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limitTokenAtoms.js","sources":["../../../../src/core/limit/state/limitTokenAtoms.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"limit\"\n);\n\nexport const limitTokenFromAtom = atom(defaultTokenFrom);\nexport const limitTokenToAtom = atom<Token>();\n\nexport const useLimitTokenFrom = () => useAtomValue(limitTokenFromAtom);\nexport const useLimitTokenTo = () => useAtomValue(limitTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo"],"mappings":";;;;;AAMA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,OACF,CAAA;AAEO,MAAMC,kBAAAA,GAAqBC,KAAKN,gBAAgB;AAChD,MAAMO,mBAAmBD,IAAAA;AAEzB,MAAME,oBAAoBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,kBAAkB,CAAA;AAAC;AAChE,MAAMK,kBAAkBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,gBAAgB,CAAA;AAAC;;;;"}
@@ -0,0 +1,7 @@
1
+ import { UseReceiverAddressReturn } from '../../../components/widget/ReceiverAddress/state/types';
2
+ export declare const limitReceiverAddressAtom: import('jotai').PrimitiveAtom<`0x${string}` | undefined> & {
3
+ init: `0x${string}` | undefined;
4
+ };
5
+ export declare const useLimitReceiverAddress: () => UseReceiverAddressReturn;
6
+ export declare const useLimitReceiverAddressValue: () => `0x${string}` | undefined;
7
+ //# sourceMappingURL=receiverAddressAtom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiverAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/receiverAddressAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAMhG,eAAO,MAAM,wBAAwB;;CAA8B,CAAC;AAEpE,eAAO,MAAM,uBAAuB,QAAO,wBAK1C,CAAC;AAEF,eAAO,MAAM,4BAA4B,iCAExC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { d as distExports } from '../../../_virtual/index.js';
2
+ import { shortenAddress } from '../../../lib/utils/index.js';
3
+ import { atom } from 'jotai';
4
+ import { useAtomValue, useAtom } from '../../store.js';
5
+
6
+ const limitReceiverAddressAtom = atom();
7
+ const useLimitReceiverAddress = () => {
8
+ const $ = distExports.c(6);
9
+ const [address, setAddress] = useAtom(limitReceiverAddressAtom);
10
+ let t0;
11
+ if ($[0] !== address) {
12
+ t0 = address ? shortenAddress(address) : void 0;
13
+ $[0] = address;
14
+ $[1] = t0;
15
+ } else {
16
+ t0 = $[1];
17
+ }
18
+ const shortAddress = t0;
19
+ let t1;
20
+ if ($[2] !== address || $[3] !== setAddress || $[4] !== shortAddress) {
21
+ t1 = {
22
+ address,
23
+ setAddress,
24
+ shortAddress
25
+ };
26
+ $[2] = address;
27
+ $[3] = setAddress;
28
+ $[4] = shortAddress;
29
+ $[5] = t1;
30
+ } else {
31
+ t1 = $[5];
32
+ }
33
+ return t1;
34
+ };
35
+ const useLimitReceiverAddressValue = () => {
36
+ return useAtomValue(limitReceiverAddressAtom);
37
+ };
38
+
39
+ export { limitReceiverAddressAtom, useLimitReceiverAddress, useLimitReceiverAddressValue };
40
+ //# sourceMappingURL=receiverAddressAtom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiverAddressAtom.js","sources":["../../../../src/core/limit/state/receiverAddressAtom.ts"],"sourcesContent":["import type { UseReceiverAddressReturn } from \"@/components/widget/ReceiverAddress/state/types\";\nimport { shortenAddress } from \"@/lib/utils\";\nimport { atom } from \"jotai\";\nimport { useAtom, useAtomValue } from \"@/core/store\";\nimport type { Address } from \"viem\";\n\nexport const limitReceiverAddressAtom = atom<Address | undefined>();\n\nexport const useLimitReceiverAddress = (): UseReceiverAddressReturn => {\n const [address, setAddress] = useAtom(limitReceiverAddressAtom);\n const shortAddress = address ? shortenAddress(address) : undefined;\n\n return { address, setAddress, shortAddress };\n};\n\nexport const useLimitReceiverAddressValue = () => {\n return useAtomValue(limitReceiverAddressAtom);\n};\n"],"names":["limitReceiverAddressAtom","atom","useLimitReceiverAddress","$","_c","address","setAddress","useAtom","t0","shortenAddress","undefined","shortAddress","t1","useLimitReceiverAddressValue","useAtomValue"],"mappings":";;;;;AAMO,MAAMA,2BAA2BC,IAAAA;AAEjC,MAAMC,0BAA0BA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACrC,EAAA,MAAA,CAAAC,OAAAA,EAAAC,UAAA,CAAA,GAA8BC,QAAQP,wBAAwB,CAAA;AAAE,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAE,OAAAA,EAAA;AAC3CG,IAAAA,EAAAA,GAAAH,OAAAA,GAAUI,cAAAA,CAAeJ,OAAmB,CAAA,GAA5CK,MAAAA;AAA6CP,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlE,EAAA,MAAAQ,YAAAA,GAAqBH,EAAAA;AAA8C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,OAAAA,IAAAF,CAAAA,QAAAG,UAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAQ,YAAAA,EAAA;AAE5DC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,OAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAK;AAAAA,KAAoC;AAACR,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAG,UAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAArCS,EAAAA;AAAqC;AAGvC,MAAMC,+BAA+BA,MAAA;AAAA,EAAA,OACnCC,aAAad,wBAAwB,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,eAAO,MAAM,qBAAqB;;CAahC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA6CpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CA2ClC,CAAC"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAYlD,eAAO,MAAM,qBAAqB;;CAwBhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA2EpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CAuGlC,CAAC"}
@@ -2,17 +2,29 @@ import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
2
2
  import { areTokensSame } from '../../../tokens/utils/areTokensSame.js';
3
3
  import { atom } from 'jotai';
4
4
  import { unlockLimitPriceAtom } from './limitInputActionsAtom.js';
5
- import { limitTokenFromAtom, limitTokenToAtom } from './selectedTokenAtom.js';
5
+ import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
6
6
  import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
7
7
  import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
8
+ import { isCrosschainPossible } from '../../across/isCrosshcainPossible.js';
9
+ import { isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
10
+ import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
11
+ import { getSelectableDestChains } from '../../state/getSelectableDestChains.js';
12
+ import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
8
13
 
9
14
  const switchLimitTokensAtom = atom(null, async (get, set) => {
10
15
  const tokenTo = get(limitTokenToAtom);
11
16
  if (!tokenTo) return;
12
17
  const tokenFrom = get(limitTokenFromAtom);
18
+ const initChainFrom = tokenFrom.network;
13
19
  set(limitTokenFromAtom, tokenTo);
14
- set(limitTokenToAtom, tokenFrom);
20
+ set(selectLimitTokenToAtom, tokenFrom);
15
21
  set(unlockLimitPriceAtom);
22
+ const currentTokenFrom = get(limitTokenFromAtom);
23
+ if (currentTokenFrom.network !== initChainFrom) {
24
+ switchChain({
25
+ chainId: tokenTo.network
26
+ });
27
+ }
16
28
  });
17
29
  const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
18
30
  let tokenFrom = get(limitTokenFromAtom);
@@ -20,16 +32,6 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
20
32
  const initTokenFrom = tokenFrom;
21
33
  set(limitTokenFromAtom, newTokenFrom);
22
34
  tokenFrom = newTokenFrom;
23
- if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {
24
- set(limitTokenToAtom, initTokenFrom);
25
- tokenTo = initTokenFrom;
26
- }
27
- if (tokenTo && tokenTo.network !== tokenFrom.network) {
28
- const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenFrom.network, "limit");
29
- const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
30
- set(limitTokenToAtom, newTokenTo);
31
- tokenTo = newTokenTo;
32
- }
33
35
  if (!areTokensSame(tokenFrom, initTokenFrom)) {
34
36
  set(unlockLimitPriceAtom);
35
37
  }
@@ -38,27 +40,101 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
38
40
  chainId: tokenFrom.network
39
41
  });
40
42
  }
43
+ if (!tokenTo) return;
44
+ const crosschainPossible = isCrosschainPossible({
45
+ get,
46
+ chainIdFrom: tokenFrom.network,
47
+ chainIdTo: tokenTo.network,
48
+ mode: "limit"
49
+ });
50
+ if (crosschainPossible) {
51
+ const isTokenToFromAcross = isTokenFromAcross({
52
+ token: tokenTo,
53
+ fromChainId: tokenFrom.network,
54
+ toChainId: tokenTo.network,
55
+ mode: "limit"
56
+ });
57
+ if (!isTokenToFromAcross) {
58
+ const maybeAcrossToken = findFirstTokenFromAcross({
59
+ fromChainId: tokenFrom.network,
60
+ toChainId: tokenTo.network,
61
+ listByChainId: get(allTokensByChainAtom).listByChainId,
62
+ mode: "limit"
63
+ });
64
+ set(limitTokenToAtom, maybeAcrossToken);
65
+ }
66
+ } else {
67
+ if (tokenFrom.network !== tokenTo.network) {
68
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenFrom.network, "limit");
69
+ tokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
70
+ set(limitTokenToAtom, tokenTo);
71
+ } else {
72
+ if (areTokensSame(tokenFrom, tokenTo)) {
73
+ set(limitTokenToAtom, initTokenFrom);
74
+ tokenTo = initTokenFrom;
75
+ }
76
+ }
77
+ }
41
78
  });
42
79
  const selectLimitTokenToAtom = atom(null, async (get, set, newTokenTo) => {
43
80
  let tokenFrom = get(limitTokenFromAtom);
81
+ const selectableDestChains = getSelectableDestChains(get, {
82
+ fromChainId: tokenFrom.network,
83
+ mode: "limit"
84
+ });
85
+ if (!selectableDestChains.includes(newTokenTo.network)) return;
44
86
  let tokenTo = get(limitTokenToAtom);
45
87
  const initTokenTo = tokenTo;
46
88
  set(limitTokenToAtom, newTokenTo);
47
89
  tokenTo = newTokenTo;
48
- if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {
49
- set(limitTokenFromAtom, initTokenTo);
50
- tokenFrom = initTokenTo;
90
+ if (areTokensSame(tokenTo, tokenFrom)) {
91
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "limit");
92
+ const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
93
+ const wasCrosschain = initTokenTo && tokenFrom.network !== initTokenTo.network;
94
+ const newTokenFrom = wasCrosschain ? (
95
+ // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.
96
+ // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.
97
+ // Maybe user wants to trade singlechain but we are forcing crosschain.
98
+ defaultToken
99
+ ) : (
100
+ // Otherwise, we can flip the tokens, or pick from defaults
101
+ initTokenTo ?? defaultToken
102
+ );
103
+ set(limitTokenFromAtom, newTokenFrom);
104
+ tokenFrom = newTokenFrom;
51
105
  }
52
- if (tokenTo.network !== tokenFrom.network) {
106
+ let needResetTokenFrom = false;
107
+ const crosschainPossible = isCrosschainPossible({
108
+ get,
109
+ chainIdFrom: tokenFrom.network,
110
+ chainIdTo: tokenTo.network,
111
+ mode: "limit"
112
+ });
113
+ if (crosschainPossible) {
114
+ const isTokenToFromAcross = isTokenFromAcross({
115
+ token: tokenTo,
116
+ fromChainId: tokenFrom.network,
117
+ toChainId: tokenTo.network,
118
+ mode: "limit"
119
+ });
120
+ if (!isTokenToFromAcross) {
121
+ needResetTokenFrom = true;
122
+ }
123
+ }
124
+ if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {
125
+ needResetTokenFrom = true;
126
+ }
127
+ const enabledSrcChains = get(enabledSrcChainsAtom);
128
+ if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {
53
129
  const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "limit");
54
- const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
130
+ const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
55
131
  set(limitTokenFromAtom, newTokenFrom);
56
132
  tokenFrom = newTokenFrom;
57
133
  }
58
134
  if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {
59
135
  set(unlockLimitPriceAtom);
60
136
  }
61
- if (tokenTo.network !== wagmiConfig.state.chainId) {
137
+ if (tokenFrom.network !== wagmiConfig.state.chainId) {
62
138
  switchChain({
63
139
  chainId: tokenTo.network
64
140
  });
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n\n // set tokenFrom\n set(limitTokenFromAtom, tokenTo);\n\n set(limitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenToAtom, initTokenFrom);\n // set tokenTo to previous tokenFrom\n tokenTo = initTokenFrom;\n }\n\n if (tokenTo && tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n // @TODO change when implementing Crosschain Delta Limit Orders,\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n // so set tokenTo to one of the default tokens for tokenFrom.network chain\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n }\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenFromAtom, initTokenTo);\n // set tokenFrom to previous tokenTo\n tokenFrom = initTokenTo;\n }\n\n if (tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // so set tokenFrom to one of the default tokens for tokenTo.network chain\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenTo.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","unlockLimitPriceAtom","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","wagmiConfig","state","chainId","switchChain","selectLimitTokenToAtom","initTokenTo"],"mappings":"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"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { isCrosschainPossible } from \"@/core/across/isCrosshcainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(limitTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectLimitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n\n const currentTokenFrom = get(limitTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n set(limitTokenToAtom, maybeAcrossToken);\n }\n } else {\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, tokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(tokenFrom, tokenTo)) {\n set(limitTokenToAtom, initTokenFrom);\n tokenTo = initTokenFrom;\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"limit\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n defaultToken\n : // Otherwise, we can flip the tokens, or pick from defaults\n (initTokenTo ?? defaultToken);\n\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","initChainFrom","network","selectLimitTokenToAtom","unlockLimitPriceAtom","currentTokenFrom","switchChain","chainId","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","wagmiConfig","state","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","isTokenFromAcross","token","fromChainId","toChainId","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectableDestChains","getSelectableDestChains","includes","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","enabledSrcChains","enabledSrcChainsAtom"],"mappings":"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"}
@@ -1,12 +1,3 @@
1
1
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
2
- import { Token } from '../../../tokens/state/types';
3
- export declare const limitTokenFromAtom: import('jotai').PrimitiveAtom<Token> & {
4
- init: Token;
5
- };
6
- export declare const limitTokenToAtom: import('jotai').PrimitiveAtom<Token | undefined> & {
7
- init: Token | undefined;
8
- };
9
- export declare const useLimitTokenFrom: () => Token;
10
- export declare const useLimitTokenTo: () => Token | undefined;
11
2
  export declare const syncLimitTokensAfterChainSwitch: (chainId: SupportedChainId) => void;
12
3
  //# sourceMappingURL=selectedTokenAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,eAAO,MAAM,kBAAkB;;CAAyB,CAAC;AACzD,eAAO,MAAM,gBAAgB;;CAAgB,CAAC;AAE9C,eAAO,MAAM,iBAAiB,aAAyC,CAAC;AACxE,eAAO,MAAM,eAAe,yBAAuC,CAAC;AAEpE,eAAO,MAAM,+BAA+B,GAAI,SAAS,gBAAgB,SAsBxE,CAAC"}
1
+ {"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,eAAO,MAAM,+BAA+B,GAAI,SAAS,gBAAgB,SAoExE,CAAC"}
@@ -1,27 +1,59 @@
1
- import { jotaiStore, useAtomValue } from '../../store.js';
2
- import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
1
+ import { isCrosschainPossible } from '../../across/isCrosshcainPossible.js';
2
+ import { isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
3
+ import { jotaiStore } from '../../store.js';
4
+ import { getSelectableDestChains } from '../../state/getSelectableDestChains.js';
5
+ import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
3
6
  import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
4
- import { atom } from 'jotai';
7
+ import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
8
+ import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
5
9
 
6
- const [defaultTokenFrom] = pickDefaultTokenPair(wagmiConfig.state.chainId, "limit");
7
- const limitTokenFromAtom = atom(defaultTokenFrom);
8
- const limitTokenToAtom = atom();
9
- const useLimitTokenFrom = () => {
10
- return useAtomValue(limitTokenFromAtom);
11
- };
12
- const useLimitTokenTo = () => {
13
- return useAtomValue(limitTokenToAtom);
14
- };
15
10
  const syncLimitTokensAfterChainSwitch = (chainId) => {
16
- const tokenFrom = jotaiStore.get(limitTokenFromAtom);
17
- const tokenTo = jotaiStore.get(limitTokenToAtom);
18
- if (tokenFrom.network === chainId && // @TODO change to allowed cross chain check when implementing Crosschain Delta Limit Orders,
19
- // look at syncSwapTokensAfterChainSwitch for implementation
20
- (!tokenTo || tokenTo.network === chainId)) return;
21
- const [defaultTokenFrom2, defaultTokenTo] = pickDefaultTokenPair(chainId, "limit");
22
- jotaiStore.set(limitTokenFromAtom, defaultTokenFrom2);
23
- if (tokenTo) jotaiStore.set(limitTokenToAtom, defaultTokenTo);
11
+ const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);
12
+ if (!enabledSrcChains.includes(chainId)) return;
13
+ let tokenFrom = jotaiStore.get(limitTokenFromAtom);
14
+ if (tokenFrom.network === chainId) return;
15
+ const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId, "limit");
16
+ jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);
17
+ tokenFrom = defaultTokenFrom;
18
+ let tokenTo = jotaiStore.get(limitTokenToAtom);
19
+ if (!tokenTo) return;
20
+ const crosschainPossible = isCrosschainPossible({
21
+ get: jotaiStore.get,
22
+ chainIdFrom: chainId,
23
+ chainIdTo: tokenTo.network,
24
+ mode: "limit"
25
+ });
26
+ if (crosschainPossible) {
27
+ const isTokenToFromAcross = isTokenFromAcross({
28
+ token: tokenTo,
29
+ fromChainId: chainId,
30
+ toChainId: tokenTo.network,
31
+ mode: "limit"
32
+ });
33
+ if (!isTokenToFromAcross) {
34
+ const maybeAcrossToken = findFirstTokenFromAcross({
35
+ fromChainId: chainId,
36
+ toChainId: tokenTo.network,
37
+ listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,
38
+ mode: "limit"
39
+ });
40
+ jotaiStore.set(limitTokenToAtom, maybeAcrossToken);
41
+ tokenTo = maybeAcrossToken;
42
+ }
43
+ } else {
44
+ const selectableDestChains = getSelectableDestChains(jotaiStore.get, {
45
+ fromChainId: tokenFrom.network,
46
+ mode: "limit"
47
+ });
48
+ if (selectableDestChains.includes(chainId)) {
49
+ jotaiStore.set(limitTokenToAtom, defaultTokenTo);
50
+ tokenTo = defaultTokenTo;
51
+ } else {
52
+ jotaiStore.set(limitTokenToAtom, void 0);
53
+ tokenTo = void 0;
54
+ }
55
+ }
24
56
  };
25
57
 
26
- export { limitTokenFromAtom, limitTokenToAtom, syncLimitTokensAfterChainSwitch, useLimitTokenFrom, useLimitTokenTo };
58
+ export { syncLimitTokensAfterChainSwitch };
27
59
  //# sourceMappingURL=selectedTokenAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"limit\"\n);\n\nexport const limitTokenFromAtom = atom(defaultTokenFrom);\nexport const limitTokenToAtom = atom<Token>();\n\nexport const useLimitTokenFrom = () => useAtomValue(limitTokenFromAtom);\nexport const useLimitTokenTo = () => useAtomValue(limitTokenToAtom);\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const tokenFrom = jotaiStore.get(limitTokenFromAtom);\n const tokenTo = jotaiStore.get(limitTokenToAtom);\n // token will already be set on new chain, the new token may have been the reason for switchChain\n\n // chains are the same? do nothing\n if (\n tokenFrom.network === chainId &&\n // @TODO change to allowed cross chain check when implementing Crosschain Delta Limit Orders,\n // look at syncSwapTokensAfterChainSwitch for implementation\n (!tokenTo || tokenTo.network === chainId)\n )\n return;\n\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n\n if (tokenTo) jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n};\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo","syncLimitTokensAfterChainSwitch","tokenFrom","jotaiStore","get","tokenTo","network","defaultTokenTo","set"],"mappings":";;;;;AAQA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,OACF,CAAA;AAEO,MAAMC,kBAAAA,GAAqBC,KAAKN,gBAAgB;AAChD,MAAMO,mBAAmBD,IAAAA;AAEzB,MAAME,oBAAoBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,kBAAkB,CAAA;AAAC;AAChE,MAAMK,kBAAkBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,gBAAgB,CAAA;AAAC;AAE5D,MAAMI,+BAAAA,GAAkCA,CAACP,OAAAA,KAA8B;AAC5E,EAAA,MAAMQ,SAAAA,GAAYC,UAAAA,CAAWC,GAAAA,CAAIT,kBAAkB,CAAA;AACnD,EAAA,MAAMU,OAAAA,GAAUF,UAAAA,CAAWC,GAAAA,CAAIP,gBAAgB,CAAA;AAI/C,EAAA,IACEK,UAAUI,OAAAA,KAAYZ,OAAAA;AAAAA;AAAAA,GAGrB,CAACW,OAAAA,IAAWA,OAAAA,CAAQC,OAAAA,KAAYZ,OAAAA,CAAAA,EAEjC;AAEF,EAAA,MAAM,CAACJ,iBAAAA,EAAkBiB,cAAc,CAAA,GAAIhB,oBAAAA,CACzCG,SACA,OACF,CAAA;AAEAS,EAAAA,UAAAA,CAAWK,GAAAA,CAAIb,oBAAoBL,iBAAgB,CAAA;AAEnD,EAAA,IAAIe,OAAAA,EAASF,UAAAA,CAAWK,GAAAA,CAAIX,gBAAAA,EAAkBU,cAAc,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { isCrosschainPossible } from \"@/core/across/isCrosshcainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { jotaiStore } from \"@/core/store\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(limitTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n // token will already be set on new chain, the new token may have been the reason for switchChain\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n // update tokenFrom\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(limitTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n jotaiStore.set(limitTokenToAtom, maybeAcrossToken);\n tokenTo = maybeAcrossToken;\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"limit\",\n });\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n tokenTo = defaultTokenTo;\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(limitTokenToAtom, undefined);\n tokenTo = undefined;\n }\n }\n};\n"],"names":["syncLimitTokensAfterChainSwitch","chainId","enabledSrcChains","jotaiStore","get","enabledSrcChainsAtom","includes","tokenFrom","limitTokenFromAtom","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","set","tokenTo","limitTokenToAtom","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","isTokenFromAcross","token","fromChainId","toChainId","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","selectableDestChains","getSelectableDestChains","undefined"],"mappings":";;;;;;;;;AAaO,MAAMA,+BAAAA,GAAkCA,CAACC,OAAAA,KAA8B;AAC5E,EAAA,MAAMC,gBAAAA,GAAmBC,UAAAA,CAAWC,GAAAA,CAAIC,oBAAoB,CAAA;AAC5D,EAAA,IAAI,CAACH,gBAAAA,CAAiBI,QAAAA,CAASL,OAAO,CAAA,EAAG;AAEzC,EAAA,IAAIM,SAAAA,GAAYJ,UAAAA,CAAWC,GAAAA,CAAII,kBAAkB,CAAA;AAGjD,EAAA,IAAID,SAAAA,CAAUE,YAAYR,OAAAA,EAAS;AAInC,EAAA,MAAM,CAACS,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCX,SACA,OACF,CAAA;AAGAE,EAAAA,UAAAA,CAAWU,GAAAA,CAAIL,oBAAoBE,gBAAgB,CAAA;AACnDH,EAAAA,SAAAA,GAAYG,gBAAAA;AAEZ,EAAA,IAAII,OAAAA,GAAUX,UAAAA,CAAWC,GAAAA,CAAIW,gBAAgB,CAAA;AAG7C,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAME,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,KAAKD,UAAAA,CAAWC,GAAAA;AAAAA,IAChBc,WAAAA,EAAajB,OAAAA;AAAAA,IACbkB,WAAWL,OAAAA,CAAQL,OAAAA;AAAAA,IACnBW,IAAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,IAAIJ,kBAAAA,EAAoB;AACtB,IAAA,MAAMK,sBAAsBC,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOT,OAAAA;AAAAA,MACPU,WAAAA,EAAavB,OAAAA;AAAAA,MACbwB,WAAWX,OAAAA,CAAQL,OAAAA;AAAAA,MACnBW,IAAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,IAAI,CAACC,mBAAAA,EAAqB;AAGxB,MAAA,MAAMK,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDH,WAAAA,EAAavB,OAAAA;AAAAA,QACbwB,WAAWX,OAAAA,CAAQL,OAAAA;AAAAA,QACnBmB,aAAAA,EAAezB,UAAAA,CAAWC,GAAAA,CAAIyB,oBAAoB,CAAA,CAAED,aAAAA;AAAAA,QACpDR,IAAAA,EAAM;AAAA,OACP,CAAA;AAEDjB,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBW,gBAAgB,CAAA;AACjDZ,MAAAA,OAAAA,GAAUY,gBAAAA;AAAAA,IACZ;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAMI,oBAAAA,GAAuBC,uBAAAA,CAAwB5B,UAAAA,CAAWC,GAAAA,EAAK;AAAA,MACnEoB,aAAajB,SAAAA,CAAUE,OAAAA;AAAAA,MACvBW,IAAAA,EAAM;AAAA,KACP,CAAA;AACD,IAAA,IAAIU,oBAAAA,CAAqBxB,QAAAA,CAASL,OAAO,CAAA,EAAG;AAE1CE,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBJ,cAAc,CAAA;AAC/CG,MAAAA,OAAAA,GAAUH,cAAAA;AAAAA,IACZ,CAAA,MAAO;AAELR,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBiB,MAAS,CAAA;AAC1ClB,MAAAA,OAAAA,GAAUkB,MAAAA;AAAAA,IACZ;AAAA,EACF;AACF;;;;"}
@@ -1,6 +1,14 @@
1
- import { TimeUnitObject } from './deadlineAtom';
1
+ import { TimeUnitObject, TimeUnitState } from './deadlineAtom';
2
2
  import { PriceRates } from '../types';
3
3
  export declare function timeUnitToSeconds(timeUnitObj: TimeUnitObject): number;
4
+ export declare function getTimeUnitState(timeUnitObj: TimeUnitObject | TimeUnitState): TimeUnitState;
5
+ export declare function getClosestTimeUnit(timestampS: number): {
6
+ readonly label: "never";
7
+ readonly value: 0;
8
+ } | {
9
+ label: "minutes" | "days" | "hours" | "months";
10
+ value: number;
11
+ };
4
12
  export declare function calculateReceiveAmount(payAmount: string, priceRates: PriceRates, isReversed: boolean): string;
5
13
  export declare function calculatePayAmount(receiveAmount: string, priceRates: PriceRates, isReversed: boolean): string;
6
14
  export declare function calculateRates(receiveAmount: string, payAmount: string): PriceRates;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,UAa5D;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,UAAU,CAYZ;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,UAAU,CAWZ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,UAa5D;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,cAAc,GAAG,aAAa,GAC1C,aAAa,CAWf;AAeD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM;;;;;;EAoBpD;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,UAAU,CAYZ;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,UAAU,CAWZ"}
@@ -1,5 +1,5 @@
1
1
  import Big from 'big.js';
2
- import { zeroRates } from './constants.js';
2
+ import { neverTimeUnit, zeroRates } from './constants.js';
3
3
 
4
4
  function timeUnitToSeconds(timeUnitObj) {
5
5
  switch (timeUnitObj.label) {
@@ -15,6 +15,48 @@ function timeUnitToSeconds(timeUnitObj) {
15
15
  return 0;
16
16
  }
17
17
  }
18
+ function getTimeUnitState(timeUnitObj) {
19
+ if (isTimeUnitState(timeUnitObj)) {
20
+ return timeUnitObj;
21
+ }
22
+ return {
23
+ ...timeUnitObj,
24
+ timestamp: timeUnitObj.label === neverTimeUnit.label ? 0 : Math.floor(Date.now() / 1e3 + timeUnitToSeconds(timeUnitObj))
25
+ };
26
+ }
27
+ function isTimeUnitState(timeUnitObj) {
28
+ return "timestamp" in timeUnitObj && timeUnitObj.timestamp !== void 0;
29
+ }
30
+ const units = [{
31
+ label: "months",
32
+ ms: 30 * 24 * 60 * 60 * 1e3
33
+ }, {
34
+ label: "days",
35
+ ms: 24 * 60 * 60 * 1e3
36
+ }, {
37
+ label: "hours",
38
+ ms: 60 * 60 * 1e3
39
+ }, {
40
+ label: "minutes",
41
+ ms: 60 * 1e3
42
+ }];
43
+ function getClosestTimeUnit(timestampS) {
44
+ if (timestampS <= 0) return neverTimeUnit;
45
+ const timestampMs = timestampS * 1e3;
46
+ const now = Date.now();
47
+ if (timestampMs <= now) return neverTimeUnit;
48
+ const diffMs = timestampMs - now;
49
+ for (const unit of units) {
50
+ const value = Math.floor(diffMs / unit.ms);
51
+ if (value > 0) {
52
+ return {
53
+ label: unit.label,
54
+ value
55
+ };
56
+ }
57
+ }
58
+ return neverTimeUnit;
59
+ }
18
60
  function calculateReceiveAmount(payAmount, priceRates, isReversed) {
19
61
  const pay = Big(payAmount || "0");
20
62
  if (isReversed) {
@@ -62,5 +104,5 @@ function getUpdatedRates(value, isReversed) {
62
104
  return zeroRates;
63
105
  }
64
106
 
65
- export { calculatePayAmount, calculateRates, calculateReceiveAmount, getUpdatedRates, timeUnitToSeconds };
107
+ export { calculatePayAmount, calculateRates, calculateReceiveAmount, getClosestTimeUnit, getTimeUnitState, getUpdatedRates, timeUnitToSeconds };
66
108
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/core/limit/state/utils.ts"],"sourcesContent":["import Big from \"big.js\";\nimport type { TimeUnitObject } from \"./deadlineAtom\";\nimport type { PriceRates } from \"../types\";\nimport { zeroRates } from \"./constants\";\n\nexport function timeUnitToSeconds(timeUnitObj: TimeUnitObject) {\n switch (timeUnitObj.label) {\n case \"minutes\":\n return timeUnitObj.value * 60;\n case \"hours\":\n return timeUnitObj.value * 60 * 60;\n case \"days\":\n return timeUnitObj.value * 60 * 60 * 24;\n case \"months\":\n return timeUnitObj.value * 60 * 60 * 24 * 30;\n default:\n return 0;\n }\n}\n\nexport function calculateReceiveAmount(\n payAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const pay = Big(payAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → receive = pay / price\n const price = Big(priceRates.rateReversed || \"0\");\n if (price.eq(0)) return \"0\";\n return pay.div(price).toFixed();\n }\n\n const price = Big(priceRates.rate || \"0\");\n // normal: price = to/from → receive = pay * price\n return pay.mul(price).toFixed();\n}\n\nexport function calculatePayAmount(\n receiveAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const receive = Big(receiveAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → pay = receive * price\n const price = Big(priceRates.rateReversed || \"0\");\n return receive.mul(price).toFixed();\n }\n\n // normal: pay = receive / price\n const price = Big(priceRates.rate || \"0\");\n if (price.eq(0)) return \"0\";\n return receive.div(price).toFixed();\n}\n\nexport function calculateRates(\n receiveAmount: string,\n payAmount: string\n): PriceRates {\n const receive = Big(receiveAmount || \"0\");\n const pay = Big(payAmount || \"0\");\n\n if (pay.eq(0) || receive.eq(0)) return zeroRates;\n\n // normal: price = to/from → price = receive / pay\n const rate = receive.div(pay).toFixed();\n // reversed: price = from/to → price = pay / receive\n const rateReversed = pay.div(receive).toFixed();\n\n return { rate, rateReversed };\n}\n\nexport function getUpdatedRates(\n value: string,\n isReversed: boolean\n): PriceRates {\n const bigPrice = Big(value || 0);\n if (!bigPrice.eq(0)) {\n const rate = bigPrice.toFixed();\n const rateReversed = Big(1).div(bigPrice).toFixed();\n\n return isReversed\n ? { rate: rateReversed, rateReversed: rate }\n : { rate, rateReversed };\n }\n return zeroRates;\n}\n"],"names":["timeUnitToSeconds","timeUnitObj","label","value","calculateReceiveAmount","payAmount","priceRates","isReversed","pay","Big","price","rateReversed","eq","div","toFixed","rate","mul","calculatePayAmount","receiveAmount","receive","calculateRates","zeroRates","getUpdatedRates","bigPrice"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/core/limit/state/utils.ts"],"sourcesContent":["import Big from \"big.js\";\nimport type { TimeUnitObject, TimeUnitState } from \"./deadlineAtom\";\nimport type { PriceRates } from \"../types\";\nimport { neverTimeUnit, zeroRates } from \"./constants\";\n\nexport function timeUnitToSeconds(timeUnitObj: TimeUnitObject) {\n switch (timeUnitObj.label) {\n case \"minutes\":\n return timeUnitObj.value * 60;\n case \"hours\":\n return timeUnitObj.value * 60 * 60;\n case \"days\":\n return timeUnitObj.value * 60 * 60 * 24;\n case \"months\":\n return timeUnitObj.value * 60 * 60 * 24 * 30;\n default:\n return 0;\n }\n}\n\nexport function getTimeUnitState(\n timeUnitObj: TimeUnitObject | TimeUnitState\n): TimeUnitState {\n if (isTimeUnitState(timeUnitObj)) {\n return timeUnitObj;\n }\n return {\n ...timeUnitObj,\n timestamp:\n timeUnitObj.label === neverTimeUnit.label\n ? 0\n : Math.floor(Date.now() / 1000 + timeUnitToSeconds(timeUnitObj)),\n };\n}\n\nfunction isTimeUnitState(\n timeUnitObj: TimeUnitObject | TimeUnitState\n): timeUnitObj is TimeUnitState {\n return \"timestamp\" in timeUnitObj && timeUnitObj.timestamp !== undefined;\n}\n\nconst units = [\n { label: \"months\", ms: 30 * 24 * 60 * 60 * 1000 },\n { label: \"days\", ms: 24 * 60 * 60 * 1000 },\n { label: \"hours\", ms: 60 * 60 * 1000 },\n { label: \"minutes\", ms: 60 * 1000 },\n] as const;\n\nexport function getClosestTimeUnit(timestampS: number) {\n if (timestampS <= 0) return neverTimeUnit;\n const timestampMs = timestampS * 1000;\n\n const now = Date.now();\n\n if (timestampMs <= now) return neverTimeUnit;\n\n const diffMs = timestampMs - now;\n\n for (const unit of units) {\n const value = Math.floor(diffMs / unit.ms);\n if (value > 0) {\n return {\n label: unit.label,\n value,\n };\n }\n }\n return neverTimeUnit;\n}\n\nexport function calculateReceiveAmount(\n payAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const pay = Big(payAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → receive = pay / price\n const price = Big(priceRates.rateReversed || \"0\");\n if (price.eq(0)) return \"0\";\n return pay.div(price).toFixed();\n }\n\n const price = Big(priceRates.rate || \"0\");\n // normal: price = to/from → receive = pay * price\n return pay.mul(price).toFixed();\n}\n\nexport function calculatePayAmount(\n receiveAmount: string,\n priceRates: PriceRates,\n isReversed: boolean\n) {\n const receive = Big(receiveAmount || \"0\");\n\n if (isReversed) {\n // price = from/to → pay = receive * price\n const price = Big(priceRates.rateReversed || \"0\");\n return receive.mul(price).toFixed();\n }\n\n // normal: pay = receive / price\n const price = Big(priceRates.rate || \"0\");\n if (price.eq(0)) return \"0\";\n return receive.div(price).toFixed();\n}\n\nexport function calculateRates(\n receiveAmount: string,\n payAmount: string\n): PriceRates {\n const receive = Big(receiveAmount || \"0\");\n const pay = Big(payAmount || \"0\");\n\n if (pay.eq(0) || receive.eq(0)) return zeroRates;\n\n // normal: price = to/from → price = receive / pay\n const rate = receive.div(pay).toFixed();\n // reversed: price = from/to → price = pay / receive\n const rateReversed = pay.div(receive).toFixed();\n\n return { rate, rateReversed };\n}\n\nexport function getUpdatedRates(\n value: string,\n isReversed: boolean\n): PriceRates {\n const bigPrice = Big(value || 0);\n if (!bigPrice.eq(0)) {\n const rate = bigPrice.toFixed();\n const rateReversed = Big(1).div(bigPrice).toFixed();\n\n return isReversed\n ? { rate: rateReversed, rateReversed: rate }\n : { rate, rateReversed };\n }\n return zeroRates;\n}\n"],"names":["timeUnitToSeconds","timeUnitObj","label","value","getTimeUnitState","isTimeUnitState","timestamp","neverTimeUnit","Math","floor","Date","now","undefined","units","ms","getClosestTimeUnit","timestampS","timestampMs","diffMs","unit","calculateReceiveAmount","payAmount","priceRates","isReversed","pay","Big","price","rateReversed","eq","div","toFixed","rate","mul","calculatePayAmount","receiveAmount","receive","calculateRates","zeroRates","getUpdatedRates","bigPrice"],"mappings":"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"}
@@ -1,3 +1,12 @@
1
1
  import { UseLimitRateResult } from './types';
2
+ export declare const useDeltaSwapPriceForLimit: ({ enabled, refetchInterval, tradeMode, }: {
3
+ enabled?: boolean;
4
+ refetchInterval?: number;
5
+ tradeMode: "limit" | "otc";
6
+ }) => {
7
+ price: import('@velora-dex/sdk').DeltaPrice | import('@velora-dex/sdk').BridgePrice | undefined;
8
+ isLoading: boolean;
9
+ error: Error | null;
10
+ };
2
11
  export declare const useLimitRate: (tradeMode: "limit" | "otc") => UseLimitRateResult;
3
12
  //# sourceMappingURL=useLimitRate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitRate.d.ts","sourceRoot":"","sources":["../../../src/core/limit/useLimitRate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAmDlD,eAAO,MAAM,YAAY,GACvB,WAAW,OAAO,GAAG,KAAK,KACzB,kBA6DF,CAAC"}
1
+ {"version":3,"file":"useLimitRate.d.ts","sourceRoot":"","sources":["../../../src/core/limit/useLimitRate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAqDlD,eAAO,MAAM,yBAAyB,GAAI,0CAIvC;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,GAAG,KAAK,CAAC;CAC5B;;;;CAkDA,CAAC;AAGF,eAAO,MAAM,YAAY,GACvB,WAAW,OAAO,GAAG,KAAK,KACzB,kBA8FF,CAAC"}