@velora-dex/widget 0.6.0 → 0.6.1-dev.2

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 (517) hide show
  1. package/dist/assets/two-dots.js +32 -0
  2. package/dist/assets/two-dots.js.map +1 -0
  3. package/dist/components/ui/button.d.ts +1 -1
  4. package/dist/components/ui/button.d.ts.map +1 -1
  5. package/dist/components/ui/button.js +1 -0
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
  8. package/dist/components/widget/AppHeader/Activities/hooks.js +54 -54
  9. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  10. package/dist/components/widget/AppHeader/Activities/utils.d.ts +3 -3
  11. package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -1
  12. package/dist/components/widget/AppHeader/Activities/utils.js +27 -27
  13. package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
  14. package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
  15. package/dist/components/widget/AppHeader/TradeModeSwitcher.js +2 -1
  16. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  17. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  18. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +153 -149
  19. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  20. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +1 -1
  21. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
  22. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  23. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +1 -1
  24. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  25. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  26. package/dist/components/widget/Duration/Duration.d.ts +1 -1
  27. package/dist/components/widget/Duration/Duration.d.ts.map +1 -1
  28. package/dist/components/widget/Duration/Duration.js +2 -4
  29. package/dist/components/widget/Duration/Duration.js.map +1 -1
  30. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
  31. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +56 -57
  32. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  33. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts +7 -8
  34. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -1
  35. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +59 -65
  36. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
  37. package/dist/components/widget/LimitOrderItem/types.d.ts +3 -2
  38. package/dist/components/widget/LimitOrderItem/types.d.ts.map +1 -1
  39. package/dist/components/widget/LimitOrderItem/utils.d.ts +2 -2
  40. package/dist/components/widget/LimitOrderItem/utils.d.ts.map +1 -1
  41. package/dist/components/widget/LimitOrderItem/utils.js +22 -19
  42. package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
  43. package/dist/components/widget/NumberInput/NumberInput.d.ts +19 -0
  44. package/dist/components/widget/NumberInput/NumberInput.d.ts.map +1 -0
  45. package/dist/components/widget/NumberInput/NumberInput.js +104 -0
  46. package/dist/components/widget/NumberInput/NumberInput.js.map +1 -0
  47. package/dist/components/widget/NumberInput/assets/arrow-down.js +20 -0
  48. package/dist/components/widget/NumberInput/assets/arrow-down.js.map +1 -0
  49. package/dist/components/widget/NumberInput/assets/arrow-up.js +20 -0
  50. package/dist/components/widget/NumberInput/assets/arrow-up.js.map +1 -0
  51. package/dist/components/widget/OtcOrderItem/utils.d.ts.map +1 -1
  52. package/dist/components/widget/OtcOrderItem/utils.js +4 -2
  53. package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
  54. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  55. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +34 -30
  56. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  57. package/dist/components/widget/SwapRate/SwapRate.d.ts +2 -9
  58. package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
  59. package/dist/components/widget/SwapRate/SwapRate.js +22 -18
  60. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  61. package/dist/components/widget/SwapRate/types.d.ts +13 -0
  62. package/dist/components/widget/SwapRate/types.d.ts.map +1 -0
  63. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts +7 -0
  64. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts.map +1 -0
  65. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js +50 -0
  66. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js.map +1 -0
  67. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  68. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +91 -99
  69. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  70. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +12 -26
  71. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  72. package/dist/components/widget/TradeOverview/TradeComplete/constants.d.ts.map +1 -1
  73. package/dist/components/widget/TradeOverview/TradeComplete/constants.js +2 -1
  74. package/dist/components/widget/TradeOverview/TradeComplete/constants.js.map +1 -1
  75. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.d.ts.map +1 -1
  76. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +77 -55
  77. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  78. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  79. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +80 -63
  80. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  81. package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts +7 -2
  82. package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts.map +1 -1
  83. package/dist/components/widget/TradeOverview/TradeOverviewScreen.js +20 -15
  84. package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -1
  85. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts +15 -0
  86. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -0
  87. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js +112 -0
  88. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -0
  89. package/dist/components/widget/TradeOverview/steps.d.ts +37 -4
  90. package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
  91. package/dist/components/widget/TradeOverview/steps.js +17 -5
  92. package/dist/components/widget/TradeOverview/steps.js.map +1 -1
  93. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +4 -2
  94. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
  95. package/dist/components/widget/TradeOverview/tradeFlowContext.js +1 -1
  96. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  97. package/dist/components/widget/Twap/CustomDurationDrawer.d.ts +7 -0
  98. package/dist/components/widget/Twap/CustomDurationDrawer.d.ts.map +1 -0
  99. package/dist/components/widget/Twap/CustomDurationDrawer.js +150 -0
  100. package/dist/components/widget/Twap/CustomDurationDrawer.js.map +1 -0
  101. package/dist/components/widget/Twap/OrderDuration.d.ts +11 -0
  102. package/dist/components/widget/Twap/OrderDuration.d.ts.map +1 -0
  103. package/dist/components/widget/Twap/OrderDuration.js +92 -0
  104. package/dist/components/widget/Twap/OrderDuration.js.map +1 -0
  105. package/dist/components/widget/Twap/OrderSplit.d.ts +2 -0
  106. package/dist/components/widget/Twap/OrderSplit.d.ts.map +1 -0
  107. package/dist/components/widget/Twap/OrderSplit.js +40 -0
  108. package/dist/components/widget/Twap/OrderSplit.js.map +1 -0
  109. package/dist/components/widget/Twap/RateProtection.d.ts +2 -0
  110. package/dist/components/widget/Twap/RateProtection.d.ts.map +1 -0
  111. package/dist/components/widget/Twap/RateProtection.js +42 -0
  112. package/dist/components/widget/Twap/RateProtection.js.map +1 -0
  113. package/dist/components/widget/Twap/TwapDetailWithTooltip.d.ts +3 -0
  114. package/dist/components/widget/Twap/TwapDetailWithTooltip.d.ts.map +1 -0
  115. package/dist/components/widget/Twap/TwapDetailWithTooltip.js +21 -0
  116. package/dist/components/widget/Twap/TwapDetailWithTooltip.js.map +1 -0
  117. package/dist/configurator/Configurator.d.ts.map +1 -1
  118. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
  119. package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -1
  120. package/dist/core/TradeFlowScreenButton.d.ts +5 -0
  121. package/dist/core/TradeFlowScreenButton.d.ts.map +1 -1
  122. package/dist/core/TradeFlowScreenButton.js +25 -1
  123. package/dist/core/TradeFlowScreenButton.js.map +1 -1
  124. package/dist/core/TwapDetails.d.ts +2 -0
  125. package/dist/core/TwapDetails.d.ts.map +1 -0
  126. package/dist/core/TwapDetails.js +15 -0
  127. package/dist/core/TwapDetails.js.map +1 -0
  128. package/dist/core/Warnings.d.ts +2 -1
  129. package/dist/core/Warnings.d.ts.map +1 -1
  130. package/dist/core/Warnings.js +143 -92
  131. package/dist/core/Warnings.js.map +1 -1
  132. package/dist/core/across/isCrosschainPossible.d.ts +1 -1
  133. package/dist/core/across/isCrosschainPossible.d.ts.map +1 -1
  134. package/dist/core/across/isCrosschainPossible.js +1 -1
  135. package/dist/core/across/isCrosschainPossible.js.map +1 -1
  136. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +1 -0
  137. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  138. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +110 -77
  139. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  140. package/dist/core/constants.d.ts +1 -1
  141. package/dist/core/index.d.ts.map +1 -1
  142. package/dist/core/index.js +377 -283
  143. package/dist/core/index.js.map +1 -1
  144. package/dist/core/inputs/hooks/types.d.ts +1 -1
  145. package/dist/core/inputs/hooks/types.d.ts.map +1 -1
  146. package/dist/core/inputs/hooks/useTokenFromInputProps.js +7 -7
  147. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  148. package/dist/core/inputs/hooks/useTokenToInputProps.js +108 -124
  149. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  150. package/dist/core/inputs/hooks/useWarningMessage.d.ts +10 -0
  151. package/dist/core/inputs/hooks/useWarningMessage.d.ts.map +1 -0
  152. package/dist/core/inputs/hooks/useWarningMessage.js +30 -0
  153. package/dist/core/inputs/hooks/useWarningMessage.js.map +1 -0
  154. package/dist/core/inputs/state/common.d.ts +4 -0
  155. package/dist/core/inputs/state/common.d.ts.map +1 -1
  156. package/dist/core/inputs/state/common.js +96 -55
  157. package/dist/core/inputs/state/common.js.map +1 -1
  158. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  159. package/dist/core/inputs/state/setTokenByAddressAtom.js +77 -79
  160. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  161. package/dist/core/limit/state/utils.d.ts +1 -1
  162. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  163. package/dist/core/limit/useLimitRate.js +0 -2
  164. package/dist/core/limit/useLimitRate.js.map +1 -1
  165. package/dist/core/limit/useLimitTokenFromInputProps.js +41 -41
  166. package/dist/core/limit/useLimitTokenToInputProps.js +45 -45
  167. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  168. package/dist/core/otc/useOtcTokenFromInputProps.js +39 -39
  169. package/dist/core/otc/useOtcTokenToInputProps.js +4 -4
  170. package/dist/core/state/chainToAtom.d.ts +2 -0
  171. package/dist/core/state/chainToAtom.d.ts.map +1 -1
  172. package/dist/core/state/chainToAtom.js +39 -18
  173. package/dist/core/state/chainToAtom.js.map +1 -1
  174. package/dist/core/state/configAtom.js +2 -2
  175. package/dist/core/state/configAtom.js.map +1 -1
  176. package/dist/core/state/configEffectAtom.d.ts.map +1 -1
  177. package/dist/core/state/configEffectAtom.js +18 -19
  178. package/dist/core/state/configEffectAtom.js.map +1 -1
  179. package/dist/core/state/tradeModeAtom.d.ts +1 -1
  180. package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
  181. package/dist/core/state/tradeModeAtom.js.map +1 -1
  182. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  183. package/dist/core/state/widgetEventsAtom.js +49 -31
  184. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  185. package/dist/core/swapDetails/priceImpact.d.ts +2 -2
  186. package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
  187. package/dist/core/swapDetails/priceImpact.js.map +1 -1
  188. package/dist/core/swapDetails/types.d.ts +4 -0
  189. package/dist/core/swapDetails/types.d.ts.map +1 -0
  190. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  191. package/dist/core/swapDetails/useSwapDetailsListProps.js +78 -106
  192. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  193. package/dist/core/twap/state/constants.d.ts +26 -0
  194. package/dist/core/twap/state/constants.d.ts.map +1 -0
  195. package/dist/core/twap/state/constants.js +23 -0
  196. package/dist/core/twap/state/constants.js.map +1 -0
  197. package/dist/core/twap/state/currentTwapInputAtom.d.ts +4 -0
  198. package/dist/core/twap/state/currentTwapInputAtom.d.ts.map +1 -0
  199. package/dist/core/twap/state/currentTwapInputAtom.js +7 -0
  200. package/dist/core/twap/state/currentTwapInputAtom.js.map +1 -0
  201. package/dist/core/twap/state/isCrosschainAtom.d.ts +3 -0
  202. package/dist/core/twap/state/isCrosschainAtom.d.ts.map +1 -0
  203. package/dist/core/twap/state/isCrosschainAtom.js +12 -0
  204. package/dist/core/twap/state/isCrosschainAtom.js.map +1 -0
  205. package/dist/core/twap/state/selectedTokenActionsAtom.d.ts +13 -0
  206. package/dist/core/twap/state/selectedTokenActionsAtom.d.ts.map +1 -0
  207. package/dist/core/twap/state/selectedTokenActionsAtom.js +114 -0
  208. package/dist/core/twap/state/selectedTokenActionsAtom.js.map +1 -0
  209. package/dist/core/twap/state/twapInputAmountAtom.d.ts +9 -0
  210. package/dist/core/twap/state/twapInputAmountAtom.d.ts.map +1 -0
  211. package/dist/core/twap/state/twapInputAmountAtom.js +15 -0
  212. package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -0
  213. package/dist/core/twap/state/twapParamsAtom.d.ts +25 -0
  214. package/dist/core/twap/state/twapParamsAtom.d.ts.map +1 -0
  215. package/dist/core/twap/state/twapParamsAtom.js +19 -0
  216. package/dist/core/twap/state/twapParamsAtom.js.map +1 -0
  217. package/dist/core/twap/state/twapReceiverAddressAtom.d.ts +5 -0
  218. package/dist/core/twap/state/twapReceiverAddressAtom.d.ts.map +1 -0
  219. package/dist/core/twap/state/twapReceiverAddressAtom.js +8 -0
  220. package/dist/core/twap/state/twapReceiverAddressAtom.js.map +1 -0
  221. package/dist/core/twap/state/twapSideAtom.d.ts +4 -0
  222. package/dist/core/twap/state/twapSideAtom.d.ts.map +1 -0
  223. package/dist/core/twap/state/twapSideAtom.js +14 -0
  224. package/dist/core/twap/state/twapSideAtom.js.map +1 -0
  225. package/dist/core/twap/state/twapTokenAtoms.d.ts +10 -0
  226. package/dist/core/twap/state/twapTokenAtoms.d.ts.map +1 -0
  227. package/dist/core/twap/state/twapTokenAtoms.js +10 -0
  228. package/dist/core/twap/state/twapTokenAtoms.js.map +1 -0
  229. package/dist/core/twap/twapDetails/minimumReceiveable.d.ts +12 -0
  230. package/dist/core/twap/twapDetails/minimumReceiveable.d.ts.map +1 -0
  231. package/dist/core/twap/twapDetails/minimumReceiveable.js +33 -0
  232. package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -0
  233. package/dist/core/twap/useTwapDetailsListProps.d.ts +3 -0
  234. package/dist/core/twap/useTwapDetailsListProps.d.ts.map +1 -0
  235. package/dist/core/twap/useTwapDetailsListProps.js +81 -0
  236. package/dist/core/twap/useTwapDetailsListProps.js.map +1 -0
  237. package/dist/core/twap/useTwapTokenFromInputProps.d.ts +9 -0
  238. package/dist/core/twap/useTwapTokenFromInputProps.d.ts.map +1 -0
  239. package/dist/core/twap/useTwapTokenFromInputProps.js +165 -0
  240. package/dist/core/twap/useTwapTokenFromInputProps.js.map +1 -0
  241. package/dist/core/twap/useTwapTokenSwitcherProps.d.ts +3 -0
  242. package/dist/core/twap/useTwapTokenSwitcherProps.d.ts.map +1 -0
  243. package/dist/core/twap/useTwapTokenSwitcherProps.js +19 -0
  244. package/dist/core/twap/useTwapTokenSwitcherProps.js.map +1 -0
  245. package/dist/core/twap/useTwapTokenToInputProps.d.ts +10 -0
  246. package/dist/core/twap/useTwapTokenToInputProps.d.ts.map +1 -0
  247. package/dist/core/twap/useTwapTokenToInputProps.js +114 -0
  248. package/dist/core/twap/useTwapTokenToInputProps.js.map +1 -0
  249. package/dist/events/effects/formInput.d.ts +3 -0
  250. package/dist/events/effects/formInput.d.ts.map +1 -1
  251. package/dist/events/effects/formInput.js +16 -9
  252. package/dist/events/effects/formInput.js.map +1 -1
  253. package/dist/events/getters/twap.d.ts +6 -0
  254. package/dist/events/getters/twap.d.ts.map +1 -0
  255. package/dist/events/getters/twap.js +57 -0
  256. package/dist/events/getters/twap.js.map +1 -0
  257. package/dist/events/getters/widgetState.d.ts.map +1 -1
  258. package/dist/events/getters/widgetState.js +9 -7
  259. package/dist/events/getters/widgetState.js.map +1 -1
  260. package/dist/events/hooks/useActivateEffects.d.ts.map +1 -1
  261. package/dist/events/hooks/useActivateEffects.js +4 -4
  262. package/dist/events/hooks/useActivateEffects.js.map +1 -1
  263. package/dist/events/types/common.d.ts +8 -0
  264. package/dist/events/types/common.d.ts.map +1 -1
  265. package/dist/events/types/formInput.d.ts +11 -2
  266. package/dist/events/types/formInput.d.ts.map +1 -1
  267. package/dist/events/types/index.d.ts +4 -1
  268. package/dist/events/types/index.d.ts.map +1 -1
  269. package/dist/events/types/limit.d.ts +2 -2
  270. package/dist/events/types/limit.d.ts.map +1 -1
  271. package/dist/events/types/swap.d.ts +3 -2
  272. package/dist/events/types/swap.d.ts.map +1 -1
  273. package/dist/events/types/twap.d.ts +26 -0
  274. package/dist/events/types/twap.d.ts.map +1 -0
  275. package/dist/hooks/batch/useSendBatchTx.d.ts +1 -1
  276. package/dist/hooks/batch/useSendBatchTx.d.ts.map +1 -1
  277. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  278. package/dist/hooks/permit/utils/deadlines.d.ts +0 -3
  279. package/dist/hooks/permit/utils/deadlines.d.ts.map +1 -1
  280. package/dist/hooks/permit/utils/deadlines.js +5 -12
  281. package/dist/hooks/permit/utils/deadlines.js.map +1 -1
  282. package/dist/hooks/swap/prices/constants.d.ts +1 -0
  283. package/dist/hooks/swap/prices/constants.d.ts.map +1 -1
  284. package/dist/hooks/swap/prices/constants.js +2 -1
  285. package/dist/hooks/swap/prices/constants.js.map +1 -1
  286. package/dist/hooks/swap/prices/delta/bridge/utils.js +9 -12
  287. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  288. package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.d.ts +19 -0
  289. package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.d.ts.map +1 -0
  290. package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js +42 -0
  291. package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js.map +1 -0
  292. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts +37 -0
  293. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -0
  294. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js +77 -0
  295. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -0
  296. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.d.ts +69 -0
  297. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.d.ts.map +1 -0
  298. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js +121 -0
  299. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +1 -0
  300. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts +15 -0
  301. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -0
  302. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js +42 -0
  303. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -0
  304. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.d.ts +60 -0
  305. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.d.ts.map +1 -0
  306. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js +135 -0
  307. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +1 -0
  308. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts +18 -0
  309. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts.map +1 -0
  310. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +39 -0
  311. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -0
  312. package/dist/hooks/swap/prices/delta/mutations/types.d.ts +12 -1
  313. package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -1
  314. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +2 -5
  315. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
  316. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
  317. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +2 -3
  318. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  319. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +1 -1
  320. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
  321. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +6 -6
  322. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  323. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  324. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +2 -2
  325. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -1
  326. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
  327. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +3 -3
  328. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
  329. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +16 -22
  330. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
  331. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +4 -4
  332. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  333. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +81 -78
  334. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
  335. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +17 -6
  336. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
  337. package/dist/hooks/swap/prices/delta/mutations/utils.js +34 -12
  338. package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
  339. package/dist/hooks/swap/prices/delta/orders/types.d.ts +22 -46
  340. package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
  341. package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts +2 -2
  342. package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts.map +1 -1
  343. package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -1
  344. package/dist/hooks/swap/prices/delta/orders/unposted/types.d.ts +6 -5
  345. package/dist/hooks/swap/prices/delta/orders/unposted/types.d.ts.map +1 -1
  346. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +67 -1
  347. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -1
  348. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js +32 -22
  349. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
  350. package/dist/hooks/swap/prices/delta/orders/utils.d.ts +45 -16
  351. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  352. package/dist/hooks/swap/prices/delta/orders/utils.js +121 -21
  353. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  354. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
  355. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +1 -1
  356. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -1
  357. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +0 -1
  358. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -1
  359. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
  360. package/dist/hooks/swap/prices/delta/queries/errors.d.ts +10 -2
  361. package/dist/hooks/swap/prices/delta/queries/errors.d.ts.map +1 -1
  362. package/dist/hooks/swap/prices/delta/queries/errors.js +9 -5
  363. package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
  364. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts +5 -6
  365. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts.map +1 -1
  366. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  367. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +6 -6
  368. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  369. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +62 -61
  370. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  371. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +15 -19
  372. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  373. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +63 -72
  374. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  375. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
  376. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +56 -55
  377. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  378. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
  379. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
  380. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  381. package/dist/hooks/swap/prices/usePricesParams.js +9 -10
  382. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  383. package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -0
  384. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  385. package/dist/hooks/swap/prices/useSwapPrices.js +115 -112
  386. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  387. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts +1 -1
  388. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts.map +1 -1
  389. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  390. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts +16 -0
  391. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts.map +1 -0
  392. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js +31 -0
  393. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -0
  394. package/dist/hooks/swap/prices/useTwapPrices.d.ts +45 -0
  395. package/dist/hooks/swap/prices/useTwapPrices.d.ts.map +1 -0
  396. package/dist/hooks/swap/prices/useTwapPrices.js +98 -0
  397. package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -0
  398. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts +48 -0
  399. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts.map +1 -0
  400. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js +55 -0
  401. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -0
  402. package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.d.ts +50 -0
  403. package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.d.ts.map +1 -0
  404. package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js +59 -0
  405. package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js.map +1 -0
  406. package/dist/hooks/swap/tradeFlow/common/types.d.ts +4 -2
  407. package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
  408. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +2 -0
  409. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  410. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +14 -13
  411. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  412. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +6 -6
  413. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -1
  414. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +114 -126
  415. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
  416. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +7 -7
  417. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
  418. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +132 -143
  419. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
  420. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +2 -1
  421. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
  422. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +91 -91
  423. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  424. package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
  425. package/dist/hooks/swap/tradeFlow/common/utils.js +1 -1
  426. package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
  427. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +8 -9
  428. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  429. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +129 -134
  430. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  431. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -7
  432. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  433. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +181 -178
  434. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  435. package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts +91 -0
  436. package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts.map +1 -0
  437. package/dist/hooks/swap/tradeFlow/useTwapFlow.js +368 -0
  438. package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -0
  439. package/dist/hooks/swap/tradeFlow/useTwapSwapStep.d.ts +25 -0
  440. package/dist/hooks/swap/tradeFlow/useTwapSwapStep.d.ts.map +1 -0
  441. package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js +84 -0
  442. package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js.map +1 -0
  443. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
  444. package/dist/hooks/tokens/prices/queries.js +12 -12
  445. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +1 -1
  446. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  447. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  448. package/dist/hooks/tokens/useTokensFromAcross.d.ts +1 -1
  449. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  450. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  451. package/dist/hooks/useBridgeInfo.d.ts +1 -1
  452. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  453. package/dist/hooks/useBridgeInfo.js.map +1 -1
  454. package/dist/hooks/useIsCrosschainPossible.d.ts +1 -1
  455. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
  456. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  457. package/dist/hooks/useSDK.d.ts +4 -4
  458. package/dist/hooks/useSDK.d.ts.map +1 -1
  459. package/dist/hooks/useSDK.js +30 -30
  460. package/dist/hooks/useSDK.js.map +1 -1
  461. package/dist/hooks/useSelectableDestChains.d.ts +1 -1
  462. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
  463. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  464. package/dist/hooks/useSlippage.d.ts.map +1 -1
  465. package/dist/hooks/useSlippage.js +14 -13
  466. package/dist/hooks/useSlippage.js.map +1 -1
  467. package/dist/index.d.ts +2 -2
  468. package/dist/index.d.ts.map +1 -1
  469. package/dist/lib/constants/delta.d.ts.map +1 -1
  470. package/dist/lib/constants/delta.js +1 -1
  471. package/dist/lib/constants/delta.js.map +1 -1
  472. package/dist/lib/constants/time.d.ts +2 -0
  473. package/dist/lib/constants/time.d.ts.map +1 -1
  474. package/dist/lib/constants/time.js +2 -2
  475. package/dist/lib/constants/time.js.map +1 -1
  476. package/dist/lib/queryClient.js +1 -1
  477. package/dist/lib/queryClient.js.map +1 -1
  478. package/dist/lib/tradeMode.d.ts +9 -1
  479. package/dist/lib/tradeMode.d.ts.map +1 -1
  480. package/dist/lib/tradeMode.js +9 -4
  481. package/dist/lib/tradeMode.js.map +1 -1
  482. package/dist/lib/utils/delta.d.ts +10 -0
  483. package/dist/lib/utils/delta.d.ts.map +1 -1
  484. package/dist/lib/utils/delta.js +31 -18
  485. package/dist/lib/utils/delta.js.map +1 -1
  486. package/dist/lib/utils/index.d.ts +22 -0
  487. package/dist/lib/utils/index.d.ts.map +1 -1
  488. package/dist/lib/utils/index.js +27 -15
  489. package/dist/lib/utils/index.js.map +1 -1
  490. package/dist/lib/utils/scaleFactor.d.ts +3 -0
  491. package/dist/lib/utils/scaleFactor.d.ts.map +1 -0
  492. package/dist/lib/utils/scaleFactor.js +13 -0
  493. package/dist/lib/utils/scaleFactor.js.map +1 -0
  494. package/dist/lib/utils/time.d.ts +2 -0
  495. package/dist/lib/utils/time.d.ts.map +1 -1
  496. package/dist/lib/utils/time.js +7 -1
  497. package/dist/lib/utils/time.js.map +1 -1
  498. package/dist/lib/utils/toasts.d.ts +3 -4
  499. package/dist/lib/utils/toasts.d.ts.map +1 -1
  500. package/dist/lib/utils/toasts.js.map +1 -1
  501. package/dist/lib/utils/twap.d.ts +24 -0
  502. package/dist/lib/utils/twap.d.ts.map +1 -0
  503. package/dist/lib/utils/twap.js +34 -0
  504. package/dist/lib/utils/twap.js.map +1 -0
  505. package/dist/lib/web3/privy/config.js +1 -1
  506. package/dist/lib/web3/privy/config.js.map +1 -1
  507. package/dist/lib/web3/wagmi/config.js +1 -1
  508. package/dist/lib/web3/wagmi/config.js.map +1 -1
  509. package/dist/styles.css +1 -1
  510. package/dist/tokens/defaultTokens.js.map +1 -1
  511. package/dist/transactions/types.d.ts +4 -4
  512. package/dist/transactions/types.d.ts.map +1 -1
  513. package/package.json +2 -2
  514. package/dist/hooks/swap/prices/delta/queries/utils.d.ts +0 -4
  515. package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +0 -1
  516. package/dist/hooks/swap/prices/delta/queries/utils.js +0 -15
  517. package/dist/hooks/swap/prices/delta/queries/utils.js.map +0 -1
@@ -1,103 +1,144 @@
1
1
  import { useAtomValue as e } from "../../store.js";
2
- import { swapTokenFromAtom as t, swapTokenToAtom as n } from "./selectedTokenAtom.js";
3
- import { payInputAmountAtom as r, payInputAmountWeiAtom as i, receiveInputAmountAtom as a, receiveInputAmountWeiAtom as o } from "./inputAmountAtom.js";
4
- import { limitTokenFromAtom as s, limitTokenToAtom as c } from "../../limit/state/limitTokenAtoms.js";
5
- import { limitPayInputAmountAtom as l, limitPayInputAmountWeiAtom as u, limitReceiveInputAmountAtom as d, limitReceiveInputAmountWeiAtom as f } from "../../limit/state/limitInputAmountAtom.js";
2
+ import { currentSwapInputAtom as t } from "../../state/currentSwapInputAtom.js";
3
+ import { swapTokenFromAtom as n, swapTokenToAtom as r } from "./selectedTokenAtom.js";
4
+ import { payInputAmountAtom as i, payInputAmountWeiAtom as a, receiveInputAmountAtom as o, receiveInputAmountWeiAtom as s } from "./inputAmountAtom.js";
5
+ import { swapSideAtom as c } from "../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js";
6
+ import { limitTokenFromAtom as l, limitTokenToAtom as u } from "../../limit/state/limitTokenAtoms.js";
7
+ import { limitPayInputAmountAtom as d, limitPayInputAmountWeiAtom as ee, limitReceiveInputAmountAtom as te, limitReceiveInputAmountWeiAtom as f } from "../../limit/state/limitInputAmountAtom.js";
6
8
  import { timeUnitAtom as p } from "../../limit/state/deadlineAtom.js";
7
9
  import { timeUnitAtom as m } from "../../otc/state/deadlineAtom.js";
8
10
  import { otcTokenFromAtom as h, otcTokenToAtom as g, syncOtcTokensAfterChainSwitch as _ } from "../../otc/state/selectedTokenAtom.js";
9
11
  import { otcPayInputAmountAtom as v, otcPayInputAmountWeiAtom as y, otcReceiveInputAmountAtom as b, otcReceiveInputAmountWeiAtom as x } from "../../otc/state/otcInputAmountAtom.js";
10
- import { isCrossChainAtom as S } from "../../state/isCrosschainAtom.js";
11
- import { isLimitCrossChainAtom as C } from "../../limit/state/isCrosschainAtom.js";
12
- import { selectSwapTokenFromAtom as w, selectSwapTokenToAtom as T, syncSwapTokensAfterChainSwitch as E } from "./selectedTokenActionsAtom.js";
13
- import { syncLimitTokensAfterChainSwitch as D } from "../../limit/state/selectedTokenAtom.js";
14
- import { setLimitPayAmountAtomFromProps as O, setLimitReceiveAmountAtomFromProps as k } from "../../limit/state/limitInputActionsAtom.js";
15
- import { selectLimitTokenFromAtom as A, selectLimitTokenToAtom as j } from "../../limit/state/selectedTokenActionsAtom.js";
16
- import { setOtcPayAmountAtomFromProps as M, setOtcReceiveAmountAtomFromProps as N } from "../../otc/state/otcInputActionsAtom.js";
17
- import { selectOtcTokenFromAtom as P, selectOtcTokenToAtom as F } from "../../otc/state/selectedTokenActionsAtom.js";
18
- import { c as I } from "react-compiler-runtime";
19
- import { atom as L } from "jotai";
12
+ import { twapTokenFromAtom as S, twapTokenToAtom as C } from "../../twap/state/twapTokenAtoms.js";
13
+ import { currentTwapInputAtom as w } from "../../twap/state/currentTwapInputAtom.js";
14
+ import { isTwapCrossChainAtom as T } from "../../twap/state/isCrosschainAtom.js";
15
+ import { twapSideAtom as E } from "../../twap/state/twapSideAtom.js";
16
+ import { twapPayInputAmountAtom as D, twapPayInputAmountWeiAtom as O, twapReceiveInputAmountAtom as k, twapReceiveInputAmountWeiAtom as A } from "../../twap/state/twapInputAmountAtom.js";
17
+ import { isCrossChainAtom as j } from "../../state/isCrosschainAtom.js";
18
+ import { isLimitCrossChainAtom as M } from "../../limit/state/isCrosschainAtom.js";
19
+ import { selectSwapTokenFromAtom as N, selectSwapTokenToAtom as P, syncSwapTokensAfterChainSwitch as F } from "./selectedTokenActionsAtom.js";
20
+ import { syncLimitTokensAfterChainSwitch as ne } from "../../limit/state/selectedTokenAtom.js";
21
+ import { selectTwapTokenFromAtom as I, selectTwapTokenToAtom as L, syncTwapTokensAfterChainSwitch as R } from "../../twap/state/selectedTokenActionsAtom.js";
22
+ import { setLimitPayAmountAtomFromProps as z, setLimitReceiveAmountAtomFromProps as B } from "../../limit/state/limitInputActionsAtom.js";
23
+ import { selectLimitTokenFromAtom as V, selectLimitTokenToAtom as H } from "../../limit/state/selectedTokenActionsAtom.js";
24
+ import { setOtcPayAmountAtomFromProps as U, setOtcReceiveAmountAtomFromProps as W } from "../../otc/state/otcInputActionsAtom.js";
25
+ import { selectOtcTokenFromAtom as G, selectOtcTokenToAtom as K } from "../../otc/state/selectedTokenActionsAtom.js";
26
+ import { c as q } from "react-compiler-runtime";
27
+ import { atom as J } from "jotai";
20
28
  //#region src/core/inputs/state/common.ts
21
- function R(e) {
22
- E(e), D(e), _(e);
29
+ function Y(e) {
30
+ F(e), ne(e), _(e), R(e);
23
31
  }
24
- var z = {
32
+ var X = {
33
+ sellAtom: J(() => "SELL"),
34
+ falseAtom: J(() => !1),
35
+ currentInputAtom: J("from", () => void 0)
36
+ }, Z = {
25
37
  swap: {
26
- read: r,
27
- write: r
38
+ read: i,
39
+ write: i
28
40
  },
29
41
  limit: {
30
- read: l,
31
- write: O
42
+ read: d,
43
+ write: z
32
44
  },
33
45
  otc: {
34
46
  read: v,
35
- write: M
47
+ write: U
48
+ },
49
+ twap: {
50
+ read: D,
51
+ write: D
36
52
  }
37
- }, B = {
53
+ }, re = {
38
54
  swap: {
39
- read: a,
40
- write: a
55
+ read: o,
56
+ write: o
41
57
  },
42
58
  limit: {
43
- read: d,
44
- write: k
59
+ read: te,
60
+ write: B
45
61
  },
46
62
  otc: {
47
63
  read: b,
48
- write: N
64
+ write: W
65
+ },
66
+ twap: {
67
+ read: k,
68
+ write: k
49
69
  }
50
- }, V = {
70
+ }, ie = {
51
71
  limit: p,
52
72
  otc: m
53
- }, H = {
54
- swap: i,
55
- limit: u,
56
- otc: y
57
- }, U = {
58
- swap: o,
73
+ }, ae = {
74
+ swap: a,
75
+ limit: ee,
76
+ otc: y,
77
+ twap: O
78
+ }, oe = {
79
+ swap: s,
59
80
  limit: f,
60
- otc: x
61
- }, W = {
81
+ otc: x,
82
+ twap: A
83
+ }, Q = {
62
84
  swap: {
63
- tokenFromAtom: t,
64
- tokenToAtom: n,
65
- isCrossChainAtom: S
85
+ tokenFromAtom: n,
86
+ tokenToAtom: r,
87
+ isCrossChainAtom: j
66
88
  },
67
89
  limit: {
68
- tokenFromAtom: s,
69
- tokenToAtom: c,
70
- isCrossChainAtom: C
90
+ tokenFromAtom: l,
91
+ tokenToAtom: u,
92
+ isCrossChainAtom: M
71
93
  },
72
94
  otc: {
73
95
  tokenFromAtom: h,
74
96
  tokenToAtom: g,
75
- isCrossChainAtom: L(() => !1)
97
+ isCrossChainAtom: X.falseAtom
98
+ },
99
+ twap: {
100
+ tokenFromAtom: S,
101
+ tokenToAtom: C,
102
+ isCrossChainAtom: T
76
103
  }
77
- }, G = {
104
+ }, $ = {
78
105
  swap: {
79
- tokenFromAtom: w,
80
- tokenToAtom: T
106
+ tokenFromAtom: N,
107
+ tokenToAtom: P
81
108
  },
82
109
  limit: {
83
- tokenFromAtom: A,
84
- tokenToAtom: j
110
+ tokenFromAtom: V,
111
+ tokenToAtom: H
85
112
  },
86
113
  otc: {
87
- tokenFromAtom: P,
88
- tokenToAtom: F
114
+ tokenFromAtom: G,
115
+ tokenToAtom: K
116
+ },
117
+ twap: {
118
+ tokenFromAtom: I,
119
+ tokenToAtom: L
89
120
  }
90
- }, K = {
121
+ }, se = {
122
+ swap: c,
123
+ twap: E,
124
+ limit: X.sellAtom,
125
+ otc: X.sellAtom
126
+ }, ce = {
127
+ swap: t,
128
+ twap: w,
129
+ limit: X.currentInputAtom,
130
+ otc: X.currentInputAtom
131
+ }, le = {
91
132
  SELL: "from",
92
133
  BUY: "to"
93
- }, q = (t) => {
94
- let n = I(3), { tokenFromAtom: r, tokenToAtom: i } = W[t], a = e(r), o = e(i), s;
134
+ }, ue = (t) => {
135
+ let n = q(3), { tokenFromAtom: r, tokenToAtom: i } = Q[t], a = e(r), o = e(i), s;
95
136
  return n[0] !== a || n[1] !== o ? (s = {
96
137
  tokenFrom: a,
97
138
  tokenTo: o
98
139
  }, n[0] = a, n[1] = o, n[2] = s) : s = n[2], s;
99
140
  };
100
141
  //#endregion
101
- export { K as sideToInputType, R as syncTokensAfterChainSwitch, z as tradeModeToPayAmountUnitAtom, H as tradeModeToPayAmountWeiAtom, B as tradeModeToReceiveAmountUnitAtom, U as tradeModeToReceiveAmountWeiAtom, G as tradeModeToSetTokenAtoms, V as tradeModeToTimeUnitAtom, W as tradeModeToTokenAtoms, q as useWidgetTokens };
142
+ export { le as sideToInputType, Y as syncTokensAfterChainSwitch, ce as tradeModeToCurrentInputAtom, Z as tradeModeToPayAmountUnitAtom, ae as tradeModeToPayAmountWeiAtom, re as tradeModeToReceiveAmountUnitAtom, oe as tradeModeToReceiveAmountWeiAtom, $ as tradeModeToSetTokenAtoms, se as tradeModeToSideAtom, ie as tradeModeToTimeUnitAtom, Q as tradeModeToTokenAtoms, ue as useWidgetTokens };
102
143
 
103
144
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":["selectSwapTokenFromAtom","selectSwapTokenToAtom","syncSwapTokensAfterChainSwitch","swapTokenFromAtom","swapTokenToAtom","syncLimitTokensAfterChainSwitch","limitTokenFromAtom","limitTokenToAtom","otcTokenFromAtom","otcTokenToAtom","syncOtcTokensAfterChainSwitch","TradeMode","SupportedChainId","payInputAmountAtom","payInputAmountWeiAtom","receiveInputAmountAtom","receiveInputAmountWeiAtom","limitPayInputAmountAtom","limitPayInputAmountWeiAtom","limitReceiveInputAmountAtom","limitReceiveInputAmountWeiAtom","otcPayInputAmountAtom","otcPayInputAmountWeiAtom","otcReceiveInputAmountAtom","otcReceiveInputAmountWeiAtom","atom","PrimitiveAtom","useAtomValue","selectLimitTokenFromAtom","selectLimitTokenToAtom","selectOtcTokenFromAtom","selectOtcTokenToAtom","setLimitPayAmountAtomFromProps","setLimitReceiveAmountAtomFromProps","setOtcPayAmountAtomFromProps","setOtcReceiveAmountAtomFromProps","limitDeadline","otcDeadline","SwapSideUnion","isCrossChainAtom","isSwapCrossChainAtom","isLimitCrossChainAtom","syncTokensAfterChainSwitch","chainId","tradeModeToPayAmountUnitAtom","Record","read","Pick","write","swap","limit","otc","tradeModeToReceiveAmountUnitAtom","tradeModeToTimeUnitAtom","timeUnitAtom","tradeModeToPayAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","tradeModeToTokenAtoms","tokenFromAtom","tokenToAtom","tradeModeToSetTokenAtoms","sideToInputType","SELL","BUY","const","useWidgetTokens","tradeMode","$","_c","tokenFrom","tokenTo","t0"],"sources":["../../../../src/core/inputs/state/common.ts"],"sourcesContent":["import {\n selectSwapTokenFromAtom,\n selectSwapTokenToAtom,\n syncSwapTokensAfterChainSwitch,\n} from \"./selectedTokenActionsAtom\";\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { syncLimitTokensAfterChainSwitch } from \"@/core/limit/state/selectedTokenAtom\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"@/core/limit/state/limitTokenAtoms\";\nimport {\n otcTokenFromAtom,\n otcTokenToAtom,\n syncOtcTokensAfterChainSwitch,\n} from \"@/core/otc/state/selectedTokenAtom\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n payInputAmountAtom,\n payInputAmountWeiAtom,\n receiveInputAmountAtom,\n receiveInputAmountWeiAtom,\n} from \"./inputAmountAtom\";\nimport {\n limitPayInputAmountAtom,\n limitPayInputAmountWeiAtom,\n limitReceiveInputAmountAtom,\n limitReceiveInputAmountWeiAtom,\n} from \"@/core/limit/state/limitInputAmountAtom\";\nimport {\n otcPayInputAmountAtom,\n otcPayInputAmountWeiAtom,\n otcReceiveInputAmountAtom,\n otcReceiveInputAmountWeiAtom,\n} from \"@/core/otc/state/otcInputAmountAtom\";\nimport { atom, type PrimitiveAtom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"@/core/limit/state/selectedTokenActionsAtom\";\nimport {\n selectOtcTokenFromAtom,\n selectOtcTokenToAtom,\n} from \"@/core/otc/state/selectedTokenActionsAtom\";\nimport {\n setLimitPayAmountAtomFromProps,\n setLimitReceiveAmountAtomFromProps,\n} from \"@/core/limit/state/limitInputActionsAtom\";\nimport {\n setOtcPayAmountAtomFromProps,\n setOtcReceiveAmountAtomFromProps,\n} from \"@/core/otc/state/otcInputActionsAtom\";\nimport * as limitDeadline from \"@/core/limit/state/deadlineAtom\";\nimport * as otcDeadline from \"@/core/otc/state/deadlineAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { isCrossChainAtom as isSwapCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\nimport { isLimitCrossChainAtom } from \"@/core/limit/state/isCrosschainAtom\";\n\nexport function syncTokensAfterChainSwitch(chainId: SupportedChainId) {\n syncSwapTokensAfterChainSwitch(chainId);\n syncLimitTokensAfterChainSwitch(chainId);\n syncOtcTokensAfterChainSwitch(chainId);\n}\n\nexport const tradeModeToPayAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof payInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitPayAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: payInputAmountAtom, write: payInputAmountAtom },\n limit: {\n read: limitPayInputAmountAtom,\n write: setLimitPayAmountAtomFromProps,\n },\n otc: { read: otcPayInputAmountAtom, write: setOtcPayAmountAtomFromProps },\n};\n\nexport const tradeModeToReceiveAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof receiveInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitReceiveAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: receiveInputAmountAtom, write: receiveInputAmountAtom },\n limit: {\n read: limitReceiveInputAmountAtom,\n write: setLimitReceiveAmountAtomFromProps,\n },\n otc: {\n read: otcReceiveInputAmountAtom,\n write: setOtcReceiveAmountAtomFromProps,\n },\n};\n\nexport const tradeModeToTimeUnitAtom: Record<\n \"limit\" | \"otc\",\n typeof limitDeadline.timeUnitAtom\n> = {\n limit: limitDeadline.timeUnitAtom,\n otc: otcDeadline.timeUnitAtom,\n};\n\nexport const tradeModeToPayAmountWeiAtom: Record<\n TradeMode,\n typeof payInputAmountWeiAtom\n> = {\n swap: payInputAmountWeiAtom,\n limit: limitPayInputAmountWeiAtom,\n otc: otcPayInputAmountWeiAtom,\n};\n\nexport const tradeModeToReceiveAmountWeiAtom: Record<\n TradeMode,\n typeof limitReceiveInputAmountWeiAtom\n> = {\n swap: receiveInputAmountWeiAtom,\n limit: limitReceiveInputAmountWeiAtom,\n otc: otcReceiveInputAmountWeiAtom,\n};\n\nexport const tradeModeToTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof swapTokenFromAtom;\n tokenToAtom: typeof swapTokenToAtom;\n isCrossChainAtom: typeof isSwapCrossChainAtom;\n }\n> = {\n swap: {\n tokenFromAtom: swapTokenFromAtom,\n tokenToAtom: swapTokenToAtom,\n isCrossChainAtom: isSwapCrossChainAtom,\n },\n limit: {\n tokenFromAtom: limitTokenFromAtom,\n tokenToAtom: limitTokenToAtom,\n isCrossChainAtom: isLimitCrossChainAtom,\n },\n otc: {\n tokenFromAtom: otcTokenFromAtom,\n tokenToAtom: otcTokenToAtom,\n // unused const atom to appease TS\n isCrossChainAtom: atom(() => false), // always false\n },\n};\n\nexport const tradeModeToSetTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof selectSwapTokenFromAtom;\n tokenToAtom: typeof selectSwapTokenToAtom;\n }\n> = {\n swap: {\n tokenFromAtom: selectSwapTokenFromAtom,\n tokenToAtom: selectSwapTokenToAtom,\n },\n limit: {\n tokenFromAtom: selectLimitTokenFromAtom,\n tokenToAtom: selectLimitTokenToAtom,\n },\n otc: {\n tokenFromAtom: selectOtcTokenFromAtom,\n tokenToAtom: selectOtcTokenToAtom,\n },\n};\n\nexport const sideToInputType = {\n SELL: \"from\",\n BUY: \"to\",\n} as const satisfies Record<SwapSideUnion, \"from\" | \"to\">;\n\nexport const useWidgetTokens = (tradeMode: TradeMode) => {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const tokenFrom = useAtomValue(tokenFromAtom);\n const tokenTo = useAtomValue(tokenToAtom);\n return { tokenFrom, tokenTo };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA4DA,SAAgB0C,EAA2BC,GAA2B;AAGpEjC,CAFAR,EAA+ByC,EAAQ,EACvCtC,EAAgCsC,EAAQ,EACxCjC,EAA8BiC,EAAQ;;AAGxC,IAAaC,IAOT;CACFK,MAAM;EAAEH,MAAMjC;EAAoBmC,OAAOnC;EAAoB;CAC7DqC,OAAO;EACLJ,MAAM7B;EACN+B,OAAOhB;EACR;CACDmB,KAAK;EAAEL,MAAMzB;EAAuB2B,OAAOd;EAA6B;CACzE,EAEYkB,IAOT;CACFH,MAAM;EAAEH,MAAM/B;EAAwBiC,OAAOjC;EAAwB;CACrEmC,OAAO;EACLJ,MAAM3B;EACN6B,OAAOf;EACR;CACDkB,KAAK;EACHL,MAAMvB;EACNyB,OAAOb;EACT;CACD,EAEYkB,IAGT;CACFH,OAAOd;CACPe,KAAKd;CACN,EAEYkB,IAGT;CACFN,MAAMnC;CACNoC,OAAOhC;CACPiC,KAAK7B;CACN,EAEYkC,IAGT;CACFP,MAAMjC;CACNkC,OAAO9B;CACP+B,KAAK3B;CACN,EAEYiC,IAOT;CACFR,MAAM;EACJS,eAAevD;EACfwD,aAAavD;EACKoC;EACnB;CACDU,OAAO;EACLQ,eAAepD;EACfqD,aAAapD;EACbgC,kBAAkBE;EACnB;CACDU,KAAK;EACHO,eAAelD;EACfmD,aAAalD;EAEb8B,kBAAkBd,QAAW,GAAM;EACrC;CACD,EAEYmC,IAMT;CACFX,MAAM;EACJS,eAAe1D;EACf2D,aAAa1D;EACd;CACDiD,OAAO;EACLQ,eAAe9B;EACf+B,aAAa9B;EACd;CACDsB,KAAK;EACHO,eAAe5B;EACf6B,aAAa5B;EACf;CACD,EAEY8B,IAAkB;CAC7BC,MAAM;CACNC,KAAK;CACN,EAEYE,KAAkBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAC7B,EAAAV,kBAAAC,mBAAuCF,EAAsBS,IAC7DG,IAAkB1C,EAAa+B,EAAc,EAC7CY,IAAgB3C,EAAagC,EAAY,EAACY;AACb,QADaJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KACnCC,IAAA;EAAAF;EAAAC;EAAsB,EAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IAAtBI"}
1
+ {"version":3,"file":"common.js","names":["selectSwapTokenFromAtom","selectSwapTokenToAtom","syncSwapTokensAfterChainSwitch","swapTokenFromAtom","swapTokenToAtom","syncLimitTokensAfterChainSwitch","limitTokenFromAtom","limitTokenToAtom","otcTokenFromAtom","otcTokenToAtom","syncOtcTokensAfterChainSwitch","twapTokenFromAtom","twapTokenToAtom","syncTwapTokensAfterChainSwitch","isTwapCrossChainAtom","TradeMode","SupportedChainId","payInputAmountAtom","payInputAmountWeiAtom","receiveInputAmountAtom","receiveInputAmountWeiAtom","limitPayInputAmountAtom","limitPayInputAmountWeiAtom","limitReceiveInputAmountAtom","limitReceiveInputAmountWeiAtom","otcPayInputAmountAtom","otcPayInputAmountWeiAtom","otcReceiveInputAmountAtom","otcReceiveInputAmountWeiAtom","twapPayInputAmountAtom","twapPayInputAmountWeiAtom","twapReceiveInputAmountAtom","twapReceiveInputAmountWeiAtom","atom","PrimitiveAtom","SetStateAction","useAtomValue","selectLimitTokenFromAtom","selectLimitTokenToAtom","selectOtcTokenFromAtom","selectOtcTokenToAtom","selectTwapTokenFromAtom","selectTwapTokenToAtom","setLimitPayAmountAtomFromProps","setLimitReceiveAmountAtomFromProps","setOtcPayAmountAtomFromProps","setOtcReceiveAmountAtomFromProps","limitDeadline","otcDeadline","SwapSideUnion","isCrossChainAtom","isSwapCrossChainAtom","isLimitCrossChainAtom","swapSideAtom","twapSideAtom","currentTwapInputAtom","currentSwapInputAtom","syncTokensAfterChainSwitch","chainId","placeholderAtoms","sellAtom","const","falseAtom","currentInputAtom","tradeModeToPayAmountUnitAtom","Record","read","Pick","write","swap","limit","otc","twap","tradeModeToReceiveAmountUnitAtom","tradeModeToTimeUnitAtom","timeUnitAtom","tradeModeToPayAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","tradeModeToTokenAtoms","tokenFromAtom","tokenToAtom","tradeModeToSetTokenAtoms","tradeModeToSideAtom","tradeModeToCurrentInputAtom","sideToInputType","SELL","BUY","useWidgetTokens","tradeMode","$","_c","tokenFrom","tokenTo","t0"],"sources":["../../../../src/core/inputs/state/common.ts"],"sourcesContent":["import {\n selectSwapTokenFromAtom,\n selectSwapTokenToAtom,\n syncSwapTokensAfterChainSwitch,\n} from \"./selectedTokenActionsAtom\";\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { syncLimitTokensAfterChainSwitch } from \"@/core/limit/state/selectedTokenAtom\";\nimport {\n limitTokenFromAtom,\n limitTokenToAtom,\n} from \"@/core/limit/state/limitTokenAtoms\";\nimport {\n otcTokenFromAtom,\n otcTokenToAtom,\n syncOtcTokensAfterChainSwitch,\n} from \"@/core/otc/state/selectedTokenAtom\";\nimport {\n twapTokenFromAtom,\n twapTokenToAtom,\n} from \"@/core/twap/state/twapTokenAtoms\";\nimport { syncTwapTokensAfterChainSwitch } from \"@/core/twap/state/selectedTokenActionsAtom\";\nimport { isTwapCrossChainAtom } from \"@/core/twap/state/isCrosschainAtom\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n payInputAmountAtom,\n payInputAmountWeiAtom,\n receiveInputAmountAtom,\n receiveInputAmountWeiAtom,\n} from \"./inputAmountAtom\";\nimport {\n limitPayInputAmountAtom,\n limitPayInputAmountWeiAtom,\n limitReceiveInputAmountAtom,\n limitReceiveInputAmountWeiAtom,\n} from \"@/core/limit/state/limitInputAmountAtom\";\nimport {\n otcPayInputAmountAtom,\n otcPayInputAmountWeiAtom,\n otcReceiveInputAmountAtom,\n otcReceiveInputAmountWeiAtom,\n} from \"@/core/otc/state/otcInputAmountAtom\";\nimport {\n twapPayInputAmountAtom,\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"@/core/twap/state/twapInputAmountAtom\";\nimport { atom, type PrimitiveAtom, type SetStateAction } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n selectLimitTokenFromAtom,\n selectLimitTokenToAtom,\n} from \"@/core/limit/state/selectedTokenActionsAtom\";\nimport {\n selectOtcTokenFromAtom,\n selectOtcTokenToAtom,\n} from \"@/core/otc/state/selectedTokenActionsAtom\";\nimport {\n selectTwapTokenFromAtom,\n selectTwapTokenToAtom,\n} from \"@/core/twap/state/selectedTokenActionsAtom\";\nimport {\n setLimitPayAmountAtomFromProps,\n setLimitReceiveAmountAtomFromProps,\n} from \"@/core/limit/state/limitInputActionsAtom\";\nimport {\n setOtcPayAmountAtomFromProps,\n setOtcReceiveAmountAtomFromProps,\n} from \"@/core/otc/state/otcInputActionsAtom\";\nimport * as limitDeadline from \"@/core/limit/state/deadlineAtom\";\nimport * as otcDeadline from \"@/core/otc/state/deadlineAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { isCrossChainAtom as isSwapCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\nimport { isLimitCrossChainAtom } from \"@/core/limit/state/isCrosschainAtom\";\nimport { swapSideAtom } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { twapSideAtom } from \"@/core/twap/state/twapSideAtom\";\nimport { currentTwapInputAtom } from \"@/core/twap/state/currentTwapInputAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\n\nexport function syncTokensAfterChainSwitch(chainId: SupportedChainId) {\n syncSwapTokensAfterChainSwitch(chainId);\n syncLimitTokensAfterChainSwitch(chainId);\n syncOtcTokensAfterChainSwitch(chainId);\n syncTwapTokensAfterChainSwitch(chainId);\n}\n\nconst placeholderAtoms = {\n sellAtom: atom(() => \"SELL\" as const satisfies SwapSideUnion),\n falseAtom: atom(() => false),\n currentInputAtom: atom<\"from\" | \"to\", [SetStateAction<\"from\" | \"to\">], void>(\n \"from\",\n () => void 0\n ),\n};\n\nexport const tradeModeToPayAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof payInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitPayAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: payInputAmountAtom, write: payInputAmountAtom },\n limit: {\n read: limitPayInputAmountAtom,\n write: setLimitPayAmountAtomFromProps,\n },\n otc: { read: otcPayInputAmountAtom, write: setOtcPayAmountAtomFromProps },\n twap: { read: twapPayInputAmountAtom, write: twapPayInputAmountAtom },\n};\n\nexport const tradeModeToReceiveAmountUnitAtom: Record<\n TradeMode,\n {\n read: Pick<typeof receiveInputAmountAtom, \"read\">;\n write: Pick<typeof setLimitReceiveAmountAtomFromProps, \"write\"> &\n Pick<PrimitiveAtom<string | null>, \"read\">;\n }\n> = {\n swap: { read: receiveInputAmountAtom, write: receiveInputAmountAtom },\n limit: {\n read: limitReceiveInputAmountAtom,\n write: setLimitReceiveAmountAtomFromProps,\n },\n otc: {\n read: otcReceiveInputAmountAtom,\n write: setOtcReceiveAmountAtomFromProps,\n },\n twap: {\n read: twapReceiveInputAmountAtom,\n write: twapReceiveInputAmountAtom,\n },\n};\n\nexport const tradeModeToTimeUnitAtom: Record<\n \"limit\" | \"otc\",\n typeof limitDeadline.timeUnitAtom\n> = {\n limit: limitDeadline.timeUnitAtom,\n otc: otcDeadline.timeUnitAtom,\n};\n\nexport const tradeModeToPayAmountWeiAtom: Record<\n TradeMode,\n typeof payInputAmountWeiAtom\n> = {\n swap: payInputAmountWeiAtom,\n limit: limitPayInputAmountWeiAtom,\n otc: otcPayInputAmountWeiAtom,\n twap: twapPayInputAmountWeiAtom,\n};\n\nexport const tradeModeToReceiveAmountWeiAtom: Record<\n TradeMode,\n typeof limitReceiveInputAmountWeiAtom\n> = {\n swap: receiveInputAmountWeiAtom,\n limit: limitReceiveInputAmountWeiAtom,\n otc: otcReceiveInputAmountWeiAtom,\n twap: twapReceiveInputAmountWeiAtom,\n};\n\nexport const tradeModeToTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof swapTokenFromAtom;\n tokenToAtom: typeof swapTokenToAtom;\n isCrossChainAtom: typeof isSwapCrossChainAtom;\n }\n> = {\n swap: {\n tokenFromAtom: swapTokenFromAtom,\n tokenToAtom: swapTokenToAtom,\n isCrossChainAtom: isSwapCrossChainAtom,\n },\n limit: {\n tokenFromAtom: limitTokenFromAtom,\n tokenToAtom: limitTokenToAtom,\n isCrossChainAtom: isLimitCrossChainAtom,\n },\n otc: {\n tokenFromAtom: otcTokenFromAtom,\n tokenToAtom: otcTokenToAtom,\n // unused const atom to appease TS\n isCrossChainAtom: placeholderAtoms.falseAtom, // always false\n },\n twap: {\n tokenFromAtom: twapTokenFromAtom,\n tokenToAtom: twapTokenToAtom,\n isCrossChainAtom: isTwapCrossChainAtom,\n },\n};\n\nexport const tradeModeToSetTokenAtoms: Record<\n TradeMode,\n {\n tokenFromAtom: typeof selectSwapTokenFromAtom;\n tokenToAtom: typeof selectSwapTokenToAtom;\n }\n> = {\n swap: {\n tokenFromAtom: selectSwapTokenFromAtom,\n tokenToAtom: selectSwapTokenToAtom,\n },\n limit: {\n tokenFromAtom: selectLimitTokenFromAtom,\n tokenToAtom: selectLimitTokenToAtom,\n },\n otc: {\n tokenFromAtom: selectOtcTokenFromAtom,\n tokenToAtom: selectOtcTokenToAtom,\n },\n twap: {\n tokenFromAtom: selectTwapTokenFromAtom,\n tokenToAtom: selectTwapTokenToAtom,\n },\n};\n\nexport const tradeModeToSideAtom: Record<TradeMode, typeof swapSideAtom> = {\n swap: swapSideAtom,\n twap: twapSideAtom,\n limit: placeholderAtoms.sellAtom,\n otc: placeholderAtoms.sellAtom,\n};\n\nexport const tradeModeToCurrentInputAtom: Record<\n TradeMode,\n typeof currentSwapInputAtom\n> = {\n swap: currentSwapInputAtom,\n twap: currentTwapInputAtom,\n limit: placeholderAtoms.currentInputAtom,\n otc: placeholderAtoms.currentInputAtom,\n};\n\nexport const sideToInputType = {\n SELL: \"from\",\n BUY: \"to\",\n} as const satisfies Record<SwapSideUnion, \"from\" | \"to\">;\n\nexport const useWidgetTokens = (tradeMode: TradeMode) => {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const tokenFrom = useAtomValue(tokenFromAtom);\n const tokenTo = useAtomValue(tokenToAtom);\n return { tokenFrom, tokenTo };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,SAAgByD,EAA2BC,GAA2B;AAIpE7C,CAHAX,EAA+BwD,EAAQ,EACvCrD,GAAgCqD,EAAQ,EACxChD,EAA8BgD,EAAQ,EACtC7C,EAA+B6C,EAAQ;;AAGzC,IAAMC,IAAmB;CACvBC,UAAU3B,QAAW,OAAwC;CAC7D6B,WAAW7B,QAAW,GAAM;CAC5B8B,kBAAkB9B,EAChB,cACM,KAAK,EACb;CACD,EAEY+B,IAOT;CACFK,MAAM;EAAEH,MAAMjD;EAAoBmD,OAAOnD;EAAoB;CAC7DqD,OAAO;EACLJ,MAAM7C;EACN+C,OAAOzB;EACR;CACD4B,KAAK;EAAEL,MAAMzC;EAAuB2C,OAAOvB;EAA8B;CACzE2B,MAAM;EAAEN,MAAMrC;EAAwBuC,OAAOvC;EAAuB;CACrE,EAEY4C,KAOT;CACFJ,MAAM;EAAEH,MAAM/C;EAAwBiD,OAAOjD;EAAwB;CACrEmD,OAAO;EACLJ,MAAM3C;EACN6C,OAAOxB;EACR;CACD2B,KAAK;EACHL,MAAMvC;EACNyC,OAAOtB;EACR;CACD0B,MAAM;EACJN,MAAMnC;EACNqC,OAAOrC;EACT;CACD,EAEY2C,KAGT;CACFJ,OAAOvB;CACPwB,KAAKvB;CACN,EAEY4B,KAGT;CACFP,MAAMnD;CACNoD,OAAOhD;CACPiD,KAAK7C;CACL8C,MAAM1C;CACP,EAEY+C,KAGT;CACFR,MAAMjD;CACNkD,OAAO9C;CACP+C,KAAK3C;CACL4C,MAAMxC;CACP,EAEY8C,IAOT;CACFT,MAAM;EACJU,eAAe5E;EACf6E,aAAa5E;EACK+C;EACnB;CACDmB,OAAO;EACLS,eAAezE;EACf0E,aAAazE;EACb2C,kBAAkBE;EACnB;CACDmB,KAAK;EACHQ,eAAevE;EACfwE,aAAavE;EAEbyC,kBAAkBS,EAAiBG;EACpC;CACDU,MAAM;EACJO,eAAepE;EACfqE,aAAapE;EACbsC,kBAAkBpC;EACpB;CACD,EAEYmE,IAMT;CACFZ,MAAM;EACJU,eAAe/E;EACfgF,aAAa/E;EACd;CACDqE,OAAO;EACLS,eAAe1C;EACf2C,aAAa1C;EACd;CACDiC,KAAK;EACHQ,eAAexC;EACfyC,aAAaxC;EACd;CACDgC,MAAM;EACJO,eAAetC;EACfuC,aAAatC;EACf;CACD,EAEYwC,KAA8D;CACzEb,MAAMhB;CACNmB,MAAMlB;CACNgB,OAAOX,EAAiBC;CACxBW,KAAKZ,EAAiBC;CACvB,EAEYuB,KAGT;CACFd,MAAMb;CACNgB,MAAMjB;CACNe,OAAOX,EAAiBI;CACxBQ,KAAKZ,EAAiBI;CACvB,EAEYqB,KAAkB;CAC7BC,MAAM;CACNC,KAAK;CACN,EAEYC,MAAkBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAC7B,EAAAX,kBAAAC,mBAAuCF,EAAsBU,IAC7DG,IAAkBvD,EAAa2C,EAAc,EAC7Ca,IAAgBxD,EAAa4C,EAAY,EAACa;AACb,QADaJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KACnCC,IAAA;EAAAF;EAAAC;EAAsB,EAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IAAtBI"}
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,eAAO,MAAM,kBAAkB;;CAA2B,CAAC;AAyW3D,wBAAgB,2BAA2B,SAE1C;AAED,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,IAAI,EACJ,aAAa,GACd,GAAE,cAAmB,QA6BrB"}
1
+ {"version":3,"file":"setTokenByAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/setTokenByAddressAtom.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,eAAO,MAAM,kBAAkB;;CAA2B,CAAC;AA2W3D,wBAAgB,2BAA2B,SAE1C;AAED,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,IAAI,EACJ,aAAa,GACd,GAAE,cAAmB,QA6BrB"}
@@ -1,121 +1,119 @@
1
1
  import { useAtom as e, useSetAtom as t } from "../../store.js";
2
- import { isTradeMode as n } from "../../../lib/tradeMode.js";
3
- import { enabledTradeModesAtom as r, enabledTradeModesFromConfigAtom as i } from "../../state/enabledTradeModesAtom.js";
4
- import { tradeModeAtom as a, userTradeModeAtom as o } from "../../state/tradeModeAtom.js";
5
- import { getLogger as s } from "../../logger.js";
6
- import { currentSwapInputAtom as c } from "../../state/currentSwapInputAtom.js";
7
- import { wrappedNativeCurrency as l } from "../../../lib/constants/weth.js";
8
- import { nativeTokensByChainId as u } from "../../../tokens/constructor.js";
9
- import { isETHaddress as d } from "../../../tokens/utils/eth.js";
10
- import { pickDefaultTokenPair as f } from "../../../tokens/defaultTokens.js";
11
- import { swapSideAtom as p } from "../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js";
2
+ import { isTradeMode as n, tradeModesWithCrosschain as r, tradeModesWithSide as i } from "../../../lib/tradeMode.js";
3
+ import { enabledTradeModesAtom as a, enabledTradeModesFromConfigAtom as o } from "../../state/enabledTradeModesAtom.js";
4
+ import { tradeModeAtom as s, userTradeModeAtom as c } from "../../state/tradeModeAtom.js";
5
+ import { getLogger as l } from "../../logger.js";
6
+ import { wrappedNativeCurrency as u } from "../../../lib/constants/weth.js";
7
+ import { nativeTokensByChainId as d } from "../../../tokens/constructor.js";
8
+ import { isETHaddress as f } from "../../../tokens/utils/eth.js";
9
+ import { pickDefaultTokenPair as p } from "../../../tokens/defaultTokens.js";
12
10
  import { getClosestTimeUnit as m } from "../../limit/state/utils.js";
13
11
  import { isSupportedChainId as h } from "../../../lib/web3/wagmi/utils.js";
14
12
  import { areTokensSame as g } from "../../../tokens/utils/areTokensSame.js";
15
13
  import { fromListsAtom as _ } from "../../../tokens/state/fromListsAtom.js";
16
14
  import { autoImportedTokensAtom as v, importedTokensAtom as y } from "../../../tokens/state/importedTokensAtom.js";
17
- import { sideToInputType as b, tradeModeToPayAmountUnitAtom as x, tradeModeToReceiveAmountUnitAtom as S, tradeModeToSetTokenAtoms as C, tradeModeToTimeUnitAtom as w, tradeModeToTokenAtoms as T } from "./common.js";
18
- import { autoAddImportedTokenAtom as E } from "../../../tokens/state/addImportedTokenAtom.js";
19
- import { bridgeInfosLoadedAtom as D } from "../../../hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js";
20
- import { c as O } from "react-compiler-runtime";
21
- import { useLayoutEffect as k } from "react";
22
- import { atom as A } from "jotai";
23
- import { assert as j } from "ts-essentials";
24
- import { isAddress as M } from "viem";
25
- import { atomEffect as N } from "jotai-effect";
15
+ import { sideToInputType as b, tradeModeToCurrentInputAtom as x, tradeModeToPayAmountUnitAtom as S, tradeModeToReceiveAmountUnitAtom as C, tradeModeToSetTokenAtoms as w, tradeModeToSideAtom as T, tradeModeToTimeUnitAtom as E, tradeModeToTokenAtoms as D } from "./common.js";
16
+ import { autoAddImportedTokenAtom as O } from "../../../tokens/state/addImportedTokenAtom.js";
17
+ import { bridgeInfosLoadedAtom as k } from "../../../hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js";
18
+ import { c as A } from "react-compiler-runtime";
19
+ import { useLayoutEffect as j } from "react";
20
+ import { atom as M } from "jotai";
21
+ import { assert as N } from "ts-essentials";
22
+ import { isAddress as P } from "viem";
23
+ import { atomEffect as F } from "jotai-effect";
26
24
  //#region src/core/inputs/state/setTokenByAddressAtom.ts
27
- var P = A({}), F = s("FormInputProps");
28
- function I({ get: e, set: t, tokenToFind: n }) {
25
+ var I = M({}), L = l("FormInputProps");
26
+ function R({ get: e, set: t, tokenToFind: n }) {
29
27
  let r = n.address, i = n.network;
30
- if (d(r)) return u[i];
28
+ if (f(r)) return d[i];
31
29
  let a = r.toLowerCase(), o = e(_).listByChainId[i]?.addressMap?.[a];
32
30
  if (o) return o;
33
31
  let s = e.peek(y)[i]?.find((e) => e.address.toLowerCase() === a);
34
32
  if (s) return s;
35
33
  let c = e(v).find((e) => e.address.toLowerCase() === a && e.network === i);
36
34
  if (c) return c;
37
- F.info("token not available in widget. Will attempt to import from chain", {
35
+ L.info("token not available in widget. Will attempt to import from chain", {
38
36
  address: r,
39
37
  chainId: i
40
- }), t(E, {
38
+ }), t(O, {
41
39
  address: r,
42
40
  chainId: i
43
41
  });
44
42
  }
45
- function L(e) {
43
+ function z(e) {
46
44
  return e === "BUY" || e === "SELL";
47
45
  }
48
- var R = N((e, t) => {
49
- e(D), e(i);
50
- let s = e.peek(r), u = e(P), { tokenFromAddress: _ } = u, v = u.sendAmount === void 0 ? void 0 : String(u.sendAmount), y = u.receiveAmount === void 0 ? void 0 : String(u.receiveAmount), E = u.srcChainId === void 0 ? void 0 : Number(u.srcChainId);
51
- F.log("using external props to set Widget form input", u);
52
- let O = u.destChainId === void 0 ? void 0 : Number(u.destChainId), k = u.tokenToAddress, A = u.selectedForm || "swap";
53
- (!n(A) || !s.includes(A)) && (F.warn("invalid, disabled or unavailable selectedForm provided", { selectedForm: A }), A = s[0]), j(n(A), "selectedForm must be a valid trade mode");
54
- let M = T[A], N = e.peek(M.tokenFromAtom), R = e.peek(M.tokenToAtom);
55
- e.peek(a) !== A && t(o, A);
56
- let B, V, H = N.network;
57
- A !== "swap" && A !== "limit" && (O = E), A === "otc" && k && d(k) && (k = l[O || H]);
46
+ var B = F((e, t) => {
47
+ e(k), e(o);
48
+ let l = e.peek(a), d = e(I), { tokenFromAddress: _ } = d, v = d.sendAmount === void 0 ? void 0 : String(d.sendAmount), y = d.receiveAmount === void 0 ? void 0 : String(d.receiveAmount), O = d.srcChainId === void 0 ? void 0 : Number(d.srcChainId);
49
+ L.log("using external props to set Widget form input", d);
50
+ let A = d.destChainId === void 0 ? void 0 : Number(d.destChainId), j = e.peek(s), M = d.tokenToAddress, P = d.selectedForm || j;
51
+ (!n(P) || !l.includes(P)) && (L.warn("invalid, disabled or unavailable selectedForm provided", { selectedForm: P }), P = l[0]), N(n(P), "selectedForm must be a valid trade mode");
52
+ let F = D[P], B = e.peek(F.tokenFromAtom), H = e.peek(F.tokenToAtom);
53
+ j !== P && t(c, P);
54
+ let U, W, G = B.network;
55
+ r.has(P) || (A = O), P === "otc" && M && f(M) && (M = u[A || G]);
58
56
  {
59
- let n = z({
57
+ let n = V({
60
58
  tokenFromProps: {
61
59
  address: _,
62
- network: E
60
+ network: O
63
61
  },
64
- currentToken: N,
65
- defaultChainId: H
62
+ currentToken: B,
63
+ defaultChainId: G
66
64
  });
67
- n && (B = I({
65
+ n && (U = R({
68
66
  get: e,
69
67
  tokenToFind: n,
70
68
  set: t
71
69
  }));
72
70
  }
73
71
  {
74
- let n = z({
72
+ let n = V({
75
73
  tokenFromProps: {
76
- address: k,
77
- network: O
74
+ address: M,
75
+ network: A
78
76
  },
79
- currentToken: R,
80
- defaultChainId: H
77
+ currentToken: H,
78
+ defaultChainId: G
81
79
  });
82
- n && (V = I({
80
+ n && (W = R({
83
81
  get: e,
84
82
  tokenToFind: n,
85
83
  set: t
86
84
  }));
87
85
  }
88
- if (B && V && g(B, V) && (V = void 0), !B && !_ && E && h(E) && E !== N.network) {
89
- let [e] = f(E, A);
90
- B = e;
86
+ if (U && W && g(U, W) && (W = void 0), !U && !_ && O && h(O) && O !== B.network) {
87
+ let [e] = p(O, P);
88
+ U = e;
91
89
  }
92
- if (!V && !k && O && h(O) && O !== R?.network) {
93
- let [, e] = f(O, A);
94
- V = e;
90
+ if (!W && !M && A && h(A) && A !== H?.network) {
91
+ let [, e] = p(A, P);
92
+ W = e;
95
93
  }
96
- if (B) {
97
- let e = C[A].tokenFromAtom;
98
- t(e, B);
94
+ if (U) {
95
+ let e = w[P].tokenFromAtom;
96
+ t(e, U);
99
97
  }
100
- if (V) {
101
- let e = C[A].tokenToAtom;
102
- t(e, V);
98
+ if (W) {
99
+ let e = w[P].tokenToAtom;
100
+ t(e, W);
103
101
  }
104
- let U = u.side;
105
- L(U) ? t(c, b[U]) : (U && F.warn("invalid side provided, must be BUY or SELL", { side: U }), U = A === "swap" ? v && !y ? "SELL" : y && !v ? "BUY" : e.peek(p) : e.peek(p)), j(L(U), "side must be BUY or SELL");
106
- let W = A === "swap", G = A === "limit" || A === "otc", K = W && U === "SELL", q = W && U === "BUY";
107
- if (v && Number(v) >= 0 && (K || G)) {
108
- let n = x[A];
102
+ let K = T[P], q = x[P], J = d.side;
103
+ i.has(P) ? z(J) ? t(q, b[J]) : (J && L.warn("invalid side provided, must be BUY or SELL", { side: J }), J = v && !y ? "SELL" : y && !v ? "BUY" : e.peek(K)) : J = e.peek(K), N(z(J), "side must be BUY or SELL");
104
+ let Y = i.has(P), X = !Y, Z = X || Y && J === "SELL", Q = X || Y && J === "BUY", $ = v && Number(v) >= 0, ee = y && Number(y) >= 0;
105
+ if ($ && Z) {
106
+ let n = S[P];
109
107
  e.peek(n.read) !== v && t(n.write, v);
110
108
  }
111
- if (y && Number(y) >= 0 && (q || G)) {
112
- let n = S[A];
109
+ if (ee && Q) {
110
+ let n = C[P];
113
111
  e.peek(n.read) !== y && t(n.write, y);
114
112
  }
115
- if (A === "limit" || A === "otc") {
116
- let n = Number(u.orderDeadline);
113
+ if (P === "limit" || P === "otc") {
114
+ let n = Number(d.orderDeadline);
117
115
  if (n !== void 0 && !isNaN(n)) {
118
- let r = w[A];
116
+ let r = E[P];
119
117
  e.peek(r).timestamp !== n && t(r, {
120
118
  ...m(n),
121
119
  timestamp: n
@@ -123,15 +121,15 @@ var R = N((e, t) => {
123
121
  }
124
122
  }
125
123
  });
126
- function z({ tokenFromProps: e, currentToken: t, defaultChainId: n }) {
124
+ function V({ tokenFromProps: e, currentToken: t, defaultChainId: n }) {
127
125
  if (!e.address) return;
128
- if (!M(e.address)) {
129
- F.warn("malformed token address provided", { address: e.address });
126
+ if (!P(e.address)) {
127
+ L.warn("malformed token address provided", { address: e.address });
130
128
  return;
131
129
  }
132
130
  let r = e.network || n;
133
131
  if (!h(r)) {
134
- F.warn("unsupported chainId provided", { network: r });
132
+ L.warn("unsupported chainId provided", { network: r });
135
133
  return;
136
134
  }
137
135
  if (!(t && g(t, {
@@ -142,13 +140,13 @@ function z({ tokenFromProps: e, currentToken: t, defaultChainId: n }) {
142
140
  network: r
143
141
  };
144
142
  }
145
- function B() {
146
- e(R);
143
+ function H() {
144
+ e(B);
147
145
  }
148
- function V(e) {
149
- let n = O(14), r;
146
+ function U(e) {
147
+ let n = A(14), r;
150
148
  n[0] === e ? r = n[1] : (r = e === void 0 ? {} : e, n[0] = e, n[1] = r);
151
- let { selectedForm: i, tokenFromAddress: a, srcChainId: o, tokenToAddress: s, destChainId: c, sendAmount: l, receiveAmount: u, side: d, orderDeadline: f } = r, p = t(P), m, h;
149
+ let { selectedForm: i, tokenFromAddress: a, srcChainId: o, tokenToAddress: s, destChainId: c, sendAmount: l, receiveAmount: u, side: d, orderDeadline: f } = r, p = t(I), m, h;
152
150
  n[2] !== c || n[3] !== f || n[4] !== u || n[5] !== i || n[6] !== l || n[7] !== p || n[8] !== d || n[9] !== o || n[10] !== a || n[11] !== s ? (m = () => {
153
151
  p({
154
152
  selectedForm: i,
@@ -172,9 +170,9 @@ function V(e) {
172
170
  u,
173
171
  d,
174
172
  f
175
- ], n[2] = c, n[3] = f, n[4] = u, n[5] = i, n[6] = l, n[7] = p, n[8] = d, n[9] = o, n[10] = a, n[11] = s, n[12] = m, n[13] = h) : (m = n[12], h = n[13]), k(m, h);
173
+ ], n[2] = c, n[3] = f, n[4] = u, n[5] = i, n[6] = l, n[7] = p, n[8] = d, n[9] = o, n[10] = a, n[11] = s, n[12] = m, n[13] = h) : (m = n[12], h = n[13]), j(m, h);
176
174
  }
177
175
  //#endregion
178
- export { P as formInputPropsAtom, B as useActivateFormInputEffects, V as useSetFormInputFromProps };
176
+ export { I as formInputPropsAtom, H as useActivateFormInputEffects, U as useSetFormInputFromProps };
179
177
 
180
178
  //# sourceMappingURL=setTokenByAddressAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setTokenByAddressAtom.js","names":["atom","Setter","useAtom","useSetAtom","atomEffect","Effect","isAddress","Address","isETHaddress","nativeTokensByChainId","fromListsAtom","autoImportedTokensAtom","importedTokensAtom","Token","useLayoutEffect","isSupportedChainId","areTokensSame","SupportedChainId","pickDefaultTokenPair","tradeModeAtom","userTradeModeAtom","sideToInputType","tradeModeToPayAmountUnitAtom","tradeModeToReceiveAmountUnitAtom","tradeModeToSetTokenAtoms","tradeModeToTimeUnitAtom","tradeModeToTokenAtoms","wrappedNativeCurrency","autoAddImportedTokenAtom","getLogger","assert","bridgeInfosLoadedAtom","isTradeMode","enabledTradeModesAtom","enabledTradeModesFromConfigAtom","FormInputProps","SwapSideUnion","swapSideAtom","currentSwapInputAtom","getClosestTimeUnit","formInputPropsAtom","RelaxedFormInputProps","NonNullable","K","logger","GetterWithPeek","Parameters","FindTokenAtomsInput","tokenToFind","address","network","get","set","findTokenInAtoms","tokenFromAddress","chainId","nativeToken","tokenFromLowercase","toLowerCase","tokensMap","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedToken","find","token","autoImportedTokens","autoImportedToken","info","isValidSide","side","formInputPropsEffectAtom","enabledTradeModes","formInputProps","sendAmount","undefined","String","receiveAmount","srcChainId","Number","log","destChainId","tokenToAddress","selectedForm","includes","warn","formAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","currentTradeMode","newTokenFrom","newTokenTo","defaultChainId","wethMapping","Record","getTokenToFind","tokenFromProps","currentToken","defaultTokenFrom","defaultTokenTo","selectTokenFromAtom","selectTokenToAtom","isSwap","isLimitOrOtc","isSwapWithSell","isSwapWithBuy","formPayAmountAtom","currentSendAmount","read","write","formReceiveAmountAtom","currentReceiveAmount","orderDeadline","isNaN","timeUnitAtom","currentTimeUnit","timestamp","useActivateFormInputEffects","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","t2","t3"],"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 {\n enabledTradeModesAtom,\n enabledTradeModesFromConfigAtom,\n} 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 // subscribe to enabledTradeModesAtom to react to changes in enabled trade modes\n get(enabledTradeModesFromConfigAtom);\n // and use enabledTradeModesAtom as final source of truth (it derrives from enabledTradeModesFromConfigAtom)\n const enabledTradeModes = get.peek(enabledTradeModesAtom);\n\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const { tokenFromAddress } = formInputProps;\n\n // guard against amounts passed as numbers when props are supplied from outside the Widget and types are ignored\n const sendAmount =\n formInputProps.sendAmount !== undefined\n ? String(formInputProps.sendAmount)\n : undefined;\n const receiveAmount =\n formInputProps.receiveAmount !== undefined\n ? String(formInputProps.receiveAmount)\n : undefined;\n\n // guard against chainId passed as string when props are supplied from outside the Widget and types are ignored\n const srcChainId =\n formInputProps.srcChainId !== undefined\n ? Number(formInputProps.srcChainId)\n : undefined;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId =\n formInputProps.destChainId !== undefined\n ? Number(formInputProps.destChainId)\n : undefined;\n\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, disabled or unavailable 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 // given a valid sendAmount\n sendAmount &&\n Number(sendAmount) >= 0 &&\n // and the form is a swap with side=sell or limit or otc\n (isSwapWithSell || isLimitOrOtc)\n ) {\n // update the send amount\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 // given a valid receiveAmount\n receiveAmount &&\n Number(receiveAmount) >= 0 &&\n // and the form is a swap with side=buy or limit or otc\n (isSwapWithBuy || isLimitOrOtc)\n ) {\n // update the receive amount\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 // OTC and Limit forms support order deadline param\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"],"mappings":"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"}
1
+ {"version":3,"file":"setTokenByAddressAtom.js","names":["atom","Setter","useAtom","useSetAtom","atomEffect","Effect","isAddress","Address","isETHaddress","nativeTokensByChainId","fromListsAtom","autoImportedTokensAtom","importedTokensAtom","Token","useLayoutEffect","isSupportedChainId","areTokensSame","SupportedChainId","pickDefaultTokenPair","tradeModeAtom","userTradeModeAtom","sideToInputType","tradeModeToCurrentInputAtom","tradeModeToPayAmountUnitAtom","tradeModeToReceiveAmountUnitAtom","tradeModeToSetTokenAtoms","tradeModeToSideAtom","tradeModeToTimeUnitAtom","tradeModeToTokenAtoms","wrappedNativeCurrency","autoAddImportedTokenAtom","getLogger","assert","bridgeInfosLoadedAtom","isTradeMode","tradeModesWithCrosschain","tradeModesWithSide","enabledTradeModesAtom","enabledTradeModesFromConfigAtom","FormInputProps","SwapSideUnion","getClosestTimeUnit","formInputPropsAtom","RelaxedFormInputProps","NonNullable","K","logger","GetterWithPeek","Parameters","FindTokenAtomsInput","tokenToFind","address","network","get","set","findTokenInAtoms","tokenFromAddress","chainId","nativeToken","tokenFromLowercase","toLowerCase","tokensMap","listByChainId","addressMap","tokenFromLists","importedTokens","peek","importedToken","find","token","autoImportedTokens","autoImportedToken","info","isValidSide","side","formInputPropsEffectAtom","enabledTradeModes","formInputProps","sendAmount","undefined","String","receiveAmount","srcChainId","Number","log","destChainId","currentTradeMode","tokenToAddress","selectedForm","includes","warn","formAtoms","currentTokenFrom","tokenFromAtom","currentTokenTo","tokenToAtom","newTokenFrom","newTokenTo","defaultChainId","has","wethMapping","Record","getTokenToFind","tokenFromProps","currentToken","defaultTokenFrom","defaultTokenTo","selectTokenFromAtom","selectTokenToAtom","currentSideAtom","currentInputAtom","isTradeModeWithSide","isTradeModeWithoutSide","isSell","isBuy","isValidSendAmount","isValidReceiveAmount","formPayAmountAtom","currentSendAmount","read","write","formReceiveAmountAtom","currentReceiveAmount","orderDeadline","isNaN","timeUnitAtom","currentTimeUnit","timestamp","useActivateFormInputEffects","useSetFormInputFromProps","t0","$","_c","t1","setFormInputProps","t2","t3"],"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 tradeModeToCurrentInputAtom,\n tradeModeToPayAmountUnitAtom,\n tradeModeToReceiveAmountUnitAtom,\n tradeModeToSetTokenAtoms,\n tradeModeToSideAtom,\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 {\n isTradeMode,\n tradeModesWithCrosschain,\n tradeModesWithSide,\n} from \"@/lib/tradeMode\";\nimport {\n enabledTradeModesAtom,\n enabledTradeModesFromConfigAtom,\n} from \"@/core/state/enabledTradeModesAtom\";\nimport type { FormInputProps } from \"./types\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\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 // subscribe to enabledTradeModesAtom to react to changes in enabled trade modes\n get(enabledTradeModesFromConfigAtom);\n // and use enabledTradeModesAtom as final source of truth (it derrives from enabledTradeModesFromConfigAtom)\n const enabledTradeModes = get.peek(enabledTradeModesAtom);\n\n const formInputProps: RelaxedFormInputProps = get(formInputPropsAtom);\n const { tokenFromAddress } = formInputProps;\n\n // guard against amounts passed as numbers when props are supplied from outside the Widget and types are ignored\n const sendAmount =\n formInputProps.sendAmount !== undefined\n ? String(formInputProps.sendAmount)\n : undefined;\n const receiveAmount =\n formInputProps.receiveAmount !== undefined\n ? String(formInputProps.receiveAmount)\n : undefined;\n\n // guard against chainId passed as string when props are supplied from outside the Widget and types are ignored\n const srcChainId =\n formInputProps.srcChainId !== undefined\n ? Number(formInputProps.srcChainId)\n : undefined;\n\n logger.log(\"using external props to set Widget form input\", formInputProps);\n\n let destChainId =\n formInputProps.destChainId !== undefined\n ? Number(formInputProps.destChainId)\n : undefined;\n\n const currentTradeMode = get.peek(tradeModeAtom);\n\n let tokenToAddress = formInputProps.tokenToAddress;\n let selectedForm = formInputProps.selectedForm || currentTradeMode;\n if (!isTradeMode(selectedForm) || !enabledTradeModes.includes(selectedForm)) {\n // guard against invalid props passed through from outside the Widget\n logger.warn(\"invalid, disabled or unavailable selectedForm provided\", {\n selectedForm,\n });\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 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 (!tradeModesWithCrosschain.has(selectedForm)) {\n // force destChainId = srcChainId for trade modes that don't support crosschain\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 const currentSideAtom = tradeModeToSideAtom[selectedForm];\n const currentInputAtom = tradeModeToCurrentInputAtom[selectedForm];\n\n let side = formInputProps.side;\n\n if (tradeModesWithSide.has(selectedForm)) {\n if (isValidSide(side)) {\n set(currentInputAtom, 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\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 side if both or none amounts are given\n side = get.peek(currentSideAtom);\n }\n }\n } else {\n side = get.peek(currentSideAtom);\n }\n\n // necessary for type safety\n assert(isValidSide(side), \"side must be BUY or SELL\");\n\n const isTradeModeWithSide = tradeModesWithSide.has(selectedForm);\n const isTradeModeWithoutSide = !isTradeModeWithSide;\n\n const isSell =\n isTradeModeWithoutSide || (isTradeModeWithSide && side === \"SELL\");\n const isBuy =\n isTradeModeWithoutSide || (isTradeModeWithSide && side === \"BUY\");\n\n const isValidSendAmount = sendAmount && Number(sendAmount) >= 0;\n const isValidReceiveAmount = receiveAmount && Number(receiveAmount) >= 0;\n\n // given a valid sendAmount\n // and the form with side=sell or without side\n if (isValidSendAmount && isSell) {\n // update the send amount\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 // given a valid receiveAmount\n // and the form with side=buy or without side\n if (isValidReceiveAmount && isBuy) {\n // update the receive amount\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 // OTC and Limit forms support order deadline param\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"],"mappings":"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"}