@velora-dex/widget 0.0.12 → 0.0.14

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 (278) hide show
  1. package/dist/components/ui/drawer.d.ts +1 -1
  2. package/dist/components/ui/drawer.d.ts.map +1 -1
  3. package/dist/components/ui/drawer.js +1 -1
  4. package/dist/components/ui/drawer.js.map +1 -1
  5. package/dist/components/ui/dropdown-menu.js +25 -19
  6. package/dist/components/ui/dropdown-menu.js.map +1 -1
  7. package/dist/components/ui/vaul/browser.d.ts +8 -0
  8. package/dist/components/ui/vaul/browser.d.ts.map +1 -0
  9. package/dist/components/ui/vaul/browser.js +37 -0
  10. package/dist/components/ui/vaul/browser.js.map +1 -0
  11. package/dist/components/ui/vaul/constants.d.ts +12 -0
  12. package/dist/components/ui/vaul/constants.d.ts.map +1 -0
  13. package/dist/components/ui/vaul/constants.js +24 -0
  14. package/dist/components/ui/vaul/constants.js.map +1 -0
  15. package/dist/components/ui/vaul/context.d.ts +38 -0
  16. package/dist/components/ui/vaul/context.d.ts.map +1 -0
  17. package/dist/components/ui/vaul/context.js +72 -0
  18. package/dist/components/ui/vaul/context.js.map +1 -0
  19. package/dist/components/ui/vaul/helpers.d.ts +17 -0
  20. package/dist/components/ui/vaul/helpers.d.ts.map +1 -0
  21. package/dist/components/ui/vaul/helpers.js +87 -0
  22. package/dist/components/ui/vaul/helpers.js.map +1 -0
  23. package/dist/components/ui/vaul/index.d.ts +140 -0
  24. package/dist/components/ui/vaul/index.d.ts.map +1 -0
  25. package/dist/components/ui/vaul/index.js +807 -0
  26. package/dist/components/ui/vaul/index.js.map +1 -0
  27. package/dist/components/ui/vaul/types.d.ts +7 -0
  28. package/dist/components/ui/vaul/types.d.ts.map +1 -0
  29. package/dist/components/ui/vaul/use-composed-refs.d.ts +14 -0
  30. package/dist/components/ui/vaul/use-composed-refs.d.ts.map +1 -0
  31. package/dist/components/ui/vaul/use-composed-refs.js +28 -0
  32. package/dist/components/ui/vaul/use-composed-refs.js.map +1 -0
  33. package/dist/components/ui/vaul/use-controllable-state.d.ts +9 -0
  34. package/dist/components/ui/vaul/use-controllable-state.d.ts.map +1 -0
  35. package/dist/components/ui/vaul/use-controllable-state.js +134 -0
  36. package/dist/components/ui/vaul/use-controllable-state.js.map +1 -0
  37. package/dist/components/ui/vaul/use-position-fixed.d.ts +19 -0
  38. package/dist/components/ui/vaul/use-position-fixed.d.ts.map +1 -0
  39. package/dist/components/ui/vaul/use-position-fixed.js +109 -0
  40. package/dist/components/ui/vaul/use-position-fixed.js.map +1 -0
  41. package/dist/components/ui/vaul/use-prevent-scroll.d.ts +18 -0
  42. package/dist/components/ui/vaul/use-prevent-scroll.d.ts.map +1 -0
  43. package/dist/components/ui/vaul/use-prevent-scroll.js +182 -0
  44. package/dist/components/ui/vaul/use-prevent-scroll.js.map +1 -0
  45. package/dist/components/ui/vaul/use-scale-background.d.ts +2 -0
  46. package/dist/components/ui/vaul/use-scale-background.d.ts.map +1 -0
  47. package/dist/components/ui/vaul/use-scale-background.js +68 -0
  48. package/dist/components/ui/vaul/use-scale-background.js.map +1 -0
  49. package/dist/components/ui/vaul/use-snap-points.d.ts +32 -0
  50. package/dist/components/ui/vaul/use-snap-points.d.ts.map +1 -0
  51. package/dist/components/ui/vaul/use-snap-points.js +222 -0
  52. package/dist/components/ui/vaul/use-snap-points.js.map +1 -0
  53. package/dist/components/web3/AccountButton.d.ts.map +1 -1
  54. package/dist/components/web3/AccountButton.js +26 -30
  55. package/dist/components/web3/AccountButton.js.map +1 -1
  56. package/dist/components/web3/ConnectWallets/index.d.ts.map +1 -1
  57. package/dist/components/web3/ConnectWallets/index.js +12 -64
  58. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  59. package/dist/components/widget/AppHeader/ActivityButton.d.ts +2 -0
  60. package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +1 -0
  61. package/dist/components/widget/AppHeader/ActivityButton.js +46 -0
  62. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -0
  63. package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
  64. package/dist/components/widget/AppHeader/AppHeader.js +35 -29
  65. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  66. package/dist/components/widget/Drawer/index.d.ts +1 -1
  67. package/dist/components/widget/Drawer/index.d.ts.map +1 -1
  68. package/dist/components/widget/Drawer/index.js +37 -30
  69. package/dist/components/widget/Drawer/index.js.map +1 -1
  70. package/dist/components/widget/Informative/Informative.d.ts +7 -0
  71. package/dist/components/widget/Informative/Informative.d.ts.map +1 -0
  72. package/dist/components/widget/Informative/Informative.js +33 -0
  73. package/dist/components/widget/Informative/Informative.js.map +1 -0
  74. package/dist/components/widget/PoweredBy/PoweredBy.d.ts +2 -0
  75. package/dist/components/widget/PoweredBy/PoweredBy.d.ts.map +1 -0
  76. package/dist/components/widget/PoweredBy/PoweredBy.js +31 -0
  77. package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -0
  78. package/dist/components/widget/PoweredBy/assets/velora.svg.js +12 -0
  79. package/dist/components/widget/PoweredBy/assets/velora.svg.js.map +1 -0
  80. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +35 -39
  81. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  82. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +1 -1
  83. package/dist/components/widget/SelectToken/SelectTokenButton.js +55 -65
  84. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  85. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
  86. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +1 -0
  87. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  88. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  89. package/dist/components/widget/TokenInput/index.js +133 -103
  90. package/dist/components/widget/TokenInput/index.js.map +1 -1
  91. package/dist/components/widget/TokenInput/types.d.ts +4 -2
  92. package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
  93. package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
  94. package/dist/components/widget/TradeOverview/Stepper.js +38 -3
  95. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  96. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts +2 -1
  97. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
  98. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +30 -29
  99. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  100. package/dist/hooks/gas/config.d.ts +6 -0
  101. package/dist/hooks/gas/config.d.ts.map +1 -0
  102. package/dist/hooks/gas/config.js +53 -0
  103. package/dist/hooks/gas/config.js.map +1 -0
  104. package/dist/hooks/gas/types.d.ts +43 -0
  105. package/dist/hooks/gas/types.d.ts.map +1 -0
  106. package/dist/hooks/gas/useGasPrices.d.ts +7 -0
  107. package/dist/hooks/gas/useGasPrices.d.ts.map +1 -0
  108. package/dist/hooks/gas/useGasPrices.js +118 -0
  109. package/dist/hooks/gas/useGasPrices.js.map +1 -0
  110. package/dist/hooks/gas/utils.d.ts +8 -0
  111. package/dist/hooks/gas/utils.d.ts.map +1 -0
  112. package/dist/hooks/gas/utils.js +21 -0
  113. package/dist/hooks/gas/utils.js.map +1 -0
  114. package/dist/hooks/getCode/useIsAccountContract.d.ts +2 -0
  115. package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -0
  116. package/dist/hooks/getCode/useIsAccountContract.js +34 -0
  117. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -0
  118. package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts +27 -0
  119. package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts.map +1 -0
  120. package/dist/hooks/permit/hooks/useGetPermitInfo.js +98 -0
  121. package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +1 -0
  122. package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts +31 -0
  123. package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts.map +1 -0
  124. package/dist/hooks/permit/hooks/useGetSafePermitInfo.js +129 -0
  125. package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +1 -0
  126. package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts +38 -0
  127. package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts.map +1 -0
  128. package/dist/hooks/permit/hooks/usePermit1Nonce.js +153 -0
  129. package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +1 -0
  130. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts +18 -0
  131. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts.map +1 -0
  132. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js +109 -0
  133. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +1 -0
  134. package/dist/hooks/permit/hooks/useSignPermit.d.ts +13 -0
  135. package/dist/hooks/permit/hooks/useSignPermit.d.ts.map +1 -0
  136. package/dist/hooks/permit/hooks/useSignPermit.js +103 -0
  137. package/dist/hooks/permit/hooks/useSignPermit.js.map +1 -0
  138. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts +50 -0
  139. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts.map +1 -0
  140. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js +338 -0
  141. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +1 -0
  142. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts +10 -0
  143. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts.map +1 -0
  144. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js +69 -0
  145. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +1 -0
  146. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts +10 -0
  147. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts.map +1 -0
  148. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js +63 -0
  149. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +1 -0
  150. package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts +16 -0
  151. package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts.map +1 -0
  152. package/dist/hooks/permit/hooks/useTryToSignPermit1.js +94 -0
  153. package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +1 -0
  154. package/dist/hooks/permit/utils/abi.d.ts +219 -0
  155. package/dist/hooks/permit/utils/abi.d.ts.map +1 -0
  156. package/dist/hooks/permit/utils/abi.js +204 -0
  157. package/dist/hooks/permit/utils/abi.js.map +1 -0
  158. package/dist/hooks/permit/utils/constants.d.ts +224 -0
  159. package/dist/hooks/permit/utils/constants.d.ts.map +1 -0
  160. package/dist/hooks/permit/utils/constants.js +229 -0
  161. package/dist/hooks/permit/utils/constants.js.map +1 -0
  162. package/dist/hooks/permit/utils/construct.d.ts +161 -0
  163. package/dist/hooks/permit/utils/construct.d.ts.map +1 -0
  164. package/dist/hooks/permit/utils/construct.js +227 -0
  165. package/dist/hooks/permit/utils/construct.js.map +1 -0
  166. package/dist/hooks/permit/utils/detect.d.ts +35 -0
  167. package/dist/hooks/permit/utils/detect.d.ts.map +1 -0
  168. package/dist/hooks/permit/utils/detect.js +241 -0
  169. package/dist/hooks/permit/utils/detect.js.map +1 -0
  170. package/dist/hooks/permit/utils/domainSeparator.d.ts +44 -0
  171. package/dist/hooks/permit/utils/domainSeparator.d.ts.map +1 -0
  172. package/dist/hooks/permit/utils/domainSeparator.js +216 -0
  173. package/dist/hooks/permit/utils/domainSeparator.js.map +1 -0
  174. package/dist/hooks/permit/utils/encodeArgs.d.ts +11 -0
  175. package/dist/hooks/permit/utils/encodeArgs.d.ts.map +1 -0
  176. package/dist/hooks/permit/utils/encodeArgs.js +29 -0
  177. package/dist/hooks/permit/utils/encodeArgs.js.map +1 -0
  178. package/dist/hooks/permit/utils/trySignPermit1.d.ts +42 -0
  179. package/dist/hooks/permit/utils/trySignPermit1.d.ts.map +1 -0
  180. package/dist/hooks/permit/utils/trySignPermit1.js +283 -0
  181. package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -0
  182. package/dist/hooks/permit/utils/types.d.ts +77 -0
  183. package/dist/hooks/permit/utils/types.d.ts.map +1 -0
  184. package/dist/hooks/permit/utils/utils.d.ts +15 -0
  185. package/dist/hooks/permit/utils/utils.d.ts.map +1 -0
  186. package/dist/hooks/permit/utils/utils.js +44 -0
  187. package/dist/hooks/permit/utils/utils.js.map +1 -0
  188. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +1 -1
  189. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  190. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts +1 -1
  191. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts.map +1 -1
  192. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js +94 -0
  193. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -0
  194. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +1 -1
  195. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  196. package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -0
  197. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  198. package/dist/hooks/swap/prices/useSwapPrices.js +43 -29
  199. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  200. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts +2 -10
  201. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts.map +1 -1
  202. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +10 -10
  203. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  204. package/dist/hooks/swap/tradeFlow/common/types.d.ts +15 -0
  205. package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
  206. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -1
  207. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  208. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +433 -268
  209. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  210. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  211. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +4 -1
  212. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  213. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -1
  214. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  215. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +411 -245
  216. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  217. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  218. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +4 -1
  219. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  220. package/dist/hooks/tokens/allowance/types.d.ts +2 -0
  221. package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
  222. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +3 -1
  223. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
  224. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +4 -2
  225. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  226. package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts +1 -1
  227. package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts.map +1 -1
  228. package/dist/hooks/tokens/allowance/useTokenAllowance.js +11 -8
  229. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  230. package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts +1 -0
  231. package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
  232. package/dist/hooks/tokens/balances/useInvalidateTokenData.js +32 -5
  233. package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
  234. package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
  235. package/dist/hooks/txs/mutations/useSendTx.js +48 -44
  236. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  237. package/dist/hooks/useIsCrosschainPossible.d.ts +12 -0
  238. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -0
  239. package/dist/hooks/useIsCrosschainPossible.js +68 -0
  240. package/dist/hooks/useIsCrosschainPossible.js.map +1 -0
  241. package/dist/index.d.ts +0 -1
  242. package/dist/index.d.ts.map +1 -1
  243. package/dist/index.js +0 -1
  244. package/dist/index.js.map +1 -1
  245. package/dist/lib/utils/delta.d.ts +13 -0
  246. package/dist/lib/utils/delta.d.ts.map +1 -0
  247. package/dist/lib/utils/delta.js +35 -0
  248. package/dist/lib/utils/delta.js.map +1 -0
  249. package/dist/lib/utils/explorer.d.ts +2 -0
  250. package/dist/lib/utils/explorer.d.ts.map +1 -1
  251. package/dist/lib/utils/explorer.js +15 -1
  252. package/dist/lib/utils/explorer.js.map +1 -1
  253. package/dist/styles/global.css.js +4 -0
  254. package/dist/styles/global.css.js.map +1 -0
  255. package/dist/styles.css +194 -3411
  256. package/dist/test/Configurator.d.ts.map +1 -1
  257. package/dist/tokens/defaultTokens.js.map +1 -1
  258. package/dist/widget/Updaters.d.ts.map +1 -1
  259. package/dist/widget/Updaters.js +4 -0
  260. package/dist/widget/Updaters.js.map +1 -1
  261. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts +9 -0
  262. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -0
  263. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +81 -0
  264. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -0
  265. package/dist/widget/index.d.ts.map +1 -1
  266. package/dist/widget/index.js +303 -259
  267. package/dist/widget/index.js.map +1 -1
  268. package/dist/widget/inputs/hooks/types.d.ts +4 -0
  269. package/dist/widget/inputs/hooks/types.d.ts.map +1 -0
  270. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts +3 -1
  271. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  272. package/dist/widget/inputs/hooks/useTokenFromInputProps.js +160 -99
  273. package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  274. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts +2 -1
  275. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  276. package/dist/widget/inputs/hooks/useTokenToInputProps.js +136 -105
  277. package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
  278. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { BridgePrice, DeltaPrice } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type { DeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type { ApprovalFlowResult, SubmitTxResult } from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { useIsContractAtAddress } from \"@/hooks/getCode/useIsContractAtAddress\";\nimport type { OrderSentObject, TxSentObject } from \"@/lib/utils/toasts\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: \"deltaOrder\";\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: DeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\nexport type UseDeltaFlowResult = {\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n approval: ApprovalFlowResult;\n deltaOrderSubmission: {\n order?: DeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n deltaOrderExecution: {\n sentOrder?: DeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const chainId = useChainId();\n\n /* 1. Get allowance for tokenFrom */\n\n const allowance = useGenericTokenAllowanceMin({\n tokenAddress: deltaPrice?.srcToken,\n amountToApproveInWei: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n });\n\n /* 2. submit Approve tx if necessary */\n\n const approveTxMut = useApprove({\n token: deltaPrice?.srcToken ? { address: deltaPrice.srcToken } : undefined,\n allowanceData: { allowanceToSet: allowance.allowanceToSet },\n spender: allowance.spender,\n onSuccess: () => {\n console.log(\"Approve tx success\");\n },\n onError: (error) => {\n console.error(\"Approve tx error\", error);\n },\n });\n\n /* 3. await Approve tx */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const approval: UseDeltaFlowResult[\"approval\"] = {\n /* allowance fetching */\n needsApproval: allowance.needsApproval,\n allowanceToSet: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowance.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowance.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowance.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess: !allowance.needsApproval || approveTxMined.isSuccess, // final success\n error: allowance.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n /* 4. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n console.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n console.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: createOrderMut.data?.id,\n onAuctionSuccess: (order) => {\n console.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n console.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n console.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n console.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: createOrderMut.data,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted();\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const destChainId =\n deltaPrice && \"bridge\" in deltaPrice\n ? deltaPrice.bridge.destinationChainId\n : chainId;\n\n const { data: isContractAtAddress } = useIsContractAtAddress({\n address: receiverAddress,\n chainId: destChainId as SupportedChainId,\n });\n\n const { resolvedSlippage } = useSlippage();\n\n const reset = () => {\n approveTxMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n };\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations,\n // otherwise we'll have previous data (txs) as mutation results\n reset();\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 if (approval.needsApproval) {\n approveTxHash = await approveTxMut.approveAsync();\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 console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(deltaPrice, \"Delta price is not available\");\n\n const beneficiaryType = receiverAddress\n ? isContractAtAddress\n ? \"SmartContract\"\n : \"EOA\"\n : undefined;\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPrice.srcAmount,\n destAmount: deltaPrice.destAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n // partner: \"\" // @TODO fill in when available\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n beneficiaryType,\n srcToken: deltaPrice.srcToken,\n destToken: deltaPrice.destToken,\n // permit: \"0x\", // @TODO fill in when Permit support is added\n destChainId:\n \"bridge\" in deltaPrice\n ? deltaPrice.bridge.destinationChainId\n : undefined,\n deltaPrice,\n // @TODO if necessary to support add more params\n // partner: \"\", // @TODO fill in when available\n ...amountsAfterSlippage,\n },\n });\n\n // this func won't refetch on interval to check Order.status changes,\n // will just return very first fetch result.\n // but useWatchDeltaAuction will correctly await an order execution\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"deltaOrder\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice,\n // @TODO add whatever else may be relevant\n account,\n };\n };\n\n const invalidateBalancesAndAllowances = useInvalidateTokenDataQuery();\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n console.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n console.log(\"Delta Order settled, invalidating balances and allowances\");\n invalidateBalancesAndAllowances();\n },\n });\n\n /* 7. return result */\n return {\n chainId,\n runDeltaOrderFlow: deltaOrderMut.mutateAsync,\n reset,\n cancelFlow,\n approval,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n };\n}\n"],"names":["DELTA_ORDER_MUTATION_KEY","useDeltaFlow","t0","$","_c","deltaPrice","chainId","useChainId","t1","srcToken","t2","srcAmount","t3","tokenAddress","amountToApproveInWei","spenderContractType","allowance","useGenericTokenAllowanceMin","t4","address","undefined","t5","allowanceToSet","t6","spender","token","allowanceData","onSuccess","_temp","onError","_temp2","approveTxMut","useApprove","t7","txHash","hash","approveTxMined","useAwaitTx","t8","t9","needsApproval","isPending","isLoading","t10","isError","t11","isSuccess","t12","error","t13","isLoadingPrerequisites","data","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","account","useAccount","t14","minClient","useMinViemClient","t15","Symbol","for","_temp3","_temp4","t16","client","mutationOptions","createOrderMut","useCreateDeltaOrder","t17","order","isCreatingOrder","isOrderSent","deltaOrderSubmission","t18","id","t19","orderId","onAuctionSuccess","_temp5","onAuctionFailure","_temp6","onUpdatedAuction","_temp7","onTimeoutGettingOrder","_temp8","watchOrderExecution","useWatchDeltaAuction","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","t20","t21","t22","t23","isRefetching","t24","t25","t26","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","deltaOrderExecution","ensureOrderExecuted","useEnsureDeltaOrderExecuted","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t27","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","destChainId","bridge","destinationChainId","t28","t29","isContractAtAddress","useIsContractAtAddress","resolvedSlippage","useSlippage","reset","deltaOrderMut","submitDeltaOrder","t30","onTxSent","onOrderSent","abortController","AbortController","signal","approveTxHash","approveTxReceipt","approveAsync","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","assert","beneficiaryType","amountsAfterSlippage","applySlippage","destAmount","orderFromAPI","mutateAsync","orderInput","owner","beneficiary","destToken","lastOrderStatePromise","tradeFlowType","approve","deltaOrder","invalidateBalancesAndAllowances","useInvalidateTokenDataQuery","t31","useMutation","mutationFn","mutationKey","_temp9","_temp0","onSettled","t32","t33","runDeltaOrderFlow","result","error_1","data_0","order_3","order_2","order_1","order_0","error_0"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { BridgePrice, DeltaPrice } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type { DeltaOrderFromAPI } from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { useIsContractAtAddress } from \"@/hooks/getCode/useIsContractAtAddress\";\nimport type { OrderSentObject, TxSentObject } from \"@/lib/utils/toasts\";\nimport {\n useMarkPermit1NonceAsUsed,\n useSignTokenPermit1,\n type SignedPermitResult,\n} from \"@/hooks/permit/hooks/useSignTokenFromPermit1\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: \"deltaOrder\";\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: DeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\nexport type UseDeltaFlowResult = {\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderSubmission: {\n order?: DeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n deltaOrderExecution: {\n sentOrder?: DeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const chainId = useChainId();\n\n /* 1. Get allowance for tokenFrom */\n\n const allowance = useGenericTokenAllowanceMin({\n tokenAddress: deltaPrice?.srcToken,\n amountToApproveInWei: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n chainId,\n });\n\n /* 2.1. submit Approve tx if necessary */\n\n const approveTxMut = useApprove({\n token: deltaPrice?.srcToken ? { address: deltaPrice.srcToken } : undefined,\n allowanceData: { allowanceToSet: allowance.allowanceToSet },\n spender: allowance.spender,\n onSuccess: () => {\n console.log(\"Approve tx success\");\n },\n onError: (error) => {\n console.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. sign Permit1 */\n\n const signPermit1Mut = useSignTokenPermit1({\n token: {\n address: deltaPrice?.srcToken as Address,\n network: chainId,\n },\n value: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n enabled: allowance.needsApproval,\n onSuccess: (signature) => {\n console.log(\"Permit1 signature\", signature);\n },\n onError: (error) => {\n console.error(\"Permit1 error\", error);\n },\n });\n\n const signPermit: UseDeltaFlowResult[\"signPermit\"] = {\n isPermitSupported: signPermit1Mut.isPermitSupported,\n isPermitReadyToSign: signPermit1Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n isLoadingPermitData: signPermit1Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit1Mut.permitSigningState.isPending,\n isPermitSigned: signPermit1Mut.permitSigningState.isSuccess,\n signature: signPermit1Mut.signature,\n permitEncodedArgs: signPermit1Mut.permit1EncodedArgs,\n isPending: signPermit1Mut.isPending,\n isSuccess: signPermit1Mut.isSuccess,\n isError: signPermit1Mut.isError,\n error: signPermit1Mut.error,\n };\n\n /* 3. await Approve tx */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const approval: UseDeltaFlowResult[\"approval\"] = {\n /* allowance fetching */\n needsApproval: allowance.needsApproval,\n allowanceToSet: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowance.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowance.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowance.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess: !allowance.needsApproval || approveTxMined.isSuccess, // final success\n error: allowance.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n /* 4. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n console.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n console.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: createOrderMut.data?.id,\n onAuctionSuccess: (order) => {\n console.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n console.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n console.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n console.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: createOrderMut.data,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted();\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const destChainId =\n deltaPrice && \"bridge\" in deltaPrice\n ? deltaPrice.bridge.destinationChainId\n : chainId;\n\n const { data: isContractAtAddress } = useIsContractAtAddress({\n address: receiverAddress,\n chainId: destChainId as SupportedChainId,\n });\n\n const { resolvedSlippage } = useSlippage();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1NonceAsUsed({\n chainId,\n });\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermit1Mut.reset();\n createOrderMut.reset();\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 if (approval.needsApproval) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n approveTxHash = await approveTxMut.approveAsync();\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 console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit1\n signedPermitResult = await signPermit1Mut.signPermit1Async();\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(deltaPrice, \"Delta price is not available\");\n\n const beneficiaryType = receiverAddress\n ? isContractAtAddress\n ? \"SmartContract\"\n : \"EOA\"\n : undefined;\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPrice.srcAmount,\n destAmount: deltaPrice.destAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n const orderFromAPI = await createOrderMut.mutateAsync({\n // partner: \"\" // @TODO fill in when available\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n beneficiaryType,\n srcToken: deltaPrice.srcToken,\n destToken: deltaPrice.destToken,\n permit: signedPermitResult?.permit1EncodedArgs,\n destChainId:\n \"bridge\" in deltaPrice\n ? deltaPrice.bridge.destinationChainId\n : undefined,\n deltaPrice,\n // @TODO if necessary to support add more params\n // partner: \"\", // @TODO fill in when available\n ...amountsAfterSlippage,\n },\n });\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n try {\n // this func won't refetch on interval to check Order.status changes,\n // will just return very first fetch result.\n // but useWatchDeltaAuction will correctly await an order execution\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"deltaOrder\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n console.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n console.log(\"Delta Order settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n },\n });\n\n const reset = () => {\n approveTxMut.reset();\n signPermit1Mut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n };\n\n /* 7. return result */\n return {\n chainId,\n runDeltaOrderFlow: deltaOrderMut.mutateAsync,\n reset,\n cancelFlow,\n approval,\n signPermit,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n };\n}\n"],"names":["DELTA_ORDER_MUTATION_KEY","useDeltaFlow","t0","$","_c","deltaPrice","chainId","useChainId","t1","srcToken","t2","srcAmount","t3","tokenAddress","amountToApproveInWei","spenderContractType","allowance","useGenericTokenAllowanceMin","t4","address","undefined","t5","allowanceToSet","t6","spender","token","allowanceData","onSuccess","_temp","onError","_temp2","approveTxMut","useApprove","t7","t8","network","t9","t10","needsApproval","value","enabled","_temp3","_temp4","signPermit1Mut","useSignTokenPermit1","t11","t12","error","isError","isPending","isPermitReadyToSign","isPermitSupported","isSuccess","permit1EncodedArgs","permitFetchingState","permitSigningState","signature","amountToPermit","isLoadingPermitData","isSigningPermit","isPermitSigned","permitEncodedArgs","signPermit","t13","txHash","hash","approveTxMined","useAwaitTx","t14","t15","isLoading","t16","t17","t18","t19","isLoadingPrerequisites","data","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","account","useAccount","t20","minClient","useMinViemClient","t21","Symbol","for","_temp5","_temp6","t22","client","mutationOptions","createOrderMut","useCreateDeltaOrder","t23","order","isCreatingOrder","isOrderSent","deltaOrderSubmission","t24","id","t25","orderId","onAuctionSuccess","_temp7","onAuctionFailure","_temp8","onUpdatedAuction","_temp9","onTimeoutGettingOrder","_temp0","watchOrderExecution","useWatchDeltaAuction","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","t26","t27","t28","t29","isRefetching","t30","t31","t32","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","deltaOrderExecution","ensureOrderExecuted","useEnsureDeltaOrderExecuted","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t33","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","destChainId","bridge","destinationChainId","t34","t35","isContractAtAddress","useIsContractAtAddress","resolvedSlippage","useSlippage","t36","markNonceAsUsed","clearNonce","useMarkPermit1NonceAsUsed","t37","t38","onTxSent","onOrderSent","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","approveAsync","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","signPermit1Async","assert","beneficiaryType","amountsAfterSlippage","applySlippage","destAmount","orderFromAPI","mutateAsync","orderInput","owner","beneficiary","destToken","permit","signedPermitData","lastOrderStatePromise","tradeFlowType","approve","deltaOrder","t39","submitDeltaOrder","invalidateTokenData","useInvalidateTokenDataQuery","nonces","t40","mutationFn","mutationKey","_temp1","_temp10","onSettled","deltaOrderMut","useMutation","t41","t42","t43","runDeltaOrderFlow","result","error_3","data_0","order_3","order_2","order_1","order_0","error_1","error_0"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAKxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAExD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAIF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,CA4DxB"}
1
+ {"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAKxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAExD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAIF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,CA+ExB"}
@@ -21,8 +21,11 @@ function useDeltaSwapStep(options) {
21
21
  const reset = deltaFlow.reset;
22
22
  const cancelFlow = deltaFlow.cancelFlow;
23
23
  let step;
24
+ const permitSigningHappeningOrNeverHappened = deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;
24
25
  const approvalHappeningOrNeverHappened = deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;
25
- if (deltaFlow.approval.needsApproval && approvalHappeningOrNeverHappened) {
26
+ const willUsePermit = deltaFlow.approval.needsApproval && deltaFlow.signPermit.isPermitSupported && deltaFlow.signPermit.isPermitReadyToSign;
27
+ const permitOrApprovalHappeningOrNeverHappened = willUsePermit ? permitSigningHappeningOrNeverHappened : approvalHappeningOrNeverHappened;
28
+ if (deltaFlow.approval.needsApproval && permitOrApprovalHappeningOrNeverHappened) {
26
29
  step = "approve-spending";
27
30
  } else {
28
31
  if (deltaFlow.deltaOrderSubmission.isPending) {
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type { DeltaOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { createLogger } from \"@/lib/utils\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n isCancellable: boolean;\n step?: DeltaOrderStepKey;\n explorerLink?: string;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n};\n\nconst logger = createLogger(\"DeltaSwapStep\");\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n\n let step: DeltaOrderStepKey | undefined;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n if (deltaFlow.approval.needsApproval && approvalHappeningOrNeverHappened) {\n step = \"approve-spending\";\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n step = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n step = \"order-execution\";\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"auction\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned = step === \"auction\";\n\n const isCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n return {\n startDeltaSwap,\n reset,\n cancelFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n result: deltaFlow.result,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","step","approvalHappeningOrNeverHappened","approval","isPending","isSuccess","needsApproval","deltaOrderSubmission","deltaOrderExecution","approvalIsStarted","isTxPending","isOrderBeingSigned","isCancellable","orderId","order","id","explorerLink","constructExplorerOrderDetailsLink","undefined","t0","error","isUserCancelledError","t1","result"],"mappings":";;;;;;;;;;;;;;;;AAyBO,SAAAA,iBAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAGL,EAAA,MAAAC,SAAAA,GAAkBC,aAAaJ,OAAO,CAAA;AAEtC,EAAA,MAAAK,iBAAuBF,SAAAA,CAASG,iBAAAA;AAChC,EAAA,MAAAC,QAAcJ,SAAAA,CAASI,KAAAA;AACvB,EAAA,MAAAC,aAAmBL,SAAAA,CAASK,UAAAA;AAExBC,EAAAA,IAAAA,IAAAA;AAEJ,EAAA,MAAAC,mCAGEP,SAAAA,CAASQ,QAAAA,CAAAC,SAAAA,IAAA,CAAwBT,UAASQ,QAAAA,CAAAE,SAAAA;AAAoB,EAAA,IAE5DV,SAAAA,CAASQ,QAAAA,CAAAG,aAAAA,IAA2BJ,gCAAAA,EAAgC;AACtED,IAAAA,IAAAA,GAAOA,kBAAAA;AAAAA,GAAH,MAAA;AAAA,IAAA,IACKN,SAAAA,CAASY,qBAAAH,SAAAA,EAAA;AAClBH,MAAAA,IAAAA,GAAOA,SAAAA;AAAAA,KAAH,MAAA;AAAA,MAAA,IACKN,SAAAA,CAASa,oBAAAJ,SAAAA,EAAA;AAClBH,QAAAA,IAAAA,GAAOA,iBAAAA;AAAAA,OAAH,MAAA;AAAA,QAAA,IACKN,UAASS,SAAAA,EAAA;AAGlBH,UAAAA,IAAAA,GAAOA,SAAAA;AAAAA;AAAH;AAAA;AAAA;AAGN,EAAA,MAAAQ,iBAAAA,GACER,IAAAA,KAAS,kBAAA,IAAsBN,SAAAA,CAASQ,QAAAA,CAAAO,WAAAA;AAE1C,EAAA,MAAAC,qBAA2BV,IAAAA,KAAS,SAAA;AAEpC,EAAA,MAAAW,gBAGEH,iBAAAA,IAAqBE,kBAAAA;AAEvB,EAAA,MAAAE,OAAAA,GAAgBlB,SAAAA,CAASY,oBAAAA,CAAAO,KAAAA,EAAAC,EAAAA;AAAgC,EAAA,IAAAC,YAAAA;AAAA,EAAA,IAAAvB,CAAAA,CAAA,CAAA,CAAA,KAAAE,SAAAA,IAAAF,EAAA,CAAA,CAAA,KAAAmB,aAAAA,IAAAnB,CAAAA,CAAA,CAAA,CAAA,KAAAoB,OAAAA,IAAApB,CAAAA,QAAAQ,IAAAA,EAAA;AACzDe,IAAAA,YAAAA,GAAqBH,OAAAA,GACjBI,iCAAAA,CAAkCJ,OAAO,CAAA,GAACK,MAAAA;AAO5CzB,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAmB,aAAAA;AAAAnB,IAAAA,CAAAA,MAAAoB,OAAAA;AAAApB,IAAAA,CAAAA,MAAAQ,IAAAA;AAAAR,IAAAA,CAAAA,MAAAuB,YAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,YAAAA,GAAAvB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,IAAA0B,EAAAA;AAAA,EAAA,IAAA1B,CAAAA,CAAA,CAAA,CAAA,KAAAE,SAAAA,CAAAyB,KAAAA,EAAA;AAGYD,IAAAA,EAAAA,GAAAE,oBAAAA,CAAqB1B,SAAAA,CAASyB,KAAM,CAAA,GAAC,OAAUzB,SAAAA,CAASyB,KAAAA;AAAM3B,IAAAA,CAAAA,CAAA,CAAA,IAAAE,SAAAA,CAAAyB,KAAAA;AAAA3B,IAAAA,CAAAA,MAAA0B,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,CAAA,CAAA;AAAA;AAA5E,EAAA,MAAA2B,KAAAA,GAAcD,EAAAA;AAA+D,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAA7B,CAAAA,CAAA,CAAA,CAAA,KAAAO,UAAAA,IAAAP,EAAA,CAAA,CAAA,KAAAE,SAAAA,CAAA4B,MAAAA,IAAA9B,CAAAA,CAAA,CAAA,CAAA,KAAA2B,KAAAA,IAAA3B,EAAA,EAAA,CAAA,KAAAuB,YAAAA,IAAAvB,CAAAA,CAAA,EAAA,CAAA,KAAAmB,aAAAA,IAAAnB,CAAAA,CAAA,EAAA,CAAA,KAAAM,KAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAI,cAAAA,IAAAJ,CAAAA,SAAAQ,IAAAA,EAAA;AAEtEqB,IAAAA,EAAAA,GAAA;AAAA,MAAAzB,cAAAA;AAAAA,MAAAE,KAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAY,aAAAA;AAAAA,MAAAX,IAAAA;AAAAA,MAAAe,YAAAA;AAAAA,MAAAI,KAAAA;AAAAA,MAAAG,QAQG5B,SAAAA,CAAS4B;AAAAA,KAAA;AAClB9B,IAAAA,CAAAA,MAAAO,UAAAA;AAAAP,IAAAA,CAAAA,CAAA,CAAA,IAAAE,SAAAA,CAAA4B,MAAAA;AAAA9B,IAAAA,CAAAA,MAAA2B,KAAAA;AAAA3B,IAAAA,CAAAA,OAAAuB,YAAAA;AAAAvB,IAAAA,CAAAA,OAAAmB,aAAAA;AAAAnB,IAAAA,CAAAA,OAAAM,KAAAA;AAAAN,IAAAA,CAAAA,OAAAI,cAAAA;AAAAJ,IAAAA,CAAAA,OAAAQ,IAAAA;AAAAR,IAAAA,CAAAA,OAAA6B,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA7B,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OATM6B,EAAAA;AASN;;;;"}
1
+ {"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type { DeltaOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { createLogger } from \"@/lib/utils\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n isCancellable: boolean;\n step?: DeltaOrderStepKey;\n explorerLink?: string;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n};\n\nconst logger = createLogger(\"DeltaSwapStep\");\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n\n let step: DeltaOrderStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n step = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n step = \"order-execution\";\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"auction\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned = step === \"auction\";\n\n const isCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n return {\n startDeltaSwap,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n result: deltaFlow.result,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","deltaOrderExecution","approvalIsStarted","isTxPending","isOrderBeingSigned","isCancellable","orderId","order","id","explorerLink","constructExplorerOrderDetailsLink","undefined","t0","error","isUserCancelledError","t1","result"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { OptimalRate } from '@velora-dex/sdk';
2
2
  import { Address, Hash, TransactionReceipt } from 'viem';
3
- import { ApprovalFlowResult, SubmitTxResult } from './common/types';
3
+ import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
4
4
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
5
5
  import { TxSentObject } from '../../../lib/utils/toasts';
6
6
  export type UseMarketFlowInput = {
@@ -23,6 +23,7 @@ export type UseMarketFlowResult = {
23
23
  reset: () => void;
24
24
  cancelFlow: () => void;
25
25
  approval: ApprovalFlowResult;
26
+ signPermit: SignPermitFlowResult;
26
27
  buildTxParams: {
27
28
  isPending: boolean;
28
29
  isError: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;AAK/C,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAIF,wBAAgB,aAAa,CAAC,EAC5B,WAAW,GACZ,EAAE,kBAAkB,GAAG,mBAAmB,CA8S1C"}
1
+ {"version":3,"file":"useMarketFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;AAK/C,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,aAAa,EAAE;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAIF,wBAAgB,aAAa,CAAC,EAC5B,WAAW,GACZ,EAAE,kBAAkB,GAAG,mBAAmB,CAkX1C"}