@velora-dex/widget 0.4.3 → 0.4.4-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
  2. package/dist/components/widget/AppHeader/Activities/Drawers.js +18 -23
  3. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  4. package/dist/components/widget/Button/CancelButton/CancelButton.d.ts +7 -0
  5. package/dist/components/widget/Button/CancelButton/CancelButton.d.ts.map +1 -0
  6. package/dist/components/widget/Button/CancelButton/CancelButton.js +102 -0
  7. package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -0
  8. package/dist/components/widget/Button/CancelButton/constants.d.ts +2 -0
  9. package/dist/components/widget/Button/CancelButton/constants.d.ts.map +1 -0
  10. package/dist/components/widget/Button/CancelButton/constants.js +4 -0
  11. package/dist/components/widget/Button/CancelButton/constants.js.map +1 -0
  12. package/dist/components/widget/Button/DismissButton.d.ts +4 -0
  13. package/dist/components/widget/Button/DismissButton.d.ts.map +1 -0
  14. package/dist/components/widget/Button/DismissButton.js +29 -0
  15. package/dist/components/widget/Button/DismissButton.js.map +1 -0
  16. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +2 -2
  17. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  18. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +2 -2
  19. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  20. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts +6 -4
  21. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
  22. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +133 -147
  23. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
  24. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts +2 -2
  25. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
  26. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +138 -55
  27. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  28. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts +2 -2
  29. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -1
  30. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js +2 -2
  31. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
  32. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js +1 -1
  33. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  34. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts +1 -1
  35. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts.map +1 -1
  36. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js +87 -137
  37. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
  38. package/dist/components/widget/PayReceiveInfo/types.d.ts +3 -5
  39. package/dist/components/widget/PayReceiveInfo/types.d.ts.map +1 -1
  40. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -1
  41. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js +2 -2
  42. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
  43. package/dist/components/widget/SwapRate/SwapRate.d.ts +2 -2
  44. package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
  45. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  46. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
  47. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  48. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +87 -108
  49. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  50. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts +2 -2
  51. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
  52. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js +12 -14
  53. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
  54. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +3 -3
  55. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
  56. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +101 -74
  57. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
  58. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
  59. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
  60. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +63 -72
  61. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  62. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +2 -2
  63. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
  64. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +13 -16
  65. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
  66. package/dist/components/widget/TradeOverview/Step/utils.d.ts +1 -2
  67. package/dist/components/widget/TradeOverview/Step/utils.d.ts.map +1 -1
  68. package/dist/components/widget/TradeOverview/Step/utils.js +2 -4
  69. package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
  70. package/dist/components/widget/TradeOverview/Stepper.d.ts +1 -1
  71. package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
  72. package/dist/components/widget/TradeOverview/Stepper.js +62 -59
  73. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  74. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
  75. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +3 -5
  76. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  77. package/dist/components/widget/TradeOverview/TradeDetails.d.ts.map +1 -1
  78. package/dist/components/widget/TradeOverview/TradeDetails.js +13 -181
  79. package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
  80. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
  81. package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts +2 -2
  82. package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts.map +1 -1
  83. package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js +4 -4
  84. package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
  85. package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
  86. package/dist/components/widget/TradeOverview/TradeOverview.d.ts +2 -18
  87. package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
  88. package/dist/components/widget/TradeOverview/TradeOverview.js +111 -145
  89. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  90. package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts +0 -2
  91. package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
  92. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +58 -65
  93. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  94. package/dist/components/widget/TradeOverview/steps.d.ts +0 -32
  95. package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
  96. package/dist/components/widget/TradeOverview/steps.js +2 -12
  97. package/dist/components/widget/TradeOverview/steps.js.map +1 -1
  98. package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
  99. package/dist/components/widget/TradeOverview/tradeFlowContext.js +1 -13
  100. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  101. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +1 -4
  102. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
  103. package/dist/components/widget/TradeOverview/utils/preWrap.js +1 -2
  104. package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
  105. package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.d.ts.map +1 -1
  106. package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js.map +1 -1
  107. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +0 -2
  108. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  109. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +3 -236
  110. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  111. package/dist/configurator/Configurator.d.ts.map +1 -1
  112. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  113. package/dist/core/LimitOrderButton.js +18 -40
  114. package/dist/core/LimitOrderButton.js.map +1 -1
  115. package/dist/core/index.d.ts.map +1 -1
  116. package/dist/core/index.js +24 -46
  117. package/dist/core/index.js.map +1 -1
  118. package/dist/core/inputs/hooks/useMaxButtonProps.js +2 -2
  119. package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
  120. package/dist/core/inputs/hooks/useTokenFromInputProps.js +2 -2
  121. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  122. package/dist/core/limit/useLimitTokenFromInputProps.js +2 -2
  123. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  124. package/dist/events/types/cancel.d.ts +7 -1
  125. package/dist/events/types/cancel.d.ts.map +1 -1
  126. package/dist/events/types/index.d.ts.map +1 -1
  127. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  128. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +8 -9
  129. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  130. package/dist/hooks/swap/prices/delta/mutations/types.d.ts +7 -0
  131. package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -0
  132. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +1 -7
  133. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
  134. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +13 -85
  135. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
  136. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +11 -0
  137. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -0
  138. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +87 -0
  139. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -0
  140. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +32 -0
  141. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
  142. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +248 -0
  143. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -0
  144. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +3 -8
  145. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
  146. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +8 -11
  147. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
  148. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts +14 -0
  149. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts.map +1 -0
  150. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +85 -0
  151. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -0
  152. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.d.ts +17 -0
  153. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.d.ts.map +1 -0
  154. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +80 -0
  155. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -0
  156. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +44 -0
  157. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -0
  158. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +262 -0
  159. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -0
  160. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +13 -0
  161. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -0
  162. package/dist/hooks/swap/prices/delta/mutations/utils.js +23 -0
  163. package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -0
  164. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
  165. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +1 -2
  166. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
  167. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +27 -1
  168. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  169. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts +109 -0
  170. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts.map +1 -0
  171. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js +170 -0
  172. package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js.map +1 -0
  173. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +3 -2
  174. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  175. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +8 -2
  176. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  177. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +27 -1
  178. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  179. package/dist/hooks/swap/prices/usePricesParams.d.ts +0 -9
  180. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  181. package/dist/hooks/swap/prices/usePricesParams.js +1 -32
  182. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  183. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  184. package/dist/hooks/swap/prices/useSwapPrices.js +142 -149
  185. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  186. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  187. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +35 -35
  188. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  189. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +69 -0
  190. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -0
  191. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +179 -0
  192. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -0
  193. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +3 -5
  194. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
  195. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +1 -20
  196. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
  197. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +8 -5
  198. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  199. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +68 -127
  200. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  201. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +3 -4
  202. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  203. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +98 -186
  204. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  205. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -4
  206. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  207. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +56 -72
  208. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  209. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
  210. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -33
  211. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  212. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +1 -2
  213. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  214. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +11 -37
  215. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  216. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +0 -2
  217. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  218. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +79 -161
  219. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  220. package/dist/hooks/tokens/allowance/utils.d.ts +2 -10
  221. package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -1
  222. package/dist/hooks/tokens/allowance/utils.js +8 -19
  223. package/dist/hooks/tokens/allowance/utils.js.map +1 -1
  224. package/dist/hooks/useSDK.d.ts +3 -3
  225. package/dist/hooks/useSDK.d.ts.map +1 -1
  226. package/dist/hooks/useSDK.js +3 -3
  227. package/dist/hooks/useSDK.js.map +1 -1
  228. package/dist/lib/constants/index.d.ts +1 -0
  229. package/dist/lib/constants/index.d.ts.map +1 -1
  230. package/dist/lib/constants/index.js +2 -1
  231. package/dist/lib/constants/index.js.map +1 -1
  232. package/dist/lib/constants/urls.d.ts.map +1 -1
  233. package/dist/lib/constants/urls.js.map +1 -1
  234. package/dist/lib/utils/fee.js +1 -1
  235. package/dist/lib/utils/fee.js.map +1 -1
  236. package/dist/lib/utils/slippage.d.ts.map +1 -1
  237. package/dist/lib/utils/slippage.js +1 -1
  238. package/dist/lib/utils/slippage.js.map +1 -1
  239. package/dist/lib/utils/toDecimal.d.ts.map +1 -1
  240. package/dist/lib/utils/toDecimal.js +3 -5
  241. package/dist/lib/utils/toDecimal.js.map +1 -1
  242. package/dist/styles.css +3 -0
  243. package/dist/transactions/types.d.ts +9 -1
  244. package/dist/transactions/types.d.ts.map +1 -1
  245. package/package.json +2 -2
  246. package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts +0 -4
  247. package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts.map +0 -1
  248. package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js +0 -6
  249. package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"usePreSignAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport {\n useCreatePreSignableDeltaOrder,\n type DeltaOrderToPost,\n} from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\nimport {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { isAddress, type Address } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { DeltaOrderApiResponse, MinViemClient } from \"@velora-dex/sdk\";\nimport { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n SignPermitFlowResult,\n} from \"./types\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { depositWETHCalldata } from \"./utils\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\n\nexport type DeltaOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: DeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\n postingOrder: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UsePreSignAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitDeltaOrderResult = {\n deltaOrderPreSign: DeltaOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitDeltaOrderInput): UsePreSignAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const preSignPreparations: DeltaOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderPreSignResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderPreSign: DeltaOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n deltaOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc = async ({\n createDeltaOrderInput,\n preWrapETH,\n approval,\n onTxSent,\n }) => {\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 const { signal, orderInput } = createDeltaOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n if (preWrapETH) {\n // add WETH.deposit call,\n // we'll have Approve + Deposit WETH + setPreSignature batch tx;\n // the order doesn't really matter\n\n // avoid using approval.allowanceToSet as it may represent Unlimited Approval\n const wrapAmount = BigInt(orderInput.srcAmount);\n txsParams.unshift({\n to: wrappedNativeCurrency[chainId],\n account,\n data: depositWETHCalldata,\n value: wrapAmount,\n chainId,\n });\n }\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let orderIsPosted = false;\n\n const sendUnsentOrderOnPageHide = () => {\n if (orderIsPosted) return;\n orderIsPosted = true;\n fetchOnlySDK?.postDeltaOrder(orderToPost);\n };\n\n // check if the page was closed after sendCalls succeeded but before the Order was posted.\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n // `pagehide` event is more reliable on desktop and does not fire on tab switching in browser,\n // but on mobile minimizing the browser doesn't fire `pagehide` event but does `visibilitychange`.\n // with `visibilitychange` though we can't reliably resume the flow because navigator.sendBeacon doesn't return response\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n // prepared to POST Order in case of page close before sending the Approve+setPreSignature batch tx request,\n // because inside Safe it's very easy to switch page and go to Transactions page by clicking in a popup,\n // so the Widget state will be lost but the Safe would already receive a tx to sign\n // and it's not obvious that the Delta flow was aborted\n const unsubscribeFromPageHide = () => {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n };\n\n try {\n // 5. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ awaiting setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n // 6. wait for that batch tx to be mined;\n const res = await sendCallsReceiptPromise;\n logger.log(\"~ deltaOrder ~ setPreSignature calls result :\", res);\n\n // 7. POST the Order to API with signature=0x\n const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);\n orderIsPosted = true;\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"Pre-sign and submit Delta Order error\", error);\n throw error;\n } finally {\n unsubscribeFromPageHide();\n }\n };\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype PreSignAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n preWrapETH?: boolean;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitDeltaOrderFunc = (\n input: PreSignAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n preWrapETH?: boolean;\n signPermit: Pick<\n SignPermitFlowResult,\n \"isPermitSupported\" | \"isPermitReadyToSign\"\n >;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTxOrPermit: boolean;\n tryPermit: boolean;\n shouldPreSignBatch: boolean;\n};\n\nexport function shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n // can sign a Permit\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token or sign Permit for it\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n let numberOfActions = 1; // Delta Order creation\n let numberOfTxs = 0;\n if (preWrapETH) {\n // needs to call WETH.deposit\n numberOfActions++;\n numberOfTxs++;\n }\n if (tokenNeedsApproval) {\n // needs to approve a token\n numberOfActions++;\n if (!tryPermit) {\n // can't sign a Permit\n numberOfTxs++;\n }\n }\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 let shouldPreSignBatch = false;\n // wallet can batch txs\n if (canBatchTxs) {\n // wallet is Safe and there will be multiple actions Safe needs to perform\n if (isConnectedToSafe && numberOfActions > 1) {\n // do it in one batch tx\n shouldPreSignBatch = true;\n } else if (numberOfTxs > 0 && numberOfActions > 1) {\n // if at least one tx to perform, batch it with actions\n shouldPreSignBatch = true;\n }\n // else if only one action (Delta signing), then can signTypedData only\n }\n\n // will do an Approval of Token (tx or Permit)\n const shouldDoApprovalTxOrPermit = tokenNeedsApproval && !shouldPreSignBatch;\n\n return {\n shouldDoApprovalTxOrPermit,\n tryPermit,\n shouldPreSignBatch,\n };\n}\n"],"names":["usePreSignAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","forCurrentChain","canBatchTxs","useCanBatchTxs","isConnectedToSafe","useConnectedSafe","createPreSignableOrderMut","useCreatePreSignableDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","preSignPreparations","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","onSuccess","log","onError","batchTxMined","useAwaitCalls","id","lastCallsReceipt","receipts","length","deltaPreSignBatch","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderPreSign","canPreSignBatch","preSignPrep","preSignBatch","postingOrder","ensureCallsStatus","useEnsureCallsStatus","ensureContractsLoaded","useEnsureContractsQuery","preSignAndSubmitDeltaOrder","createDeltaOrderInput","preWrapETH","approval","onTxSent","signal","orderInput","preSignCalldata","mutateAsync","throwIfAborted","ParaswapDelta","DeltaContract","assert","isAddress","txsParams","to","value","needToApprove","allowanceToSet","spender","wrapAmount","BigInt","srcAmount","unshift","wrappedNativeCurrency","depositWETHCalldata","approveProps","token","undefined","calls","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","unsubscribeFromPageHide","removeEventListener","sendCallsResult","sendCalls","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","res","orderFromAPI","reset","shouldApproveOrBatch","signPermit","tryPermit","isPermitSupported","isPermitReadyToSign","tokenNeedsApproval","needsApproval","numberOfActions","numberOfTxs","shouldPreSignBatch","shouldDoApprovalTxOrPermit"],"mappings":"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"}
1
+ {"version":3,"file":"usePreSignAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport type { PreSignDeltaOrderToPost } from \"../../prices/delta/mutations/types\";\nimport { useCreatePreSignableDeltaOrder } from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\nimport {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { isAddress, type Address } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { DeltaOrderApiResponse, MinViemClient } from \"@velora-dex/sdk\";\nimport { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n SignPermitFlowResult,\n} from \"./types\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\n\nexport type DeltaOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: PreSignDeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\n postingOrder: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UsePreSignAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitDeltaOrderResult = {\n deltaOrderPreSign: DeltaOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitDeltaOrderInput): UsePreSignAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const preSignPreparations: DeltaOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderPreSignResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderPreSign: DeltaOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n deltaOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc = async ({\n createDeltaOrderInput,\n approval,\n onTxSent,\n }) => {\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 const { signal } = createDeltaOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let orderIsPosted = false;\n\n const sendUnsentOrderOnPageHide = () => {\n if (orderIsPosted) return;\n orderIsPosted = true;\n fetchOnlySDK?.postDeltaOrder(orderToPost);\n };\n\n // check if the page was closed after sendCalls succeeded but before the Order was posted.\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n // `pagehide` event is more reliable on desktop and does not fire on tab switching in browser,\n // but on mobile minimizing the browser doesn't fire `pagehide` event but does `visibilitychange`.\n // with `visibilitychange` though we can't reliably resume the flow because navigator.sendBeacon doesn't return response\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n // prepared to POST Order in case of page close before sending the Approve+setPreSignature batch tx request,\n // because inside Safe it's very easy to switch page and go to Transactions page by clicking in a popup,\n // so the Widget state will be lost but the Safe would already receive a tx to sign\n // and it's not obvious that the Delta flow was aborted\n const unsubscribeFromPageHide = () => {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n };\n\n try {\n // 5. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ awaiting setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n // 6. wait for that batch tx to be mined;\n const res = await sendCallsReceiptPromise;\n logger.log(\"~ deltaOrder ~ setPreSignature calls result :\", res);\n\n // 7. POST the Order to API with signature=0x\n const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);\n orderIsPosted = true;\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"Pre-sign and submit Delta Order error\", error);\n throw error;\n } finally {\n unsubscribeFromPageHide();\n }\n };\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype PreSignAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitDeltaOrderFunc = (\n input: PreSignAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n signPermit: Pick<\n SignPermitFlowResult,\n \"isPermitSupported\" | \"isPermitReadyToSign\"\n >;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTxOrPermit: boolean;\n tryPermit: boolean;\n shouldPreSignBatch: boolean;\n};\n\nexport function shouldApproveOrBatch({\n approval,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n // can sign a Permit\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token or sign Permit for it\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n let numberOfActions = 1; // Delta Order creation\n let numberOfTxs = 0;\n\n if (tokenNeedsApproval) {\n // needs to approve a token\n numberOfActions++;\n if (!tryPermit) {\n // can't sign a Permit\n numberOfTxs++;\n }\n }\n\n /*\n if connected to Safe, or needs to approve a token with a tx\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially 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 let shouldPreSignBatch = false;\n // wallet can batch txs\n if (canBatchTxs) {\n // wallet is Safe and there will be multiple actions Safe needs to perform\n if (isConnectedToSafe && numberOfActions > 1) {\n // do it in one batch tx\n shouldPreSignBatch = true;\n } else if (numberOfTxs > 0 && numberOfActions > 1) {\n // if at least one tx to perform, batch it with actions\n shouldPreSignBatch = true;\n }\n // else if only one action (Delta signing), then can signTypedData only\n }\n\n // will do an Approval of Token (tx or Permit)\n const shouldDoApprovalTxOrPermit = tokenNeedsApproval && !shouldPreSignBatch;\n\n return {\n shouldDoApprovalTxOrPermit,\n tryPermit,\n shouldPreSignBatch,\n };\n}\n"],"names":["usePreSignAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","forCurrentChain","canBatchTxs","useCanBatchTxs","isConnectedToSafe","useConnectedSafe","createPreSignableOrderMut","useCreatePreSignableDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","preSignPreparations","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","onSuccess","log","onError","batchTxMined","useAwaitCalls","id","lastCallsReceipt","receipts","length","deltaPreSignBatch","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderPreSign","canPreSignBatch","preSignPrep","preSignBatch","postingOrder","ensureCallsStatus","useEnsureCallsStatus","ensureContractsLoaded","useEnsureContractsQuery","preSignAndSubmitDeltaOrder","createDeltaOrderInput","approval","onTxSent","signal","preSignCalldata","mutateAsync","throwIfAborted","ParaswapDelta","DeltaContract","assert","isAddress","txsParams","to","value","needToApprove","allowanceToSet","spender","approveProps","token","undefined","calls","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","unsubscribeFromPageHide","removeEventListener","sendCallsResult","sendCalls","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","res","orderFromAPI","reset","shouldApproveOrBatch","signPermit","tryPermit","isPermitSupported","isPermitReadyToSign","tokenNeedsApproval","needsApproval","numberOfActions","numberOfTxs","shouldPreSignBatch","shouldDoApprovalTxOrPermit"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BridgePrice, DeltaAuction, DeltaPrice } from '@velora-dex/sdk';
2
- import { Address } from 'viem';
2
+ import { Address, TransactionReceipt } from 'viem';
3
3
  import { SubmittedDeltaOrderFromAPI } from '../prices/delta/queries/useDeltaOrders';
4
4
  import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
5
5
  import { MaybeVeloraDeltaAuction } from '../prices/delta/queries/useWatchDeltaOrder';
@@ -7,10 +7,11 @@ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
7
7
  import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
8
8
  import { OrderSentObject } from '../../../lib/utils/toasts';
9
9
  import { DeltaOrderPreSignResult } from './common/usePreSignAndSubmitDeltaOrder';
10
+ import { DeltaOrderDepositResult } from './common/useDepositAndSubmitDeltaOrder';
11
+ import { CancelDeltaOrdersReturn } from '../prices/delta/mutations/useCancelDeltaOrders';
10
12
  declare const deltaOrderFlowType = "deltaOrder";
11
13
  export type UseDeltaFlowInput = {
12
14
  deltaPrice?: DeltaPrice | BridgePrice;
13
- preWrapETH?: boolean;
14
15
  };
15
16
  export type SubmitDeltaOrderResult = {
16
17
  tradeFlowType: typeof deltaOrderFlowType;
@@ -50,7 +51,9 @@ type DeltaOrderExecutionResult = {
50
51
  error: Error | null;
51
52
  };
52
53
  type DeltaOrderCancelationResult = {
54
+ receipt?: TransactionReceipt;
53
55
  isCancelingOrder: boolean;
56
+ isOrderCancellable: boolean;
54
57
  isOrderCanceled: boolean;
55
58
  isPending: boolean;
56
59
  isError: boolean;
@@ -64,10 +67,11 @@ export type UseDeltaFlowResult = {
64
67
  reset: () => void;
65
68
  cancelFlow: () => void;
66
69
  retryFlow: (options?: RunDeltaOrderOptions) => Promise<SubmitDeltaOrderResult>;
67
- cancelDeltaOrder: () => void;
70
+ cancelDeltaOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;
68
71
  approval: ApprovalFlowResult;
69
72
  signPermit: SignPermitFlowResult;
70
73
  deltaOrderPreSign: DeltaOrderPreSignResult;
74
+ deltaOrderDeposit: DeltaOrderDepositResult;
71
75
  deltaOrderSubmission: DeltaOrderSubmissionResult;
72
76
  deltaOrderExecution: DeltaOrderExecutionResult;
73
77
  deltaOrderCancelation: DeltaOrderCancelationResult;
@@ -77,9 +81,8 @@ export type UseDeltaFlowResult = {
77
81
  error: Error | null;
78
82
  result?: SubmitDeltaOrderResult;
79
83
  usedPrice?: DeltaPrice | BridgePrice;
80
- freshPrice?: DeltaPrice | BridgePrice;
81
84
  submittedDeltaOrder?: Omit<DeltaAuction, "signature" | "transactions">;
82
85
  };
83
- export declare function useDeltaFlow({ deltaPrice: _deltaPrice, preWrapETH, }: UseDeltaFlowInput): UseDeltaFlowResult;
86
+ export declare function useDeltaFlow({ deltaPrice, }: UseDeltaFlowInput): UseDeltaFlowResult;
84
87
  export {};
85
88
  //# sourceMappingURL=useDeltaFlow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { useAccount } from 'wagmi';
1
+ import { useChainId, useAccount } from 'wagmi';
2
2
  import { assert } from 'ts-essentials';
3
3
  import { useEnsureTxReceipt } from '../../txs/queries/useAwaitTx.js';
4
4
  import { deltaOrdersQueryKey } from '../prices/delta/queries/useDeltaOrders.js';
5
5
  import { useCreateDeltaOrder } from '../prices/delta/mutations/useCreateDeltaOrder.js';
6
6
  import { useMinViemClient } from '../../useMinViemClient.js';
7
- import { useWatchDeltaAuction, deltaAuctionPollingQueryKey, useEnsureDeltaOrderExecuted } from '../prices/delta/queries/useWatchDeltaOrder.js';
7
+ import { useWatchDeltaAuction, useEnsureDeltaOrderExecuted } from '../prices/delta/queries/useWatchDeltaOrder.js';
8
8
  import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
9
9
  import { applySlippage } from '../../../lib/utils/price.js';
10
10
  import { useSlippage } from '../../useSlippage.js';
@@ -17,7 +17,7 @@ import { useMarkPermit1Or2NonceAsUsed } from './common/useSignPermit1Or2.js';
17
17
  import { produceDeltaOrderDeadline } from '../../permit/utils/deadlines.js';
18
18
  import { encodePermit2TransferFromSigDataForDelta } from '../../permit/utils/encodeArgs.js';
19
19
  import { useLogger } from '../../../core/logger.js';
20
- import { useDeltaPriceQuery, useSubscribeToDeltaPrice, isBridgePrice } from '../prices/delta/queries/useDeltaPriceQuery.js';
20
+ import { useDeltaPriceQueryForPrice, useSubscribeToDeltaPrice, isBridgePrice } from '../prices/delta/queries/useDeltaPriceQuery.js';
21
21
  import { usePartner } from '../../usePartner.js';
22
22
  import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
23
23
  import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
@@ -27,49 +27,20 @@ import { extractSelectedBridgePrice } from '../prices/delta/bridge/utils.js';
27
27
  import { useAtomValue } from '../../../core/store.js';
28
28
  import { bridgePreferenceAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js';
29
29
  import { protocolNameAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js';
30
- import { useCancelDeltaOrderEventCallbacks, useCancelDeltaOrders } from '../prices/delta/mutations/useCancelDeltaOrders.js';
31
- import { useChainMatches } from '../../useChainMatches.js';
32
- import { useSwitchChainWithGuard } from '../../useSwitchChainWithGuard.js';
33
- import { usePricesParams, useExtraDeltaPriceParams } from '../prices/usePricesParams.js';
34
- import { useSelectedBridgePrice } from '../prices/delta/bridge/useSelectedBridgePrice.js';
30
+ import { useDepositAndSubmitDeltaOrder } from './common/useDepositAndSubmitDeltaOrder.js';
31
+ import { isETHaddress } from '../../../tokens/utils/eth.js';
32
+ import { useCancelOrWithdrawAndCancelDeltaOrder } from '../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js';
35
33
 
36
34
  const deltaOrderFlowType = "deltaOrder";
37
35
  const DELTA_ORDER_MUTATION_KEY = "runDeltaOrderFlow";
38
36
  function useDeltaFlow({
39
- deltaPrice: _deltaPrice,
40
- preWrapETH
37
+ deltaPrice
41
38
  }) {
42
39
  const logger = useLogger("DeltaFlow");
40
+ const chainId = useChainId();
43
41
  const {
44
42
  resolvedSlippage
45
43
  } = useSlippage("swap");
46
- const {
47
- priceParams,
48
- chainId,
49
- destChainId
50
- } = usePricesParams("swap");
51
- const extraDeltaPriceParams = useExtraDeltaPriceParams({
52
- srcToken: priceParams.srcToken,
53
- chainId
54
- });
55
- const {
56
- result: deltaPriceQuery,
57
- queryKey: deltaPriceQueryKey
58
- } = useDeltaPriceQuery({
59
- priceParams: {
60
- ...priceParams,
61
- ...extraDeltaPriceParams
62
- },
63
- chainId,
64
- destChainId,
65
- query: {
66
- enabled: false
67
- }
68
- });
69
- const selectedBridgePrice = useSelectedBridgePrice({
70
- price: deltaPriceQuery.data
71
- });
72
- const deltaPrice = selectedBridgePrice || deltaPriceQuery.data || _deltaPrice;
73
44
  const swapSideFromInput = useSwapSide();
74
45
  const {
75
46
  approval,
@@ -129,14 +100,24 @@ function useDeltaFlow({
129
100
  logger,
130
101
  viemClient: minClient
131
102
  });
103
+ const {
104
+ deltaOrderDeposit,
105
+ reset: resetDepositAndSubmitDeltaOrder,
106
+ depositAndSubmitDeltaOrder
107
+ } = useDepositAndSubmitDeltaOrder({
108
+ chainId,
109
+ account,
110
+ logger,
111
+ viemClient: minClient
112
+ });
132
113
  const deltaOrderSubmission = {
133
- order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,
134
- isCreatingOrder: deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,
135
- isOrderSent: deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,
136
- isPending: deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,
137
- isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,
138
- isSuccess: deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,
139
- error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error
114
+ order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order || deltaOrderDeposit.order,
115
+ isCreatingOrder: deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder || deltaOrderDeposit.isCreatingOrder,
116
+ isOrderSent: deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent || deltaOrderDeposit.isOrderSent,
117
+ isPending: deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending || deltaOrderDeposit.isPending,
118
+ isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError || deltaOrderDeposit.isError,
119
+ isSuccess: deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess || deltaOrderDeposit.isSuccess,
120
+ error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error || deltaOrderDeposit.error
140
121
  };
141
122
  const watchOrderExecution = useWatchDeltaAuction({
142
123
  orderId: deltaOrderSubmission.order?.id,
@@ -166,48 +147,19 @@ function useDeltaFlow({
166
147
  isSuccess: orderStatus === "confirmed",
167
148
  error: watchOrderExecution.error
168
149
  };
169
- const cancelOrderEvents = useCancelDeltaOrderEventCallbacks(createOrderMut.data);
170
- const orderChainId = deltaOrderSubmission.order?.chainId;
171
- const {
172
- forcedChainMatchesWalletChain
173
- } = useChainMatches(orderChainId);
174
- const {
175
- mutateAsync: switchChain
176
- } = useSwitchChainWithGuard();
177
- const cancelOrderMut = useCancelDeltaOrders({
150
+ const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({
151
+ // supply the must up-to-date order for cancellation
152
+ order: deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder,
178
153
  chainId,
179
154
  account,
180
155
  client: minClient,
181
- mutationOptions: {
182
- onMutate: async (variables) => {
183
- assert(orderChainId, "orderChainId is undefined");
184
- if (!forcedChainMatchesWalletChain) {
185
- await switchChain({
186
- chainId: orderChainId
187
- });
188
- }
189
- cancelOrderEvents.onMutate?.(variables);
190
- },
191
- onSuccess: (successResponse, vars) => {
192
- logger.log("Cancel Delta Order success", successResponse);
193
- if (deltaOrderExecution.sentOrder?.id) {
194
- queryClient.invalidateQueries({
195
- queryKey: deltaAuctionPollingQueryKey({
196
- orderId: deltaOrderExecution.sentOrder.id
197
- })
198
- });
199
- }
200
- cancelOrderEvents.onSuccess?.(successResponse, vars);
201
- },
202
- onError: (error_0, vars_0) => {
203
- logger.error("Cancel Delta Order error", error_0);
204
- cancelOrderEvents.onError?.(error_0, vars_0);
205
- }
206
- }
156
+ logger
207
157
  });
208
158
  const deltaOrderCancelation = {
159
+ receipt: cancelOrderMut.receipt,
209
160
  isCancelingOrder: cancelOrderMut.isPending,
210
- isOrderCanceled: cancelOrderMut.isSuccess && !!cancelOrderMut.data?.success,
161
+ isOrderCancellable: cancelOrderMut.isOrderCancellable,
162
+ isOrderCanceled: cancelOrderMut.isSuccess,
211
163
  isPending: cancelOrderMut.isPending,
212
164
  isError: cancelOrderMut.isError,
213
165
  isSuccess: cancelOrderMut.isSuccess,
@@ -254,20 +206,21 @@ function useDeltaFlow({
254
206
  } = usePartner();
255
207
  const protocolName = useAtomValue(protocolNameAtom);
256
208
  const bridgePreference = useAtomValue(bridgePreferenceAtom);
209
+ const getQueryForPrice = useDeltaPriceQueryForPrice();
257
210
  const subscribeToPrice = useSubscribeToDeltaPrice();
258
211
  const {
259
212
  onSwap
260
213
  } = useWidgetEvents();
261
214
  const submitDeltaOrder = async ({
262
215
  onTxSent,
263
- onOrderSent,
264
- lastPrice
216
+ onOrderSent
265
217
  } = {}) => {
266
218
  approveTxMut.reset();
267
219
  signPermitMut.reset();
268
220
  createOrderMut.reset();
269
221
  cancelOrderMut.reset();
270
222
  resetPreSignAndSubmitDeltaOrder();
223
+ resetDepositAndSubmitDeltaOrder();
271
224
  assert(deltaPrice, "Delta price is not available");
272
225
  const swapSide = getSwapSideFromDeltaPrice(deltaPrice);
273
226
  const abortController = new AbortController();
@@ -280,38 +233,29 @@ function useDeltaFlow({
280
233
  const allowanceToSet = approval.allowanceToSet;
281
234
  const allowanceToPermit = signPermit.amountToPermit;
282
235
  let freshPrice = deltaPrice;
283
- if (freshPrice.hmac === lastPrice?.hmac) {
284
- const newPriceResult = await deltaPriceQuery.refetch({
285
- cancelRefetch: false
286
- });
287
- signal.throwIfAborted();
288
- if (newPriceResult.data) {
289
- freshPrice = newPriceResult.data;
290
- if (isBridgePrice(freshPrice)) {
291
- freshPrice = extractSelectedBridgePrice({
292
- price: freshPrice,
293
- protocolName,
294
- bridgePreference
295
- });
296
- }
297
- }
298
- }
299
236
  let unsubscribeFromPrice;
300
237
  usingPriceRef.current = freshPrice;
238
+ const shouldDepositAndPreSign = (
239
+ // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,
240
+ // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits
241
+ isETHaddress(freshPrice.srcToken)
242
+ );
301
243
  const {
302
244
  shouldDoApprovalTxOrPermit,
303
245
  tryPermit,
304
246
  shouldPreSignBatch
305
247
  } = shouldApproveOrBatch({
306
248
  approval,
307
- preWrapETH,
308
249
  signPermit,
309
250
  canBatchTxs,
310
251
  isConnectedToSafe
311
252
  });
312
253
  try {
313
254
  if (shouldDoApprovalTxOrPermit && allowanceToSet) {
314
- const queryKey = deltaPriceQueryKey;
255
+ const queryKey = getQueryForPrice({
256
+ chainId,
257
+ price: freshPrice
258
+ })?.queryKey;
315
259
  if (queryKey) {
316
260
  const approvedAmount = allowanceToSet;
317
261
  unsubscribeFromPrice = subscribeToPrice({
@@ -398,21 +342,21 @@ function useDeltaFlow({
398
342
  permit: signedPermitResult?.permitEncodedArgs
399
343
  });
400
344
  }
401
- } catch (error_2) {
345
+ } catch (error_1) {
402
346
  if (!tryPermit) {
403
347
  approveOrPermitEvents.onApproveTx.failed({
404
348
  allowanceToSet,
405
- error: error_2,
349
+ error: error_1,
406
350
  txHash: approveTxHash
407
351
  // won't necessarily be available
408
352
  });
409
353
  } else {
410
354
  approveOrPermitEvents.onSignPermit.failed({
411
355
  allowanceToSet: allowanceToPermit,
412
- error: error_2
356
+ error: error_1
413
357
  });
414
358
  }
415
- throw error_2;
359
+ throw error_1;
416
360
  }
417
361
  }
418
362
  signal.throwIfAborted();
@@ -433,7 +377,7 @@ function useDeltaFlow({
433
377
  signature: signedPermitResult.signature
434
378
  });
435
379
  }
436
- const destChainId_0 = isBridgePrice(deltaPriceToUse) ? deltaPriceToUse.bridge.destinationChainId : chainId;
380
+ const destChainId = isBridgePrice(deltaPriceToUse) ? deltaPriceToUse.bridge.destinationChainId : chainId;
437
381
  onSwap?.({
438
382
  event: {
439
383
  name: "Swap:request",
@@ -453,7 +397,7 @@ function useDeltaFlow({
453
397
  srcToken: deltaPriceToUse.srcToken,
454
398
  destToken: deltaPriceToUse.destToken,
455
399
  permit,
456
- destChainId: destChainId_0,
400
+ destChainId,
457
401
  deltaPrice: deltaPriceToUse,
458
402
  partner,
459
403
  partnerAddress,
@@ -464,15 +408,20 @@ function useDeltaFlow({
464
408
  side: swapSide
465
409
  }
466
410
  };
467
- if (!shouldPreSignBatch) {
468
- orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
469
- } else {
411
+ if (shouldDepositAndPreSign) {
412
+ orderFromAPI = await depositAndSubmitDeltaOrder({
413
+ createDeltaOrderInput: createOrderInput,
414
+ depositAmount: createOrderInput.orderInput.srcAmount,
415
+ onTxSent
416
+ });
417
+ } else if (shouldPreSignBatch) {
470
418
  orderFromAPI = await preSignAndSubmitDeltaOrder({
471
419
  createDeltaOrderInput: createOrderInput,
472
420
  approval,
473
- preWrapETH,
474
421
  onTxSent
475
422
  });
423
+ } else {
424
+ orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);
476
425
  }
477
426
  if (signedPermitResult) {
478
427
  markNonceAsUsed(signedPermitResult.signedPermitData);
@@ -523,7 +472,7 @@ function useDeltaFlow({
523
472
  account,
524
473
  receiverAddress
525
474
  };
526
- } catch (error_1) {
475
+ } catch (error_0) {
527
476
  if (signedPermitResult) {
528
477
  clearNonce(signedPermitResult.signedPermitData);
529
478
  }
@@ -532,29 +481,24 @@ function useDeltaFlow({
532
481
  name: "Swap:failed",
533
482
  params: {
534
483
  swapMode: "delta",
535
- error: error_1
484
+ error: error_0
536
485
  }
537
486
  }
538
487
  });
539
- throw error_1;
488
+ throw error_0;
540
489
  } finally {
541
490
  unsubscribeFromPrice?.();
542
491
  }
543
492
  };
544
- const cancelDeltaOrder = () => {
545
- assert(deltaOrderSubmission.order, "No order to cancel");
546
- cancelOrderMut.mutate({
547
- orderIds: [deltaOrderSubmission.order.id]
548
- });
549
- };
493
+ const cancelDeltaOrder = cancelOrderMut.cancelDeltaOrder;
550
494
  const deltaOrderMut = useMutation({
551
495
  mutationFn: submitDeltaOrder,
552
496
  mutationKey: [DELTA_ORDER_MUTATION_KEY],
553
497
  onSuccess: (data_0) => {
554
498
  logger.log("Delta Order success", data_0);
555
499
  },
556
- onError: (error_3) => {
557
- logger.error("Delta Order error", error_3);
500
+ onError: (error_2) => {
501
+ logger.error("Delta Order error", error_2);
558
502
  },
559
503
  onSettled: () => {
560
504
  logger.log("Delta Order settled");
@@ -569,14 +513,11 @@ function useDeltaFlow({
569
513
  deltaOrderMut.reset();
570
514
  cancelOrderMut.reset();
571
515
  resetPreSignAndSubmitDeltaOrder();
516
+ resetDepositAndSubmitDeltaOrder();
572
517
  };
573
518
  const retryFlow = (options) => {
574
- const lastPrice_0 = usingPriceRef.current;
575
519
  reset();
576
- return runDeltaOrderFlow({
577
- ...options,
578
- lastPrice: lastPrice_0
579
- });
520
+ return runDeltaOrderFlow(options);
580
521
  };
581
522
  const usedPrice = usingPriceRef.current || deltaPrice;
582
523
  const result = deltaOrderMut.data;
@@ -592,6 +533,7 @@ function useDeltaFlow({
592
533
  approval,
593
534
  signPermit,
594
535
  deltaOrderPreSign,
536
+ deltaOrderDeposit,
595
537
  deltaOrderSubmission,
596
538
  deltaOrderExecution,
597
539
  deltaOrderCancelation,
@@ -603,7 +545,6 @@ function useDeltaFlow({
603
545
  error: deltaOrderMut.error,
604
546
  result,
605
547
  usedPrice,
606
- freshPrice: deltaPrice,
607
548
  submittedDeltaOrder
608
549
  };
609
550
  }