@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
@@ -4,11 +4,13 @@ import { SubmittedDeltaOrderFromAPI } from '../prices/delta/queries/useDeltaOrde
4
4
  import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
5
5
  import { MaybeVeloraDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder';
6
6
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
7
- import { TxSentObject } from '../../../lib/utils/transactionHandlers';
7
+ import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
8
8
  import { OrderSentObject } from '../../../lib/utils/toasts';
9
+ import { DeltaOrderPreSignResult } from './common/usePreSignAndSubmitDeltaOrder';
9
10
  declare const deltaOrderFlowType = "deltaOrder";
10
11
  export type UseDeltaFlowInput = {
11
12
  deltaPrice?: DeltaPrice | BridgePrice;
13
+ preWrapETH?: boolean;
12
14
  };
13
15
  export type SubmitDeltaOrderResult = {
14
16
  tradeFlowType: typeof deltaOrderFlowType;
@@ -21,12 +23,32 @@ export type SubmitDeltaOrderResult = {
21
23
  account: Address;
22
24
  receiverAddress?: Address;
23
25
  };
24
- type OnTxSent = (txSent: TxSentObject) => void;
26
+ type OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;
25
27
  type OnOrderSent = (orderSent: OrderSentObject) => void;
26
28
  type RunDeltaOrderOptions = {
27
29
  onTxSent?: OnTxSent;
28
30
  onOrderSent?: OnOrderSent;
29
31
  };
32
+ type DeltaOrderSubmissionResult = {
33
+ order?: SubmittedDeltaOrderFromAPI;
34
+ isCreatingOrder: boolean;
35
+ isOrderSent: boolean;
36
+ isPending: boolean;
37
+ isError: boolean;
38
+ isSuccess: boolean;
39
+ error: Error | null;
40
+ };
41
+ type DeltaOrderExecutionResult = {
42
+ sentOrder?: SubmittedDeltaOrderFromAPI;
43
+ lastOrderState?: MaybeVeloraDeltaAuction;
44
+ isOrderPending: boolean;
45
+ isOrderExecuting: boolean;
46
+ isOrderExecuted: boolean;
47
+ isPending: boolean;
48
+ isError: boolean;
49
+ isSuccess: boolean;
50
+ error: Error | null;
51
+ };
30
52
  export type UseDeltaFlowResult = {
31
53
  tradeFlowType: typeof deltaOrderFlowType;
32
54
  chainId: SupportedChainId;
@@ -36,26 +58,9 @@ export type UseDeltaFlowResult = {
36
58
  retryFlow: (options?: RunDeltaOrderOptions) => Promise<SubmitDeltaOrderResult>;
37
59
  approval: ApprovalFlowResult;
38
60
  signPermit: SignPermitFlowResult;
39
- deltaOrderSubmission: {
40
- order?: SubmittedDeltaOrderFromAPI;
41
- isCreatingOrder: boolean;
42
- isOrderSent: boolean;
43
- isPending: boolean;
44
- isError: boolean;
45
- isSuccess: boolean;
46
- error: Error | null;
47
- };
48
- deltaOrderExecution: {
49
- sentOrder?: SubmittedDeltaOrderFromAPI;
50
- lastOrderState?: MaybeVeloraDeltaAuction;
51
- isOrderPending: boolean;
52
- isOrderExecuting: boolean;
53
- isOrderExecuted: boolean;
54
- isPending: boolean;
55
- isError: boolean;
56
- isSuccess: boolean;
57
- error: Error | null;
58
- };
61
+ deltaOrderPreSign: DeltaOrderPreSignResult;
62
+ deltaOrderSubmission: DeltaOrderSubmissionResult;
63
+ deltaOrderExecution: DeltaOrderExecutionResult;
59
64
  isPending: boolean;
60
65
  isSuccess: boolean;
61
66
  isError: boolean;
@@ -63,6 +68,6 @@ export type UseDeltaFlowResult = {
63
68
  result?: SubmitDeltaOrderResult;
64
69
  usedPrice?: DeltaPrice | BridgePrice;
65
70
  };
66
- export declare function useDeltaFlow({ deltaPrice, }: UseDeltaFlowInput): UseDeltaFlowResult;
71
+ export declare function useDeltaFlow({ deltaPrice, preWrapETH, }: UseDeltaFlowInput): UseDeltaFlowResult;
67
72
  export {};
68
73
  //# sourceMappingURL=useDeltaFlow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { useWatchDeltaAuction, useEnsureDeltaOrderExecuted } from '../prices/del
8
8
  import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
9
9
  import { applySlippage } from '../../../lib/utils/price.js';
10
10
  import { useSlippage } from '../../useSlippage.js';
11
- import { useMutation } from '@tanstack/react-query';
11
+ import { useQueryClient, useMutation } from '@tanstack/react-query';
12
12
  import { useRef } from 'react';
13
13
  import { UserCancelledError } from './common/errors.js';
14
14
  import { useSwapReceiverAddressValue } from '../../../components/widget/ReceiverAddress/state/receiverAddressAtom.js';
@@ -19,13 +19,14 @@ import { encodePermit2TransferFromSigDataForDelta } from '../../permit/utils/enc
19
19
  import { useLogger } from '../../../core/logger.js';
20
20
  import { useDeltaPriceQueryForPrice, useSubscribeToDeltaPrice, isBridgePrice } from '../prices/delta/queries/useDeltaPriceQuery.js';
21
21
  import { usePartner } from '../../usePartner.js';
22
- import { queryClient } from '../../../lib/queryClient.js';
23
22
  import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
23
+ import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
24
24
 
25
25
  const deltaOrderFlowType = "deltaOrder";
26
26
  const DELTA_ORDER_MUTATION_KEY = "runDeltaOrderFlow";
27
27
  function useDeltaFlow({
28
- deltaPrice
28
+ deltaPrice,
29
+ preWrapETH
29
30
  }) {
30
31
  const logger = useLogger("DeltaFlow");
31
32
  const chainId = useChainId();
@@ -55,6 +56,7 @@ function useDeltaFlow({
55
56
  chainId,
56
57
  account
57
58
  });
59
+ const queryClient = useQueryClient();
58
60
  const createOrderMut = useCreateDeltaOrder({
59
61
  chainId,
60
62
  account,
@@ -62,18 +64,13 @@ function useDeltaFlow({
62
64
  mutationOptions: {
63
65
  onSuccess: (order) => {
64
66
  logger.log("Create Delta Order success", order);
65
- queryClient.invalidateQueries({
66
- queryKey: deltaOrdersQueryKey({
67
- userAddress: order.user
68
- })
69
- });
70
67
  },
71
68
  onError: (error) => {
72
69
  logger.error("Create Delta Order error", error);
73
70
  }
74
71
  }
75
72
  });
76
- const deltaOrderSubmission = {
73
+ const deltaOrderCreateAndSubmit = {
77
74
  order: createOrderMut.data,
78
75
  isCreatingOrder: createOrderMut.isPending,
79
76
  isOrderSent: createOrderMut.isSuccess,
@@ -82,14 +79,36 @@ function useDeltaFlow({
82
79
  isSuccess: createOrderMut.isSuccess,
83
80
  error: createOrderMut.error
84
81
  };
82
+ const {
83
+ deltaOrderPreSign,
84
+ canBatchTxs,
85
+ isConnectedToSafe,
86
+ preSignAndSubmitDeltaOrder,
87
+ reset: resetPreSignAndSubmitDeltaOrder
88
+ } = usePreSignAndSubmitDeltaOrder({
89
+ chainId,
90
+ account,
91
+ logger,
92
+ viemClient: minClient
93
+ });
94
+ const deltaOrderSubmission = {
95
+ order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,
96
+ isCreatingOrder: deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,
97
+ isOrderSent: deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,
98
+ isPending: deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,
99
+ isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,
100
+ isSuccess: deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,
101
+ error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error
102
+ };
85
103
  const watchOrderExecution = useWatchDeltaAuction({
86
- orderId: createOrderMut.data?.id,
104
+ orderId: deltaOrderSubmission.order?.id,
87
105
  onAuctionSuccess: (order_0) => {
88
106
  logger.log("Delta Order success", order_0);
89
107
  queryClient.invalidateQueries({
90
108
  queryKey: deltaOrdersQueryKey({
91
109
  userAddress: order_0.user
92
- })
110
+ }),
111
+ exact: false
93
112
  });
94
113
  },
95
114
  onAuctionFailure: (order_1) => {
@@ -105,7 +124,7 @@ function useDeltaFlow({
105
124
  const orderStatus = watchOrderExecution.data ? getOverallOrderStatus(watchOrderExecution.data) : null;
106
125
  const neverFetchedFinishedOrder = watchOrderExecution.data === null && watchOrderExecution.isSuccess;
107
126
  const deltaOrderExecution = {
108
- sentOrder: createOrderMut.data,
127
+ sentOrder: deltaOrderSubmission.order,
109
128
  lastOrderState: watchOrderExecution.data,
110
129
  isOrderPending: orderStatus === "pending",
111
130
  isOrderExecuting: orderStatus === "executing",
@@ -144,6 +163,7 @@ function useDeltaFlow({
144
163
  approveTxMut.reset();
145
164
  signPermitMut.reset();
146
165
  createOrderMut.reset();
166
+ resetPreSignAndSubmitDeltaOrder();
147
167
  assert(deltaPrice, "Delta price is not available");
148
168
  const abortController = new AbortController();
149
169
  currentAbortControllerRef.current = abortController;
@@ -156,8 +176,19 @@ function useDeltaFlow({
156
176
  let freshPrice = deltaPrice;
157
177
  let unsubscribeFromPrice;
158
178
  usingPriceRef.current = freshPrice;
179
+ const {
180
+ shouldDoApprovalTxOrPermit,
181
+ tryPermit,
182
+ shouldPreSignBatch
183
+ } = shouldApproveOrBatch({
184
+ approval,
185
+ preWrapETH,
186
+ signPermit,
187
+ canBatchTxs,
188
+ isConnectedToSafe
189
+ });
159
190
  try {
160
- if (approval.needsApproval && allowanceToSet) {
191
+ if (shouldDoApprovalTxOrPermit && allowanceToSet) {
161
192
  const queryKey = getQueryForPrice({
162
193
  chainId,
163
194
  price: freshPrice
@@ -189,7 +220,6 @@ function useDeltaFlow({
189
220
  }
190
221
  });
191
222
  }
192
- const tryPermit = signPermit.isPermitSupported && signPermit.isPermitReadyToSign;
193
223
  try {
194
224
  if (!tryPermit) {
195
225
  approveOrPermitEvents.onApproveTx.request({
@@ -296,7 +326,8 @@ function useDeltaFlow({
296
326
  }
297
327
  }
298
328
  });
299
- const orderFromAPI = await createOrderMut.mutateAsync({
329
+ let orderFromAPI;
330
+ const createOrderInput = {
300
331
  signal,
301
332
  orderInput: {
302
333
  owner: account,
@@ -306,12 +337,21 @@ function useDeltaFlow({
306
337
  permit,
307
338
  destChainId,
308
339
  deltaPrice: deltaPriceToUse,
309
- // @TODO if necessary to support add more params
310
340
  partner,
311
341
  ...amountsAfterSlippage_0,
312
342
  deadline: Number(orderDeadline)
313
343
  }
314
- });
344
+ };
345
+ if (!shouldPreSignBatch) {
346
+ orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
347
+ } else {
348
+ orderFromAPI = await preSignAndSubmitDeltaOrder({
349
+ createDeltaOrderInput: createOrderInput,
350
+ approval,
351
+ preWrapETH,
352
+ onTxSent
353
+ });
354
+ }
315
355
  if (signedPermitResult) {
316
356
  markNonceAsUsed(signedPermitResult.signedPermitData);
317
357
  }
@@ -399,6 +439,7 @@ function useDeltaFlow({
399
439
  signPermitMut.reset();
400
440
  createOrderMut.reset();
401
441
  deltaOrderMut.reset();
442
+ resetPreSignAndSubmitDeltaOrder();
402
443
  };
403
444
  const retryFlow = (options) => {
404
445
  reset();
@@ -414,6 +455,7 @@ function useDeltaFlow({
414
455
  retryFlow,
415
456
  approval,
416
457
  signPermit,
458
+ deltaOrderPreSign,
417
459
  deltaOrderSubmission,
418
460
  deltaOrderExecution,
419
461
  // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type { BridgePrice, DeltaPrice } from \"@velora-dex/sdk\";\nimport { 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 {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderSubmission: {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n deltaOrderExecution: {\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 isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\", // @TODO add BUY support for Delta when available\n tradeMode: \"swap\",\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 Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n });\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\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 /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: createOrderMut.data?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n });\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta 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 deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\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 ensureOrderExecuted = useEnsureDeltaOrderExecuted();\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\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 // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n try {\n if (approval.needsApproval && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\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 } else {\n approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\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 // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n // @TODO if necessary to support add more params\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n },\n });\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n usedPrice,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","queryClient","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","onError","error","deltaOrderSubmission","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","reset","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","needsApproval","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","isBridgePrice","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","mutateAsync","orderInput","owner","beneficiary","destToken","Number","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { 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 {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\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 { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\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\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\", // @TODO add BUY support for Delta when available\n tradeMode: \"swap\",\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 const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\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 deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta 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 deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.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 ensureOrderExecuted = useEnsureDeltaOrderExecuted();\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\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 // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\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, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\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 } else {\n approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\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 // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput = {\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n },\n };\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 // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n usedPrice,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","isBridgePrice","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n retryFlow: UseDeltaFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: DeltaOrderStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n tradeFlowType: UseDeltaFlowResult[\"tradeFlowType\"];\n};\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const logger = useLogger(\"DeltaSwapStep\");\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!(\n deltaFlow.approval.txHash || deltaFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;\n const notYetRunning = !orderStatus || orderStatus === \"NOT_STARTED\";\n step = {\n key: notYetRunning ? \"auction\" : \"order-execution\",\n };\n } else if (deltaFlow.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 const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n deltaFlow.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 orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n let erroredStep: DeltaOrderStepKey | undefined;\n\n if (deltaFlow.isError) {\n if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {\n erroredStep = \"signature\";\n } else if (deltaFlow.deltaOrderSubmission.isError) {\n erroredStep = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isError) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n usedPrice: deltaFlow.usedPrice,\n startDeltaSwap,\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 step,\n explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","permitOrApprovalHappened","txHash","signature","deltaOrderExecution","orderStatus","lastOrderState","status","notYetRunning","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","result","tradeFlowType","usedPrice"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n retryFlow: UseDeltaFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: DeltaOrderStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n tradeFlowType: UseDeltaFlowResult[\"tradeFlowType\"];\n};\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const logger = useLogger(\"DeltaSwapStep\");\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!(\n deltaFlow.approval.txHash || deltaFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;\n const notYetRunning = !orderStatus || orderStatus === \"NOT_STARTED\";\n step = {\n key: notYetRunning ? \"auction\" : \"order-execution\",\n };\n } else if (deltaFlow.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 const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n deltaFlow.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 orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n let erroredStep: DeltaOrderStepKey | undefined;\n\n if (deltaFlow.isError) {\n if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {\n erroredStep = \"signature\";\n } else if (deltaFlow.deltaOrderSubmission.isError) {\n erroredStep = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isError) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n usedPrice: deltaFlow.usedPrice,\n startDeltaSwap,\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 step,\n explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","permitOrApprovalHappened","txHash","signature","deltaOrderExecution","orderStatus","lastOrderState","status","notYetRunning","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","result","tradeFlowType","usedPrice"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Address } from 'viem';
2
2
  import { SubmittedDeltaOrderFromAPI } from '../prices/delta/queries/useDeltaOrders';
3
3
  import { ApprovalFlowResult, SubmitTxResult } from './common/types';
4
4
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
5
- import { TxSentObject } from '../../../lib/utils/transactionHandlers';
5
+ import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
6
6
  import { MaybeVeloraDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder';
7
7
  declare const limitOrderFlowType = "limitOrder";
8
8
  export type UserDefinedLimitPrice = {
@@ -13,6 +13,7 @@ export type UserDefinedLimitPrice = {
13
13
  };
14
14
  export type UseLimitOrderFlowInput = {
15
15
  limitPrice?: UserDefinedLimitPrice;
16
+ preWrapETH?: boolean;
16
17
  };
17
18
  export type SubmitLimitOrderResult = {
18
19
  tradeFlowType: typeof limitOrderFlowType;
@@ -24,7 +25,7 @@ export type SubmitLimitOrderResult = {
24
25
  account: Address;
25
26
  receiverAddress?: Address;
26
27
  };
27
- type OnTxSent = (txSent: TxSentObject) => void;
28
+ type OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;
28
29
  type RunLimitOrderOptions = {
29
30
  onTxSent?: OnTxSent;
30
31
  };
@@ -72,6 +73,6 @@ export type UseLimitOrderFlowResult = {
72
73
  result?: SubmitLimitOrderResult;
73
74
  limitPrice?: UserDefinedLimitPrice;
74
75
  };
75
- export declare function useLimitOrderFlow({ limitPrice, }: UseLimitOrderFlowInput): UseLimitOrderFlowResult;
76
+ export declare function useLimitOrderFlow({ limitPrice, preWrapETH, }: UseLimitOrderFlowInput): UseLimitOrderFlowResult;
76
77
  export {};
77
78
  //# sourceMappingURL=useLimitOrderFlow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useLimitOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useLimitOrderFlow.ts"],"names":[],"mappings":"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"}