@velora-dex/widget 0.1.3 → 0.2.1

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 (483) hide show
  1. package/dist/_virtual/index.js +1 -1
  2. package/dist/components/ui/accordion.d.ts +3 -1
  3. package/dist/components/ui/accordion.d.ts.map +1 -1
  4. package/dist/components/ui/accordion.js +42 -27
  5. package/dist/components/ui/accordion.js.map +1 -1
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/ui/dialog.js.map +1 -1
  8. package/dist/components/ui/dropdown-menu.js.map +1 -1
  9. package/dist/components/ui/progress.js.map +1 -1
  10. package/dist/components/ui/sonner.js.map +1 -1
  11. package/dist/components/ui/tooltip.js.map +1 -1
  12. package/dist/components/web3/AccountButton.d.ts.map +1 -1
  13. package/dist/components/web3/AccountButton.js +24 -27
  14. package/dist/components/web3/AccountButton.js.map +1 -1
  15. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  16. package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
  17. package/dist/components/web3/ConnectWallets/index.js +43 -35
  18. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  19. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  20. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  21. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  22. package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
  23. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +103 -133
  24. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  25. package/dist/components/widget/AppHeader/Activities/Activities.js +4 -12
  26. package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
  27. package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
  28. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  29. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  30. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
  31. package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
  32. package/dist/components/widget/AppHeader/AppHeader.js +39 -33
  33. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  34. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  35. package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
  36. package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
  37. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  38. package/dist/components/widget/DexesList/DexesList.js +3 -14
  39. package/dist/components/widget/DexesList/DexesList.js.map +1 -1
  40. package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
  41. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +131 -115
  42. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  43. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
  44. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +4 -12
  45. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  46. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  47. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
  48. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
  49. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  50. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  51. package/dist/components/widget/Dialog/state/dialogAtom.js +24 -26
  52. package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
  53. package/dist/components/widget/Drawer/Overlay.js.map +1 -1
  54. package/dist/components/widget/Drawer/index.d.ts.map +1 -1
  55. package/dist/components/widget/Drawer/index.js +119 -54
  56. package/dist/components/widget/Drawer/index.js.map +1 -1
  57. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  58. package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
  59. package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
  60. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
  61. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  62. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +84 -66
  63. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
  64. package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
  65. package/dist/components/widget/Line/Line.js.map +1 -1
  66. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  67. package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
  68. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +28 -30
  69. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
  70. package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
  71. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  72. package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
  73. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +1 -1
  74. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  75. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +1 -1
  76. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
  77. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  78. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
  79. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
  80. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  81. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
  82. package/dist/components/widget/SelectToken/SelectTokenButton.js +51 -51
  83. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  84. package/dist/components/widget/SelectToken/types.d.ts +1 -1
  85. package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
  86. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  87. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  88. package/dist/components/widget/SwapRate/SwapRate.js +75 -43
  89. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  90. package/dist/components/widget/Tabs/Tabs.js.map +1 -1
  91. package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
  92. package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
  93. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  94. package/dist/components/widget/TokenInput/index.js +107 -148
  95. package/dist/components/widget/TokenInput/index.js.map +1 -1
  96. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
  97. package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
  98. package/dist/components/widget/TradeOverview/Stepper.js +23 -38
  99. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  100. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  101. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +36 -27
  102. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  103. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +79 -36
  104. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  105. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
  106. package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -0
  107. package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
  108. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  109. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  110. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  111. package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
  112. package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
  113. package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
  114. package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
  115. package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
  116. package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -1
  117. package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
  118. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  119. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  120. package/dist/components/widget/TransactionDetails/TransactionListItem.js +57 -38
  121. package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
  122. package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
  123. package/dist/components/widget/Warning/Warning.js.map +1 -1
  124. package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
  125. package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
  126. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
  127. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +72 -90
  128. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  129. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  130. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +141 -84
  131. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  132. package/dist/components/widget/YouGet/YouGet.js.map +1 -1
  133. package/dist/configurator/Configurator.d.ts.map +1 -1
  134. package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts +5 -0
  135. package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts.map +1 -0
  136. package/dist/configurator/components/CrossChainSwitcher.d.ts +5 -0
  137. package/dist/configurator/components/CrossChainSwitcher.d.ts.map +1 -0
  138. package/dist/configurator/components/DeltaSwitcher.d.ts +5 -0
  139. package/dist/configurator/components/DeltaSwitcher.d.ts.map +1 -0
  140. package/dist/configurator/components/DevTools.d.ts +7 -0
  141. package/dist/configurator/components/DevTools.d.ts.map +1 -0
  142. package/dist/configurator/components/EnabledChainsSelector.d.ts +8 -0
  143. package/dist/configurator/components/EnabledChainsSelector.d.ts.map +1 -0
  144. package/dist/configurator/components/FormPropsInputs.d.ts +6 -0
  145. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -0
  146. package/dist/configurator/components/PanelHeader.d.ts +6 -0
  147. package/dist/configurator/components/PanelHeader.d.ts.map +1 -0
  148. package/dist/configurator/components/PartnerInput.d.ts +5 -0
  149. package/dist/configurator/components/PartnerInput.d.ts.map +1 -0
  150. package/dist/configurator/components/PrivyInputs.d.ts +7 -0
  151. package/dist/configurator/components/PrivyInputs.d.ts.map +1 -0
  152. package/dist/configurator/components/ThemeSwitcher.d.ts +6 -0
  153. package/dist/configurator/components/ThemeSwitcher.d.ts.map +1 -0
  154. package/dist/configurator/components/TokenListsInput.d.ts +5 -0
  155. package/dist/configurator/components/TokenListsInput.d.ts.map +1 -0
  156. package/dist/configurator/components/TradeModesSelector.d.ts +7 -0
  157. package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -0
  158. package/dist/configurator/components/WidgetModeSwitcher.d.ts +5 -0
  159. package/dist/configurator/components/WidgetModeSwitcher.d.ts.map +1 -0
  160. package/dist/configurator/components/common/DetailWithTooltip.d.ts +3 -0
  161. package/dist/configurator/components/common/DetailWithTooltip.d.ts.map +1 -0
  162. package/dist/configurator/components/common/Input.d.ts +8 -0
  163. package/dist/configurator/components/common/Input.d.ts.map +1 -0
  164. package/dist/configurator/components/common/Switch.d.ts +12 -0
  165. package/dist/configurator/components/common/Switch.d.ts.map +1 -0
  166. package/dist/configurator/state/themeAtom.d.ts +3 -0
  167. package/dist/configurator/state/themeAtom.d.ts.map +1 -0
  168. package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -1
  169. package/dist/core/ConnectWalletDrawerButton.js +73 -64
  170. package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
  171. package/dist/core/LimitOrderButton.js.map +1 -1
  172. package/dist/core/LimitOrderDetails.js.map +1 -1
  173. package/dist/core/OtcOrderButton.d.ts.map +1 -1
  174. package/dist/core/OtcOrderButton.js +4 -1
  175. package/dist/core/OtcOrderButton.js.map +1 -1
  176. package/dist/core/OtcOrderDetails.js.map +1 -1
  177. package/dist/core/Toaster.js.map +1 -1
  178. package/dist/core/TradeFlowButton.d.ts.map +1 -1
  179. package/dist/core/TradeFlowButton.js +414 -621
  180. package/dist/core/TradeFlowButton.js.map +1 -1
  181. package/dist/core/Updaters.js.map +1 -1
  182. package/dist/core/Warnings.js.map +1 -1
  183. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +1 -0
  184. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  185. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +85 -49
  186. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  187. package/dist/core/index.d.ts.map +1 -1
  188. package/dist/core/index.js +98 -90
  189. package/dist/core/index.js.map +1 -1
  190. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  191. package/dist/core/inputs/hooks/useTokenFromInputProps.js +83 -54
  192. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  193. package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
  194. package/dist/core/inputs/hooks/useTokenToInputProps.js +20 -28
  195. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  196. package/dist/core/inputs/state/common.d.ts +2 -2
  197. package/dist/core/inputs/state/common.js.map +1 -1
  198. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  199. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -14
  200. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  201. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  202. package/dist/core/inputs/state/types.d.ts +15 -0
  203. package/dist/core/inputs/state/types.d.ts.map +1 -0
  204. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  205. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  206. package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
  207. package/dist/core/limit/useLimitNotSupported.js +12 -1
  208. package/dist/core/limit/useLimitNotSupported.js.map +1 -1
  209. package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
  210. package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
  211. package/dist/core/limit/useLimitRate.js.map +1 -1
  212. package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
  213. package/dist/core/limit/useLimitTokenFromInputProps.js +69 -52
  214. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  215. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  216. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  217. package/dist/core/logger.js +12 -14
  218. package/dist/core/logger.js.map +1 -1
  219. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  220. package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
  221. package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
  222. package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
  223. package/dist/core/otc/useOtcNotSupported.js +12 -1
  224. package/dist/core/otc/useOtcNotSupported.js.map +1 -1
  225. package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
  226. package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
  227. package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
  228. package/dist/core/otc/useOtcTokenFromInputProps.js +69 -52
  229. package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
  230. package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
  231. package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
  232. package/dist/core/state/chainToAtom.js.map +1 -1
  233. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  234. package/dist/core/state/configActionsAtom.js +3 -1
  235. package/dist/core/state/configActionsAtom.js.map +1 -1
  236. package/dist/core/state/configAtom.d.ts +5 -3
  237. package/dist/core/state/configAtom.d.ts.map +1 -1
  238. package/dist/core/state/configAtom.js +5 -9
  239. package/dist/core/state/configAtom.js.map +1 -1
  240. package/dist/core/state/configEffectAtom.js.map +1 -1
  241. package/dist/core/state/containerAtom.js.map +1 -1
  242. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  243. package/dist/core/state/externalProviderAtom.js.map +1 -1
  244. package/dist/core/state/isCrosschainAtom.js.map +1 -1
  245. package/dist/core/state/tradeModeAtom.js.map +1 -1
  246. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  247. package/dist/core/state/widgetEventsAtom.js +55 -41
  248. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  249. package/dist/core/swapDetails/useSwapDetailsListProps.js +34 -36
  250. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  251. package/dist/core/types.d.ts +4 -1
  252. package/dist/core/types.d.ts.map +1 -1
  253. package/dist/events/getters/limit.d.ts.map +1 -1
  254. package/dist/events/getters/limit.js +3 -2
  255. package/dist/events/getters/limit.js.map +1 -1
  256. package/dist/events/getters/otc.d.ts.map +1 -1
  257. package/dist/events/getters/otc.js +3 -2
  258. package/dist/events/getters/otc.js.map +1 -1
  259. package/dist/events/getters/swap.d.ts.map +1 -1
  260. package/dist/events/getters/swap.js +3 -2
  261. package/dist/events/getters/swap.js.map +1 -1
  262. package/dist/events/hooks/useActivateEffects.js.map +1 -1
  263. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  264. package/dist/events/hooks/useOnWalletConnect.js +2 -0
  265. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  266. package/dist/events/types/approve.d.ts +22 -6
  267. package/dist/events/types/approve.d.ts.map +1 -1
  268. package/dist/events/types/common.d.ts +3 -2
  269. package/dist/events/types/common.d.ts.map +1 -1
  270. package/dist/events/types/connectWallet.d.ts +2 -0
  271. package/dist/events/types/connectWallet.d.ts.map +1 -1
  272. package/dist/events/types/index.d.ts +5 -2
  273. package/dist/events/types/index.d.ts.map +1 -1
  274. package/dist/external/.pnpm/react-compiler-runtime@1.0.0_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +1 -0
  275. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  276. package/dist/hooks/batch/useAwaitCalls.js +20 -16
  277. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  278. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  279. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  280. package/dist/hooks/connectors/useIsConnectedSafe.js +10 -18
  281. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  282. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  283. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +4 -15
  284. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  285. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  286. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  287. package/dist/hooks/getCode/useIsContractAtAddress.js +30 -46
  288. package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
  289. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
  290. package/dist/hooks/otc/mutations/useCancelLimitOrder.js +21 -12
  291. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  292. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
  293. package/dist/hooks/otc/mutations/useCreateLimitOrder.js +22 -12
  294. package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
  295. package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
  296. package/dist/hooks/otc/mutations/useFillOrder.js +10 -32
  297. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  298. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts +22 -3
  299. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts.map +1 -1
  300. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +39 -2
  301. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  302. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  303. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  304. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -3
  305. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  306. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  307. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +7 -4
  308. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  309. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +46 -4
  310. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  311. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
  312. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +38 -36
  313. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
  314. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
  315. package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
  316. package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
  317. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
  318. package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
  319. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
  320. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  321. package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
  322. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
  323. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +39 -31
  324. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  325. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +7 -15
  326. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  327. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  328. package/dist/hooks/sdk/useGetContracts.js.map +1 -1
  329. package/dist/hooks/sdk/useSpender.js.map +1 -1
  330. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -1
  331. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
  332. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js +23 -13
  333. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
  334. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +3 -2
  335. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  336. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +41 -10
  337. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  338. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +25 -0
  339. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -0
  340. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +88 -0
  341. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -0
  342. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +16 -0
  343. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -0
  344. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +83 -0
  345. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -0
  346. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  347. package/dist/hooks/swap/prices/delta/orders/utils.js +3 -2
  348. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  349. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
  350. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts +22 -3
  351. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
  352. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +39 -2
  353. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
  354. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  355. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  356. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
  357. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  358. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
  359. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
  360. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  361. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts +9 -0
  362. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
  363. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js +49 -2
  364. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
  365. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  366. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  367. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  368. package/dist/hooks/swap/tradeFlow/common/types.d.ts +17 -0
  369. package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
  370. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
  371. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  372. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +164 -140
  373. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  374. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
  375. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts +46 -0
  376. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts.map +1 -0
  377. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js +328 -0
  378. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -0
  379. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -1
  380. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +16 -14
  381. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
  382. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +74 -0
  383. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -0
  384. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +274 -0
  385. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -0
  386. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts +15 -0
  387. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -0
  388. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js +88 -0
  389. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -0
  390. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  391. package/dist/hooks/swap/tradeFlow/common/utils.d.ts +1 -0
  392. package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
  393. package/dist/hooks/swap/tradeFlow/common/utils.js +16 -1
  394. package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
  395. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +28 -23
  396. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  397. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +59 -17
  398. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  399. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  400. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +4 -3
  401. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  402. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +61 -15
  403. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  404. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  405. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -18
  406. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  407. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  408. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  409. package/dist/hooks/tokens/allowance/useTokenAllowance.js +25 -15
  410. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  411. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +8 -10
  412. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  413. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  414. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  415. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +20 -37
  416. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  417. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  418. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +11 -19
  419. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
  420. package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
  421. package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
  422. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js +21 -25
  423. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
  424. package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
  425. package/dist/hooks/tokens/useAllTokensWithFilter.js +121 -49
  426. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  427. package/dist/hooks/tokens/useNativeToken.js +1 -1
  428. package/dist/hooks/tokens/useNativeToken.js.map +1 -1
  429. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  430. package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
  431. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  432. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  433. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  434. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  435. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  436. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  437. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  438. package/dist/hooks/useBridgeInfo.js.map +1 -1
  439. package/dist/hooks/useCurrentChain.js.map +1 -1
  440. package/dist/hooks/useDebouncedInputState.js.map +1 -1
  441. package/dist/hooks/useEIP1559Enabled.js.map +1 -1
  442. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  443. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  444. package/dist/hooks/useMinViemClient.js.map +1 -1
  445. package/dist/hooks/useSDK.d.ts +3 -2
  446. package/dist/hooks/useSDK.d.ts.map +1 -1
  447. package/dist/hooks/useSDK.js +37 -8
  448. package/dist/hooks/useSDK.js.map +1 -1
  449. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  450. package/dist/hooks/useSlippage.js.map +1 -1
  451. package/dist/index.d.ts +5 -1
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/lib/utils/approval.js.map +1 -1
  454. package/dist/lib/utils/theme.d.ts +2 -0
  455. package/dist/lib/utils/theme.d.ts.map +1 -0
  456. package/dist/lib/utils/theme.js +10 -0
  457. package/dist/lib/utils/theme.js.map +1 -0
  458. package/dist/lib/utils/tradeFlow.d.ts +3 -0
  459. package/dist/lib/utils/tradeFlow.d.ts.map +1 -0
  460. package/dist/lib/utils/tradeFlow.js +12 -0
  461. package/dist/lib/utils/tradeFlow.js.map +1 -0
  462. package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
  463. package/dist/styles.css +89 -44
  464. package/dist/tokens/hooks.js.map +1 -1
  465. package/dist/tokens/lists/state/effects.js.map +1 -1
  466. package/dist/tokens/queries.js +6 -10
  467. package/dist/tokens/queries.js.map +1 -1
  468. package/dist/tokens/stabeCoins/hooks.js +3 -5
  469. package/dist/tokens/stabeCoins/hooks.js.map +1 -1
  470. package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
  471. package/dist/transactions/queries/ensureCallsStatus.d.ts +1 -0
  472. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  473. package/dist/transactions/queries/ensureCallsStatus.js +7 -5
  474. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  475. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  476. package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
  477. package/dist/transactions/types.d.ts +21 -1
  478. package/dist/transactions/types.d.ts.map +1 -1
  479. package/package.json +2 -2
  480. package/dist/components/widget/TokenInput/EmptyInput.js +0 -58
  481. package/dist/components/widget/TokenInput/EmptyInput.js.map +0 -1
  482. package/dist/external/.pnpm/react-compiler-runtime@19.1.0-rc.2_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +0 -1
  483. /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.1 → react-compiler-runtime@1.0.0_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
@@ -1,10 +1,13 @@
1
1
  import { useChainId, useAccount } from 'wagmi';
2
2
  import { assert } from 'ts-essentials';
3
3
  import { useEnsureTxReceipt } from '../../txs/queries/useAwaitTx.js';
4
- import { deltaOrdersQueryKey } from '../prices/delta/queries/useDeltaOrders.js';
4
+ import '../../../_virtual/index.js';
5
+ import '../../useSDK.js';
6
+ import 'clsx';
7
+ import 'tailwind-merge';
8
+ import { useQueryClient, useMutation } from '@tanstack/react-query';
5
9
  import { useCreateDeltaOrder } from '../prices/delta/mutations/useCreateDeltaOrder.js';
6
10
  import { useMinViemClient } from '../../useMinViemClient.js';
7
- import { useMutation } from '@tanstack/react-query';
8
11
  import { useRef } from 'react';
9
12
  import { UserCancelledError } from './common/errors.js';
10
13
  import { useApproveOrPermit } from './common/useApproveOrPermit.js';
@@ -15,16 +18,18 @@ import { useLimitDeadline } from '../../../core/limit/state/deadlineAtom.js';
15
18
  import { useCancelDeltaOrderEventCallbacks, useCancelLimitDeltaOrders } from '../prices/delta/mutations/useCancelLimitDeltaOrders.js';
16
19
  import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
17
20
  import { useWatchDeltaAuction, deltaAuctionPollingQueryKey } from '../prices/delta/queries/useWatchDeltaOrder.js';
18
- import { queryClient } from '../../../lib/queryClient.js';
19
21
  import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
22
+ import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
20
23
 
21
24
  const limitOrderFlowType = "limitOrder";
22
25
  const LIMIT_ORDER_MUTATION_KEY = "runLimitOrderFlow";
23
26
  function useLimitOrderFlow({
24
- limitPrice
27
+ limitPrice,
28
+ preWrapETH
25
29
  }) {
26
30
  const logger = useLogger("LimitOrderFlow");
27
31
  const chainId = useChainId();
32
+ const queryClient = useQueryClient();
28
33
  const {
29
34
  approval,
30
35
  approveTxMut,
@@ -52,19 +57,13 @@ function useLimitOrderFlow({
52
57
  mutationOptions: {
53
58
  onSuccess: (order) => {
54
59
  logger.log("Create Limit Order success", order);
55
- queryClient.invalidateQueries({
56
- queryKey: deltaOrdersQueryKey({
57
- userAddress: account
58
- }),
59
- exact: false
60
- });
61
60
  },
62
61
  onError: (error) => {
63
62
  logger.error("Create Limit Order error", error);
64
63
  }
65
64
  }
66
65
  });
67
- const limitOrderSubmission = {
66
+ const limitOrderCreateAndSubmit = {
68
67
  order: createOrderMut.data,
69
68
  isCreatingOrder: createOrderMut.isPending,
70
69
  isOrderSent: createOrderMut.isSuccess,
@@ -73,8 +72,29 @@ function useLimitOrderFlow({
73
72
  isSuccess: createOrderMut.isSuccess,
74
73
  error: createOrderMut.error
75
74
  };
75
+ const {
76
+ deltaOrderPreSign,
77
+ canBatchTxs,
78
+ isConnectedToSafe,
79
+ preSignAndSubmitDeltaOrder,
80
+ reset: resetPreSignAndSubmitDeltaOrder
81
+ } = usePreSignAndSubmitDeltaOrder({
82
+ chainId,
83
+ account,
84
+ logger,
85
+ viemClient: minClient
86
+ });
87
+ const limitOrderSubmission = {
88
+ order: limitOrderCreateAndSubmit.order || deltaOrderPreSign.order,
89
+ isCreatingOrder: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,
90
+ isOrderSent: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,
91
+ isPending: limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,
92
+ isError: limitOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,
93
+ isSuccess: limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,
94
+ error: limitOrderCreateAndSubmit.error || deltaOrderPreSign.error
95
+ };
76
96
  const watchOrderExecution = useWatchDeltaAuction({
77
- orderId: createOrderMut.data?.id,
97
+ orderId: limitOrderSubmission.order?.id,
78
98
  onAuctionSuccess: (order_0) => {
79
99
  logger.log("Limit Order success", order_0);
80
100
  },
@@ -151,6 +171,7 @@ function useLimitOrderFlow({
151
171
  approveTxMut.reset();
152
172
  createOrderMut.reset();
153
173
  cancelOrderMut.reset();
174
+ resetPreSignAndSubmitDeltaOrder();
154
175
  assert(limitPrice, "Limit price data is not available");
155
176
  const abortController = new AbortController();
156
177
  currentAbortControllerRef.current = abortController;
@@ -158,8 +179,21 @@ function useLimitOrderFlow({
158
179
  let approveTxHash;
159
180
  let approveTxReceipt;
160
181
  const allowanceToSet = approval.allowanceToSet;
182
+ const {
183
+ shouldDoApprovalTxOrPermit: shouldDoApprovalTx,
184
+ shouldPreSignBatch
185
+ } = shouldApproveOrBatch({
186
+ approval,
187
+ preWrapETH,
188
+ signPermit: {
189
+ isPermitSupported: false,
190
+ isPermitReadyToSign: false
191
+ },
192
+ canBatchTxs,
193
+ isConnectedToSafe
194
+ });
161
195
  try {
162
- if (approval.needsApproval && allowanceToSet) {
196
+ if (shouldDoApprovalTx && allowanceToSet) {
163
197
  try {
164
198
  approveOrPermitEvents.onApproveTx.request({
165
199
  allowanceToSet
@@ -223,7 +257,7 @@ function useLimitOrderFlow({
223
257
  }
224
258
  }
225
259
  });
226
- const orderFromAPI = await createOrderMut.mutateAsync({
260
+ const createOrderInput = {
227
261
  signal,
228
262
  orderInput: {
229
263
  owner: account,
@@ -244,7 +278,18 @@ function useLimitOrderFlow({
244
278
  deadline
245
279
  },
246
280
  type: "LIMIT"
247
- });
281
+ };
282
+ let orderFromAPI;
283
+ if (!shouldPreSignBatch) {
284
+ orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
285
+ } else {
286
+ orderFromAPI = await preSignAndSubmitDeltaOrder({
287
+ createDeltaOrderInput: createOrderInput,
288
+ approval,
289
+ preWrapETH,
290
+ onTxSent
291
+ });
292
+ }
248
293
  onLimitOrder?.({
249
294
  event: {
250
295
  name: "LimitOrder:sent",
@@ -306,6 +351,7 @@ function useLimitOrderFlow({
306
351
  createOrderMut.reset();
307
352
  limitOrderMut.reset();
308
353
  cancelOrderMut.reset();
354
+ resetPreSignAndSubmitDeltaOrder();
309
355
  };
310
356
  const retryFlow = (options) => {
311
357
  reset();
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitOrderFlow.js","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 {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport { useCreateDeltaOrder } 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 { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\n\nimport { useLogger } from \"@/core/logger\";\n\nimport { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\nimport {\n useCancelDeltaOrderEventCallbacks,\n useCancelLimitDeltaOrders,\n} from \"../prices/delta/mutations/useCancelLimitDeltaOrders\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n deltaAuctionPollingQueryKey,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\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 };\n limitPrice: UserDefinedLimitPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => 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: () => void;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\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 isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\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 });\n\n /* 4. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Limit Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: account,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"Create Limit Order error\", error);\n },\n },\n });\n\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: createOrderMut.data?.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: createOrderMut.data,\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 cancelOrderEvents = useCancelDeltaOrderEventCallbacks(\n createOrderMut.data\n );\n\n const cancelOrderMut = useCancelLimitDeltaOrders({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: cancelOrderEvents.onMutate,\n onSuccess: (successResponse, vars) => {\n logger.log(\"Cancel Limit Order success\", successResponse);\n if (limitOrderExecution.sentOrder?.id) {\n // refetch the order to get updated status\n queryClient.invalidateQueries({\n queryKey: deltaAuctionPollingQueryKey({\n orderId: limitOrderExecution.sentOrder.id,\n }),\n });\n }\n cancelOrderEvents.onSuccess?.(successResponse, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Limit Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled:\n cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\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 deadline = useLimitDeadline();\n\n const receiverAddress = account;\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 createOrderMut.reset();\n cancelOrderMut.reset();\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 try {\n if (approval.needsApproval && 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 // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\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\n const orderFromAPI = await createOrderMut.mutateAsync({\n signal,\n orderInput: {\n owner: account,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE, // @TODO add real deltaPrice.bridge for crosschain Delta Limit Orders\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n type: \"LIMIT\",\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 = () => {\n assert(createOrderMut.data, \"No order to cancel\");\n cancelOrderMut.mutate({\n orderIds: [createOrderMut.data.id],\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 createOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\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: limitOrderMut.data,\n limitPrice,\n };\n}\n"],"names":["limitOrderFlowType","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","limitPrice","logger","useLogger","chainId","useChainId","approval","approveTxMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcTokenAddress","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","queryClient","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","exact","onError","error","limitOrderSubmission","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderEvents","useCancelDeltaOrderEventCallbacks","cancelOrderMut","useCancelLimitDeltaOrders","onMutate","successResponse","vars","deltaAuctionPollingQueryKey","limitOrderCancelation","isCancelingOrder","isOrderCanceled","success","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","partner","usePartner","deadline","useLimitDeadline","receiverAddress","onLimitOrder","useWidgetEvents","submitLimitOrder","onTxSent","reset","assert","abortController","AbortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","needsApproval","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","orderFromAPI","mutateAsync","orderInput","owner","destToken","destTokenAddress","destAmount","deltaPrice","bridge","DEFAULT_DELTA_BRIDGE","partnerFee","type","tradeFlowType","approve","receipt","limitOrder","cancelLimitOrder","mutate","orderIds","limitOrderMut","useMutation","mutationFn","mutationKey","onSettled","runLimitOrderFlow","retryFlow","options","result"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitOrderFlow.js","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 { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation, useQueryClient } 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 { DEFAULT_DELTA_BRIDGE } from \"../prices/delta/bridge/const\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useLimitDeadline } from \"@/core/limit/state/deadlineAtom\";\nimport {\n useCancelDeltaOrderEventCallbacks,\n useCancelLimitDeltaOrders,\n} from \"../prices/delta/mutations/useCancelLimitDeltaOrders\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport {\n deltaAuctionPollingQueryKey,\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 { DeltaOrderApiResponse } from \"@velora-dex/sdk\";\n\nconst limitOrderFlowType = \"limitOrder\";\n\nexport type UserDefinedLimitPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n};\n\nexport type UseLimitOrderFlowInput = {\n limitPrice?: UserDefinedLimitPrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitLimitOrderResult = {\n tradeFlowType: typeof limitOrderFlowType;\n approve: SubmitTxResult;\n limitOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\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: () => void;\n approval: ApprovalFlowResult;\n limitOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\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 isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\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 preWrapETH,\n}: UseLimitOrderFlowInput): UseLimitOrderFlowResult {\n const logger = useLogger(\"LimitOrderFlow\");\n const chainId = useChainId();\n const queryClient = useQueryClient();\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 });\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 createOrderMut = useCreateDeltaOrder({\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: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.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 /* final Delta Order submission for step 4 */\n const limitOrderSubmission: UseLimitOrderFlowResult[\"limitOrderSubmission\"] =\n {\n order: limitOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n limitOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n limitOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: limitOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n limitOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: limitOrderCreateAndSubmit.error || deltaOrderPreSign.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: createOrderMut.data,\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 cancelOrderEvents = useCancelDeltaOrderEventCallbacks(\n createOrderMut.data\n );\n\n const cancelOrderMut = useCancelLimitDeltaOrders({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: cancelOrderEvents.onMutate,\n onSuccess: (successResponse, vars) => {\n logger.log(\"Cancel Limit Order success\", successResponse);\n if (limitOrderExecution.sentOrder?.id) {\n // refetch the order to get updated status\n queryClient.invalidateQueries({\n queryKey: deltaAuctionPollingQueryKey({\n orderId: limitOrderExecution.sentOrder.id,\n }),\n });\n }\n cancelOrderEvents.onSuccess?.(successResponse, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Limit Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const limitOrderCancelation: UseLimitOrderFlowResult[\"limitOrderCancelation\"] =\n {\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled:\n cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\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 deadline = useLimitDeadline();\n\n const receiverAddress = account;\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 createOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\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 /* \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 preWrapETH,\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 // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\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\n const createOrderInput = {\n signal,\n orderInput: {\n owner: account,\n srcToken: limitPrice.srcTokenAddress,\n srcAmount: limitPrice.srcAmount,\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n deltaPrice: {\n destToken: limitPrice.destTokenAddress,\n destAmount: limitPrice.destAmount,\n srcAmount: limitPrice.srcAmount,\n bridge: DEFAULT_DELTA_BRIDGE, // @TODO add real deltaPrice.bridge for crosschain Delta Limit Orders\n partner,\n partnerFee: 0,\n },\n partner,\n deadline,\n },\n type: \"LIMIT\",\n } as const;\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\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 preWrapETH,\n onTxSent,\n });\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 = () => {\n assert(createOrderMut.data, \"No order to cancel\");\n cancelOrderMut.mutate({\n orderIds: [createOrderMut.data.id],\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 createOrderMut.reset();\n limitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunLimitOrderOptions\n ): Promise<SubmitLimitOrderResult> => {\n reset();\n return runLimitOrderFlow(options);\n };\n\n /* 5. return result */\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: limitOrderMut.data,\n limitPrice,\n };\n}\n"],"names":["limitOrderFlowType","LIMIT_ORDER_MUTATION_KEY","useLimitOrderFlow","limitPrice","preWrapETH","logger","useLogger","chainId","useChainId","queryClient","useQueryClient","approval","approveTxMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcTokenAddress","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","limitOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","limitOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","limitOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderEvents","useCancelDeltaOrderEventCallbacks","cancelOrderMut","useCancelLimitDeltaOrders","onMutate","successResponse","vars","invalidateQueries","queryKey","deltaAuctionPollingQueryKey","limitOrderCancelation","isCancelingOrder","isOrderCanceled","success","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","partner","usePartner","deadline","useLimitDeadline","receiverAddress","onLimitOrder","useWidgetEvents","submitLimitOrder","onTxSent","assert","abortController","AbortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDoApprovalTxOrPermit","shouldDoApprovalTx","shouldPreSignBatch","shouldApproveOrBatch","signPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","failed","event","name","params","price","createOrderInput","orderInput","owner","destToken","destTokenAddress","destAmount","deltaPrice","bridge","DEFAULT_DELTA_BRIDGE","partnerFee","type","orderFromAPI","mutateAsync","createDeltaOrderInput","tradeFlowType","approve","receipt","limitOrder","cancelLimitOrder","mutate","orderIds","limitOrderMut","useMutation","mutationFn","mutationKey","onSettled","runLimitOrderFlow","retryFlow","options","result"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitOrderStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"sourcesContent":["import type {\n GenericStep,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\n type SubmitLimitOrderResult,\n type UseLimitOrderFlowInput,\n type UseLimitOrderFlowResult,\n} from \"./useLimitOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { DeltaOrderStatusChecker } from \"../prices/delta/orders/utils\";\n\ntype UseLimitOrderStepResult = {\n startLimitOrder: UseLimitOrderFlowResult[\"runLimitOrderFlow\"];\n cancelLimitOrder: UseLimitOrderFlowResult[\"cancelLimitOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseLimitOrderFlowResult[\"reset\"];\n cancelFlow: UseLimitOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseLimitOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: LimitOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: SubmitLimitOrderResult;\n tradeFlowType: UseLimitOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useLimitOrderStep(\n options: UseLimitOrderFlowInput\n): UseLimitOrderStepResult {\n const logger = useLogger(\"LimitOrderStep\");\n const limitOrderFlow = useLimitOrderFlow(options);\n\n const startLimitOrder = limitOrderFlow.runLimitOrderFlow;\n const reset = limitOrderFlow.reset;\n const cancelFlow = limitOrderFlow.cancelFlow;\n const retryFlow = limitOrderFlow.retryFlow;\n\n let step: LimitOrderStep | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;\n\n if (\n limitOrderFlow.approval.needsApproval &&\n approvalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (limitOrderFlow.limitOrderSubmission.isPending) {\n const approvalHappened = !!limitOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: approvalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (limitOrderFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (limitOrderFlow.limitOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n limitOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const lastOrderStatus =\n // either from last known status (polling) or from the just submitted Order\n limitOrderFlow.limitOrderExecution.lastOrderState?.status ||\n limitOrderFlow.limitOrderExecution.sentOrder?.status;\n\n const isOrderCancellable =\n !!lastOrderStatus &&\n DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);\n\n const orderId = limitOrderFlow.limitOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, limitOrderFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(limitOrderFlow.error)\n ? null\n : limitOrderFlow.error;\n\n let erroredStep: LimitOrderStepKey | undefined;\n\n if (limitOrderFlow.isError) {\n if (limitOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (limitOrderFlow.limitOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startLimitOrder,\n cancelLimitOrder: limitOrderFlow.cancelLimitOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep,\n explorerLink,\n error,\n erroredStep,\n result: limitOrderFlow.result,\n tradeFlowType: limitOrderFlow.tradeFlowType,\n };\n}\n"],"names":["useLimitOrderStep","options","$","_c","logger","useLogger","limitOrderFlow","useLimitOrderFlow","startLimitOrder","runLimitOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","orderCancellationStep","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","limitOrderCancelation","isCancelingOrder","isOrderCanceled","isError","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderStatus","limitOrderExecution","lastOrderState","status","sentOrder","t0","DeltaOrderStatusChecker","cancellable","has","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","error","isUserCancelledError","erroredStep","t1","cancelLimitOrder","result","tradeFlowType"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitOrderStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderStep.ts"],"sourcesContent":["import type {\n GenericStep,\n LimitOrderStep,\n LimitOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useLimitOrderFlow,\n type SubmitLimitOrderResult,\n type UseLimitOrderFlowInput,\n type UseLimitOrderFlowResult,\n} from \"./useLimitOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { DeltaOrderStatusChecker } from \"../prices/delta/orders/utils\";\n\ntype UseLimitOrderStepResult = {\n startLimitOrder: UseLimitOrderFlowResult[\"runLimitOrderFlow\"];\n cancelLimitOrder: UseLimitOrderFlowResult[\"cancelLimitOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseLimitOrderFlowResult[\"reset\"];\n cancelFlow: UseLimitOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseLimitOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: LimitOrderStep;\n orderCancellationStep?: GenericStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: LimitOrderStepKey;\n result?: SubmitLimitOrderResult;\n tradeFlowType: UseLimitOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useLimitOrderStep(\n options: UseLimitOrderFlowInput\n): UseLimitOrderStepResult {\n const logger = useLogger(\"LimitOrderStep\");\n const limitOrderFlow = useLimitOrderFlow(options);\n\n const startLimitOrder = limitOrderFlow.runLimitOrderFlow;\n const reset = limitOrderFlow.reset;\n const cancelFlow = limitOrderFlow.cancelFlow;\n const retryFlow = limitOrderFlow.retryFlow;\n\n let step: LimitOrderStep | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n limitOrderFlow.approval.isPending || !limitOrderFlow.approval.isSuccess;\n\n if (\n limitOrderFlow.approval.needsApproval &&\n approvalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (limitOrderFlow.limitOrderSubmission.isPending) {\n const approvalHappened = !!limitOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: approvalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (limitOrderFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n let orderCancellationStep: GenericStep | undefined;\n if (limitOrderFlow.limitOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (limitOrderFlow.limitOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (limitOrderFlow.limitOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n limitOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const lastOrderStatus =\n // either from last known status (polling) or from the just submitted Order\n limitOrderFlow.limitOrderExecution.lastOrderState?.status ||\n limitOrderFlow.limitOrderExecution.sentOrder?.status;\n\n const isOrderCancellable =\n !!lastOrderStatus &&\n DeltaOrderStatusChecker.cancellable.has(lastOrderStatus);\n\n const orderId = limitOrderFlow.limitOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, limitOrderFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(limitOrderFlow.error)\n ? null\n : limitOrderFlow.error;\n\n let erroredStep: LimitOrderStepKey | undefined;\n\n if (limitOrderFlow.isError) {\n if (limitOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (limitOrderFlow.limitOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startLimitOrder,\n cancelLimitOrder: limitOrderFlow.cancelLimitOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep,\n explorerLink,\n error,\n erroredStep,\n result: limitOrderFlow.result,\n tradeFlowType: limitOrderFlow.tradeFlowType,\n };\n}\n"],"names":["useLimitOrderStep","options","$","_c","logger","useLogger","limitOrderFlow","useLimitOrderFlow","startLimitOrder","runLimitOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","isOrderCancellable","orderCancellationStep","step","once","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","limitOrderSubmission","approvalHappened","txHash","limitOrderCancelation","isCancelingOrder","isOrderCanceled","isError","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderStatus","limitOrderExecution","lastOrderState","status","sentOrder","t0","DeltaOrderStatusChecker","cancellable","has","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","error","isUserCancelledError","erroredStep","t1","cancelLimitOrder","result","tradeFlowType"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { OptimalRate } from '@velora-dex/sdk';
2
2
  import { Address, Hash, TransactionReceipt } from 'viem';
3
- import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
3
+ import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult, BatchTxStepResult } from './common/types';
4
4
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
5
5
  import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
6
- import { CallsReceipt } from '../../batch/useAwaitCalls';
7
6
  declare const marketSwapFlowType = "marketSwap";
8
7
  export type UseMarketFlowInput = {
9
8
  marketPrice?: OptimalRate;
@@ -49,22 +48,7 @@ export type UseMarketFlowResult = {
49
48
  isSuccess: boolean;
50
49
  error: Error | null;
51
50
  };
52
- swapBatch: {
53
- canBatchTxs?: boolean;
54
- callsId?: string;
55
- txHash?: Hash;
56
- receipt?: CallsReceipt;
57
- isConfirmingCalls: boolean;
58
- isConfirmingCallsError: boolean;
59
- isCallsSent: boolean;
60
- isCallsPending: boolean;
61
- isCallsMined: boolean;
62
- isCallsAwaitingError: boolean;
63
- isPending: boolean;
64
- isError: boolean;
65
- isSuccess: boolean;
66
- error: Error | null;
67
- };
51
+ swapBatch: BatchTxStepResult;
68
52
  isPending: boolean;
69
53
  isSuccess: boolean;
70
54
  isError: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMarketFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAO,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACb,MAAM,iCAAiC,CAAC;AAezC,QAAA,MAAM,kBAAkB,eAAe,CAAC;AAUxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,OAAO,kBAAkB,CAAC;IACzC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,KAAK,IAAI,CAAC;AAKjE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,OAAO,kBAAkB,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrE,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,aAAa,EAAE;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC;QACxB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB,CAAC;AAIF,wBAAgB,aAAa,CAAC,EAC5B,WAAW,GACZ,EAAE,kBAAkB,GAAG,mBAAmB,CAmpB1C"}