@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 +1 @@
1
- {"version":3,"file":"useLimitOrderFlow.js","names":["useAccount","useChainId","assert","useEnsureTxReceipt","Address","Hash","TransactionReceipt","SubmittedDeltaOrderFromAPI","ApprovalFlowResult","SubmitTxResult","useCreateAndSubmitDeltaOrder","CreateAndSubmitDeltaOrderInput","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","usePartner","useLimitDeadline","getOverallOrderStatus","useWatchDeltaAuction","MaybeVeloraDeltaAuction","useWidgetEvents","shouldApproveOrBatch","usePreSignAndSubmitDeltaOrder","BridgePrice","DeltaOrderApiResponse","DEFAULT_DELTA_BRIDGE","useLimitReceiverAddressValue","useDepositAndSubmitDeltaOrder","isETHaddress","useCancelOrWithdrawAndCancelDeltaOrder","CancelDeltaOrdersReturn","CancelOrderStepKey","limitOrderFlowType","UserDefinedLimitPrice","srcTokenAddress","destTokenAddress","srcAmount","destAmount","bridgePrice","UseLimitOrderFlowInput","limitPrice","SubmitLimitOrderResult","tradeFlowType","approve","limitOrder","sentOrder","lastOrderState","account","receiverAddress","OnTxSent","txSent","RunLimitOrderOptions","onTxSent","UseLimitOrderFlowResult","chainId","runLimitOrderFlow","options","Promise","reset","cancelFlow","retryFlow","cancelLimitOrder","approval","limitOrderSubmission","order","isPostingOrder","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","Error","limitOrderExecution","isOrderPending","isOrderExecuting","isOrderExecuted","limitOrderCancelation","receipt","txHash","response","isCancelingOrder","isOrderCancellable","isOrderCanceled","step","result","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","logger","approveTxMut","events","approveOrPermitEvents","srcToken","spenderContractType","swapSide","tradeMode","address","minClient","createAndSubmitOrderMut","client","mutationOptions","onSuccess","log","onError","limitOrderCreateAndSubmit","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","resetPreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","postingOrder","watchOrderExecution","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","data","neverFetchedFinishedOrder","isLoading","isRefetching","cancelOrderMut","cancelOrderResponse","ensureTxReceipt","currentAbortControllerRef","AbortController","current","abort","partner","deadline","onLimitOrder","submitLimitOrder","abortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDepositAndPreSign","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","destChainId","bridge","destinationChainId","createOrderInput","type","orderInput","owner","beneficiary","destToken","deltaPrice","protocolSelector","protocolData","partnerFee","orderFromAPI","createDeltaOrderInput","depositAmount","mutateAsync","cancelDeltaOrder","limitOrderMut","mutationFn","mutationKey","onSettled"],"sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport { type SubmittedDeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport {\n useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\n\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport type { BridgePrice, DeltaOrderApiResponse } from \"@velora-dex/sdk\";\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useDepositAndSubmitDeltaOrder } from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n bridgePrice?: BridgePrice;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunLimitOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseLimitOrderFlowResult = {\n tradeFlowType: typeof limitOrderFlowType;\n chainId: SupportedChainId;\n runLimitOrderFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>; // reset and retry flow\n cancelLimitOrder: () => Promise<\n TransactionReceipt | CancelDeltaOrdersReturn | undefined\n >;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderExecution: {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderCancelation: {\n receipt?: TransactionReceipt;\n txHash?: string;\n response?: CancelDeltaOrdersReturn;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitLimitOrderResult;\n limitPrice?: UserDefinedLimitPrice;\n};\n\nconst LIMIT_ORDER_MUTATION_KEY = \"runLimitOrderFlow\";\n\nexport function useLimitOrderFlow({\n limitPrice,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: limitPrice?.srcTokenAddress,\n srcAmount: limitPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\",\n tradeMode: \"limit\",\n chainId,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderCreateAndSubmit: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order:\n limitOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isPostingOrder:\n limitOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isOrderSent ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n limitOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n limitOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: limitOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Limit Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Limit Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Limit Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Limit Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const limitOrderExecution: UseLimitOrderFlowResult[\"limitOrderExecution\"] = {\n sentOrder: limitOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: limitOrderExecution.lastOrderState || limitOrderExecution.sentOrder,\n chainId,\n account,\n client: minClient,\n logger,\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n receipt: cancelOrderMut.receipt,\n txHash: cancelOrderMut.txHash,\n response: cancelOrderMut.cancelOrderResponse,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n step: cancelOrderMut.step,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { partner } = usePartner();\n const receiverAddress = useLimitReceiverAddressValue();\n const deadline = useLimitDeadline();\n\n const { onLimitOrder } = useWidgetEvents();\n\n const submitLimitOrder = async ({\n onTxSent,\n }: RunLimitOrderOptions = {}): Promise<SubmitLimitOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createAndSubmitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(limitPrice, \"Limit price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(limitPrice.srcTokenAddress);\n\n /* \n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, no Permit for Limit Orders)\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const {\n shouldDoApprovalTxOrPermit: shouldDoApprovalTx,\n shouldPreSignBatch,\n } = shouldApproveOrBatch({\n approval,\n signPermit: {\n isPermitSupported: false,\n isPermitReadyToSign: false,\n },\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } catch (error) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n assert(limitPrice, \"limitPrice is not available\");\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:request\",\n params: {\n price: limitPrice,\n },\n },\n });\n const bridgePrice = limitPrice.bridgePrice;\n const destChainId = bridgePrice?.bridge.destinationChainId;\n\n let createOrderInput: CreateAndSubmitDeltaOrderInput;\n if (bridgePrice) {\n // crosschain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n destToken: limitPrice.destTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n ...bridgePrice,\n bridge: {\n ...bridgePrice.bridge,\n protocolSelector: DEFAULT_DELTA_BRIDGE.protocolSelector,\n protocolData: DEFAULT_DELTA_BRIDGE.protocolData,\n },\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n } else {\n // singlechain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE,\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n }\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n if (shouldDepositAndPreSign) {\n // deposit ETH + depositTx + POST order\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n orderFromAPI =\n await createAndSubmitOrderMut.mutateAsync(createOrderInput);\n }\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:sent\",\n params: {\n price: limitPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: limitOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n limitOrder: {\n sentOrder: orderFromAPI,\n },\n limitPrice: limitPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:failed\",\n params: {\n price: limitPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const cancelLimitOrder = async () => {\n try {\n return await cancelOrderMut.cancelDeltaOrder();\n } catch (error) {\n logger.error(\"Cancel Limit order error\", error);\n // allow to re-trigger cancellation after error (like UserCancelledError)\n cancelOrderMut.reset();\n }\n };\n\n const limitOrderMut = useMutation({\n mutationFn: submitLimitOrder,\n mutationKey: [LIMIT_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runLimitOrderFlow = limitOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n createAndSubmitOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\n\n let result: SubmitLimitOrderResult | undefined = limitOrderMut.data;\n if (result && limitOrderExecution.lastOrderState) {\n result = {\n ...result,\n limitOrder: {\n sentOrder: result.limitOrder.sentOrder,\n // lastOrderState may be CANCELLED here\n lastOrderState: limitOrderExecution.lastOrderState,\n },\n };\n }\n\n return {\n tradeFlowType: limitOrderFlowType,\n chainId,\n runLimitOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelLimitOrder,\n approval,\n limitOrderSubmission,\n limitOrderExecution,\n limitOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: limitOrderMut.isPending,\n isSuccess: limitOrderSubmission.isSuccess, // approval is an optional step\n isError: limitOrderMut.isError,\n error: limitOrderMut.error,\n result,\n limitPrice,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitOrderFlow.js","names":["useAccount","useChainId","assert","useEnsureTxReceipt","Address","Hash","TransactionReceipt","ApprovalFlowResult","SubmitTxResult","useCreateAndSubmitDeltaOrder","CreateAndSubmitDeltaOrderInput","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","usePartner","useLimitDeadline","getOverallOrderStatus","useWatchDeltaAuction","useWidgetEvents","shouldApproveOrBatch","usePreSignAndSubmitDeltaOrder","BridgePrice","DEFAULT_DELTA_BRIDGE","useLimitReceiverAddressValue","useDepositAndSubmitDeltaOrder","isETHaddress","useCancelOrWithdrawAndCancelDeltaOrder","CancelDeltaOrdersReturn","DeltaAuctionWithOrder","CancelOrderStepKey","HALF_MINUTE_MS","limitOrderFlowType","UserDefinedLimitPrice","srcTokenAddress","destTokenAddress","srcAmount","destAmount","bridgePrice","UseLimitOrderFlowInput","limitPrice","SubmitLimitOrderResult","tradeFlowType","approve","limitOrder","sentOrder","lastOrderState","account","receiverAddress","OnTxSent","txSent","RunLimitOrderOptions","onTxSent","UseLimitOrderFlowResult","chainId","runLimitOrderFlow","options","Promise","reset","cancelFlow","retryFlow","cancelLimitOrder","approval","limitOrderSubmission","order","isPostingOrder","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","Error","limitOrderExecution","isOrderPending","isOrderExecuting","isOrderExecuted","limitOrderCancelation","receipt","txHash","response","isCancelingOrder","isOrderCancellable","isOrderCanceled","step","result","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","logger","approveTxMut","events","approveOrPermitEvents","srcToken","spenderContractType","swapSide","tradeMode","address","minClient","createAndSubmitOrderMut","client","mutationOptions","onSuccess","log","onError","limitOrderCreateAndSubmit","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","resetPreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","postingOrder","watchOrderExecution","orderId","id","refetchInterval","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","orderStatus","data","isLoading","isRefetching","cancelOrderMut","cancelOrderResponse","ensureTxReceipt","currentAbortControllerRef","AbortController","current","abort","partner","deadline","onLimitOrder","submitLimitOrder","abortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDepositAndPreSign","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","destChainId","bridge","destinationChainId","createOrderInput","type","orderInput","owner","beneficiary","destToken","deltaPrice","protocolSelector","protocolData","partnerFee","orderFromAPI","depositAmount","mutateAsync","cancelDeltaOrder","limitOrderMut","mutationFn","mutationKey","onSettled"],"sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport {\n useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\n\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { useWatchDeltaAuction } from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport type { BridgePrice } from \"@velora-dex/sdk\";\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useDepositAndSubmitDeltaOrder } from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\nimport type { DeltaAuctionWithOrder } from \"../prices/delta/orders/types\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport { HALF_MINUTE_MS } from \"@/lib/constants/time\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n bridgePrice?: BridgePrice;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: DeltaAuctionWithOrder;\n lastOrderState?: DeltaAuctionWithOrder;\n };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunLimitOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseLimitOrderFlowResult = {\n tradeFlowType: typeof limitOrderFlowType;\n chainId: SupportedChainId;\n runLimitOrderFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunLimitOrderOptions\n ) => Promise<SubmitLimitOrderResult>; // reset and retry flow\n cancelLimitOrder: () => Promise<\n TransactionReceipt | CancelDeltaOrdersReturn | undefined\n >;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: DeltaAuctionWithOrder;\n isPostingOrder: boolean;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderExecution: {\n sentOrder?: DeltaAuctionWithOrder;\n lastOrderState?: DeltaAuctionWithOrder;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n limitOrderCancelation: {\n receipt?: TransactionReceipt;\n txHash?: string;\n response?: CancelDeltaOrdersReturn;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitLimitOrderResult;\n limitPrice?: UserDefinedLimitPrice;\n};\n\nconst LIMIT_ORDER_MUTATION_KEY = \"runLimitOrderFlow\";\n\nexport function useLimitOrderFlow({\n limitPrice,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: limitPrice?.srcTokenAddress,\n srcAmount: limitPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\",\n tradeMode: \"limit\",\n chainId,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderCreateAndSubmit: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order:\n limitOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isPostingOrder:\n limitOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isOrderSent ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n limitOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n limitOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction<DeltaAuctionWithOrder>({\n orderId: limitOrderSubmission.order?.id,\n refetchInterval: HALF_MINUTE_MS,\n onAuctionSuccess: (order) => {\n logger.log(\"Limit Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Limit Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Limit Order updated\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n const limitOrderExecution: UseLimitOrderFlowResult[\"limitOrderExecution\"] = {\n sentOrder: limitOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError: watchOrderExecution.isError || orderStatus === \"failed\",\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: limitOrderExecution.lastOrderState || limitOrderExecution.sentOrder,\n chainId,\n account,\n client: minClient,\n logger,\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n receipt: cancelOrderMut.receipt,\n txHash: cancelOrderMut.txHash,\n response: cancelOrderMut.cancelOrderResponse,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n step: cancelOrderMut.step,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { partner } = usePartner();\n const receiverAddress = useLimitReceiverAddressValue();\n const deadline = useLimitDeadline();\n\n const { onLimitOrder } = useWidgetEvents();\n\n const submitLimitOrder = async ({\n onTxSent,\n }: RunLimitOrderOptions = {}): Promise<SubmitLimitOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createAndSubmitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(limitPrice, \"Limit price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(limitPrice.srcTokenAddress);\n\n /* \n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, no Permit for Limit Orders)\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const {\n shouldDoApprovalTxOrPermit: shouldDoApprovalTx,\n shouldPreSignBatch,\n } = shouldApproveOrBatch({\n approval,\n signPermit: {\n isPermitSupported: false,\n isPermitReadyToSign: false,\n },\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } catch (error) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n assert(limitPrice, \"limitPrice is not available\");\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:request\",\n params: {\n price: limitPrice,\n },\n },\n });\n const bridgePrice = limitPrice.bridgePrice;\n const destChainId = bridgePrice?.bridge.destinationChainId;\n\n let createOrderInput: CreateAndSubmitDeltaOrderInput;\n if (bridgePrice) {\n // crosschain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n destToken: limitPrice.destTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n ...bridgePrice,\n bridge: {\n ...bridgePrice.bridge,\n protocolSelector: DEFAULT_DELTA_BRIDGE.protocolSelector,\n protocolData: DEFAULT_DELTA_BRIDGE.protocolData,\n },\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n } else {\n // singlechain order\n createOrderInput = {\n signal,\n type: \"LIMIT\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n destChainId,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE,\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n };\n }\n\n let orderFromAPI: DeltaAuctionWithOrder;\n\n if (shouldDepositAndPreSign) {\n const depositAmount = createOrderInput.orderInput.srcAmount;\n // deposit ETH + depositTx + POST order\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createOrderInput,\n depositAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n orderFromAPI =\n await createAndSubmitOrderMut.mutateAsync(createOrderInput);\n }\n\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:sent\",\n params: {\n price: limitPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: limitOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n limitOrder: {\n sentOrder: orderFromAPI,\n },\n limitPrice: limitPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:failed\",\n params: {\n price: limitPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const cancelLimitOrder = async () => {\n try {\n return await cancelOrderMut.cancelDeltaOrder();\n } catch (error) {\n logger.error(\"Cancel Limit order error\", error);\n // allow to re-trigger cancellation after error (like UserCancelledError)\n cancelOrderMut.reset();\n }\n };\n\n const limitOrderMut = useMutation({\n mutationFn: submitLimitOrder,\n mutationKey: [LIMIT_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runLimitOrderFlow = limitOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n createAndSubmitOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\n\n let result: SubmitLimitOrderResult | undefined = limitOrderMut.data;\n if (result && limitOrderExecution.lastOrderState) {\n result = {\n ...result,\n limitOrder: {\n sentOrder: result.limitOrder.sentOrder,\n // lastOrderState may be CANCELLED here\n lastOrderState: limitOrderExecution.lastOrderState,\n },\n };\n }\n\n return {\n tradeFlowType: limitOrderFlowType,\n chainId,\n runLimitOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelLimitOrder,\n approval,\n limitOrderSubmission,\n limitOrderExecution,\n limitOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: limitOrderMut.isPending,\n isSuccess: limitOrderSubmission.isSuccess, // approval is an optional step\n isError: limitOrderMut.isError,\n error: limitOrderMut.error,\n result,\n limitPrice,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { BridgePrice, DeltaPrice } from '@velora-dex/sdk';
2
+ import { Address, TransactionReceipt } from 'viem';
3
+ import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
4
+ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
5
+ import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
6
+ import { CancelDeltaOrdersReturn } from '../prices/delta/mutations/useCancelDeltaOrders';
7
+ import { DeltaAuctionWithTwapOrder } from '../prices/delta/orders/types';
8
+ import { TwapOrderPreSignResult } from '../prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder';
9
+ import { TwapOrderDepositResult } from '../prices/delta/mutations/twap/useDepositAndSubmitTwapOrder';
10
+ import { CancelOrderStepKey } from '../../../components/widget/TradeOverview/steps';
11
+ declare const twapOrderFlowType = "twapOrder";
12
+ export type UseTwapFlowInput = {
13
+ twapPrice?: DeltaPrice | BridgePrice;
14
+ };
15
+ export type SubmitTwapOrderResult = {
16
+ tradeFlowType: typeof twapOrderFlowType;
17
+ approve: SubmitTxResult;
18
+ twapOrder: {
19
+ sentOrder: DeltaAuctionWithTwapOrder;
20
+ lastOrderState?: DeltaAuctionWithTwapOrder;
21
+ };
22
+ twapPrice: DeltaPrice | BridgePrice;
23
+ account: Address;
24
+ receiverAddress?: Address;
25
+ };
26
+ type OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;
27
+ type RunTwapOrderOptions = {
28
+ onTxSent?: OnTxSent;
29
+ };
30
+ type TwapOrderSubmissionResult = {
31
+ order?: DeltaAuctionWithTwapOrder;
32
+ isCreatingOrder: boolean;
33
+ isPostingOrder: boolean;
34
+ isOrderSent: boolean;
35
+ isPending: boolean;
36
+ isError: boolean;
37
+ isSuccess: boolean;
38
+ error: Error | null;
39
+ };
40
+ type TwapOrderExecutionResult = {
41
+ sentOrder?: DeltaAuctionWithTwapOrder;
42
+ lastOrderState?: DeltaAuctionWithTwapOrder;
43
+ isOrderPending: boolean;
44
+ isOrderExecuting: boolean;
45
+ isOrderExecuted: boolean;
46
+ isPending: boolean;
47
+ isError: boolean;
48
+ isSuccess: boolean;
49
+ error: Error | null;
50
+ };
51
+ type TwapOrderCancelationResult = {
52
+ step?: CancelOrderStepKey;
53
+ receipt?: TransactionReceipt;
54
+ txHash?: string;
55
+ response?: CancelDeltaOrdersReturn;
56
+ isCancelingOrder: boolean;
57
+ isOrderCancellable: boolean;
58
+ isOrderCanceled: boolean;
59
+ isPending: boolean;
60
+ isError: boolean;
61
+ isSuccess: boolean;
62
+ result?: TransactionReceipt | CancelDeltaOrdersReturn;
63
+ error: Error | null;
64
+ };
65
+ export type UseTwapFlowResult = {
66
+ tradeFlowType: typeof twapOrderFlowType;
67
+ chainId: SupportedChainId;
68
+ runTwapOrderFlow: (options?: RunTwapOrderOptions) => Promise<SubmitTwapOrderResult>;
69
+ reset: () => void;
70
+ cancelFlow: () => void;
71
+ retryFlow: (options?: RunTwapOrderOptions) => Promise<SubmitTwapOrderResult>;
72
+ cancelTwapOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn | undefined>;
73
+ approval: ApprovalFlowResult;
74
+ signPermit: SignPermitFlowResult;
75
+ twapOrderPreSign: TwapOrderPreSignResult;
76
+ twapOrderDeposit: TwapOrderDepositResult;
77
+ twapOrderSubmission: TwapOrderSubmissionResult;
78
+ twapOrderExecution: TwapOrderExecutionResult;
79
+ twapOrderCancelation: TwapOrderCancelationResult;
80
+ isPending: boolean;
81
+ isSuccess: boolean;
82
+ isError: boolean;
83
+ error: Error | null;
84
+ result?: SubmitTwapOrderResult;
85
+ usedPrice?: DeltaPrice | BridgePrice;
86
+ freshPrice?: DeltaPrice | BridgePrice;
87
+ submittedTwapOrder?: DeltaAuctionWithTwapOrder;
88
+ };
89
+ export declare function useTwapFlow({ twapPrice: _twapPrice, }: UseTwapFlowInput): UseTwapFlowResult;
90
+ export {};
91
+ //# sourceMappingURL=useTwapFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTwapFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useTwapFlow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,368 @@
1
+ import { useLogger as e } from "../../../core/logger.js";
2
+ import { isBridgePrice as t, useSubscribeToDeltaPrice as n } from "../prices/delta/queries/useDeltaPriceQuery.js";
3
+ import { isETHaddress as r } from "../../../tokens/utils/eth.js";
4
+ import { useTwapSide as i } from "../../../core/twap/state/twapSideAtom.js";
5
+ import { useTwapReceiverAddressValue as a } from "../../../core/twap/state/twapReceiverAddressAtom.js";
6
+ import { HALF_MINUTE_MS as o } from "../../../lib/constants/time.js";
7
+ import { getTwapAmountsFromPrice as s, produceTwapDeadlines as c } from "../../../lib/utils/twap.js";
8
+ import { useTwapDuration as l, useTwapSlippage as u } from "../../../core/twap/state/twapParamsAtom.js";
9
+ import { useWidgetEvents as d } from "../../../core/state/widgetEventsAtom.js";
10
+ import { getOverallOrderStatus as f, getSwapSideFromDeltaPrice as ee } from "../prices/delta/orders/utils.js";
11
+ import { useWatchDeltaAuction as p } from "../prices/delta/queries/useWatchDeltaOrder.js";
12
+ import { amountAfterSlippage as m } from "../../../lib/utils/slippage.js";
13
+ import { useMinViemClient as h } from "../../useMinViemClient.js";
14
+ import { usePartner as g } from "../../usePartner.js";
15
+ import { useTwapPrices as _ } from "../prices/useTwapPrices.js";
16
+ import { useEnsureTxReceipt as te } from "../../txs/queries/useAwaitTx.js";
17
+ import { useCancelOrWithdrawAndCancelDeltaOrder as ne } from "../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js";
18
+ import { UserCancelledError as v } from "./common/errors.js";
19
+ import { useMarkPermit1Or2NonceAsUsed as re } from "./common/useSignPermit1Or2.js";
20
+ import { useApproveOrPermit as ie } from "./common/useApproveOrPermit.js";
21
+ import { shouldApproveOrBatch as ae } from "./common/usePreSignAndSubmitDeltaOrder.js";
22
+ import { useCreateAndSubmitTwapOrder as y } from "../prices/delta/mutations/twap/useCreateTwapOrder.js";
23
+ import { usePreSignAndSubmitTwapOrder as b } from "../prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js";
24
+ import { useDepositAndSubmitTwapOrder as x } from "../prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js";
25
+ import { DEFAULT_DELTA_BRIDGE as oe } from "../prices/delta/bridge/const.js";
26
+ import { useRef as S } from "react";
27
+ import { useMutation as se } from "@tanstack/react-query";
28
+ import { assert as C } from "ts-essentials";
29
+ import "@velora-dex/sdk";
30
+ import "viem";
31
+ import { useAccount as ce } from "wagmi";
32
+ //#region src/hooks/swap/tradeFlow/useTwapFlow.ts
33
+ var w = "twapOrder", le = "runTwapOrderFlow";
34
+ function T({ twapPrice: m }) {
35
+ let T = e("TwapFlow"), { queryKey: de, price: fe, chainId: E, refetch: pe, totalSrcAmount: me, side: he, numSlices: D, priceParams: ge } = _({ enabled: !1 }), O = fe || m, _e = i(), ve = he || _e, { approval: k, signPermit: A, approveTxMut: j, signPermitMut: M, events: N } = ie({
36
+ srcToken: O?.srcToken,
37
+ srcAmount: me,
38
+ spenderContractType: "ParaswapDelta",
39
+ swapSide: ve,
40
+ tradeMode: "twap",
41
+ chainId: E,
42
+ tryPermit2: !1
43
+ }), { address: P } = ce(), { minClient: F } = h({
44
+ chainId: E,
45
+ account: P
46
+ }), I = y({
47
+ chainId: E,
48
+ account: P,
49
+ client: F,
50
+ mutationOptions: {
51
+ onSuccess: (e) => {
52
+ T.log("Create Twap Order success", e);
53
+ },
54
+ onError: (e) => {
55
+ T.error("Create Twap Order error", e);
56
+ }
57
+ }
58
+ }), L = {
59
+ order: I.order,
60
+ isCreatingOrder: I.isCreatingOrder,
61
+ isPostingOrder: I.isPostingOrder,
62
+ isOrderSent: I.isOrderSent,
63
+ isPending: I.isPending,
64
+ isError: I.isError,
65
+ isSuccess: I.isSuccess,
66
+ error: I.error
67
+ }, { twapOrderPreSign: R, canBatchTxs: ye, isConnectedToSafe: be, preSignAndSubmitTwapOrder: xe, reset: z } = b({
68
+ chainId: E,
69
+ account: P,
70
+ logger: T,
71
+ viemClient: F
72
+ }), { twapOrderDeposit: B, reset: V, depositAndSubmitTwapOrder: Se } = x({
73
+ chainId: E,
74
+ account: P,
75
+ logger: T,
76
+ viemClient: F
77
+ }), H = {
78
+ order: L.order || R.order || B.order,
79
+ isPostingOrder: L.isPostingOrder || R.postingOrder.isPostingOrder || B.postingOrder.isPostingOrder,
80
+ isCreatingOrder: L.isCreatingOrder || R.isCreatingOrder || B.isCreatingOrder,
81
+ isOrderSent: L.isOrderSent || R.isOrderSent || B.isOrderSent,
82
+ isPending: L.isPending || R.isPending || B.isPending,
83
+ isError: L.isError || R.isError || B.isError,
84
+ isSuccess: L.isSuccess || R.isSuccess || B.isSuccess,
85
+ error: L.error || R.error || B.error
86
+ }, U = p({
87
+ orderId: H.order?.id,
88
+ refetchInterval: o,
89
+ onAuctionSuccess: (e) => {
90
+ T.log("Twap Order success", e);
91
+ },
92
+ onAuctionFailure: (e) => {
93
+ T.log("Twap Order failure", e);
94
+ },
95
+ onUpdatedAuction: (e) => {
96
+ T.log("Twap Order updated", e);
97
+ }
98
+ }), W = U.data ? f(U.data) : null, G = {
99
+ sentOrder: H.order,
100
+ lastOrderState: U.data,
101
+ isOrderPending: W === "pending",
102
+ isOrderExecuting: W === "executing",
103
+ isOrderExecuted: W === "confirmed",
104
+ isPending: U.isLoading || U.isRefetching || W === "pending" || W === "executing",
105
+ isError: U.isError || W === "failed",
106
+ isSuccess: W === "confirmed",
107
+ error: U.error
108
+ }, K = G.lastOrderState || G.sentOrder, q = ne({
109
+ order: K,
110
+ chainId: E,
111
+ account: P,
112
+ client: F,
113
+ logger: T,
114
+ mutationOptions: { onMutate: () => (C(K, "No order to cancel"), K) }
115
+ }), Ce = {
116
+ receipt: q.receipt,
117
+ txHash: q.txHash,
118
+ response: q.cancelOrderResponse,
119
+ isCancelingOrder: q.isPending,
120
+ isOrderCancellable: q.isOrderCancellable,
121
+ isOrderCanceled: q.isSuccess,
122
+ isPending: q.isPending,
123
+ isError: q.isError,
124
+ isSuccess: q.isSuccess,
125
+ error: q.error,
126
+ result: q.result,
127
+ step: q.step
128
+ }, we = te(), J = S(null), Y = S(null), Te = () => {
129
+ J.current?.abort(new v()), J.current = null, Y.current = null;
130
+ }, Ee = a(), { markNonceAsUsed: De, clearNonce: Oe } = re({ chainId: E }), { partner: ke, partnerAddress: Ae, partnerFeeBps: je, partnerTakesSurplus: Me } = g(), Ne = n(), { onTwapOrder: X } = d(), Pe = u(), Fe = l(), Ie = async ({ onTxSent: e, lastPrice: n } = {}) => {
131
+ j.reset(), M.reset(), I.reset(), q.reset(), z(), V(), C(O, "Twap price is not available");
132
+ let i = new AbortController();
133
+ J.current = i;
134
+ let a = i.signal, { orderDeadline: o, orderInterval: l } = c({
135
+ durationMin: Fe,
136
+ numSlices: D
137
+ }), u = Math.floor(Pe * 100), d, f, p, m = k.allowanceToSet, h = A.amountToPermit, g = O;
138
+ if (g.hmac === n?.hmac) {
139
+ let e = await pe({ cancelRefetch: !1 });
140
+ a.throwIfAborted(), e.data && (g = e.data);
141
+ }
142
+ let _;
143
+ Y.current = g;
144
+ let te = r(g.srcToken), { shouldDoApprovalTxOrPermit: ne, tryPermit: v, shouldPreSignBatch: re } = ae({
145
+ approval: k,
146
+ signPermit: A,
147
+ canBatchTxs: ye,
148
+ isConnectedToSafe: be
149
+ });
150
+ try {
151
+ if (ne && m) {
152
+ let t = de;
153
+ if (t) {
154
+ let e = m;
155
+ _ = Ne({
156
+ queryKey: t,
157
+ onData: (t) => {
158
+ let n = t;
159
+ if (a.aborted) {
160
+ _?.(), _ = void 0;
161
+ return;
162
+ }
163
+ let { srcAmount: r } = s({
164
+ price: n,
165
+ numSlices: D
166
+ });
167
+ e >= BigInt(r) && (T.log("~ fresh price ~", n), g = n, Y.current = g);
168
+ }
169
+ });
170
+ }
171
+ try {
172
+ if (v) N.onSignPermit.request({ allowanceToSet: h }), d = await M.signPermitAsync({
173
+ deadline: BigInt(o),
174
+ value: h
175
+ }), N.onSignPermit.confirmed({
176
+ allowanceToSet: h,
177
+ permit: d?.permitEncodedArgs
178
+ });
179
+ else {
180
+ N.onApproveTx.request({ allowanceToSet: m }), f = await j.approveAsync({ allowanceData: { allowanceToSet: m } }), N.onApproveTx.sent({
181
+ allowanceToSet: m,
182
+ txHash: f
183
+ }), a.throwIfAborted();
184
+ let t = we({
185
+ hash: f,
186
+ chainId: E,
187
+ onReplaced: (e) => {
188
+ T.log("onReplaced:approveTx", f, e);
189
+ }
190
+ });
191
+ e && e({
192
+ chainId: E,
193
+ action: "approve",
194
+ transactionHash: f,
195
+ receiptPromise: t,
196
+ transactionSpecificData: {
197
+ action: "approve",
198
+ approvedAmount: m,
199
+ tokenAddress: k.token,
200
+ spenderAddress: k.spender
201
+ }
202
+ }), p = await t, N.onApproveTx.confirmed({
203
+ allowanceToSet: m,
204
+ txHash: f,
205
+ txReceipt: p
206
+ }), T.log("~ approveTx ~ receipt:", p);
207
+ }
208
+ } catch (e) {
209
+ throw v ? N.onSignPermit.failed({
210
+ allowanceToSet: h,
211
+ error: e
212
+ }) : N.onApproveTx.failed({
213
+ allowanceToSet: m,
214
+ error: e,
215
+ txHash: f
216
+ }), e;
217
+ }
218
+ }
219
+ a.throwIfAborted(), C(P, "Account is not connected");
220
+ let n = g;
221
+ Y.current = n, _?.(), _ = void 0, C(n, "Twap price is not available");
222
+ let r = ee(n), { srcAmount: i, destAmount: c } = s({
223
+ price: n,
224
+ numSlices: D
225
+ }), ie = d?.permitEncodedArgs, ae = t(n) ? n.bridge.destinationChainId : E;
226
+ X?.({ event: {
227
+ name: "TwapOrder:request",
228
+ params: { price: n }
229
+ } });
230
+ let y, b;
231
+ b = r === "SELL" ? {
232
+ onChainOrderType: "TWAPOrder",
233
+ totalSrcAmount: i
234
+ } : {
235
+ onChainOrderType: "TWAPBuyOrder",
236
+ totalDestAmount: c,
237
+ maxSrcAmount: i
238
+ };
239
+ let x = {
240
+ signal: a,
241
+ type: "MARKET",
242
+ degenMode: ge.degenMode,
243
+ orderInput: {
244
+ owner: P,
245
+ beneficiary: Ee,
246
+ srcToken: n.srcToken,
247
+ destToken: n.destToken,
248
+ permit: ie,
249
+ destChainId: ae,
250
+ deltaPrice: {
251
+ ...n,
252
+ bridge: {
253
+ ...n.bridge,
254
+ protocolSelector: oe.protocolSelector
255
+ },
256
+ partner: ke
257
+ },
258
+ partner: ke,
259
+ partnerAddress: Ae,
260
+ partnerFeeBps: je,
261
+ partnerTakesSurplus: Me,
262
+ deadline: o,
263
+ ...b,
264
+ numSlices: D,
265
+ slippage: u,
266
+ interval: l
267
+ }
268
+ };
269
+ return y = te ? await Se({
270
+ createOrderInput: x,
271
+ depositAmount: ue(b, Pe),
272
+ onTxSent: e
273
+ }) : re ? await xe({
274
+ createOrderInput: x,
275
+ approval: k,
276
+ onTxSent: e
277
+ }) : await I.mutateAsync(x), d && De(d.signedPermitData), X?.({ event: {
278
+ name: "TwapOrder:sent",
279
+ params: {
280
+ price: n,
281
+ order: y
282
+ }
283
+ } }), {
284
+ tradeFlowType: w,
285
+ approve: {
286
+ txHash: f,
287
+ receipt: p
288
+ },
289
+ twapOrder: { sentOrder: y },
290
+ twapPrice: n,
291
+ account: P,
292
+ receiverAddress: Ee
293
+ };
294
+ } catch (e) {
295
+ throw d && Oe(d.signedPermitData), X?.({ event: {
296
+ name: "TwapOrder:failed",
297
+ params: { error: e }
298
+ } }), e;
299
+ } finally {
300
+ _?.();
301
+ }
302
+ }, Le = async () => {
303
+ try {
304
+ return await q.cancelDeltaOrder();
305
+ } catch (e) {
306
+ T.error("Cancel Delta order error", e), q.reset();
307
+ }
308
+ }, Z = se({
309
+ mutationFn: Ie,
310
+ mutationKey: [le],
311
+ onSuccess: (e) => {
312
+ T.log("Twap Order success", e);
313
+ },
314
+ onError: (e) => {
315
+ T.error("Twap Order error", e);
316
+ },
317
+ onSettled: () => {
318
+ T.log("Twap Order settled");
319
+ }
320
+ }), Re = Z.mutateAsync, Q = () => {
321
+ Y.current = null, j.reset(), M.reset(), I.reset(), Z.reset(), q.reset(), z(), V();
322
+ }, ze = (e) => {
323
+ let t = Y.current;
324
+ return Q(), Re({
325
+ ...e,
326
+ lastPrice: t
327
+ });
328
+ }, Be = Y.current || O, $ = Z.data;
329
+ $ && G.lastOrderState && ($ = {
330
+ ...$,
331
+ twapOrder: {
332
+ sentOrder: $.twapOrder.sentOrder,
333
+ lastOrderState: G.lastOrderState
334
+ }
335
+ });
336
+ let Ve = $?.twapOrder.sentOrder || G.lastOrderState || G.sentOrder;
337
+ return {
338
+ tradeFlowType: w,
339
+ chainId: E,
340
+ runTwapOrderFlow: Re,
341
+ reset: Q,
342
+ cancelFlow: Te,
343
+ retryFlow: ze,
344
+ cancelTwapOrder: Le,
345
+ approval: k,
346
+ signPermit: A,
347
+ twapOrderPreSign: R,
348
+ twapOrderDeposit: B,
349
+ twapOrderSubmission: H,
350
+ twapOrderExecution: G,
351
+ twapOrderCancelation: Ce,
352
+ isPending: Z.isPending,
353
+ isSuccess: H.isSuccess && G.isSuccess,
354
+ isError: Z.isError,
355
+ error: Z.error,
356
+ result: $,
357
+ usedPrice: Be,
358
+ freshPrice: O,
359
+ submittedTwapOrder: Ve
360
+ };
361
+ }
362
+ function ue(e, t) {
363
+ return "totalSrcAmount" in e ? e.totalSrcAmount : m(e.maxSrcAmount, t, "BUY").toFixed(0);
364
+ }
365
+ //#endregion
366
+ export { T as useTwapFlow };
367
+
368
+ //# sourceMappingURL=useTwapFlow.js.map