@velora-dex/widget 0.8.4 → 0.8.5-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 (364) hide show
  1. package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
  2. package/dist/components/widget/AppHeader/Activities/hooks.js +174 -155
  3. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  4. package/dist/components/widget/AppHeader/Activities/utils.d.ts +3 -3
  5. package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -1
  6. package/dist/components/widget/AppHeader/Activities/utils.js +23 -17
  7. package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
  8. package/dist/components/widget/BridgeList/hooks.d.ts +2 -2
  9. package/dist/components/widget/BridgeList/hooks.d.ts.map +1 -1
  10. package/dist/components/widget/BridgeList/hooks.js +78 -72
  11. package/dist/components/widget/BridgeList/hooks.js.map +1 -1
  12. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts +2 -2
  13. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts.map +1 -1
  14. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js.map +1 -1
  15. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  16. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +2 -2
  17. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
  18. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  19. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
  20. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +17 -21
  21. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  22. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -1
  23. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
  24. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts +6 -3
  25. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -1
  26. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +119 -113
  27. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
  28. package/dist/components/widget/LimitOrderItem/constants.d.ts +1 -1
  29. package/dist/components/widget/LimitOrderItem/constants.js +1 -1
  30. package/dist/components/widget/LimitOrderItem/constants.js.map +1 -1
  31. package/dist/components/widget/LimitOrderItem/utils.d.ts +0 -2
  32. package/dist/components/widget/LimitOrderItem/utils.d.ts.map +1 -1
  33. package/dist/components/widget/LimitOrderItem/utils.js +1 -4
  34. package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
  35. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +1 -1
  36. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
  37. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js +9 -9
  38. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  39. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.d.ts +2 -2
  40. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.d.ts.map +1 -1
  41. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js +24 -19
  42. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js.map +1 -1
  43. package/dist/components/widget/OtcOrderItem/types.d.ts +2 -2
  44. package/dist/components/widget/OtcOrderItem/types.d.ts.map +1 -1
  45. package/dist/components/widget/OtcOrderItem/utils.d.ts +2 -2
  46. package/dist/components/widget/OtcOrderItem/utils.d.ts.map +1 -1
  47. package/dist/components/widget/OtcOrderItem/utils.js +1 -1
  48. package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
  49. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js +1 -1
  50. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  51. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts +2 -2
  52. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -1
  53. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
  54. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
  55. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  56. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +2 -2
  57. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  58. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +1 -1
  59. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  60. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  61. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +37 -37
  62. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  63. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts +2 -2
  64. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -1
  65. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
  66. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts +4 -1
  67. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts.map +1 -1
  68. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js +1 -1
  69. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -1
  70. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  71. package/dist/core/LimitOrderButton.js +47 -53
  72. package/dist/core/LimitOrderButton.js.map +1 -1
  73. package/dist/core/TradeFlowScreenButton.d.ts +3 -4
  74. package/dist/core/TradeFlowScreenButton.d.ts.map +1 -1
  75. package/dist/core/TradeFlowScreenButton.js.map +1 -1
  76. package/dist/core/across/isCrosschainPossible.d.ts +2 -2
  77. package/dist/core/across/isCrosschainPossible.d.ts.map +1 -1
  78. package/dist/core/across/isCrosschainPossible.js.map +1 -1
  79. package/dist/core/across/utils.d.ts +4 -4
  80. package/dist/core/across/utils.d.ts.map +1 -1
  81. package/dist/core/across/utils.js.map +1 -1
  82. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  83. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +1 -4
  84. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  85. package/dist/core/index.js.map +1 -1
  86. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  87. package/dist/core/inputs/hooks/useTokenFromInputProps.js +3 -3
  88. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  89. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  90. package/dist/core/inputs/hooks/useTokenToInputProps.js +2 -2
  91. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  92. package/dist/core/inputs/hooks/useWarningMessage.d.ts +2 -2
  93. package/dist/core/inputs/hooks/useWarningMessage.d.ts.map +1 -1
  94. package/dist/core/inputs/hooks/useWarningMessage.js.map +1 -1
  95. package/dist/core/inputs/hooks/utils.d.ts.map +1 -1
  96. package/dist/core/inputs/hooks/utils.js +7 -5
  97. package/dist/core/inputs/hooks/utils.js.map +1 -1
  98. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  99. package/dist/core/limit/state/currentLimitInputAtom.d.ts +2 -2
  100. package/dist/core/limit/state/utils.d.ts +1 -1
  101. package/dist/core/limit/useLimitRate.d.ts +2 -3
  102. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  103. package/dist/core/limit/useLimitRate.js +54 -110
  104. package/dist/core/limit/useLimitRate.js.map +1 -1
  105. package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
  106. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  107. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  108. package/dist/core/limit/useLimitTokenToInputProps.js +1 -4
  109. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  110. package/dist/core/otc/state/currentOtcInputAtom.d.ts +2 -2
  111. package/dist/core/state/configAtom.js +2 -2
  112. package/dist/core/state/configAtom.js.map +1 -1
  113. package/dist/core/state/configEffectAtom.js.map +1 -1
  114. package/dist/core/state/currentSwapInputAtom.d.ts +2 -2
  115. package/dist/core/state/getSelectableDestChains.d.ts +2 -2
  116. package/dist/core/state/getSelectableDestChains.d.ts.map +1 -1
  117. package/dist/core/state/getSelectableDestChains.js.map +1 -1
  118. package/dist/core/swapDetails/fees.d.ts.map +1 -1
  119. package/dist/core/swapDetails/fees.js +16 -11
  120. package/dist/core/swapDetails/fees.js.map +1 -1
  121. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -1
  122. package/dist/core/swapDetails/maxToPay.js +18 -17
  123. package/dist/core/swapDetails/maxToPay.js.map +1 -1
  124. package/dist/core/twap/state/currentTwapInputAtom.d.ts +2 -2
  125. package/dist/core/twap/twapDetails/minimumReceiveable.d.ts +2 -2
  126. package/dist/core/twap/twapDetails/minimumReceiveable.d.ts.map +1 -1
  127. package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -1
  128. package/dist/core/twap/useTwapTokenFromInputProps.js +3 -3
  129. package/dist/core/twap/useTwapTokenFromInputProps.js.map +1 -1
  130. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  131. package/dist/events/types/cancelOrder.d.ts +2 -2
  132. package/dist/events/types/cancelOrder.d.ts.map +1 -1
  133. package/dist/events/types/fill.d.ts +2 -2
  134. package/dist/events/types/fill.d.ts.map +1 -1
  135. package/dist/events/types/otc.d.ts +2 -2
  136. package/dist/events/types/otc.d.ts.map +1 -1
  137. package/dist/events/types/priceChange.d.ts +2 -2
  138. package/dist/events/types/priceChange.d.ts.map +1 -1
  139. package/dist/events/types/swap.d.ts +3 -3
  140. package/dist/events/types/swap.d.ts.map +1 -1
  141. package/dist/events/types/twap.d.ts +2 -2
  142. package/dist/events/types/twap.d.ts.map +1 -1
  143. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +2 -2
  144. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
  145. package/dist/hooks/otc/mutations/useCancelLimitOrder.js +4 -7
  146. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  147. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts +3 -3
  148. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
  149. package/dist/hooks/otc/mutations/useCreateLimitOrder.js +7 -10
  150. package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
  151. package/dist/hooks/otc/mutations/useFillOrder.d.ts +2 -2
  152. package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
  153. package/dist/hooks/otc/mutations/useFillOrder.js +2 -2
  154. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  155. package/dist/hooks/otc/mutations/utils.d.ts +2 -2
  156. package/dist/hooks/otc/mutations/utils.d.ts.map +1 -1
  157. package/dist/hooks/otc/mutations/utils.js.map +1 -1
  158. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +1 -1
  159. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  160. package/dist/hooks/otc/queries/useLimitOrders.d.ts +29 -29
  161. package/dist/hooks/otc/queries/useLimitOrders.d.ts.map +1 -1
  162. package/dist/hooks/otc/queries/useLimitOrders.js +7 -7
  163. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  164. package/dist/hooks/otc/queries/utils.d.ts +6 -6
  165. package/dist/hooks/otc/queries/utils.d.ts.map +1 -1
  166. package/dist/hooks/otc/queries/utils.js +1 -1
  167. package/dist/hooks/otc/queries/utils.js.map +1 -1
  168. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts +2 -2
  169. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  170. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +1 -1
  171. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  172. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +5 -5
  173. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  174. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +1 -1
  175. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  176. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +1 -1
  177. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
  178. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +1 -1
  179. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -1
  180. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts +1 -1
  181. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts.map +1 -1
  182. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts +3 -4
  183. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts.map +1 -1
  184. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js.map +1 -1
  185. package/dist/hooks/swap/prices/delta/bridge/utils.d.ts +6 -36
  186. package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
  187. package/dist/hooks/swap/prices/delta/bridge/utils.js +20 -18
  188. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  189. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -1
  190. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js +5 -5
  191. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
  192. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js +1 -1
  193. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +1 -1
  194. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -1
  195. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
  196. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js +1 -1
  197. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +1 -1
  198. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts.map +1 -1
  199. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +26 -27
  200. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
  201. package/dist/hooks/swap/prices/delta/mutations/types.d.ts +3 -3
  202. package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -1
  203. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +2 -2
  204. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
  205. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
  206. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +87 -84
  207. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
  208. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
  209. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  210. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +3 -3
  211. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  212. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts.map +1 -1
  213. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +26 -27
  214. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
  215. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +1 -1
  216. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -1
  217. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js +22 -20
  218. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
  219. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +1 -1
  220. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
  221. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +4 -5
  222. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
  223. package/dist/hooks/swap/prices/delta/mutations/utils.js +5 -5
  224. package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
  225. package/dist/hooks/swap/prices/delta/orders/types.d.ts +7 -24
  226. package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
  227. package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts +1 -1
  228. package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts.map +1 -1
  229. package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -1
  230. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +33 -42
  231. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -1
  232. package/dist/hooks/swap/prices/delta/orders/utils.d.ts +31 -43
  233. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  234. package/dist/hooks/swap/prices/delta/orders/utils.js +26 -51
  235. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  236. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
  237. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +4 -2
  238. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -1
  239. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -1
  240. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
  241. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +2 -3
  242. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -1
  243. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -1
  244. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +7 -7
  245. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -1
  246. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +22 -22
  247. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
  248. package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
  249. package/dist/hooks/swap/prices/delta/queries/{useDeltaLimitOrderRequiredBalance.d.ts → useDeltaOrderRequiredBalance.d.ts} +10 -10
  250. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderRequiredBalance.d.ts.map +1 -0
  251. package/dist/hooks/swap/prices/delta/queries/{useDeltaLimitOrderRequiredBalance.js → useDeltaOrderRequiredBalance.js} +4 -4
  252. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderRequiredBalance.js.map +1 -0
  253. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts.map +1 -1
  254. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  255. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +16 -33
  256. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  257. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +4 -4
  258. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  259. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +3 -11
  260. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
  261. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +2 -7
  262. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  263. package/dist/hooks/swap/prices/factory.d.ts.map +1 -1
  264. package/dist/hooks/swap/prices/factory.js +1 -1
  265. package/dist/hooks/swap/prices/factory.js.map +1 -1
  266. package/dist/hooks/swap/prices/types.d.ts +2 -3
  267. package/dist/hooks/swap/prices/types.d.ts.map +1 -1
  268. package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -3
  269. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  270. package/dist/hooks/swap/prices/useSwapPrices.js +108 -111
  271. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  272. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +3 -3
  273. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  274. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts +2 -2
  275. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts.map +1 -1
  276. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -1
  277. package/dist/hooks/swap/prices/useTwapPrices.d.ts +4 -5
  278. package/dist/hooks/swap/prices/useTwapPrices.d.ts.map +1 -1
  279. package/dist/hooks/swap/prices/useTwapPrices.js +70 -73
  280. package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -1
  281. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts +10 -17
  282. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts.map +1 -1
  283. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js +6 -6
  284. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -1
  285. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +1 -1
  286. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
  287. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +1 -1
  288. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
  289. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js +1 -1
  290. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
  291. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -5
  292. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  293. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +222 -227
  294. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  295. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  296. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +1 -1
  297. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  298. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -2
  299. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  300. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +159 -196
  301. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  302. package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts +5 -5
  303. package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts.map +1 -1
  304. package/dist/hooks/swap/tradeFlow/useTwapFlow.js +221 -233
  305. package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
  306. package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts +1 -1
  307. package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts.map +1 -1
  308. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
  309. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  310. package/dist/hooks/tokens/balances/useTokenBalance.d.ts +1 -1
  311. package/dist/hooks/tokens/balances/useTokenBalance.d.ts.map +1 -1
  312. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +2 -2
  313. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  314. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  315. package/dist/hooks/tokens/useTokensFromAcross.d.ts +2 -2
  316. package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
  317. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  318. package/dist/hooks/txs/queries/useTxResponse.d.ts +339 -261
  319. package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -1
  320. package/dist/hooks/useAvailableCrosses.d.ts +3 -3
  321. package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
  322. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  323. package/dist/hooks/useBridgeInfo.d.ts +2 -3
  324. package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
  325. package/dist/hooks/useBridgeInfo.js.map +1 -1
  326. package/dist/hooks/useIsCrosschainPossible.d.ts +2 -2
  327. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
  328. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  329. package/dist/hooks/useSDK.d.ts +12 -12
  330. package/dist/hooks/useSDK.d.ts.map +1 -1
  331. package/dist/hooks/useSDK.js +30 -30
  332. package/dist/hooks/useSDK.js.map +1 -1
  333. package/dist/hooks/useSelectableDestChains.d.ts +2 -2
  334. package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
  335. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  336. package/dist/lib/queryClient.js +3 -3
  337. package/dist/lib/queryClient.js.map +1 -1
  338. package/dist/lib/utils/price.d.ts +5 -2
  339. package/dist/lib/utils/price.d.ts.map +1 -1
  340. package/dist/lib/utils/price.js +8 -5
  341. package/dist/lib/utils/price.js.map +1 -1
  342. package/dist/lib/utils/twap.d.ts +19 -4
  343. package/dist/lib/utils/twap.d.ts.map +1 -1
  344. package/dist/lib/utils/twap.js +28 -18
  345. package/dist/lib/utils/twap.js.map +1 -1
  346. package/dist/lib/web3/wagmi/config.d.ts +99 -21
  347. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  348. package/dist/lib/web3/wagmi/constants.d.ts +99 -21
  349. package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
  350. package/dist/lib/web3/wagmi/switchChain.d.ts +99 -21
  351. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  352. package/package.json +2 -2
  353. package/dist/hooks/swap/prices/delta/bridge/const.d.ts +0 -8
  354. package/dist/hooks/swap/prices/delta/bridge/const.d.ts.map +0 -1
  355. package/dist/hooks/swap/prices/delta/bridge/const.js +0 -13
  356. package/dist/hooks/swap/prices/delta/bridge/const.js.map +0 -1
  357. package/dist/hooks/swap/prices/delta/bridge/types.d.ts +0 -43
  358. package/dist/hooks/swap/prices/delta/bridge/types.d.ts.map +0 -1
  359. package/dist/hooks/swap/prices/delta/bridge/useBridgedDeposit.d.ts +0 -18
  360. package/dist/hooks/swap/prices/delta/bridge/useBridgedDeposit.d.ts.map +0 -1
  361. package/dist/hooks/swap/prices/delta/bridge/useSuggestedFees.d.ts +0 -5
  362. package/dist/hooks/swap/prices/delta/bridge/useSuggestedFees.d.ts.map +0 -1
  363. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +0 -1
  364. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +0 -1
@@ -2,7 +2,7 @@ import { Address, Hash, TransactionReceipt } from 'viem';
2
2
  import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from '../../swap/tradeFlow/common/types';
3
3
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
4
4
  import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
5
- import { LimitOrderFromApi } from '@velora-dex/sdk';
5
+ import { OTCOrderFromApi } from '@velora-dex/sdk';
6
6
  import { FillableOtcOrderItem } from '../../../components/widget/OtcOrderItem/types';
7
7
  import { CallsReceipt } from '../../batch/useAwaitCalls';
8
8
  declare const fillOtcOrderFlowType = "fillOtcOrder";
@@ -13,7 +13,7 @@ export type SubmitFillOtcOrderResult = {
13
13
  tradeFlowType: typeof fillOtcOrderFlowType;
14
14
  approve: SubmitTxResult;
15
15
  fill: {
16
- order: LimitOrderFromApi;
16
+ order: OTCOrderFromApi;
17
17
  txHash?: Hash;
18
18
  txReceipt?: TransactionReceipt;
19
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useFillOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFillOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"names":[],"mappings":"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"}
@@ -156,7 +156,7 @@ function C({ order: C }) {
156
156
  let u, d;
157
157
  if (l) {
158
158
  _(N, "callDataSDK is not initialized");
159
- let e = await N.fillOrderDirectly({
159
+ let e = await N.fillOTCOrder({
160
160
  order: C,
161
161
  signature: C.signature
162
162
  }), { calls: t } = await I({
@@ -1 +1 @@
1
- {"version":3,"file":"useFillOtcOrderFlow.js","names":["useAccount","useChainId","assert","useAwaitTx","useEnsureTxReceipt","zeroAddress","Address","Hash","TransactionReceipt","ApprovalFlowResult","SignPermitFlowResult","SubmitTxResult","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","LimitOrderFromApi","useFillOrder","OrderFillData","useMarkPermit1Or2NonceAsUsed","SignedPermitResult","FillableOtcOrderItem","useWidgetEvents","useCanBatchTxs","useBatchWithApproveTxs","useSendBatchTx","useAwaitCalls","useEnsureCallsStatus","CallsReceipt","useCalldataSDK","fillOtcOrderFlowType","UseFillOtcOrderFlowInput","order","SubmitFillOtcOrderResult","tradeFlowType","approve","fill","txHash","txReceipt","account","receiverAddress","OnTxSent","txSent","RunFillOtcOrderOptions","onTxSent","UseFillOtcOrderFlowResult","chainId","runFillOtcOrderFlow","options","Promise","reset","cancelFlow","retryFlow","approval","signPermit","fillOrder","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","isPending","isError","isSuccess","error","Error","fillOrderBatch","canBatchTxs","callsId","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","result","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","logger","approveTxMut","signPermitMut","events","approveOrPermitEvents","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","minClient","sdk","callDataSDK","client","fillOrderMut","mutationOptions","onSuccess","log","onError","forCurrentChain","addTxWithApprovals","batchTxMut","fillTxMined","hash","data","batchTxMined","id","isLoading","lastCallsReceipt","receipts","length","transactionHash","ensureTxReceipt","ensureCallsStatus","currentAbortControllerRef","AbortController","current","abort","markNonceAsUsed","clearNonce","submitFillTx","taker","abortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","baseEventParams","orderHash","orderType","const","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","onSignPermit","signPermitAsync","value","permit","permitEncodedArgs","failed","orderFillData","signature","takerPermit","encodedPermitParams","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","runFillOrderMut","mutationFn","mutationKey","onSettled"],"sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\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 const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\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 /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\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 fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\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 const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\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 fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n const allowanceToPermit = signPermit.amountToPermit;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\n // Token doesn't support Permit\n // make an Approval tx\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 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 const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useFillOtcOrderFlow.js","names":["useAccount","useChainId","assert","useAwaitTx","useEnsureTxReceipt","zeroAddress","Address","Hash","TransactionReceipt","ApprovalFlowResult","SignPermitFlowResult","SubmitTxResult","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","OTCOrderFromApi","useFillOrder","OrderFillData","useMarkPermit1Or2NonceAsUsed","SignedPermitResult","FillableOtcOrderItem","useWidgetEvents","useCanBatchTxs","useBatchWithApproveTxs","useSendBatchTx","useAwaitCalls","useEnsureCallsStatus","CallsReceipt","useCalldataSDK","fillOtcOrderFlowType","UseFillOtcOrderFlowInput","order","SubmitFillOtcOrderResult","tradeFlowType","approve","fill","txHash","txReceipt","account","receiverAddress","OnTxSent","txSent","RunFillOtcOrderOptions","onTxSent","UseFillOtcOrderFlowResult","chainId","runFillOtcOrderFlow","options","Promise","reset","cancelFlow","retryFlow","approval","signPermit","fillOrder","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","isPending","isError","isSuccess","error","Error","fillOrderBatch","canBatchTxs","callsId","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","result","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","logger","approveTxMut","signPermitMut","events","approveOrPermitEvents","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","minClient","sdk","callDataSDK","client","fillOrderMut","mutationOptions","onSuccess","log","onError","forCurrentChain","addTxWithApprovals","batchTxMut","fillTxMined","hash","data","batchTxMined","id","isLoading","lastCallsReceipt","receipts","length","transactionHash","ensureTxReceipt","ensureCallsStatus","currentAbortControllerRef","AbortController","current","abort","markNonceAsUsed","clearNonce","submitFillTx","taker","abortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","baseEventParams","orderHash","orderType","const","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","onSignPermit","signPermitAsync","value","permit","permitEncodedArgs","failed","orderFillData","signature","takerPermit","encodedPermitParams","fillTxHash","fillCallsId","calldata","fillOTCOrder","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","runFillOrderMut","mutationFn","mutationKey","onSettled"],"sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { OTCOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: OTCOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\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 const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\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 /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\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 fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\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 const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\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 fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n const allowanceToPermit = signPermit.amountToPermit;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\n // Token doesn't support Permit\n // make an Approval tx\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 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 const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOTCOrder({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Address, TransactionReceipt } from 'viem';
2
2
  import { ApprovalFlowResult, SubmitTxResult, BatchTxStepResult } from '../../swap/tradeFlow/common/types';
3
3
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
4
4
  import { CallsSentObject, TxSentObject } from '../../../lib/utils/transactionHandlers';
5
- import { LimitOrderFromApi } from '@velora-dex/sdk';
5
+ import { OTCOrderFromApi } from '@velora-dex/sdk';
6
6
  import { CancelOrderStepKey } from '../../../components/widget/TradeOverview/steps';
7
7
  declare const otcOrderFlowType = "otcOrder";
8
8
  export type UserDefinedOtcPrice = {
@@ -20,8 +20,8 @@ export type SubmitOtcOrderResult = {
20
20
  approve: SubmitTxResult;
21
21
  wrapAndApproveBatch: SubmitTxResult;
22
22
  otcOrder: {
23
- sentOrder: LimitOrderFromApi;
24
- lastOrderState?: LimitOrderFromApi;
23
+ sentOrder: OTCOrderFromApi;
24
+ lastOrderState?: OTCOrderFromApi;
25
25
  };
26
26
  otcPrice: UserDefinedOtcPrice;
27
27
  account: Address;
@@ -42,7 +42,7 @@ export type UseOtcOrderFlowResult = {
42
42
  approval: ApprovalFlowResult;
43
43
  wrapAndApprovalBatch: BatchTxStepResult;
44
44
  otcOrderSubmission: {
45
- order?: LimitOrderFromApi;
45
+ order?: OTCOrderFromApi;
46
46
  isCreatingOrder: boolean;
47
47
  isOrderSent: boolean;
48
48
  isPending: boolean;
@@ -55,7 +55,7 @@ export type UseOtcOrderFlowResult = {
55
55
  receipt?: TransactionReceipt;
56
56
  isCancelingOrder: boolean;
57
57
  isOrderCanceled: boolean;
58
- lastOrderState?: LimitOrderFromApi;
58
+ lastOrderState?: OTCOrderFromApi;
59
59
  isPending: boolean;
60
60
  isError: boolean;
61
61
  isSuccess: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAQ,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACf,MAAM,mCAAmC,CAAC;AAU3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAElF,QAAA,MAAM,gBAAgB,aAAa,CAAC;AAEpC,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,gBAAgB,CAAC;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,mBAAmB,EAAE,cAAc,CAAC;IACpC,QAAQ,EAAE;QACR,SAAS,EAAE,iBAAiB,CAAC;QAC7B,cAAc,CAAC,EAAE,iBAAiB,CAAC;KACpC,CAAC;IACF,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,KAAK,IAAI,CAAC;AAEjE,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,OAAO,gBAAgB,CAAC;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,CACf,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3E,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,oBAAoB,EAAE,iBAAiB,CAAC;IACxC,kBAAkB,EAAE;QAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,mBAAmB,EAAE;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,iBAAiB,CAAC;QACnC,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,EAAE,kBAAkB,CAAC;KAC3B,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAIF,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,UAAU,GACX,EAAE,oBAAoB,GAAG,qBAAqB,CAoa9C"}
1
+ {"version":3,"file":"useOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useOtcDeadline as t } from "../../../core/otc/state/deadlineAtom.js";
3
3
  import { useOtcReceiverAddressValue as n } from "../../../core/otc/state/receiverAddressAtom.js";
4
4
  import { useWidgetEvents as r } from "../../../core/state/widgetEventsAtom.js";
5
5
  import { useMinViemClient as i } from "../../useMinViemClient.js";
6
- import { useLimitOrderByHashQuery as a } from "../queries/useLimitOrders.js";
6
+ import { useOTCOrderByHashQuery as a } from "../queries/useLimitOrders.js";
7
7
  import { useChainMatches as o } from "../../useChainMatches.js";
8
8
  import { useEnsureTxReceipt as s } from "../../txs/queries/useAwaitTx.js";
9
9
  import { handleTxSent as c } from "../../../lib/utils/transactionHandlers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useOtcOrderFlow.js","names":["useAccount","useChainId","assert","useEnsureTxReceipt","Address","Hash","TransactionReceipt","ApprovalFlowResult","SubmitTxResult","useCreateLimitOrder","useCancelOtcOrderAndWait","useCancelOtcOrderEventCallbacks","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","handleTxSent","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","LimitOrderFromApi","useOtcDeadline","useOtcReceiverAddressValue","useLimitOrderByHashQuery","useWidgetEvents","shouldApproveOrBatchWrapAndApprove","useBatchWrapAndApprove","BatchTxStepResult","useChainMatches","useSwitchChainWithGuard","CancelOrderStepKey","otcOrderFlowType","UserDefinedOtcPrice","srcTokenAddress","destTokenAddress","srcAmount","destAmount","UseOtcOrderFlowInput","otcPrice","preWrapETH","SubmitOtcOrderResult","tradeFlowType","approve","wrapAndApproveBatch","otcOrder","sentOrder","lastOrderState","account","receiverAddress","OnTxSent","txSent","RunOtcOrderOptions","onTxSent","UseOtcOrderFlowResult","chainId","runOtcOrderFlow","options","Promise","reset","cancelFlow","retryFlow","cancelOtcOrder","approval","wrapAndApprovalBatch","otcOrderSubmission","order","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","Error","otcOrderCancelation","txHash","receipt","isCancelingOrder","isOrderCanceled","step","result","OTC_ORDER_MUTATION_KEY","useOtcOrderFlow","logger","approveTxMut","events","approveOrPermitEvents","srcToken","spenderContractType","swapSide","tradeMode","address","minClient","batchWrapAndApprove","resetBatchWrapAndApprove","canBatchTxs","wrapAndApproveBatchResult","createOrderMut","client","mutationOptions","onSuccess","log","onError","data","limitOrderQuery","orderParams","orderHash","cancelOrderEvents","orderChainId","forcedChainMatchesWalletChain","mutateAsync","switchChain","cancelOrderMut","onMutate","variables","txReceipt","vars","isCancelTxSucceeded","status","isCancelTxReverted","state","const","transactionHash","ensureTxReceipt","currentAbortControllerRef","AbortController","current","abort","deadline","onOTCOrder","submitOtcOrder","abortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDoApprovalTx","shouldWrapAndApproveBatch","sendCallsResult","wrapAmount","BigInt","lastCallsReceipt","receipts","length","callsId","id","callsReceipt","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","failed","event","name","params","price","orderFromAPI","orderInput","expiry","makerAsset","takerAsset","makerAmount","takerAmount","maker","taker","otcOrderMut","mutationFn","mutationKey","onSettled","orderToCancel","cancelledOrder"],"sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\nimport { useCreateLimitOrder } from \"../mutations/useCreateLimitOrder\";\nimport {\n useCancelOtcOrderAndWait,\n useCancelOtcOrderEventCallbacks,\n} from \"../mutations/useCancelLimitOrder\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n handleTxSent,\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useOtcDeadline } from \"@/core/otc/state/deadlineAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useLimitOrderByHashQuery } from \"../queries/useLimitOrders\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatchWrapAndApprove,\n useBatchWrapAndApprove,\n} from \"@/hooks/swap/tradeFlow/common/useBatchWrapAndApprove\";\nimport type { BatchTxStepResult } from \"@/hooks/swap/tradeFlow/common/types\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nconst otcOrderFlowType = \"otcOrder\";\n\nexport type UserDefinedOtcPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n};\n\nexport type UseOtcOrderFlowInput = {\n otcPrice?: UserDefinedOtcPrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitOtcOrderResult = {\n tradeFlowType: typeof otcOrderFlowType;\n approve: SubmitTxResult;\n wrapAndApproveBatch: SubmitTxResult;\n otcOrder: {\n sentOrder: LimitOrderFromApi;\n lastOrderState?: LimitOrderFromApi;\n };\n otcPrice: UserDefinedOtcPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseOtcOrderFlowResult = {\n tradeFlowType: typeof otcOrderFlowType;\n chainId: SupportedChainId;\n runOtcOrderFlow: (\n options?: RunOtcOrderOptions\n ) => Promise<SubmitOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunOtcOrderOptions) => Promise<SubmitOtcOrderResult>; // reset and retry flow\n cancelOtcOrder: () => void;\n approval: ApprovalFlowResult;\n wrapAndApprovalBatch: BatchTxStepResult;\n otcOrderSubmission: {\n order?: LimitOrderFromApi;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n otcOrderCancelation: {\n txHash?: string;\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n lastOrderState?: LimitOrderFromApi;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitOtcOrderResult;\n otcPrice?: UserDefinedOtcPrice;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runOtcOrderFlow\";\n\nexport function useOtcOrderFlow({\n otcPrice,\n preWrapETH,\n}: UseOtcOrderFlowInput): UseOtcOrderFlowResult {\n const logger = useLogger(\"OtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: otcPrice?.srcTokenAddress,\n srcAmount: otcPrice?.srcAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n /* 2.2. Or submit Batch tx (Wrap ETH + Approve WETH) */\n const {\n batchWrapAndApprove,\n reset: resetBatchWrapAndApprove,\n canBatchTxs,\n wrapAndApproveBatchResult: wrapAndApprovalBatch,\n } = useBatchWrapAndApprove({\n chainId,\n account,\n logger,\n tradeMode: \"otc\",\n });\n\n /* 4. Build and Submit OTC Order */\n const createOrderMut = useCreateLimitOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create OTC Order error\", error);\n },\n },\n });\n\n const otcOrderSubmission: UseOtcOrderFlowResult[\"otcOrderSubmission\"] = {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /// CANCELATION\n\n const limitOrderQuery = useLimitOrderByHashQuery({\n orderParams: otcOrderSubmission.order?.orderHash,\n });\n\n const cancelOrderEvents = useCancelOtcOrderEventCallbacks(\n otcOrderSubmission.order\n );\n\n const orderChainId = otcOrderSubmission.order?.chainId as\n | SupportedChainId\n | undefined;\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const cancelOrderMut = useCancelOtcOrderAndWait({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: async (variables) => {\n assert(orderChainId, \"orderChainId is undefined\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n cancelOrderEvents.onMutate?.(variables);\n },\n onSuccess: (txReceipt, vars) => {\n logger.log(\"Cancel Order success\", txReceipt);\n\n cancelOrderEvents.onSuccess?.(txReceipt, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const isCancelTxSucceeded = cancelOrderMut.result?.status === \"success\";\n const isCancelTxReverted = cancelOrderMut.result?.status === \"reverted\";\n\n const lastOrderState =\n limitOrderQuery.data && isCancelTxSucceeded && cancelOrderMut.result\n ? {\n // optimistically update order state to CANCELLED\n // because API won't return the updated order state immediately\n // as it depends on the subgraph indexing\n ...limitOrderQuery.data,\n state: \"CANCELLED\" as const,\n transactionHash: cancelOrderMut.result.transactionHash,\n }\n : limitOrderQuery.data;\n\n const otcOrderCancelation: UseOtcOrderFlowResult[\"otcOrderCancelation\"] = {\n txHash: cancelOrderMut.txHash,\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled: isCancelTxSucceeded,\n lastOrderState,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError || isCancelTxReverted,\n isSuccess: cancelOrderMut.isSuccess && isCancelTxSucceeded,\n error: cancelOrderMut.error,\n step: cancelOrderMut.step,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useOtcReceiverAddressValue();\n const deadline = useOtcDeadline();\n\n const { onOTCOrder } = useWidgetEvents();\n\n const submitOtcOrder = async ({\n onTxSent,\n }: RunOtcOrderOptions = {}): Promise<SubmitOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(otcPrice, \"Otc price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n let wrapAndApproveBatch: SubmitTxResult = {};\n\n const allowanceToSet = approval.allowanceToSet;\n\n const { shouldDoApprovalTx, shouldWrapAndApproveBatch } =\n shouldApproveOrBatchWrapAndApprove({\n approval,\n preWrapETH,\n canBatchTxs,\n });\n\n try {\n if (shouldWrapAndApproveBatch) {\n const sendCallsResult = await batchWrapAndApprove({\n approval,\n preWrapETH: {\n wrapAmount: BigInt(otcPrice.srcAmount),\n },\n onTxSent,\n signal,\n });\n\n const lastCallsReceipt =\n sendCallsResult?.receipts?.[sendCallsResult.receipts.length - 1];\n wrapAndApproveBatch = {\n callsId: sendCallsResult?.id,\n callsReceipt: lastCallsReceipt,\n };\n\n logger.log(\"~ wrap and approve batch tx ~ receipt:\", lastCallsReceipt);\n } else if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } catch (error) {\n logger.error(\"Approve tx error\", error);\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(otcPrice, \"otcPrice is not available\");\n assert(receiverAddress, \"Receiver address is not set\");\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:request\",\n params: {\n price: otcPrice,\n },\n },\n });\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n signal,\n orderInput: {\n expiry: deadline,\n makerAsset: otcPrice.srcTokenAddress,\n takerAsset: otcPrice.destTokenAddress,\n makerAmount: otcPrice.srcAmount,\n takerAmount: otcPrice.destAmount,\n maker: account,\n taker: receiverAddress,\n },\n });\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:sent\",\n params: {\n price: otcPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: otcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n wrapAndApproveBatch,\n otcOrder: {\n sentOrder: orderFromAPI,\n },\n otcPrice: otcPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:failed\",\n params: {\n price: otcPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const otcOrderMut = useMutation({\n mutationFn: submitOtcOrder,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runOtcOrderFlow = otcOrderMut.mutateAsync;\n const cancelOtcOrder = async () => {\n const orderToCancel = otcOrderSubmission.order;\n assert(orderToCancel, \"No order to cancel\");\n return cancelOrderMut.cancelOtcOrder({\n orderHash: orderToCancel.orderHash,\n onTxSent: ({ chainId, transactionHash, receiptPromise }) => {\n handleTxSent({\n chainId,\n transactionHash,\n action: \"cancelOtcOrder\",\n transactionSpecificData: {\n action: \"cancelOtcOrder\",\n cancelledOrder: orderToCancel,\n },\n receiptPromise,\n });\n cancelOrderEvents.onTxSent?.({\n chainId,\n txHash: transactionHash,\n });\n },\n });\n };\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n otcOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n };\n\n const retryFlow = (\n options?: RunOtcOrderOptions\n ): Promise<SubmitOtcOrderResult> => {\n reset();\n return runOtcOrderFlow(options);\n };\n\n /* 5. return result */\n\n let result = otcOrderMut.data;\n if (result && otcOrderCancelation.lastOrderState) {\n result = {\n ...result,\n otcOrder: {\n sentOrder: result.otcOrder.sentOrder,\n lastOrderState: otcOrderCancelation.lastOrderState,\n },\n };\n }\n\n return {\n tradeFlowType: otcOrderFlowType,\n chainId,\n runOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelOtcOrder,\n approval,\n wrapAndApprovalBatch,\n otcOrderSubmission,\n otcOrderCancelation,\n // otcOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: otcOrderMut.isPending,\n isSuccess: otcOrderSubmission.isSuccess, // approval is an optional step\n isError: otcOrderMut.isError,\n error: otcOrderMut.error,\n result,\n otcPrice,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useOtcOrderFlow.js","names":["useAccount","useChainId","assert","useEnsureTxReceipt","Address","Hash","TransactionReceipt","ApprovalFlowResult","SubmitTxResult","useCreateLimitOrder","useCancelOtcOrderAndWait","useCancelOtcOrderEventCallbacks","useMinViemClient","useMutation","useRef","SupportedChainId","UserCancelledError","handleTxSent","CallsSentObject","TxSentObject","useApproveOrPermit","useLogger","OTCOrderFromApi","useOtcDeadline","useOtcReceiverAddressValue","useOTCOrderByHashQuery","useWidgetEvents","shouldApproveOrBatchWrapAndApprove","useBatchWrapAndApprove","BatchTxStepResult","useChainMatches","useSwitchChainWithGuard","CancelOrderStepKey","otcOrderFlowType","UserDefinedOtcPrice","srcTokenAddress","destTokenAddress","srcAmount","destAmount","UseOtcOrderFlowInput","otcPrice","preWrapETH","SubmitOtcOrderResult","tradeFlowType","approve","wrapAndApproveBatch","otcOrder","sentOrder","lastOrderState","account","receiverAddress","OnTxSent","txSent","RunOtcOrderOptions","onTxSent","UseOtcOrderFlowResult","chainId","runOtcOrderFlow","options","Promise","reset","cancelFlow","retryFlow","cancelOtcOrder","approval","wrapAndApprovalBatch","otcOrderSubmission","order","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","Error","otcOrderCancelation","txHash","receipt","isCancelingOrder","isOrderCanceled","step","result","OTC_ORDER_MUTATION_KEY","useOtcOrderFlow","logger","approveTxMut","events","approveOrPermitEvents","srcToken","spenderContractType","swapSide","tradeMode","address","minClient","batchWrapAndApprove","resetBatchWrapAndApprove","canBatchTxs","wrapAndApproveBatchResult","createOrderMut","client","mutationOptions","onSuccess","log","onError","data","limitOrderQuery","orderParams","orderHash","cancelOrderEvents","orderChainId","forcedChainMatchesWalletChain","mutateAsync","switchChain","cancelOrderMut","onMutate","variables","txReceipt","vars","isCancelTxSucceeded","status","isCancelTxReverted","state","const","transactionHash","ensureTxReceipt","currentAbortControllerRef","AbortController","current","abort","deadline","onOTCOrder","submitOtcOrder","abortController","signal","approveTxHash","approveTxReceipt","allowanceToSet","shouldDoApprovalTx","shouldWrapAndApproveBatch","sendCallsResult","wrapAmount","BigInt","lastCallsReceipt","receipts","length","callsId","id","callsReceipt","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","failed","event","name","params","price","orderFromAPI","orderInput","expiry","makerAsset","takerAsset","makerAmount","takerAmount","maker","taker","otcOrderMut","mutationFn","mutationKey","onSettled","orderToCancel","cancelledOrder"],"sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\nimport { useCreateLimitOrder } from \"../mutations/useCreateLimitOrder\";\nimport {\n useCancelOtcOrderAndWait,\n useCancelOtcOrderEventCallbacks,\n} from \"../mutations/useCancelLimitOrder\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n handleTxSent,\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { OTCOrderFromApi } from \"@velora-dex/sdk\";\nimport { useOtcDeadline } from \"@/core/otc/state/deadlineAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useOTCOrderByHashQuery } from \"../queries/useLimitOrders\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatchWrapAndApprove,\n useBatchWrapAndApprove,\n} from \"@/hooks/swap/tradeFlow/common/useBatchWrapAndApprove\";\nimport type { BatchTxStepResult } from \"@/hooks/swap/tradeFlow/common/types\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useSwitchChainWithGuard } from \"@/hooks/useSwitchChainWithGuard\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nconst otcOrderFlowType = \"otcOrder\";\n\nexport type UserDefinedOtcPrice = {\n srcTokenAddress: string;\n destTokenAddress: string;\n srcAmount: string;\n destAmount: string;\n};\n\nexport type UseOtcOrderFlowInput = {\n otcPrice?: UserDefinedOtcPrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitOtcOrderResult = {\n tradeFlowType: typeof otcOrderFlowType;\n approve: SubmitTxResult;\n wrapAndApproveBatch: SubmitTxResult;\n otcOrder: {\n sentOrder: OTCOrderFromApi;\n lastOrderState?: OTCOrderFromApi;\n };\n otcPrice: UserDefinedOtcPrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseOtcOrderFlowResult = {\n tradeFlowType: typeof otcOrderFlowType;\n chainId: SupportedChainId;\n runOtcOrderFlow: (\n options?: RunOtcOrderOptions\n ) => Promise<SubmitOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunOtcOrderOptions) => Promise<SubmitOtcOrderResult>; // reset and retry flow\n cancelOtcOrder: () => void;\n approval: ApprovalFlowResult;\n wrapAndApprovalBatch: BatchTxStepResult;\n otcOrderSubmission: {\n order?: OTCOrderFromApi;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n otcOrderCancelation: {\n txHash?: string;\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCanceled: boolean;\n lastOrderState?: OTCOrderFromApi;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n step?: CancelOrderStepKey;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitOtcOrderResult;\n otcPrice?: UserDefinedOtcPrice;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runOtcOrderFlow\";\n\nexport function useOtcOrderFlow({\n otcPrice,\n preWrapETH,\n}: UseOtcOrderFlowInput): UseOtcOrderFlowResult {\n const logger = useLogger(\"OtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n 3. await Approve tx\n */\n\n const {\n approval,\n approveTxMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: otcPrice?.srcTokenAddress,\n srcAmount: otcPrice?.srcAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n /* 2.2. Or submit Batch tx (Wrap ETH + Approve WETH) */\n const {\n batchWrapAndApprove,\n reset: resetBatchWrapAndApprove,\n canBatchTxs,\n wrapAndApproveBatchResult: wrapAndApprovalBatch,\n } = useBatchWrapAndApprove({\n chainId,\n account,\n logger,\n tradeMode: \"otc\",\n });\n\n /* 4. Build and Submit OTC Order */\n const createOrderMut = useCreateLimitOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create OTC Order error\", error);\n },\n },\n });\n\n const otcOrderSubmission: UseOtcOrderFlowResult[\"otcOrderSubmission\"] = {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /// CANCELATION\n\n const limitOrderQuery = useOTCOrderByHashQuery({\n orderParams: otcOrderSubmission.order?.orderHash,\n });\n\n const cancelOrderEvents = useCancelOtcOrderEventCallbacks(\n otcOrderSubmission.order\n );\n\n const orderChainId = otcOrderSubmission.order?.chainId as\n | SupportedChainId\n | undefined;\n const { forcedChainMatchesWalletChain } = useChainMatches(orderChainId);\n const { mutateAsync: switchChain } = useSwitchChainWithGuard();\n\n const cancelOrderMut = useCancelOtcOrderAndWait({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onMutate: async (variables) => {\n assert(orderChainId, \"orderChainId is undefined\");\n if (!forcedChainMatchesWalletChain) {\n await switchChain({\n chainId: orderChainId,\n });\n }\n cancelOrderEvents.onMutate?.(variables);\n },\n onSuccess: (txReceipt, vars) => {\n logger.log(\"Cancel Order success\", txReceipt);\n\n cancelOrderEvents.onSuccess?.(txReceipt, vars);\n },\n onError: (error, vars) => {\n logger.error(\"Cancel Order error\", error);\n cancelOrderEvents.onError?.(error, vars);\n },\n },\n });\n\n const isCancelTxSucceeded = cancelOrderMut.result?.status === \"success\";\n const isCancelTxReverted = cancelOrderMut.result?.status === \"reverted\";\n\n const lastOrderState =\n limitOrderQuery.data && isCancelTxSucceeded && cancelOrderMut.result\n ? {\n // optimistically update order state to CANCELLED\n // because API won't return the updated order state immediately\n // as it depends on the subgraph indexing\n ...limitOrderQuery.data,\n state: \"CANCELLED\" as const,\n transactionHash: cancelOrderMut.result.transactionHash,\n }\n : limitOrderQuery.data;\n\n const otcOrderCancelation: UseOtcOrderFlowResult[\"otcOrderCancelation\"] = {\n txHash: cancelOrderMut.txHash,\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCanceled: isCancelTxSucceeded,\n lastOrderState,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError || isCancelTxReverted,\n isSuccess: cancelOrderMut.isSuccess && isCancelTxSucceeded,\n error: cancelOrderMut.error,\n step: cancelOrderMut.step,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useOtcReceiverAddressValue();\n const deadline = useOtcDeadline();\n\n const { onOTCOrder } = useWidgetEvents();\n\n const submitOtcOrder = async ({\n onTxSent,\n }: RunOtcOrderOptions = {}): Promise<SubmitOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n createOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n\n // no sense in starting flow without a price data,\n // Otherwise this flow will be stopped by disabling ReviewOrder button in the first place\n assert(otcPrice, \"Otc price data is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n let wrapAndApproveBatch: SubmitTxResult = {};\n\n const allowanceToSet = approval.allowanceToSet;\n\n const { shouldDoApprovalTx, shouldWrapAndApproveBatch } =\n shouldApproveOrBatchWrapAndApprove({\n approval,\n preWrapETH,\n canBatchTxs,\n });\n\n try {\n if (shouldWrapAndApproveBatch) {\n const sendCallsResult = await batchWrapAndApprove({\n approval,\n preWrapETH: {\n wrapAmount: BigInt(otcPrice.srcAmount),\n },\n onTxSent,\n signal,\n });\n\n const lastCallsReceipt =\n sendCallsResult?.receipts?.[sendCallsResult.receipts.length - 1];\n wrapAndApproveBatch = {\n callsId: sendCallsResult?.id,\n callsReceipt: lastCallsReceipt,\n };\n\n logger.log(\"~ wrap and approve batch tx ~ receipt:\", lastCallsReceipt);\n } else if (shouldDoApprovalTx && allowanceToSet) {\n try {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } catch (error) {\n logger.error(\"Approve tx error\", error);\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(otcPrice, \"otcPrice is not available\");\n assert(receiverAddress, \"Receiver address is not set\");\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:request\",\n params: {\n price: otcPrice,\n },\n },\n });\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n signal,\n orderInput: {\n expiry: deadline,\n makerAsset: otcPrice.srcTokenAddress,\n takerAsset: otcPrice.destTokenAddress,\n makerAmount: otcPrice.srcAmount,\n takerAmount: otcPrice.destAmount,\n maker: account,\n taker: receiverAddress,\n },\n });\n\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:sent\",\n params: {\n price: otcPrice,\n order: orderFromAPI,\n },\n },\n });\n\n return {\n tradeFlowType: otcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n wrapAndApproveBatch,\n otcOrder: {\n sentOrder: orderFromAPI,\n },\n otcPrice: otcPrice,\n account,\n receiverAddress,\n };\n } catch (error) {\n logger.error(\"Order submission error\", error);\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:failed\",\n params: {\n price: otcPrice,\n error: error as Error,\n },\n },\n });\n throw error;\n }\n };\n\n const otcOrderMut = useMutation({\n mutationFn: submitOtcOrder,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Order submission success\", data);\n },\n onError: (error) => {\n logger.error(\"Order submission error\", error);\n },\n onSettled: () => {\n logger.log(\"Order submission settled\");\n },\n });\n\n const runOtcOrderFlow = otcOrderMut.mutateAsync;\n const cancelOtcOrder = async () => {\n const orderToCancel = otcOrderSubmission.order;\n assert(orderToCancel, \"No order to cancel\");\n return cancelOrderMut.cancelOtcOrder({\n orderHash: orderToCancel.orderHash,\n onTxSent: ({ chainId, transactionHash, receiptPromise }) => {\n handleTxSent({\n chainId,\n transactionHash,\n action: \"cancelOtcOrder\",\n transactionSpecificData: {\n action: \"cancelOtcOrder\",\n cancelledOrder: orderToCancel,\n },\n receiptPromise,\n });\n cancelOrderEvents.onTxSent?.({\n chainId,\n txHash: transactionHash,\n });\n },\n });\n };\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n otcOrderMut.reset();\n cancelOrderMut.reset();\n resetBatchWrapAndApprove();\n };\n\n const retryFlow = (\n options?: RunOtcOrderOptions\n ): Promise<SubmitOtcOrderResult> => {\n reset();\n return runOtcOrderFlow(options);\n };\n\n /* 5. return result */\n\n let result = otcOrderMut.data;\n if (result && otcOrderCancelation.lastOrderState) {\n result = {\n ...result,\n otcOrder: {\n sentOrder: result.otcOrder.sentOrder,\n lastOrderState: otcOrderCancelation.lastOrderState,\n },\n };\n }\n\n return {\n tradeFlowType: otcOrderFlowType,\n chainId,\n runOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelOtcOrder,\n approval,\n wrapAndApprovalBatch,\n otcOrderSubmission,\n otcOrderCancelation,\n // otcOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: otcOrderMut.isPending,\n isSuccess: otcOrderSubmission.isSuccess, // approval is an optional step\n isError: otcOrderMut.isError,\n error: otcOrderMut.error,\n result,\n otcPrice,\n };\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { useLogger as e } from "../../../core/logger.js";
2
- import { LimitOrderStateChecker as t } from "../queries/utils.js";
2
+ import { OTCOrderStateChecker as t } from "../queries/utils.js";
3
3
  import { isUserCancelledError as n } from "../../swap/tradeFlow/common/errors.js";
4
4
  import { useOtcOrderFlow as r } from "./useOtcOrderFlow.js";
5
5
  import { c as i } from "react-compiler-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"useOtcOrderStep.js","names":["CancelOrderStepKey","OtcOrderStep","OtcOrderStepKey","useOtcOrderFlow","SubmitOtcOrderResult","UseOtcOrderFlowInput","UseOtcOrderFlowResult","useLogger","isUserCancelledError","LimitOrderStateChecker","UseOtcOrderStepResult","startOtcOrder","cancelOtcOrder","reset","cancelFlow","retryFlow","isFlowCancellable","isOrderCancellable","step","orderCancellationStep","error","Error","erroredStep","result","tradeFlowType","useOtcOrderStep","options","$","_c","logger","otcOrderFlow","runOtcOrderFlow","once","preWrapETH","wrapAndApproveBatchHappeningOrNeverHappened","approval","needsApproval","wrapAndApprovalBatch","isPending","isSuccess","approvalHappeningOrNeverHappened","otcOrderSubmission","permitOrApprovalHappened","txHash","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderState","otcOrderCancelation","order","t0","cancellable","has","state","orderHash","log","isError","t1"],"sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderStep.ts"],"sourcesContent":["import type {\n CancelOrderStepKey,\n OtcOrderStep,\n OtcOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useOtcOrderFlow,\n type SubmitOtcOrderResult,\n type UseOtcOrderFlowInput,\n type UseOtcOrderFlowResult,\n} from \"./useOtcOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport { LimitOrderStateChecker } from \"../queries/utils\";\n\ntype UseOtcOrderStepResult = {\n startOtcOrder: UseOtcOrderFlowResult[\"runOtcOrderFlow\"];\n cancelOtcOrder: UseOtcOrderFlowResult[\"cancelOtcOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseOtcOrderFlowResult[\"reset\"];\n cancelFlow: UseOtcOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseOtcOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: OtcOrderStep;\n orderCancellationStep?: CancelOrderStepKey;\n error: Error | null;\n erroredStep?: OtcOrderStepKey;\n result?: SubmitOtcOrderResult;\n tradeFlowType: UseOtcOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useOtcOrderStep(\n options: UseOtcOrderFlowInput\n): UseOtcOrderStepResult {\n const logger = useLogger(\"OtcOrderStep\");\n const otcOrderFlow = useOtcOrderFlow(options);\n\n const startOtcOrder = otcOrderFlow.runOtcOrderFlow;\n const reset = otcOrderFlow.reset;\n const cancelFlow = otcOrderFlow.cancelFlow;\n const retryFlow = otcOrderFlow.retryFlow;\n\n let step: OtcOrderStep | undefined;\n\n const wrapAndApproveBatchHappeningOrNeverHappened =\n options.preWrapETH &&\n otcOrderFlow.approval.needsApproval &&\n (otcOrderFlow.wrapAndApprovalBatch.isPending ||\n !otcOrderFlow.wrapAndApprovalBatch.isSuccess);\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n otcOrderFlow.approval.isPending || !otcOrderFlow.approval.isSuccess;\n\n if (\n otcOrderFlow.approval.needsApproval &&\n (approvalHappeningOrNeverHappened ||\n wrapAndApproveBatchHappeningOrNeverHappened)\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (otcOrderFlow.otcOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!otcOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (otcOrderFlow.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 otcOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const lastOrderState =\n otcOrderFlow.otcOrderCancelation.lastOrderState ||\n otcOrderFlow.otcOrderSubmission.order;\n\n const isOrderCancellable =\n !!lastOrderState && // @TODO fix edge case: this state won't be enough if order was expired while sitting in the drawer\n LimitOrderStateChecker.cancellable.has(lastOrderState.state);\n\n const orderHash = otcOrderFlow.otcOrderSubmission.order?.orderHash;\n\n logger.once.log(\"step\", step, otcOrderFlow, {\n isFlowCancellable,\n orderHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(otcOrderFlow.error)\n ? null\n : otcOrderFlow.error;\n\n let erroredStep: OtcOrderStepKey | undefined;\n\n if (otcOrderFlow.isError) {\n if (otcOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (otcOrderFlow.otcOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startOtcOrder,\n cancelOtcOrder: otcOrderFlow.cancelOtcOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep: otcOrderFlow.otcOrderCancelation.step,\n error,\n erroredStep,\n result: otcOrderFlow.result,\n tradeFlowType: otcOrderFlow.tradeFlowType,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useOtcOrderStep.js","names":["CancelOrderStepKey","OtcOrderStep","OtcOrderStepKey","useOtcOrderFlow","SubmitOtcOrderResult","UseOtcOrderFlowInput","UseOtcOrderFlowResult","useLogger","isUserCancelledError","OTCOrderStateChecker","UseOtcOrderStepResult","startOtcOrder","cancelOtcOrder","reset","cancelFlow","retryFlow","isFlowCancellable","isOrderCancellable","step","orderCancellationStep","error","Error","erroredStep","result","tradeFlowType","useOtcOrderStep","options","$","_c","logger","otcOrderFlow","runOtcOrderFlow","once","preWrapETH","wrapAndApproveBatchHappeningOrNeverHappened","approval","needsApproval","wrapAndApprovalBatch","isPending","isSuccess","approvalHappeningOrNeverHappened","otcOrderSubmission","permitOrApprovalHappened","txHash","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","lastOrderState","otcOrderCancelation","order","t0","cancellable","has","state","orderHash","log","isError","t1"],"sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderStep.ts"],"sourcesContent":["import type {\n CancelOrderStepKey,\n OtcOrderStep,\n OtcOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useOtcOrderFlow,\n type SubmitOtcOrderResult,\n type UseOtcOrderFlowInput,\n type UseOtcOrderFlowResult,\n} from \"./useOtcOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport { OTCOrderStateChecker } from \"../queries/utils\";\n\ntype UseOtcOrderStepResult = {\n startOtcOrder: UseOtcOrderFlowResult[\"runOtcOrderFlow\"];\n cancelOtcOrder: UseOtcOrderFlowResult[\"cancelOtcOrder\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseOtcOrderFlowResult[\"reset\"];\n cancelFlow: UseOtcOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseOtcOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n isOrderCancellable: boolean;\n step?: OtcOrderStep;\n orderCancellationStep?: CancelOrderStepKey;\n error: Error | null;\n erroredStep?: OtcOrderStepKey;\n result?: SubmitOtcOrderResult;\n tradeFlowType: UseOtcOrderFlowResult[\"tradeFlowType\"];\n};\n\nexport function useOtcOrderStep(\n options: UseOtcOrderFlowInput\n): UseOtcOrderStepResult {\n const logger = useLogger(\"OtcOrderStep\");\n const otcOrderFlow = useOtcOrderFlow(options);\n\n const startOtcOrder = otcOrderFlow.runOtcOrderFlow;\n const reset = otcOrderFlow.reset;\n const cancelFlow = otcOrderFlow.cancelFlow;\n const retryFlow = otcOrderFlow.retryFlow;\n\n let step: OtcOrderStep | undefined;\n\n const wrapAndApproveBatchHappeningOrNeverHappened =\n options.preWrapETH &&\n otcOrderFlow.approval.needsApproval &&\n (otcOrderFlow.wrapAndApprovalBatch.isPending ||\n !otcOrderFlow.wrapAndApprovalBatch.isSuccess);\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n otcOrderFlow.approval.isPending || !otcOrderFlow.approval.isSuccess;\n\n if (\n otcOrderFlow.approval.needsApproval &&\n (approvalHappeningOrNeverHappened ||\n wrapAndApproveBatchHappeningOrNeverHappened)\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (otcOrderFlow.otcOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!otcOrderFlow.approval.txHash;\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (otcOrderFlow.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 otcOrderFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const lastOrderState =\n otcOrderFlow.otcOrderCancelation.lastOrderState ||\n otcOrderFlow.otcOrderSubmission.order;\n\n const isOrderCancellable =\n !!lastOrderState && // @TODO fix edge case: this state won't be enough if order was expired while sitting in the drawer\n OTCOrderStateChecker.cancellable.has(lastOrderState.state);\n\n const orderHash = otcOrderFlow.otcOrderSubmission.order?.orderHash;\n\n logger.once.log(\"step\", step, otcOrderFlow, {\n isFlowCancellable,\n orderHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(otcOrderFlow.error)\n ? null\n : otcOrderFlow.error;\n\n let erroredStep: OtcOrderStepKey | undefined;\n\n if (otcOrderFlow.isError) {\n if (otcOrderFlow.approval.isError) {\n erroredStep = \"signature\";\n } else if (otcOrderFlow.otcOrderSubmission.isError) {\n erroredStep = \"order-submission\";\n }\n }\n\n return {\n startOtcOrder,\n cancelOtcOrder: otcOrderFlow.cancelOtcOrder,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n isOrderCancellable,\n step,\n orderCancellationStep: otcOrderFlow.otcOrderCancelation.step,\n error,\n erroredStep,\n result: otcOrderFlow.result,\n tradeFlowType: otcOrderFlow.tradeFlowType,\n };\n}\n"],"mappings":"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"}
@@ -149,6 +149,6 @@ export declare function usePermit2AllowanceQuery({ token, enabled, }: Pick<UsePe
149
149
  readonly outputs: readonly [{
150
150
  readonly type: "bool";
151
151
  }];
152
- }], "allowance", readonly [`0x${string}`, `0x${string}`], bigint>;
152
+ }], "allowance", readonly [owner: `0x${string}`, spender: `0x${string}`], bigint>;
153
153
  export {};
154
154
  //# sourceMappingURL=usePermit2Allowance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePermit2Allowance.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,UAAU,yBAAyB;IACjC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAM,EACN,OAAc,GACf,EAAE,yBAAyB,GAAG,yBAAyB,CAyCvD;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,OAAc,GACf,EAAE,IAAI,CAAC,yBAAyB,EAAE,OAAO,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEAOtD"}
1
+ {"version":3,"file":"usePermit2Allowance.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,UAAU,yBAAyB;IACjC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAM,EACN,OAAc,GACf,EAAE,yBAAyB,GAAG,yBAAyB,CAyCvD;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,OAAc,GACf,EAAE,IAAI,CAAC,yBAAyB,EAAE,OAAO,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kFAOtD"}
@@ -132,5 +132,5 @@ export declare function useTokenFromPermit2AllowanceQuery(): import('wagmi').Use
132
132
  readonly outputs: readonly [{
133
133
  readonly type: "bool";
134
134
  }];
135
- }], "allowance", readonly [`0x${string}`, `0x${string}`], bigint>;
135
+ }], "allowance", readonly [owner: `0x${string}`, spender: `0x${string}`], bigint>;
136
136
  //# sourceMappingURL=useTokenFromPermit2Allowance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTokenFromPermit2Allowance.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.ts"],"names":[],"mappings":"AAGA,wBAAgB,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEAKhD"}
1
+ {"version":3,"file":"useTokenFromPermit2Allowance.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.ts"],"names":[],"mappings":"AAGA,wBAAgB,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kFAKhD"}
@@ -1,6 +1,5 @@
1
- import { BridgePrice } from '@velora-dex/sdk';
2
- import { DeltaOrBridgePrice } from '../../types';
1
+ import { DeltaPrice } from '@velora-dex/sdk';
3
2
  export declare function useSelectedBridgePrice({ price, }: {
4
- price?: DeltaOrBridgePrice;
5
- }): BridgePrice | undefined;
3
+ price?: DeltaPrice;
4
+ }): DeltaPrice | undefined;
6
5
  //# sourceMappingURL=useSelectedBridgePrice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectedBridgePrice.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,GACN,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B,GAAG,WAAW,GAAG,SAAS,CAY1B"}
1
+ {"version":3,"file":"useSelectedBridgePrice.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMlD,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,GACN,EAAE;IACD,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,GAAG,UAAU,GAAG,SAAS,CAYzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectedBridgePrice.js","names":["useAtomValue","BridgePrice","protocolNameAtom","DeltaOrBridgePrice","extractSelectedBridgePrice","isBridgePrice","bridgePreferenceAtom","useSelectedBridgePrice","t0","$","_c","price","protocolName","bridgePreference","t1"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { BridgePrice } from \"@velora-dex/sdk\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport type { DeltaOrBridgePrice } from \"../../types\";\nimport { extractSelectedBridgePrice } from \"./utils\";\nimport { isBridgePrice } from \"../queries/useDeltaPriceQuery\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\n\nexport function useSelectedBridgePrice({\n price,\n}: {\n price?: DeltaOrBridgePrice;\n}): BridgePrice | undefined {\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n // no price available\n if (!price || !isBridgePrice(price)) return;\n\n return extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n}\n"],"mappings":";;;;;;;AAQA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAgC,EAAAC,aAAAH,GAKrCI,IAAqBZ,EAAaE,EAAiB,EACnDW,IAAyBb,EAAaM,EAAqB;CAG3D,IAAI,CAACK,KAAD,CAAWN,EAAcM,EAAM,EAAA;CAAS,IAAAG;CAM1C,OAN0CL,EAAA,OAAAI,KAAAJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAErCE,IAAAV,EAA2B;EAAAO;EAAAC;EAAAC;EAIjC,CAAC,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAK,KAAAA,IAAAL,EAAA,IAJKK"}
1
+ {"version":3,"file":"useSelectedBridgePrice.js","names":["useAtomValue","DeltaPrice","protocolNameAtom","extractSelectedBridgePrice","isBridgePrice","bridgePreferenceAtom","useSelectedBridgePrice","t0","$","_c","price","protocolName","bridgePreference","t1"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { DeltaPrice } from \"@velora-dex/sdk\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport { extractSelectedBridgePrice } from \"./utils\";\nimport { isBridgePrice } from \"../queries/useDeltaPriceQuery\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\n\nexport function useSelectedBridgePrice({\n price,\n}: {\n price?: DeltaPrice;\n}): DeltaPrice | undefined {\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n // no price available, or same-chain (no bridge to select)\n if (!price || !isBridgePrice(price)) return;\n\n return extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n}\n"],"mappings":";;;;;;;AAOA,SAAOM,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAgC,EAAAC,aAAAH,GAKrCI,IAAqBX,EAAaE,EAAiB,EACnDU,IAAyBZ,EAAaK,EAAqB;CAG3D,IAAI,CAACK,KAAD,CAAWN,EAAcM,EAAM,EAAA;CAAS,IAAAG;CAM1C,OAN0CL,EAAA,OAAAI,KAAAJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAErCE,IAAAV,EAA2B;EAAAO;EAAAC;EAAAC;EAIjC,CAAC,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAK,KAAAA,IAAAL,EAAA,IAJKK"}
@@ -1,46 +1,16 @@
1
- import { BridgedDepositResponse, GetSuggestedFeesResponse } from './types';
2
1
  import { QueryMeta } from '@tanstack/react-query';
3
- import { BridgePrice } from '@velora-dex/sdk';
2
+ import { DeltaPrice, DeltaRoute } from '@velora-dex/sdk';
4
3
  import { BridgePreference } from '../../../../../components/widget/TradeParameters/state/bridgePreferences/types';
5
- export type GetBridgedDepositStatusInput = {
6
- depositId: string;
7
- originChainId: number;
8
- };
9
- export declare function getBridgedDepositStatus({ depositId, originChainId, }: GetBridgedDepositStatusInput): Promise<BridgedDepositResponse>;
10
- export declare function isBridgedDepositExecuted(deposit: BridgedDepositResponse): deposit is BridgedDepositResponseSuccess;
11
- export type BridgedDepositResponseSuccess = BridgedDepositResponse & {
12
- status: "filled";
13
- fillTx: string;
14
- };
15
- export type BridgedDepositResponseFailure = BridgedDepositResponse & {
16
- status: "refunded" | "expired";
17
- fillTx: null;
18
- };
19
- export declare function isBridgedDepositFailed(deposit: BridgedDepositResponse): deposit is BridgedDepositResponseFailure;
20
- export declare function isBridgedDepositRefunded(deposit: BridgedDepositResponse): deposit is BridgedDepositResponse & {
21
- status: "refunded";
22
- fillTx: null;
23
- depositRefundTxHash: string;
24
- };
25
- export type GetSuggestedFeesInput = {
26
- originChainId: number;
27
- destinationChainId: number;
28
- inputToken: string;
29
- outputToken: string;
30
- amount: string;
31
- recipient?: string;
32
- message?: string;
33
- relayer?: string;
34
- timestamp?: number;
35
- };
36
- export declare function getSuggestedFees(params: GetSuggestedFeesInput, signal?: AbortSignal): Promise<GetSuggestedFeesResponse>;
37
4
  export type RefetchMetaWithTiming = {
38
5
  startedQueryAt: number;
39
6
  };
40
7
  export declare function isMetaWithTimeStart(meta: QueryMeta): meta is RefetchMetaWithTiming;
8
+ export declare function getAllBridgeRoutes(price: DeltaPrice): DeltaRoute[];
9
+ export declare function findRouteByProtocolName(routes: DeltaRoute[], protocolName: string): DeltaRoute | undefined;
10
+ export declare function findRouteByPreference(routes: DeltaRoute[], preference: BridgePreference): DeltaRoute | undefined;
41
11
  export declare function extractSelectedBridgePrice({ price, protocolName, bridgePreference, }: {
42
- price: BridgePrice;
12
+ price: DeltaPrice;
43
13
  protocolName?: string;
44
14
  bridgePreference: BridgePreference;
45
- }): BridgePrice;
15
+ }): DeltaPrice;
46
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAE1G,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAsB,uBAAuB,CAAC,EAC5C,SAAS,EACT,aAAa,GACd,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAMhE;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,6BAA6B,CAE1C;AAED,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG;IACnE,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG;IACnE,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,6BAA6B,CAE1C;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,sBAAsB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAEA;AAID,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,qBAAqB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CASnC;AAID,MAAM,MAAM,qBAAqB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,GACd,IAAI,IAAI,qBAAqB,CAE/B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,eAqBA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAK1G,MAAM,MAAM,qBAAqB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,GACd,IAAI,IAAI,qBAAqB,CAE/B;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,CAUlE;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAAE,EACpB,YAAY,EAAE,MAAM,GACnB,UAAU,GAAG,SAAS,CAGxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,EAAE,gBAAgB,GAC3B,UAAU,GAAG,SAAS,CAIxB;AAGD,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,GAAG,UAAU,CAeb"}