@velora-dex/widget 0.2.3-dev.3 → 0.2.4

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 (56) hide show
  1. package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -1
  2. package/dist/components/widget/DexesList/DexItem.js +57 -62
  3. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  4. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
  5. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
  6. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  7. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
  8. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  9. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  10. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
  11. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  12. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  13. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
  14. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  15. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  16. package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
  17. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  18. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  19. package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
  20. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  21. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  22. package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
  23. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  24. package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
  25. package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
  26. package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
  27. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  28. package/dist/core/inputs/state/types.d.ts.map +1 -1
  29. package/dist/core/swapDetails/maxToPay.d.ts +11 -0
  30. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
  31. package/dist/core/swapDetails/maxToPay.js +41 -0
  32. package/dist/core/swapDetails/maxToPay.js.map +1 -0
  33. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  34. package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
  35. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  36. package/dist/core/swapDetails/youGet.d.ts.map +1 -1
  37. package/dist/core/swapDetails/youGet.js.map +1 -1
  38. package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
  39. package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
  40. package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
  41. package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
  42. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  43. package/dist/hooks/swap/prices/useSwapPrices.js +3 -4
  44. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  45. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  46. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
  47. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  48. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  49. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  50. package/dist/tokens/overrides.d.ts +13 -2
  51. package/dist/tokens/overrides.d.ts.map +1 -1
  52. package/dist/tokens/overrides.js +71 -3
  53. package/dist/tokens/overrides.js.map +1 -1
  54. package/dist/tokens/types.d.ts +4 -0
  55. package/dist/tokens/types.d.ts.map +1 -1
  56. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ function getSwapSideFromDeltaPrice(price) {
2
+ if (price.srcAmountBeforeFee) {
3
+ return "BUY";
4
+ }
5
+ return "SELL";
6
+ }
7
+
8
+ export { getSwapSideFromDeltaPrice };
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"sourcesContent":["import type { DeltaPrice } from \"@velora-dex/sdk\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\n\nexport function getSwapSideFromDeltaPrice(price: DeltaPrice): SwapSideUnion {\n if (price.srcAmountBeforeFee) {\n // srcAmountBeforeFee is only available for BUY side\n return \"BUY\";\n }\n return \"SELL\";\n}\n"],"names":["getSwapSideFromDeltaPrice","price","srcAmountBeforeFee"],"mappings":"AAGO,SAASA,0BAA0BC,KAAAA,EAAkC;AAC1E,EAAA,IAAIA,MAAMC,kBAAAA,EAAoB;AAE5B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AASlD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,kBAAkB,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CAqJrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAsB3B"}
1
+ {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AASlD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,kBAAkB,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CA+IrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAsB3B"}
@@ -35,7 +35,6 @@ function useSwapPrices(t0) {
35
35
  enabledOnCurrentChain: deltaEnabledOnCurrentChain
36
36
  } = useGlobalDeltaEnabled();
37
37
  const fetchAnyPrice = priceParams.amount !== "0" && !!priceParams.destToken;
38
- const isBUY = priceParams.side === "BUY";
39
38
  let t2;
40
39
  if ($[2] !== chainId || $[3] !== isCrossChain || $[4] !== priceParams.destToken || $[5] !== priceParams.srcToken) {
41
40
  t2 = !isCrossChain && !!priceParams.destToken && isETH({
@@ -99,8 +98,8 @@ function useSwapPrices(t0) {
99
98
  const {
100
99
  data: isDestTokenSupported
101
100
  } = useIsTokenSupportedInDeltaQuery(t6);
102
- const deltaEnabled = deltaEnabledInConfig && deltaEnabledInSettings && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && !isEthToWethSameChain && !isWethToEthSameChain && swapMode === "delta" && isSrcTokenSupported !== false && isDestTokenSupported !== false;
103
- const deltaCanBeUsed = fetchAnyPrice && deltaEnabledInConfig && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && !isEthToWethSameChain && !isWethToEthSameChain;
101
+ const deltaEnabled = deltaEnabledInConfig && deltaEnabledInSettings && deltaEnabledOnCurrentChain && !isEthToWethSameChain && !isWethToEthSameChain && swapMode === "delta" && isSrcTokenSupported !== false && isDestTokenSupported !== false;
102
+ const deltaCanBeUsed = fetchAnyPrice && deltaEnabledInConfig && deltaEnabledOnCurrentChain && !isEthToWethSameChain && !isWethToEthSameChain;
104
103
  let t7;
105
104
  if ($[18] !== chainId || $[19] !== priceParams.srcToken) {
106
105
  t7 = isETH({
@@ -163,7 +162,7 @@ function useSwapPrices(t0) {
163
162
  const marketEnabled = !isCrossChain;
164
163
  const marketCanBeUsed = marketEnabled && fetchAnyPrice;
165
164
  const marketIsFallback = deltaErrorCached && marketEnabled;
166
- const marketIsMainMode = swapMode === "market" && marketEnabled || !deltaEnabled || isBUY;
165
+ const marketIsMainMode = swapMode === "market" && marketEnabled || !deltaEnabled;
167
166
  const priceMode = marketIsFallback || marketIsMainMode ? "market" : "delta";
168
167
  const marketRefetchInterval = !deltaEnabled || deltaErrorCached ? PRICE_REFETCH_INTERVAL : 2 * PRICE_REFETCH_INTERVAL;
169
168
  const t12 = marketEnabled && fetchAnyPrice && (params.enabled ?? true);
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","error","isError","isFetching","isLoading","price","canBeUsed","t16","t17","userSelectedPriceMode","market","delta","useCurrentSwapPrice"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","error","isError","isFetching","isLoading","price","canBeUsed","t16","t17","userSelectedPriceMode","market","delta","useCurrentSwapPrice"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ import { useDeltaPriceQueryForPrice, useSubscribeToDeltaPrice, isBridgePrice } f
21
21
  import { usePartner } from '../../usePartner.js';
22
22
  import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
23
23
  import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
24
+ import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
25
+ import { getSwapSideFromDeltaPrice } from '../prices/delta/queries/utils.js';
24
26
 
25
27
  const deltaOrderFlowType = "deltaOrder";
26
28
  const DELTA_ORDER_MUTATION_KEY = "runDeltaOrderFlow";
@@ -33,6 +35,7 @@ function useDeltaFlow({
33
35
  const {
34
36
  resolvedSlippage
35
37
  } = useSlippage("swap");
38
+ const swapSideFromInput = useSwapSide();
36
39
  const {
37
40
  approval,
38
41
  signPermit,
@@ -43,8 +46,7 @@ function useDeltaFlow({
43
46
  srcToken: deltaPrice?.srcToken,
44
47
  srcAmount: deltaPrice?.srcAmount,
45
48
  spenderContractType: "ParaswapDelta",
46
- swapSide: "SELL",
47
- // @TODO add BUY support for Delta when available
49
+ swapSide: deltaPrice && getSwapSideFromDeltaPrice(deltaPrice) || swapSideFromInput,
48
50
  tradeMode: "swap"
49
51
  });
50
52
  const {
@@ -165,6 +167,7 @@ function useDeltaFlow({
165
167
  createOrderMut.reset();
166
168
  resetPreSignAndSubmitDeltaOrder();
167
169
  assert(deltaPrice, "Delta price is not available");
170
+ const swapSide = getSwapSideFromDeltaPrice(deltaPrice);
168
171
  const abortController = new AbortController();
169
172
  currentAbortControllerRef.current = abortController;
170
173
  const signal = abortController.signal;
@@ -203,15 +206,10 @@ function useDeltaFlow({
203
206
  unsubscribeFromPrice = void 0;
204
207
  return;
205
208
  }
206
- const amountsAfterSlippage = applySlippage(
207
- {
208
- srcAmount: newPrice.srcAmount,
209
- destAmount: newPrice.receivedDestAmount
210
- },
211
- resolvedSlippage,
212
- "SELL"
213
- // @TODO add BUY support for Delta when available
214
- );
209
+ const amountsAfterSlippage = applySlippage({
210
+ srcAmount: newPrice.srcAmount,
211
+ destAmount: newPrice.receivedDestAmount
212
+ }, resolvedSlippage, swapSide);
215
213
  if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {
216
214
  logger.log("~ fresh price ~", newPrice);
217
215
  freshPrice = newPrice;
@@ -300,15 +298,10 @@ function useDeltaFlow({
300
298
  unsubscribeFromPrice?.();
301
299
  unsubscribeFromPrice = void 0;
302
300
  assert(deltaPriceToUse, "Delta price is not available");
303
- const amountsAfterSlippage_0 = applySlippage(
304
- {
305
- srcAmount: deltaPriceToUse.srcAmount,
306
- destAmount: deltaPriceToUse.receivedDestAmount
307
- },
308
- resolvedSlippage,
309
- "SELL"
310
- // @TODO add BUY support for Delta when available
311
- );
301
+ const amountsAfterSlippage_0 = applySlippage({
302
+ srcAmount: deltaPriceToUse.srcAmount,
303
+ destAmount: deltaPriceToUse.receivedDestAmount
304
+ }, resolvedSlippage, swapSide);
312
305
  let permit = signedPermitResult?.permitEncodedArgs;
313
306
  if (signedPermitResult?.signedPermitData.type === "permit2" && signedPermitResult.signedPermitData.variant === "transferFrom") {
314
307
  permit = encodePermit2TransferFromSigDataForDelta({
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide: \"SELL\", // @TODO add BUY support for Delta when available\n tradeMode: \"swap\",\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted();\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n \"SELL\" // @TODO add BUY support for Delta when available\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput = {\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n },\n };\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n usedPrice,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","isBridgePrice","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result"],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n\n const swapSideFromInput = useSwapSide();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted();\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput = {\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n },\n };\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n usedPrice,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","isBridgePrice","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result"],"mappings":"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"}
@@ -314,7 +314,7 @@ function useMarketFlow({
314
314
  },
315
315
  swapTxOptions: {
316
316
  // ignoreChecks: true,
317
- // gas estimate will break if only swapn tx is estimated, but approve ts is not considerewd in a batch
317
+ // gas estimate will break if only swap tx is estimated, but approve tx is not considered in a batch
318
318
  ignoreGasEstimate: shouldBatchTxs,
319
319
  // for Batch-capable wallets batch Approve+Swap tx have to ignore all checks
320
320
  ignoreAllowance: shouldBatchTxs,