@velora-dex/widget 0.4.14 → 0.5.0

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 (229) hide show
  1. package/dist/components/web3/ConnectWallets/walletFlags.d.ts +90 -0
  2. package/dist/components/web3/ConnectWallets/walletFlags.d.ts.map +1 -0
  3. package/dist/components/web3/ConnectWallets/walletFlags.js +104 -0
  4. package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -0
  5. package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
  6. package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
  7. package/dist/components/web3/ConnectWallets/walletIcons.js +23 -3
  8. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  9. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  10. package/dist/components/widget/AppHeader/Activities/Drawers.js +24 -14
  11. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  12. package/dist/components/widget/Button/CancelButton/CancelButton.js +44 -40
  13. package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
  14. package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts +15 -0
  15. package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts.map +1 -0
  16. package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js +66 -0
  17. package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -0
  18. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +5 -2
  19. package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
  20. package/dist/components/widget/Drawer/state/useDrawerControls.js +75 -2
  21. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  22. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
  23. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +85 -49
  24. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
  25. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -1
  26. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +33 -22
  27. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
  28. package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts +7 -0
  29. package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts.map +1 -0
  30. package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js +84 -0
  31. package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -0
  32. package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts +12 -0
  33. package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts.map +1 -0
  34. package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js +227 -0
  35. package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -0
  36. package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts +8 -0
  37. package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts.map +1 -0
  38. package/dist/components/widget/TradeOverview/CancelOrder/constants.js +20 -0
  39. package/dist/components/widget/TradeOverview/CancelOrder/constants.js.map +1 -0
  40. package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts +12 -0
  41. package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts.map +1 -0
  42. package/dist/components/widget/TradeOverview/CancelOrder/utils.js +49 -0
  43. package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -0
  44. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
  45. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
  46. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +38 -28
  47. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  48. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
  49. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +16 -18
  50. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  51. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts +2 -1
  52. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts.map +1 -1
  53. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +78 -64
  54. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  55. package/dist/components/widget/TradeOverview/TradeComplete/index.d.ts.map +1 -1
  56. package/dist/components/widget/TradeOverview/TradeComplete/index.js +21 -14
  57. package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
  58. package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +2 -1
  59. package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -1
  60. package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +66 -24
  61. package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
  62. package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -1
  63. package/dist/components/widget/TradeOverview/TradeError/index.js +11 -7
  64. package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
  65. package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -1
  66. package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
  67. package/dist/components/widget/TradeOverview/TradeError/utils.js +20 -2
  68. package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
  69. package/dist/components/widget/TradeOverview/TradeOverview.d.ts +5 -4
  70. package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
  71. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  72. package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
  73. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +15 -21
  74. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  75. package/dist/components/widget/TradeOverview/steps.d.ts +4 -0
  76. package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
  77. package/dist/components/widget/TradeOverview/steps.js.map +1 -1
  78. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +22 -5
  79. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
  80. package/dist/components/widget/TradeOverview/tradeFlowContext.js +37 -11
  81. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  82. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +4 -1
  83. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
  84. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +133 -31
  85. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  86. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts +7 -2
  87. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts.map +1 -1
  88. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +18 -14
  89. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  90. package/dist/components/widget/TransactionDetails/TransactionListItem.d.ts.map +1 -1
  91. package/dist/components/widget/TransactionDetails/TransactionListItem.js +1 -1
  92. package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
  93. package/dist/configurator/Configurator.d.ts.map +1 -1
  94. package/dist/core/Updaters.d.ts.map +1 -1
  95. package/dist/core/Updaters.js +2 -0
  96. package/dist/core/Updaters.js.map +1 -1
  97. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  98. package/dist/core/state/widgetEventsAtom.js +51 -37
  99. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  100. package/dist/events/types/{cancel.d.ts → cancelOrder.d.ts} +5 -2
  101. package/dist/events/types/cancelOrder.d.ts.map +1 -0
  102. package/dist/events/types/cancelTx.d.ts +35 -0
  103. package/dist/events/types/cancelTx.d.ts.map +1 -0
  104. package/dist/events/types/index.d.ts +5 -2
  105. package/dist/events/types/index.d.ts.map +1 -1
  106. package/dist/events/types/swap.d.ts +11 -1
  107. package/dist/events/types/swap.d.ts.map +1 -1
  108. package/dist/hooks/connectors/useIsConnectedSafe.js +1 -0
  109. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  110. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  111. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +20 -2
  112. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
  113. package/dist/hooks/otc/mutations/useCancelLimitOrder.js +197 -74
  114. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  115. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  116. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -1
  117. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  118. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +6 -1
  119. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  120. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +37 -24
  121. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  122. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts +2 -2
  123. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
  124. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +28 -42
  125. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
  126. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +6 -1
  127. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -1
  128. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +16 -0
  129. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
  130. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +10 -4
  131. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  132. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +176 -145
  133. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
  134. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +11 -0
  135. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -0
  136. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js +69 -0
  137. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -0
  138. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +2 -2
  139. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  140. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +24 -28
  141. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
  142. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts +6 -2
  143. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts.map +1 -1
  144. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js +8 -2
  145. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
  146. package/dist/hooks/swap/tradeFlow/common/errors.d.ts +6 -0
  147. package/dist/hooks/swap/tradeFlow/common/errors.d.ts.map +1 -1
  148. package/dist/hooks/swap/tradeFlow/common/errors.js +15 -1
  149. package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
  150. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +6 -1
  151. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  152. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +55 -19
  153. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  154. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -2
  155. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  156. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +45 -57
  157. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  158. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -1
  159. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  160. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +26 -5
  161. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  162. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts +4 -4
  163. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
  164. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -37
  165. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  166. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +13 -1
  167. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  168. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +93 -26
  169. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  170. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +7 -1
  171. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  172. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +59 -42
  173. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  174. package/dist/hooks/txs/mutations/useReplaceTx.d.ts +86 -0
  175. package/dist/hooks/txs/mutations/useReplaceTx.d.ts.map +1 -0
  176. package/dist/hooks/txs/mutations/useReplaceTx.js +514 -0
  177. package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -0
  178. package/dist/hooks/txs/mutations/useSendTx.d.ts +7 -2
  179. package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
  180. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  181. package/dist/hooks/txs/queries/useAccountNonce.d.ts +9 -0
  182. package/dist/hooks/txs/queries/useAccountNonce.d.ts.map +1 -0
  183. package/dist/hooks/txs/queries/useAccountNonce.js +31 -0
  184. package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -0
  185. package/dist/hooks/txs/queries/useTxFees.d.ts +16 -0
  186. package/dist/hooks/txs/queries/useTxFees.d.ts.map +1 -0
  187. package/dist/hooks/txs/queries/useTxFees.js +103 -0
  188. package/dist/hooks/txs/queries/useTxFees.js.map +1 -0
  189. package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
  190. package/dist/hooks/txs/queries/useTxHistory.js +3 -2
  191. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  192. package/dist/hooks/txs/queries/useTxResponse.d.ts +2390 -0
  193. package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -0
  194. package/dist/hooks/txs/queries/useTxResponse.js +75 -0
  195. package/dist/hooks/txs/queries/useTxResponse.js.map +1 -0
  196. package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts +2 -0
  197. package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts.map +1 -0
  198. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +30 -0
  199. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -0
  200. package/dist/index.d.ts +1 -1
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/styles.css +3 -0
  203. package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts +16 -0
  204. package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts.map +1 -0
  205. package/dist/transactions/queries/ensureEstimateFeesPerGas.js +23 -0
  206. package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -0
  207. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  208. package/dist/transactions/queries/ensureTxReceipt.js +1 -1
  209. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  210. package/dist/transactions/queries/ensureTxResponse.d.ts +17 -0
  211. package/dist/transactions/queries/ensureTxResponse.d.ts.map +1 -0
  212. package/dist/transactions/queries/ensureTxResponse.js +23 -0
  213. package/dist/transactions/queries/ensureTxResponse.js.map +1 -0
  214. package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts +7 -0
  215. package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts.map +1 -0
  216. package/dist/transactions/state/hooks/useMarkTxAsDropped.js +10 -0
  217. package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -0
  218. package/dist/transactions/state/transactionsActionAtom.d.ts +12 -0
  219. package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
  220. package/dist/transactions/state/transactionsActionAtom.js +40 -1
  221. package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
  222. package/dist/transactions/status.d.ts +1 -1
  223. package/dist/transactions/status.d.ts.map +1 -1
  224. package/dist/transactions/status.js +6 -0
  225. package/dist/transactions/status.js.map +1 -1
  226. package/dist/transactions/types.d.ts +15 -2
  227. package/dist/transactions/types.d.ts.map +1 -1
  228. package/package.json +2 -2
  229. package/dist/events/types/cancel.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaAuction,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount } 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 {\n useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\n} 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 useDeltaPriceQuery,\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\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\nimport { extractSelectedBridgePrice } from \"../prices/delta/bridge/utils\";\nimport type { DeltaOrBridgePrice } from \"../prices/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport {\n useDepositAndSubmitDeltaOrder,\n type DeltaOrderDepositResult,\n} from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\n\nimport {\n useExtraDeltaPriceParams,\n usePricesParams,\n} from \"../prices/usePricesParams\";\nimport { useSelectedBridgePrice } from \"../prices/delta/bridge/useSelectedBridgePrice\";\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 | 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 isPostingOrder: 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\ntype DeltaOrderCancelationResult = {\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: 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 cancelDeltaOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n deltaOrderDeposit: DeltaOrderDepositResult;\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 deltaOrderCancelation: DeltaOrderCancelationResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n freshPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: Omit<DeltaAuction, \"signature\" | \"transactions\">;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice: _deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n ...extraDeltaPriceParams,\n },\n chainId,\n destChainId,\n query: {\n enabled: false,\n },\n });\n const selectedBridgePrice = useSelectedBridgePrice({\n price: deltaPriceQuery.data,\n });\n const deltaPrice: DeltaOrBridgePrice | undefined =\n selectedBridgePrice || deltaPriceQuery.data || _deltaPrice;\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 swapSideFromInput = useSwapSide();\n\n const shouldApplySlippage =\n !!deltaPrice &&\n deltaPrice.srcToken.toLowerCase() !== deltaPrice.destToken.toLowerCase();\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:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n chainId,\n applySlippage: shouldApplySlippage,\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 createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\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: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order:\n deltaOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isPostingOrder:\n deltaOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isOrderSent ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n deltaOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n deltaOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.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 },\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 cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder,\n chainId,\n account,\n client: minClient,\n logger,\n });\n\n const deltaOrderCancelation: UseDeltaFlowResult[\"deltaOrderCancelation\"] = {\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\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, partnerAddress, partnerFeeBps, partnerTakesSurplus } =\n usePartner();\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n lastPrice,\n }: RunDeltaOrderOptions & {\n lastPrice?: DeltaPrice | BridgePrice | null;\n } = {}): 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 createAndSubmitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\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 const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\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 const allowanceToPermit = signPermit.amountToPermit;\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 if (freshPrice.hmac === lastPrice?.hmac) {\n // we are resubmitting the Delta order, because it failed the last time,\n // but the price hasn't updated yet, so force refetch,\n // comparing raw prices here before mutating to select by bridge preference\n const newPriceResult = await deltaPriceQuery.refetch({\n cancelRefetch: false,\n });\n // check if cancelled during refetch\n signal.throwIfAborted();\n\n if (newPriceResult.data) {\n freshPrice = newPriceResult.data;\n\n // if we have a specific bridge we need to use\n if (isBridgePrice(freshPrice)) {\n // extract the selected bridge price\n freshPrice = extractSelectedBridgePrice({\n price: freshPrice,\n protocolName,\n bridgePreference,\n });\n }\n }\n }\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(freshPrice.srcToken);\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 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 = deltaPriceQueryKey;\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: (price) => {\n let newPrice: DeltaOrBridgePrice = price;\n if (isBridgePrice(price)) {\n newPrice = extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n }\n\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 const amounts = {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n // add this check to resubmit flow\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 } else {\n approveOrPermitEvents.onSignPermit.request({\n allowanceToSet: allowanceToPermit,\n });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToPermit,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet: allowanceToPermit,\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: allowanceToPermit,\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\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amounts = {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\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: CreateAndSubmitDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n degenMode: priceParams.degenMode,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n\n partner,\n partnerAddress,\n partnerFeeBps,\n partnerTakesSurplus,\n\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (shouldDepositAndPreSign) {\n // deposit ETH + depositTx + POST order\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI =\n await createAndSubmitOrderMut.mutateAsync(createOrderInput);\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 cancelDeltaOrder = cancelOrderMut.cancelDeltaOrder;\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 createAndSubmitOrderMut.reset();\n deltaOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n const lastPrice = usingPriceRef.current;\n reset();\n return runDeltaOrderFlow({ ...options, lastPrice });\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 const result = deltaOrderMut.data;\n\n /**\n * priority:\n * 1. lastOrderState = updated sent Order from final result\n * 2. sentOrder = just sent Order from final result\n * 3. deltaOrderExecution.lastOrderState = updated sent Order from watchOrderExecution (intermediate result)\n * 4. deltaOrderExecution.sentOrder = just sent Order from watchOrderExecution (intermediate result)\n */\n const submittedDeltaOrder:\n | Omit<DeltaAuction, \"signature\" | \"transactions\">\n | undefined =\n result?.deltaOrder.lastOrderState ||\n result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState ||\n deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelDeltaOrder,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderDeposit,\n deltaOrderSubmission,\n deltaOrderExecution,\n deltaOrderCancelation,\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,\n usedPrice,\n freshPrice: deltaPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","_deltaPrice","logger","useLogger","resolvedSlippage","useSlippage","priceParams","chainId","destChainId","usePricesParams","extraDeltaPriceParams","useExtraDeltaPriceParams","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","query","enabled","selectedBridgePrice","useSelectedBridgePrice","price","data","swapSideFromInput","useSwapSide","shouldApplySlippage","srcToken","toLowerCase","destToken","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","applySlippage","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createAndSubmitOrderMut","useCreateAndSubmitDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","isCreatingOrder","isPostingOrder","isOrderSent","isPending","isError","isSuccess","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","deltaOrderSubmission","postingOrder","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","deltaOrderCancelation","receipt","isCancelingOrder","isOrderCancellable","isOrderCanceled","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","partnerAddress","partnerFeeBps","partnerTakesSurplus","usePartner","protocolName","useAtomValue","protocolNameAtom","bridgePreference","bridgePreferenceAtom","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","lastPrice","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","freshPrice","hmac","newPriceResult","refetch","cancelRefetch","throwIfAborted","isBridgePrice","extractSelectedBridgePrice","unsubscribeFromPrice","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","approvedAmount","onData","newPrice","aborted","undefined","amounts","destAmount","amountsAfterSlippage","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","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","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","degenMode","orderInput","owner","beneficiary","Number","side","createDeltaOrderInput","depositAmount","mutateAsync","lastOrderStatePromise","tradeFlowType","approve","deltaOrder","cancelDeltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","submittedDeltaOrder"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaAuction,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount } 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 {\n useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\n} 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 {\n isTransactionCancelledError,\n UserCancelledError,\n} 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 useDeltaPriceQuery,\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\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\nimport { extractSelectedBridgePrice } from \"../prices/delta/bridge/utils\";\nimport type { DeltaOrBridgePrice } from \"../prices/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport {\n useDepositAndSubmitDeltaOrder,\n type DeltaOrderDepositResult,\n} from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\n\nimport {\n useExtraDeltaPriceParams,\n usePricesParams,\n} from \"../prices/usePricesParams\";\nimport { useSelectedBridgePrice } from \"../prices/delta/bridge/useSelectedBridgePrice\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\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 | 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 isPostingOrder: 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\ntype DeltaOrderCancelationResult = {\n step?: CancelOrderStepKey;\n receipt?: TransactionReceipt;\n txHash?: string;\n response?: CancelDeltaOrdersReturn;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n result?: TransactionReceipt | CancelDeltaOrdersReturn;\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 cancelDeltaOrder: () => Promise<\n TransactionReceipt | CancelDeltaOrdersReturn | undefined\n >;\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n deltaOrderDeposit: DeltaOrderDepositResult;\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 deltaOrderCancelation: DeltaOrderCancelationResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n freshPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: Omit<DeltaAuction, \"signature\" | \"transactions\">;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice: _deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n ...extraDeltaPriceParams,\n },\n chainId,\n destChainId,\n query: {\n enabled: false,\n },\n });\n const selectedBridgePrice = useSelectedBridgePrice({\n price: deltaPriceQuery.data,\n });\n const deltaPrice: DeltaOrBridgePrice | undefined =\n selectedBridgePrice || deltaPriceQuery.data || _deltaPrice;\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 swapSideFromInput = useSwapSide();\n\n const shouldApplySlippage =\n !!deltaPrice &&\n deltaPrice.srcToken.toLowerCase() !== deltaPrice.destToken.toLowerCase();\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:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n chainId,\n applySlippage: shouldApplySlippage,\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 createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\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: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order:\n deltaOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isPostingOrder:\n deltaOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isOrderSent ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n deltaOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n deltaOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.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 },\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 { onSwap } = useWidgetEvents();\n\n const orderToCancel =\n deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder;\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: orderToCancel,\n chainId,\n account,\n client: minClient,\n logger,\n mutationOptions: {\n onMutate: () => {\n assert(orderToCancel, \"No order to cancel\");\n return orderToCancel;\n },\n onSuccess: (_details, _variables, onMutateResult) => {\n onSwap?.({\n event: {\n name: \"Swap:cancelled\",\n params: {\n swapMode: \"delta\",\n order: onMutateResult,\n },\n },\n });\n },\n },\n });\n\n const deltaOrderCancelation: UseDeltaFlowResult[\"deltaOrderCancelation\"] = {\n receipt: cancelOrderMut.receipt,\n txHash: cancelOrderMut.txHash,\n response: cancelOrderMut.cancelOrderResponse,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n result: cancelOrderMut.result,\n step: cancelOrderMut.step,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\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, partnerAddress, partnerFeeBps, partnerTakesSurplus } =\n usePartner();\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n lastPrice,\n }: RunDeltaOrderOptions & {\n lastPrice?: DeltaPrice | BridgePrice | null;\n } = {}): 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 createAndSubmitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\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 const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\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 const allowanceToPermit = signPermit.amountToPermit;\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 if (freshPrice.hmac === lastPrice?.hmac) {\n // we are resubmitting the Delta order, because it failed the last time,\n // but the price hasn't updated yet, so force refetch,\n // comparing raw prices here before mutating to select by bridge preference\n const newPriceResult = await deltaPriceQuery.refetch({\n cancelRefetch: false,\n });\n // check if cancelled during refetch\n signal.throwIfAborted();\n\n if (newPriceResult.data) {\n freshPrice = newPriceResult.data;\n\n // if we have a specific bridge we need to use\n if (isBridgePrice(freshPrice)) {\n // extract the selected bridge price\n freshPrice = extractSelectedBridgePrice({\n price: freshPrice,\n protocolName,\n bridgePreference,\n });\n }\n }\n }\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(freshPrice.srcToken);\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 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 = deltaPriceQueryKey;\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: (price) => {\n let newPrice: DeltaOrBridgePrice = price;\n if (isBridgePrice(price)) {\n newPrice = extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n }\n\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 const amounts = {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n // add this check to resubmit flow\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 } else {\n approveOrPermitEvents.onSignPermit.request({\n allowanceToSet: allowanceToPermit,\n });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToPermit,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet: allowanceToPermit,\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: allowanceToPermit,\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\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amounts = {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\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: CreateAndSubmitDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n degenMode: priceParams.degenMode,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n\n partner,\n partnerAddress,\n partnerFeeBps,\n partnerTakesSurplus,\n\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (shouldDepositAndPreSign) {\n // deposit ETH + depositTx + POST order\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI =\n await createAndSubmitOrderMut.mutateAsync(createOrderInput);\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: lastOrderState\n ? {\n ...lastOrderState,\n orderVersion: orderFromAPI.orderVersion,\n deltaGasOverhead: orderFromAPI.deltaGasOverhead,\n signature: orderFromAPI.signature,\n }\n : orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\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 if (!isTransactionCancelledError(error)) {\n // Swap:cancelled event is handled in cancelOrderMut.onSuccess\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n }\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const cancelDeltaOrder = async () => {\n try {\n return await cancelOrderMut.cancelDeltaOrder();\n } catch (error) {\n logger.error(\"Cancel Delta order error\", error);\n // allow to re-trigger cancellation after error (like UserCancelledError)\n cancelOrderMut.reset();\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 createAndSubmitOrderMut.reset();\n deltaOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n const lastPrice = usingPriceRef.current;\n reset();\n return runDeltaOrderFlow({ ...options, lastPrice });\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 const result = deltaOrderMut.data;\n\n /**\n * priority:\n * 1. lastOrderState = updated sent Order from final result\n * 2. sentOrder = just sent Order from final result\n * 3. deltaOrderExecution.lastOrderState = updated sent Order from watchOrderExecution (intermediate result)\n * 4. deltaOrderExecution.sentOrder = just sent Order from watchOrderExecution (intermediate result)\n */\n const submittedDeltaOrder:\n | Omit<DeltaAuction, \"signature\" | \"transactions\">\n | undefined =\n result?.deltaOrder.lastOrderState ||\n result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState ||\n deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelDeltaOrder,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderDeposit,\n deltaOrderSubmission,\n deltaOrderExecution,\n deltaOrderCancelation,\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,\n usedPrice,\n freshPrice: deltaPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","_deltaPrice","logger","useLogger","resolvedSlippage","useSlippage","priceParams","chainId","destChainId","usePricesParams","extraDeltaPriceParams","useExtraDeltaPriceParams","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","query","enabled","selectedBridgePrice","useSelectedBridgePrice","price","data","swapSideFromInput","useSwapSide","shouldApplySlippage","srcToken","toLowerCase","destToken","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","applySlippage","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createAndSubmitOrderMut","useCreateAndSubmitDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","isCreatingOrder","isPostingOrder","isOrderSent","isPending","isError","isSuccess","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","deltaOrderSubmission","postingOrder","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","onSwap","useWidgetEvents","orderToCancel","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","onMutate","assert","_details","_variables","onMutateResult","event","name","params","swapMode","deltaOrderCancelation","receipt","txHash","response","cancelOrderResponse","isCancelingOrder","isOrderCancellable","isOrderCanceled","step","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","partnerAddress","partnerFeeBps","partnerTakesSurplus","usePartner","protocolName","useAtomValue","protocolNameAtom","bridgePreference","bridgePreferenceAtom","subscribeToPrice","useSubscribeToDeltaPrice","submitDeltaOrder","onTxSent","onOrderSent","lastPrice","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","freshPrice","hmac","newPriceResult","refetch","cancelRefetch","throwIfAborted","isBridgePrice","extractSelectedBridgePrice","unsubscribeFromPrice","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","approvedAmount","onData","newPrice","aborted","undefined","amounts","destAmount","amountsAfterSlippage","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","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","bridge","destinationChainId","orderFromAPI","createOrderInput","degenMode","orderInput","owner","beneficiary","Number","side","createDeltaOrderInput","depositAmount","mutateAsync","lastOrderStatePromise","orderVersion","deltaGasOverhead","tradeFlowType","approve","deltaOrder","isTransactionCancelledError","cancelDeltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","submittedDeltaOrder"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DeltaOrderStep, DeltaOrderStepKey, GenericStep } from '../../../components/widget/TradeOverview/steps';
1
+ import { CancelOrderStepKey, DeltaOrderStep, DeltaOrderStepKey } from '../../../components/widget/TradeOverview/steps';
2
2
  import { SubmitDeltaOrderResult, UseDeltaFlowInput, UseDeltaFlowResult } from './useDeltaFlow';
3
3
  type UseDeltaSwapStepResult = {
4
4
  startDeltaSwap: UseDeltaFlowResult["runDeltaOrderFlow"];
@@ -10,7 +10,7 @@ type UseDeltaSwapStepResult = {
10
10
  isFlowCancellable: boolean;
11
11
  isOrderCancellable: boolean;
12
12
  step?: DeltaOrderStep;
13
- orderCancellationStep?: GenericStep;
13
+ orderCancellationStep?: CancelOrderStepKey;
14
14
  isNonFlowStep: boolean;
15
15
  explorerLink?: string;
16
16
  error: Error | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EAEZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IACxD,gBAAgB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAChE,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,CAsLxB"}
1
+ {"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EAElB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IACxD,gBAAgB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAChE,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,CA+KxB"}
@@ -108,20 +108,8 @@ function useDeltaSwapStep(options) {
108
108
  }
109
109
  }
110
110
  }
111
- let orderCancellationStep;
112
- if (deltaFlow.deltaOrderCancelation.isCancelingOrder) {
113
- orderCancellationStep = "pending";
114
- } else {
115
- if (deltaFlow.deltaOrderCancelation.isOrderCanceled) {
116
- orderCancellationStep = "success";
117
- } else {
118
- if (deltaFlow.deltaOrderCancelation.isError) {
119
- orderCancellationStep = "error";
120
- }
121
- }
122
- }
123
111
  let t3;
124
- if ($[4] !== deltaFlow.freshPrice || $[5] !== deltaFlow.result || $[6] !== deltaFlow.submittedDeltaOrder || $[7] !== deltaFlow.usedPrice || $[8] !== error || $[9] !== erroredStep || $[10] !== explorerLink || $[11] !== isFlowCancellable || $[12] !== isNonFlowStep || $[13] !== isOrderCancellable) {
112
+ if ($[4] !== deltaFlow.deltaOrderCancelation.step || $[5] !== deltaFlow.freshPrice || $[6] !== deltaFlow.result || $[7] !== deltaFlow.submittedDeltaOrder || $[8] !== deltaFlow.usedPrice || $[9] !== error || $[10] !== erroredStep || $[11] !== explorerLink || $[12] !== isFlowCancellable || $[13] !== isNonFlowStep || $[14] !== isOrderCancellable) {
125
113
  t3 = isNonFlowStep ? {
126
114
  usedPrice: deltaFlow.freshPrice,
127
115
  isFlowCancellable: false,
@@ -135,85 +123,87 @@ function useDeltaSwapStep(options) {
135
123
  error,
136
124
  isFlowCancellable,
137
125
  isOrderCancellable,
138
- explorerLink
126
+ explorerLink,
127
+ orderCancellationStep: deltaFlow.deltaOrderCancelation.step
139
128
  };
140
- $[4] = deltaFlow.freshPrice;
141
- $[5] = deltaFlow.result;
142
- $[6] = deltaFlow.submittedDeltaOrder;
143
- $[7] = deltaFlow.usedPrice;
144
- $[8] = error;
145
- $[9] = erroredStep;
146
- $[10] = explorerLink;
147
- $[11] = isFlowCancellable;
148
- $[12] = isNonFlowStep;
149
- $[13] = isOrderCancellable;
150
- $[14] = t3;
129
+ $[4] = deltaFlow.deltaOrderCancelation.step;
130
+ $[5] = deltaFlow.freshPrice;
131
+ $[6] = deltaFlow.result;
132
+ $[7] = deltaFlow.submittedDeltaOrder;
133
+ $[8] = deltaFlow.usedPrice;
134
+ $[9] = error;
135
+ $[10] = erroredStep;
136
+ $[11] = explorerLink;
137
+ $[12] = isFlowCancellable;
138
+ $[13] = isNonFlowStep;
139
+ $[14] = isOrderCancellable;
140
+ $[15] = t3;
151
141
  } else {
152
- t3 = $[14];
142
+ t3 = $[15];
153
143
  }
154
144
  const resultProps = t3;
155
145
  let t4;
156
- if ($[15] !== resetStepOverride || $[16] !== startDeltaSwap) {
146
+ if ($[16] !== resetStepOverride || $[17] !== startDeltaSwap) {
157
147
  t4 = (options_0) => {
158
148
  resetStepOverride();
159
149
  return startDeltaSwap(options_0);
160
150
  };
161
- $[15] = resetStepOverride;
162
- $[16] = startDeltaSwap;
163
- $[17] = t4;
151
+ $[16] = resetStepOverride;
152
+ $[17] = startDeltaSwap;
153
+ $[18] = t4;
164
154
  } else {
165
- t4 = $[17];
155
+ t4 = $[18];
166
156
  }
167
157
  let t5;
168
- if ($[18] !== cancelDeltaOrder || $[19] !== resetStepOverride) {
158
+ if ($[19] !== cancelDeltaOrder || $[20] !== resetStepOverride) {
169
159
  t5 = () => {
170
160
  resetStepOverride();
171
161
  return cancelDeltaOrder();
172
162
  };
173
- $[18] = cancelDeltaOrder;
174
- $[19] = resetStepOverride;
175
- $[20] = t5;
163
+ $[19] = cancelDeltaOrder;
164
+ $[20] = resetStepOverride;
165
+ $[21] = t5;
176
166
  } else {
177
- t5 = $[20];
167
+ t5 = $[21];
178
168
  }
179
169
  let t6;
180
- if ($[21] !== reset || $[22] !== resetStepOverride) {
170
+ if ($[22] !== reset || $[23] !== resetStepOverride) {
181
171
  t6 = () => {
182
172
  resetStepOverride();
183
173
  return reset();
184
174
  };
185
- $[21] = reset;
186
- $[22] = resetStepOverride;
187
- $[23] = t6;
175
+ $[22] = reset;
176
+ $[23] = resetStepOverride;
177
+ $[24] = t6;
188
178
  } else {
189
- t6 = $[23];
179
+ t6 = $[24];
190
180
  }
191
181
  let t7;
192
- if ($[24] !== cancelFlow || $[25] !== resetStepOverride) {
182
+ if ($[25] !== cancelFlow || $[26] !== resetStepOverride) {
193
183
  t7 = () => {
194
184
  resetStepOverride();
195
185
  return cancelFlow();
196
186
  };
197
- $[24] = cancelFlow;
198
- $[25] = resetStepOverride;
199
- $[26] = t7;
187
+ $[25] = cancelFlow;
188
+ $[26] = resetStepOverride;
189
+ $[27] = t7;
200
190
  } else {
201
- t7 = $[26];
191
+ t7 = $[27];
202
192
  }
203
193
  let t8;
204
- if ($[27] !== resetStepOverride || $[28] !== retryFlow) {
194
+ if ($[28] !== resetStepOverride || $[29] !== retryFlow) {
205
195
  t8 = (options_1) => {
206
196
  resetStepOverride();
207
197
  return retryFlow(options_1);
208
198
  };
209
- $[27] = resetStepOverride;
210
- $[28] = retryFlow;
211
- $[29] = t8;
199
+ $[28] = resetStepOverride;
200
+ $[29] = retryFlow;
201
+ $[30] = t8;
212
202
  } else {
213
- t8 = $[29];
203
+ t8 = $[30];
214
204
  }
215
205
  let t9;
216
- if ($[30] !== deltaFlow.tradeFlowType || $[31] !== goToBeforeSwap || $[32] !== isNonFlowStep || $[33] !== orderCancellationStep || $[34] !== resultProps || $[35] !== step || $[36] !== t4 || $[37] !== t5 || $[38] !== t6 || $[39] !== t7 || $[40] !== t8) {
206
+ if ($[31] !== deltaFlow.tradeFlowType || $[32] !== goToBeforeSwap || $[33] !== isNonFlowStep || $[34] !== resultProps || $[35] !== step || $[36] !== t4 || $[37] !== t5 || $[38] !== t6 || $[39] !== t7 || $[40] !== t8) {
217
207
  t9 = {
218
208
  startDeltaSwap: t4,
219
209
  cancelDeltaOrder: t5,
@@ -222,15 +212,13 @@ function useDeltaSwapStep(options) {
222
212
  retryFlow: t8,
223
213
  goToBeforeSwap,
224
214
  step,
225
- orderCancellationStep,
226
215
  isNonFlowStep,
227
216
  ...resultProps,
228
217
  tradeFlowType: deltaFlow.tradeFlowType
229
218
  };
230
- $[30] = deltaFlow.tradeFlowType;
231
- $[31] = goToBeforeSwap;
232
- $[32] = isNonFlowStep;
233
- $[33] = orderCancellationStep;
219
+ $[31] = deltaFlow.tradeFlowType;
220
+ $[32] = goToBeforeSwap;
221
+ $[33] = isNonFlowStep;
234
222
  $[34] = resultProps;
235
223
  $[35] = step;
236
224
  $[36] = t4;
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n GenericStep,\n NonFlowStep,\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\";\nimport { useState } from \"react\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n cancelDeltaOrder: UseDeltaFlowResult[\"cancelDeltaOrder\"];\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 goToBeforeSwap: () => void;\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: DeltaOrderStep;\n orderCancellationStep?: GenericStep;\n isNonFlowStep: boolean;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n submittedDeltaOrder?: UseDeltaFlowResult[\"submittedDeltaOrder\"];\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 cancelDeltaOrder = deltaFlow.cancelDeltaOrder;\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 isPostingOrder = deltaFlow.deltaOrderSubmission.isPostingOrder;\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) && !isPostingOrder;\n\n const isOrderCancellable = deltaFlow.deltaOrderCancelation.isOrderCancellable;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n const [nonFlowStep, setNonFlowStep] = useState<NonFlowStep | null>(null);\n const goToBeforeSwap = () => {\n setNonFlowStep({ key: \"prepare-swap\" });\n };\n const resetStepOverride = () => {\n setNonFlowStep(null);\n };\n\n step = nonFlowStep || step;\n const isNonFlowStep = !!nonFlowStep;\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 let orderCancellationStep: GenericStep | undefined;\n if (deltaFlow.deltaOrderCancelation.isCancelingOrder) {\n orderCancellationStep = \"pending\";\n } else if (deltaFlow.deltaOrderCancelation.isOrderCanceled) {\n orderCancellationStep = \"success\";\n } else if (deltaFlow.deltaOrderCancelation.isError) {\n orderCancellationStep = \"error\";\n }\n const resultProps: Pick<\n UseDeltaSwapStepResult,\n | \"usedPrice\"\n | \"isFlowCancellable\"\n | \"isOrderCancellable\"\n | \"error\"\n | \"erroredStep\"\n | \"result\"\n | \"submittedDeltaOrder\"\n | \"explorerLink\"\n > = isNonFlowStep\n ? {\n // don't return previous data when in non-flow step\n usedPrice: deltaFlow.freshPrice,\n isFlowCancellable: false,\n isOrderCancellable: false,\n error: null,\n }\n : {\n result: deltaFlow.result,\n usedPrice: deltaFlow.usedPrice,\n submittedDeltaOrder: deltaFlow.submittedDeltaOrder, // submitted or updated Delta Order\n erroredStep,\n error,\n isFlowCancellable,\n isOrderCancellable,\n explorerLink,\n };\n\n return {\n startDeltaSwap: (options) => {\n resetStepOverride();\n return startDeltaSwap(options);\n },\n cancelDeltaOrder: () => {\n resetStepOverride();\n return cancelDeltaOrder();\n },\n reset: () => {\n resetStepOverride();\n return reset();\n },\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 resetStepOverride();\n return cancelFlow();\n },\n retryFlow: (options) => {\n resetStepOverride();\n return retryFlow(options);\n },\n goToBeforeSwap,\n step,\n orderCancellationStep,\n isNonFlowStep,\n ...resultProps,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","cancelDeltaOrder","reset","cancelFlow","retryFlow","step","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","isPostingOrder","isFlowCancellable","isOrderCancellable","deltaOrderCancelation","orderId","order","id","explorerLink","constructExplorerOrderDetailsLink","undefined","nonFlowStep","setNonFlowStep","useState","t0","Symbol","for","goToBeforeSwap","t1","resetStepOverride","isNonFlowStep","once","log","t2","error","isUserCancelledError","erroredStep","isError","orderCancellationStep","isCancelingOrder","isOrderCanceled","t3","freshPrice","result","submittedDeltaOrder","usedPrice","resultProps","t4","options_0","t5","t6","t7","t8","options_1","t9","tradeFlowType"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n CancelOrderStepKey,\n DeltaOrderStep,\n DeltaOrderStepKey,\n NonFlowStep,\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\";\nimport { useState } from \"react\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n cancelDeltaOrder: UseDeltaFlowResult[\"cancelDeltaOrder\"];\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 goToBeforeSwap: () => void;\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: DeltaOrderStep;\n orderCancellationStep?: CancelOrderStepKey;\n isNonFlowStep: boolean;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n submittedDeltaOrder?: UseDeltaFlowResult[\"submittedDeltaOrder\"];\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 cancelDeltaOrder = deltaFlow.cancelDeltaOrder;\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 isPostingOrder = deltaFlow.deltaOrderSubmission.isPostingOrder;\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) && !isPostingOrder;\n\n const isOrderCancellable = deltaFlow.deltaOrderCancelation.isOrderCancellable;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n const [nonFlowStep, setNonFlowStep] = useState<NonFlowStep | null>(null);\n const goToBeforeSwap = () => {\n setNonFlowStep({ key: \"prepare-swap\" });\n };\n const resetStepOverride = () => {\n setNonFlowStep(null);\n };\n\n step = nonFlowStep || step;\n const isNonFlowStep = !!nonFlowStep;\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 const resultProps: Pick<\n UseDeltaSwapStepResult,\n | \"usedPrice\"\n | \"isFlowCancellable\"\n | \"isOrderCancellable\"\n | \"error\"\n | \"erroredStep\"\n | \"result\"\n | \"submittedDeltaOrder\"\n | \"explorerLink\"\n | \"orderCancellationStep\"\n > = isNonFlowStep\n ? {\n // don't return previous data when in non-flow step\n usedPrice: deltaFlow.freshPrice,\n isFlowCancellable: false,\n isOrderCancellable: false,\n error: null,\n }\n : {\n result: deltaFlow.result,\n usedPrice: deltaFlow.usedPrice,\n submittedDeltaOrder: deltaFlow.submittedDeltaOrder, // submitted or updated Delta Order\n erroredStep,\n error,\n isFlowCancellable,\n isOrderCancellable,\n explorerLink,\n orderCancellationStep: deltaFlow.deltaOrderCancelation.step,\n };\n\n return {\n startDeltaSwap: (options) => {\n resetStepOverride();\n return startDeltaSwap(options);\n },\n cancelDeltaOrder: () => {\n resetStepOverride();\n return cancelDeltaOrder();\n },\n reset: () => {\n resetStepOverride();\n return reset();\n },\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 resetStepOverride();\n return cancelFlow();\n },\n retryFlow: (options) => {\n resetStepOverride();\n return retryFlow(options);\n },\n goToBeforeSwap,\n step,\n isNonFlowStep,\n ...resultProps,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","cancelDeltaOrder","reset","cancelFlow","retryFlow","step","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","isPostingOrder","isFlowCancellable","isOrderCancellable","deltaOrderCancelation","orderId","order","id","explorerLink","constructExplorerOrderDetailsLink","undefined","nonFlowStep","setNonFlowStep","useState","t0","Symbol","for","goToBeforeSwap","t1","resetStepOverride","isNonFlowStep","once","log","t2","error","isUserCancelledError","erroredStep","isError","t3","freshPrice","result","submittedDeltaOrder","usedPrice","orderCancellationStep","resultProps","t4","options_0","t5","t6","t7","t8","options_1","t9","tradeFlowType"],"mappings":";;;;;;;AAuCO,SAAAA,iBAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAGL,EAAA,MAAAC,MAAAA,GAAeC,UAAU,eAAe,CAAA;AACxC,EAAA,MAAAC,SAAAA,GAAkBC,aAAaN,OAAO,CAAA;AAEtC,EAAA,MAAAO,iBAAuBF,SAAAA,CAASG,iBAAAA;AAChC,EAAA,MAAAC,mBAAyBJ,SAAAA,CAASI,gBAAAA;AAClC,EAAA,MAAAC,QAAcL,SAAAA,CAASK,KAAAA;AACvB,EAAA,MAAAC,aAAmBN,SAAAA,CAASM,UAAAA;AAC5B,EAAA,MAAAC,YAAkBP,SAAAA,CAASO,SAAAA;AAEvBC,EAAAA,IAAAA,IAAAA;AAEJ,EAAA,MAAAC,wCAGET,SAAAA,CAASU,UAAAA,CAAWC,SAAAA,IAApB,CAAmCX,UAASU,UAAAA,CAAWE,cAAAA;AAEzD,EAAA,MAAAC,mCAGEb,SAAAA,CAASc,QAAAA,CAASH,SAAAA,IAAlB,CAAiCX,UAASc,QAAAA,CAASC,SAAAA;AAErD,EAAA,MAAAC,aAAAA,GACEhB,UAASc,QAAAA,CAASG,aAAAA,IAClBjB,UAASU,UAAAA,CAAWQ,iBAAAA,IACpBlB,UAASU,UAAAA,CAAWS,mBAAAA;AAEtB,EAAA,MAAAC,wCAAAA,GAAiDJ,gBAAAP,qCAAAA,GAAAI,gCAAAA;AAIjD,EAAA,IACEb,SAAAA,CAASc,QAAAA,CAASG,aAAAA,IAAlBG,wCAAAA,EACwC;AAExCZ,IAAAA,IAAAA,GAAOA;AAAAA,MAAAA,GAAAA,EAAOA,WAAAA;AAAAA,MAAWA,OAAAA,EAAWA;AAAAA,KAAqBA;AAAAA,EAArD,CAAA,MAAA;AACC,IAAA,IAAIR,SAAAA,CAASqB,qBAAqBV,SAAAA,EAAU;AACjD,MAAA,MAAAW,2BAAiC,CAAC,EAChCtB,UAASc,QAAAA,CAASS,MAAAA,IAAWvB,UAASU,UAAAA,CAAWc,SAAAA,CAAAA;AAGnDhB,MAAAA,IAAAA,GAAOA;AAAAA,QAAAA,GAAAA,EACAA,WAAAA;AAAAA,QAAWA,OAAAA,EACPc,2BAAA,iBAAA,GAAA;AAAA,OAGX;AAAA,IALI,CAAA,MAAA;AAMC,MAAA,IAAItB,SAAAA,CAASyB,oBAAoBd,SAAAA,EAAU;AAChD,QAAA,MAAAe,WAAAA,GAAoB1B,SAAAA,CAASyB,mBAAAA,CAAoBE,cAAAA,EAAuBC,MAAAA;AACxE,QAAA,MAAAC,aAAAA,GAAsB,CAACH,WAAAA,IAAeA,WAAAA,KAAgB,aAAA;AACtDlB,QAAAA,IAAAA,GAAOA;AAAAA,UAAAA,GAAAA,EACAqB,gBAAA,SAAA,GAAA;AAAA,SACP;AAAA,MAFI,CAAA,MAAA;AAGC,QAAA,IAAI7B,UAASW,SAAAA,EAAU;AAG5BH,UAAAA,IAAAA,GAAOA;AAAAA,YAAAA,GAAAA,EAAOA,WAAAA;AAAAA,YAAWA,OAAAA,EAAWA;AAAAA,WAA6BA;AAAAA,QAA7D;AAAA,MACL;AAAA,IAAA;AAAA,EAAA;AAED,EAAA,MAAAsB,iBAAAA,GACEtB,MAAIuB,GAAAA,KAAU,WAAA,IACdvB,KAAIwB,OAAAA,KAAa,oBAAA,IACjBhC,UAASc,QAAAA,CAASmB,WAAAA;AAEpB,EAAA,MAAAC,kBAAAA,GACE1B,MAAIuB,GAAAA,KAAU,WAAA,KACbvB,KAAIwB,OAAAA,KAAa,iBAAA,IAChBxB,KAAIwB,OAAAA,KAAa,4BAAA,CAAA;AAErB,EAAA,MAAAG,cAAAA,GAAuBnC,UAASqB,oBAAAA,CAAqBc,cAAAA;AAErD,EAAA,MAAAC,iBAAAA,GAAAA,CAGGN,iBAAAA,IAAAI,kBAAAA,KAAD,CAA8CC,cAAAA;AAEhD,EAAA,MAAAE,kBAAAA,GAA2BrC,UAASsC,qBAAAA,CAAsBD,kBAAAA;AAE1D,EAAA,MAAAE,OAAAA,GAAgBvC,SAAAA,CAASqB,oBAAAA,CAAqBmB,KAAAA,EAAUC,EAAAA;AACxD,EAAA,MAAAC,YAAAA,GAAqBH,OAAAA,GACjBI,iCAAAA,CAAkCJ,OAC1B,CAAA,GAFSK,MAAAA;AAIrB,EAAA,MAAA,CAAAC,WAAAA,EAAAC,cAAA,CAAA,GAAsCC,SAA6B,IAAI,CAAA;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAApD,EAAA,CAAA,CAAA,KAAAqD,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAClDF,IAAAA,EAAAA,GAAAA,MAAA;AACrBF,MAAAA,cAAAA,CAAe;AAAA,QAAAf,GAAAA,EAAO;AAAA,OAAgB,CAAA;AAAA,IAAC,CAAA;AACxCnC,IAAAA,CAAAA,MAAAoD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAApD,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAuD,cAAAA,GAAuBH,EAAAA;AAErB,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAxD,EAAA,CAAA,CAAA,KAAAqD,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACwBE,IAAAA,EAAAA,GAAAA,MAAA;AACxBN,MAAAA,cAAAA,CAAe,IAAI,CAAA;AAAA,IAAC,CAAA;AACrBlD,IAAAA,CAAAA,MAAAwD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxD,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAyD,iBAAAA,GAA0BD,EAAAA;AAI1B5C,EAAAA,IAAAA,GAAOA,WAAAA,IAAAA,IAAAA;AACP,EAAA,MAAA8C,aAAAA,GAAsB,CAAC,CAACT,WAAAA;AAExB/C,EAAAA,MAAAA,CAAMyD,IAAAA,CAAKC,GAAAA,CAAK,MAAA,EAAQhD,IAAAA,EAAMR,SAAAA,EAAW;AAAA,IAAAoC,iBAAAA;AAAAA,IAAAM,YAAAA;AAAAA,IAAAH;AAAAA,GAIxC,CAAA;AAAC,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAA7D,CAAAA,CAAA,CAAA,CAAA,KAAAI,SAAAA,CAAA0D,KAAAA,EAAA;AAGYD,IAAAA,EAAAA,GAAAE,oBAAAA,CAAqB3D,SAAAA,CAAS0D,KAA+B,CAAA,GAA7D,OAA+C1D,SAAAA,CAAS0D,KAAAA;AAAM9D,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAA0D,KAAAA;AAAA9D,IAAAA,CAAAA,MAAA6D,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA7D,EAAA,CAAA,CAAA;AAAA,EAAA;AAA5E,EAAA,MAAA8D,KAAAA,GAAcD,EAAAA;AAEVG,EAAAA,IAAAA,WAAAA;AAEJ,EAAA,IAAI5D,UAAS6D,OAAAA,EAAQ;AACnB,IAAA,IAAI7D,SAAAA,CAASc,QAAAA,CAAS+C,OAAAA,IAAY7D,SAAAA,CAASU,WAAWmD,OAAAA,EAAQ;AAC5DD,MAAAA,WAAAA,GAAcA,WAAAA;AAAAA,IAAH,CAAA,MAAA;AACN,MAAA,IAAI5D,SAAAA,CAASqB,qBAAqBwC,OAAAA,EAAQ;AAC/CD,QAAAA,WAAAA,GAAcA,SAAAA;AAAAA,MAAH,CAAA,MAAA;AACN,QAAA,IAAI5D,SAAAA,CAASyB,oBAAoBoC,OAAAA,EAAQ;AAC9CD,UAAAA,WAAAA,GAAcA,iBAAAA;AAAAA,QAAH;AAAA,MACZ;AAAA,IAAA;AAAA,EAAA;AACF,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAlE,CAAAA,CAAA,CAAA,CAAA,KAAAI,SAAAA,CAAAsC,sBAAA9B,IAAAA,IAAAZ,CAAAA,CAAA,CAAA,CAAA,KAAAI,SAAAA,CAAA+D,UAAAA,IAAAnE,EAAA,CAAA,CAAA,KAAAI,UAAAgE,MAAAA,IAAApE,CAAAA,CAAA,CAAA,CAAA,KAAAI,SAAAA,CAAAiE,mBAAAA,IAAArE,CAAAA,QAAAI,UAAAkE,SAAAA,IAAAtE,CAAAA,CAAA,CAAA,CAAA,KAAA8D,KAAAA,IAAA9D,EAAA,EAAA,CAAA,KAAAgE,WAAAA,IAAAhE,CAAAA,SAAA8C,gBAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAwC,iBAAAA,IAAAxC,CAAAA,CAAA,EAAA,MAAA0D,aAAAA,IAAA1D,CAAAA,CAAA,EAAA,CAAA,KAAAyC,kBAAAA,EAAA;AAaGyB,IAAAA,EAAAA,GAAAR,aAAAA,GAAA;AAAA,MAAAY,WAGalE,SAAAA,CAAS+D,UAAAA;AAAAA,MAAW3B,iBAAAA,EACZ,KAAA;AAAA,MAAKC,kBAAAA,EACJ,KAAA;AAAA,MAAKqB,KAAAA,EAClB;AAAA,KAYT,GAlBA;AAAA,MAAAM,QASUhE,SAAAA,CAASgE,MAAAA;AAAAA,MAAOE,WACblE,SAAAA,CAASkE,SAAAA;AAAAA,MAAUD,qBACTjE,SAAAA,CAASiE,mBAAAA;AAAAA,MAAoBL,WAAAA;AAAAA,MAAAF,KAAAA;AAAAA,MAAAtB,iBAAAA;AAAAA,MAAAC,kBAAAA;AAAAA,MAAAK,YAAAA;AAAAA,MAAAyB,qBAAAA,EAM3BnE,UAASsC,qBAAAA,CAAsB9B;AAAAA,KACxD;AAACZ,IAAAA,CAAAA,CAAA,CAAA,CAAA,GAAAI,SAAAA,CAAAsC,qBAAAA,CAAA9B,IAAAA;AAAAZ,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAA+D,UAAAA;AAAAnE,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAAgE,MAAAA;AAAApE,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAAiE,mBAAAA;AAAArE,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAAkE,SAAAA;AAAAtE,IAAAA,CAAAA,MAAA8D,KAAAA;AAAA9D,IAAAA,CAAAA,OAAAgE,WAAAA;AAAAhE,IAAAA,CAAAA,OAAA8C,YAAAA;AAAA9C,IAAAA,CAAAA,OAAAwC,iBAAAA;AAAAxC,IAAAA,CAAAA,OAAA0D,aAAAA;AAAA1D,IAAAA,CAAAA,OAAAyC,kBAAAA;AAAAzC,IAAAA,CAAAA,OAAAkE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlE,EAAA,EAAA,CAAA;AAAA,EAAA;AA7BL,EAAA,MAAAwE,WAAAA,GAWIN,EAAAA;AAkBE,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAzE,EAAA,EAAA,CAAA,KAAAyD,qBAAAzD,CAAAA,SAAAM,cAAAA,EAAA;AAGYmE,IAAAA,EAAAA,GAAAC,CAAAA,SAAAA,KAAA;AACdjB,MAAAA,iBAAAA,EAAkB;AAAC,MAAA,OACZnD,eAAeP,SAAO,CAAA;AAAA,IAAC,CAAA;AAC/BC,IAAAA,CAAAA,OAAAyD,iBAAAA;AAAAzD,IAAAA,CAAAA,OAAAM,cAAAA;AAAAN,IAAAA,CAAAA,OAAAyE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAzE,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA2E,EAAAA;AAAA,EAAA,IAAA3E,EAAA,EAAA,CAAA,KAAAQ,oBAAAR,CAAAA,SAAAyD,iBAAAA,EAAA;AACiBkB,IAAAA,EAAAA,GAAAA,MAAA;AAChBlB,MAAAA,iBAAAA,EAAkB;AAAC,MAAA,OACZjD,gBAAAA,EAAiB;AAAA,IAAC,CAAA;AAC1BR,IAAAA,CAAAA,OAAAQ,gBAAAA;AAAAR,IAAAA,CAAAA,OAAAyD,iBAAAA;AAAAzD,IAAAA,CAAAA,OAAA2E,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA3E,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA4E,EAAAA;AAAA,EAAA,IAAA5E,EAAA,EAAA,CAAA,KAAAS,SAAAT,CAAAA,SAAAyD,iBAAAA,EAAA;AACMmB,IAAAA,EAAAA,GAAAA,MAAA;AACLnB,MAAAA,iBAAAA,EAAkB;AAAC,MAAA,OACZhD,KAAAA,EAAM;AAAA,IAAC,CAAA;AACfT,IAAAA,CAAAA,OAAAS,KAAAA;AAAAT,IAAAA,CAAAA,OAAAyD,iBAAAA;AAAAzD,IAAAA,CAAAA,OAAA4E,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5E,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA6E,EAAAA;AAAA,EAAA,IAAA7E,EAAA,EAAA,CAAA,KAAAU,cAAAV,CAAAA,SAAAyD,iBAAAA,EAAA;AAGWoB,IAAAA,EAAAA,GAAAA,MAAA;AACVpB,MAAAA,iBAAAA,EAAkB;AAAC,MAAA,OACZ/C,UAAAA,EAAW;AAAA,IAAC,CAAA;AACpBV,IAAAA,CAAAA,OAAAU,UAAAA;AAAAV,IAAAA,CAAAA,OAAAyD,iBAAAA;AAAAzD,IAAAA,CAAAA,OAAA6E,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA7E,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA8E,EAAAA;AAAA,EAAA,IAAA9E,EAAA,EAAA,CAAA,KAAAyD,qBAAAzD,CAAAA,SAAAW,SAAAA,EAAA;AACUmE,IAAAA,EAAAA,GAAAC,CAAAA,SAAAA,KAAA;AACTtB,MAAAA,iBAAAA,EAAkB;AAAC,MAAA,OACZ9C,UAAUZ,SAAO,CAAA;AAAA,IAAC,CAAA;AAC1BC,IAAAA,CAAAA,OAAAyD,iBAAAA;AAAAzD,IAAAA,CAAAA,OAAAW,SAAAA;AAAAX,IAAAA,CAAAA,OAAA8E,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA9E,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAgF,EAAAA;AAAA,EAAA,IAAAhF,EAAA,EAAA,CAAA,KAAAI,UAAA6E,aAAAA,IAAAjF,CAAAA,CAAA,EAAA,CAAA,KAAAuD,cAAAA,IAAAvD,CAAAA,SAAA0D,aAAAA,IAAA1D,CAAAA,CAAA,EAAA,CAAA,KAAAwE,WAAAA,IAAAxE,EAAA,EAAA,CAAA,KAAAY,IAAAA,IAAAZ,CAAAA,CAAA,EAAA,CAAA,KAAAyE,EAAAA,IAAAzE,EAAA,EAAA,CAAA,KAAA2E,MAAA3E,CAAAA,CAAA,EAAA,CAAA,KAAA4E,EAAAA,IAAA5E,EAAA,EAAA,CAAA,KAAA6E,MAAA7E,CAAAA,SAAA8E,EAAAA,EAAA;AAtBIE,IAAAA,EAAAA,GAAA;AAAA,MAAA1E,cAAAA,EACWmE,EAAAA;AAAAA,MAGfjE,gBAAAA,EACiBmE,EAAAA;AAAAA,MAGjBlE,KAAAA,EACMmE,EAAAA;AAAAA,MAGNlE,UAAAA,EAGWmE,EAAAA;AAAAA,MAGXlE,SAAAA,EACUmE,EAAAA;AAAAA,MAGVvB,cAAAA;AAAAA,MAAA3C,IAAAA;AAAAA,MAAA8C,aAAAA;AAAAA,MAAA,GAIEc,WAAAA;AAAAA,MAAWS,eACC7E,SAAAA,CAAS6E;AAAAA,KAC1B;AAACjF,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAA6E,aAAAA;AAAAjF,IAAAA,CAAAA,OAAAuD,cAAAA;AAAAvD,IAAAA,CAAAA,OAAA0D,aAAAA;AAAA1D,IAAAA,CAAAA,OAAAwE,WAAAA;AAAAxE,IAAAA,CAAAA,OAAAY,IAAAA;AAAAZ,IAAAA,CAAAA,OAAAyE,EAAAA;AAAAzE,IAAAA,CAAAA,OAAA2E,EAAAA;AAAA3E,IAAAA,CAAAA,OAAA4E,EAAAA;AAAA5E,IAAAA,CAAAA,OAAA6E,EAAAA;AAAA7E,IAAAA,CAAAA,OAAA8E,EAAAA;AAAA9E,IAAAA,CAAAA,OAAAgF,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhF,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OA5BMgF,EAAAA;AA4BN;;;;"}
@@ -6,6 +6,7 @@ import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHan
6
6
  import { MaybeVeloraDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder';
7
7
  import { BridgePrice } from '@velora-dex/sdk';
8
8
  import { CancelDeltaOrdersReturn } from '../prices/delta/mutations/useCancelDeltaOrders';
9
+ import { CancelOrderStepKey } from '../../../components/widget/TradeOverview/steps';
9
10
  declare const limitOrderFlowType = "limitOrder";
10
11
  export type UserDefinedLimitPrice = {
11
12
  srcTokenAddress: string;
@@ -22,6 +23,7 @@ export type SubmitLimitOrderResult = {
22
23
  approve: SubmitTxResult;
23
24
  limitOrder: {
24
25
  sentOrder: SubmittedDeltaOrderFromAPI;
26
+ lastOrderState?: MaybeVeloraDeltaAuction;
25
27
  };
26
28
  limitPrice: UserDefinedLimitPrice;
27
29
  account: Address;
@@ -38,7 +40,7 @@ export type UseLimitOrderFlowResult = {
38
40
  reset: () => void;
39
41
  cancelFlow: () => void;
40
42
  retryFlow: (options?: RunLimitOrderOptions) => Promise<SubmitLimitOrderResult>;
41
- cancelLimitOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;
43
+ cancelLimitOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn | undefined>;
42
44
  approval: ApprovalFlowResult;
43
45
  limitOrderSubmission: {
44
46
  order?: SubmittedDeltaOrderFromAPI;
@@ -63,6 +65,8 @@ export type UseLimitOrderFlowResult = {
63
65
  };
64
66
  limitOrderCancelation: {
65
67
  receipt?: TransactionReceipt;
68
+ txHash?: string;
69
+ response?: CancelDeltaOrdersReturn;
66
70
  isCancelingOrder: boolean;
67
71
  isOrderCancellable: boolean;
68
72
  isOrderCanceled: boolean;
@@ -70,6 +74,7 @@ export type UseLimitOrderFlowResult = {
70
74
  isError: boolean;
71
75
  isSuccess: boolean;
72
76
  error: Error | null;
77
+ step?: CancelOrderStepKey;
73
78
  };
74
79
  isPending: boolean;
75
80
  isSuccess: boolean;
@@ -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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"}