@velora-dex/widget 0.4.0 → 0.4.2-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +79 -95
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +89 -60
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +0 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +1 -4
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js +1 -2
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +0 -2
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +3 -236
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +18 -40
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +24 -46
- package/dist/core/index.js.map +1 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +13 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +80 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +1 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +98 -113
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +69 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +192 -0
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +1 -3
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +1 -20
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +3 -2
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +37 -14
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +1 -2
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +38 -16
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +2 -2
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +3 -3
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/urls.js +2 -6
- package/dist/lib/constants/urls.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/transactions/types.d.ts +9 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -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 { excludeBridgesAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport type {\n BridgePrice,\n DeltaPrice,\n OptimalRate,\n SwapSideUnion,\n} 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\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/queries/utils\";\nimport { useSelectedBridgePrice } from \"./delta/bridge/useSelectedBridgePrice\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n side?: SwapSideUnion;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<OptimalRate, Error>>;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n side?: SwapSideUnion;\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 isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaPrice | BridgePrice, Error>>;\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 // excluded bridges from user preferences\n const excludeBridges = useAtomValue(excludeBridgesAtom);\n // receiver address from user input\n const receiverAddress = useSwapReceiverAddressValue();\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 excludeBridges,\n beneficiary: receiverAddress,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\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_MS\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL_MS;\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 staleTime: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n side: marketPriceQuery.data?.side,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isRefetching: marketPriceQuery.isRefetching,\n isError: marketPriceQuery.isError,\n refetch: marketPriceQuery.refetch,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n side: deltaPriceQuery.data\n ? getSwapSideFromDeltaPrice(deltaPriceQuery.data)\n : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isRefetching: deltaPriceQuery.isRefetching,\n isError: deltaPriceQuery.isError,\n refetch: deltaPriceQuery.refetch,\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 side?: SwapSideUnion;\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 const selectedBridgePrice = useSelectedBridgePrice({ price: delta.price });\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n side: market.side,\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: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","excludeBridges","excludeBridgesAtom","receiverAddress","useSwapReceiverAddressValue","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","beneficiary","t9","enabled","t10","refetchInterval","PRICE_REFETCH_INTERVAL_MS","staleTime","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","side","t16","error","isError","isFetching","isLoading","isRefetching","refetch","price","canBeUsed","t17","getSwapSideFromDeltaPrice","t18","t19","userSelectedPriceMode","market","delta","useCurrentSwapPrice","selectedBridgePrice","useSelectedBridgePrice"],"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 { excludeBridgesAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport type {\n BridgePrice,\n DeltaPrice,\n OptimalRate,\n SwapSideUnion,\n} from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/queries/utils\";\nimport { useSelectedBridgePrice } from \"./delta/bridge/useSelectedBridgePrice\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n side?: SwapSideUnion;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<OptimalRate, Error>>;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n side?: SwapSideUnion;\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 isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaPrice | BridgePrice, Error>>;\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 // excluded bridges from user preferences\n const excludeBridges = useAtomValue(excludeBridgesAtom);\n // receiver address from user input\n const receiverAddress = useSwapReceiverAddressValue();\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 const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n excludeBridges,\n beneficiary: receiverAddress,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\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_MS\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL_MS;\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 staleTime: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n side: marketPriceQuery.data?.side,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isRefetching: marketPriceQuery.isRefetching,\n isError: marketPriceQuery.isError,\n refetch: marketPriceQuery.refetch,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n side: deltaPriceQuery.data\n ? getSwapSideFromDeltaPrice(deltaPriceQuery.data)\n : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isRefetching: deltaPriceQuery.isRefetching,\n isError: deltaPriceQuery.isError,\n refetch: deltaPriceQuery.refetch,\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 side?: SwapSideUnion;\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 const selectedBridgePrice = useSelectedBridgePrice({ price: delta.price });\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n side: market.side,\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: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","excludeBridges","excludeBridgesAtom","receiverAddress","useSwapReceiverAddressValue","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","beneficiary","t8","enabled","t9","refetchInterval","PRICE_REFETCH_INTERVAL_MS","staleTime","retry","t10","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t11","t12","t13","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t14","side","t15","error","isError","isFetching","isLoading","isRefetching","refetch","price","canBeUsed","t16","getSwapSideFromDeltaPrice","t17","t18","userSelectedPriceMode","market","delta","useCurrentSwapPrice","selectedBridgePrice","useSelectedBridgePrice"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DeltaOrderToPost } from '../../prices/delta/mutations/useCreatePreSignableDeltaOrder';
|
|
2
|
+
import { Address, TransactionReceipt } from 'viem';
|
|
3
|
+
import { SubmittedDeltaOrderFromAPI } from '../../prices/delta/queries/useDeltaOrders';
|
|
4
|
+
import { SupportedChainId } from '../../../../lib/web3/wagmi/types';
|
|
5
|
+
import { LoggerInstance } from '../../../../lib/utils/logger';
|
|
6
|
+
import { DeltaOrderApiResponse, MinViemClient } from '@velora-dex/sdk';
|
|
7
|
+
import { CreateDeltaOrderInput } from '../../prices/delta/mutations/useCreateDeltaOrder';
|
|
8
|
+
import { TxSentObject } from '../../../../lib/utils/transactionHandlers';
|
|
9
|
+
export type DeltaOrderDepositResult = {
|
|
10
|
+
depositPrep: {
|
|
11
|
+
order?: DeltaOrderToPost;
|
|
12
|
+
isCreatingOrder: boolean;
|
|
13
|
+
isOrderHashReady: boolean;
|
|
14
|
+
isPending: boolean;
|
|
15
|
+
isError: boolean;
|
|
16
|
+
isSuccess: boolean;
|
|
17
|
+
error: Error | null;
|
|
18
|
+
};
|
|
19
|
+
depositTx: {
|
|
20
|
+
txHash?: Address;
|
|
21
|
+
receipt?: TransactionReceipt;
|
|
22
|
+
isConfirmingTX: boolean;
|
|
23
|
+
isConfirmingTxError: boolean;
|
|
24
|
+
isTxSent: boolean;
|
|
25
|
+
isTxPending: boolean;
|
|
26
|
+
isTxMined: boolean;
|
|
27
|
+
isTxAwaitingError: boolean;
|
|
28
|
+
isPending: boolean;
|
|
29
|
+
isSuccess: boolean;
|
|
30
|
+
isError: boolean;
|
|
31
|
+
error: Error | null;
|
|
32
|
+
};
|
|
33
|
+
postingOrder: {
|
|
34
|
+
order?: SubmittedDeltaOrderFromAPI;
|
|
35
|
+
isPostingOrder: boolean;
|
|
36
|
+
isOrderSent: boolean;
|
|
37
|
+
isPending: boolean;
|
|
38
|
+
isError: boolean;
|
|
39
|
+
isSuccess: boolean;
|
|
40
|
+
error: Error | null;
|
|
41
|
+
};
|
|
42
|
+
order?: SubmittedDeltaOrderFromAPI;
|
|
43
|
+
isCreatingOrder: boolean;
|
|
44
|
+
isOrderSent: boolean;
|
|
45
|
+
isPending: boolean;
|
|
46
|
+
isError: boolean;
|
|
47
|
+
isSuccess: boolean;
|
|
48
|
+
error: Error | null;
|
|
49
|
+
};
|
|
50
|
+
type UseDepositAndSubmitDeltaOrderInput = {
|
|
51
|
+
chainId: SupportedChainId;
|
|
52
|
+
account?: Address;
|
|
53
|
+
logger: LoggerInstance;
|
|
54
|
+
viemClient?: MinViemClient;
|
|
55
|
+
};
|
|
56
|
+
type UseDepositAndSubmitDeltaOrderResult = {
|
|
57
|
+
deltaOrderDeposit: DeltaOrderDepositResult;
|
|
58
|
+
depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;
|
|
59
|
+
reset: () => void;
|
|
60
|
+
};
|
|
61
|
+
export declare function useDepositAndSubmitDeltaOrder({ chainId, account, logger, viemClient, }: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult;
|
|
62
|
+
type DepositAndSubmitDeltaOrderInput = {
|
|
63
|
+
createDeltaOrderInput: CreateDeltaOrderInput;
|
|
64
|
+
depositAmount: string;
|
|
65
|
+
onTxSent?: (txSent: TxSentObject) => void;
|
|
66
|
+
};
|
|
67
|
+
type DepositAndSubmitDeltaOrderFunc = (input: DepositAndSubmitDeltaOrderInput) => Promise<DeltaOrderApiResponse>;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=useDepositAndSubmitDeltaOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { useFetchOnlySDK } from '../../../useSDK.js';
|
|
2
|
+
import { useDepositPreSignDeltaOrder } from '../../prices/delta/mutations/useCreatePreSignableDeltaOrder.js';
|
|
3
|
+
import { isAddress } from 'viem';
|
|
4
|
+
import { deltaOrdersQueryKey } from '../../prices/delta/queries/useDeltaOrders.js';
|
|
5
|
+
import { usePostDeltaOrder } from '../../prices/delta/mutations/usePostDeltaOrder.js';
|
|
6
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
7
|
+
import { assert } from 'ts-essentials';
|
|
8
|
+
import { useEnsureContractsQuery } from '../../prices/market/queries/useSpenderAndContracts.js';
|
|
9
|
+
import { useSendArbitraryTx } from '../../../txs/mutations/useSendTx.js';
|
|
10
|
+
import { useAwaitTx, useEnsureTxReceipt } from '../../../txs/queries/useAwaitTx.js';
|
|
11
|
+
import { isETHaddress } from '../../../../tokens/utils/eth.js';
|
|
12
|
+
|
|
13
|
+
function useDepositAndSubmitDeltaOrder({
|
|
14
|
+
chainId,
|
|
15
|
+
account,
|
|
16
|
+
logger,
|
|
17
|
+
viemClient
|
|
18
|
+
}) {
|
|
19
|
+
const queryClient = useQueryClient();
|
|
20
|
+
const depositOrderMut = useDepositPreSignDeltaOrder({
|
|
21
|
+
chainId,
|
|
22
|
+
client: viemClient
|
|
23
|
+
});
|
|
24
|
+
const {
|
|
25
|
+
sdk: fetchOnlySDK
|
|
26
|
+
} = useFetchOnlySDK({
|
|
27
|
+
chainId
|
|
28
|
+
});
|
|
29
|
+
const depositPrep = {
|
|
30
|
+
isCreatingOrder: depositOrderMut.isPending,
|
|
31
|
+
isOrderHashReady: depositOrderMut.isSuccess,
|
|
32
|
+
order: depositOrderMut.data?.orderToPost,
|
|
33
|
+
isPending: depositOrderMut.isPending,
|
|
34
|
+
isError: depositOrderMut.isError,
|
|
35
|
+
isSuccess: depositOrderMut.isSuccess,
|
|
36
|
+
error: depositOrderMut.error
|
|
37
|
+
};
|
|
38
|
+
const sendDepositTxMut = useSendArbitraryTx();
|
|
39
|
+
const awaitDepositTx = useAwaitTx({
|
|
40
|
+
hash: sendDepositTxMut.txHash,
|
|
41
|
+
chainId
|
|
42
|
+
});
|
|
43
|
+
const depositTx = {
|
|
44
|
+
txHash: sendDepositTxMut.txHash,
|
|
45
|
+
receipt: awaitDepositTx.data,
|
|
46
|
+
/* tx sending */
|
|
47
|
+
isConfirmingTX: sendDepositTxMut.isPending,
|
|
48
|
+
isConfirmingTxError: sendDepositTxMut.isError,
|
|
49
|
+
isTxSent: sendDepositTxMut.isSuccess,
|
|
50
|
+
/* tx awaiting */
|
|
51
|
+
isTxPending: awaitDepositTx.isLoading,
|
|
52
|
+
isTxMined: awaitDepositTx.isSuccess,
|
|
53
|
+
isTxAwaitingError: awaitDepositTx.isError,
|
|
54
|
+
/* combined */
|
|
55
|
+
isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,
|
|
56
|
+
isSuccess: awaitDepositTx.isSuccess,
|
|
57
|
+
// final success
|
|
58
|
+
isError: sendDepositTxMut.isError || awaitDepositTx.isError,
|
|
59
|
+
error: sendDepositTxMut.error || awaitDepositTx.error
|
|
60
|
+
};
|
|
61
|
+
const postOrderMut = usePostDeltaOrder({
|
|
62
|
+
chainId,
|
|
63
|
+
account,
|
|
64
|
+
client: viemClient,
|
|
65
|
+
mutationOptions: {
|
|
66
|
+
onSuccess: (order) => {
|
|
67
|
+
logger.log("[DepositAndSubmit] Create Delta Order success", order);
|
|
68
|
+
queryClient.invalidateQueries({
|
|
69
|
+
queryKey: deltaOrdersQueryKey({
|
|
70
|
+
userAddress: order.user
|
|
71
|
+
}),
|
|
72
|
+
exact: false
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
onError: (error) => {
|
|
76
|
+
logger.error("[DepositAndSubmit] Create Delta Order error", error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
const deltaOrderPosting = {
|
|
81
|
+
order: postOrderMut.data,
|
|
82
|
+
isPostingOrder: postOrderMut.isPending,
|
|
83
|
+
isOrderSent: postOrderMut.isSuccess,
|
|
84
|
+
isPending: postOrderMut.isPending,
|
|
85
|
+
isError: postOrderMut.isError,
|
|
86
|
+
isSuccess: postOrderMut.isSuccess,
|
|
87
|
+
error: postOrderMut.error
|
|
88
|
+
};
|
|
89
|
+
const deltaOrderDeposit = {
|
|
90
|
+
order: postOrderMut.data,
|
|
91
|
+
depositPrep,
|
|
92
|
+
depositTx,
|
|
93
|
+
postingOrder: deltaOrderPosting,
|
|
94
|
+
isCreatingOrder: depositPrep.isCreatingOrder || depositTx.isPending || deltaOrderPosting.isPostingOrder,
|
|
95
|
+
isOrderSent: deltaOrderPosting.isOrderSent,
|
|
96
|
+
isPending: depositPrep.isPending || depositTx.isPending || deltaOrderPosting.isPending,
|
|
97
|
+
isError: depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,
|
|
98
|
+
isSuccess: deltaOrderPosting.isSuccess,
|
|
99
|
+
error: depositPrep.error || depositTx.error || deltaOrderPosting.error
|
|
100
|
+
};
|
|
101
|
+
const ensureTxReceipt = useEnsureTxReceipt();
|
|
102
|
+
const {
|
|
103
|
+
ensureContractsLoaded
|
|
104
|
+
} = useEnsureContractsQuery({
|
|
105
|
+
chainId
|
|
106
|
+
});
|
|
107
|
+
const depositAndSubmitDeltaOrder = async ({
|
|
108
|
+
depositAmount: _depositAmount,
|
|
109
|
+
createDeltaOrderInput,
|
|
110
|
+
onTxSent
|
|
111
|
+
}) => {
|
|
112
|
+
const depositAmount = BigInt(_depositAmount);
|
|
113
|
+
assert(isETHaddress(createDeltaOrderInput.orderInput.srcToken), "srcToken must be ETH");
|
|
114
|
+
assert(depositAmount > 0n, "depositAmount must be greater than 0");
|
|
115
|
+
const {
|
|
116
|
+
signal
|
|
117
|
+
} = createDeltaOrderInput;
|
|
118
|
+
const {
|
|
119
|
+
ParaswapDelta: DeltaContract
|
|
120
|
+
} = await ensureContractsLoaded({
|
|
121
|
+
signal
|
|
122
|
+
});
|
|
123
|
+
assert(DeltaContract && isAddress(DeltaContract), `DeltaContract is not available on chain ${chainId}`);
|
|
124
|
+
signal?.throwIfAborted();
|
|
125
|
+
const {
|
|
126
|
+
orderToPost,
|
|
127
|
+
depositAndPreSignCalldata
|
|
128
|
+
} = await depositOrderMut.mutateAsync(createDeltaOrderInput);
|
|
129
|
+
signal?.throwIfAborted();
|
|
130
|
+
let orderIsPosted = false;
|
|
131
|
+
const sendUnsentOrderOnPageHide = () => {
|
|
132
|
+
if (orderIsPosted) return;
|
|
133
|
+
orderIsPosted = true;
|
|
134
|
+
fetchOnlySDK?.postDeltaOrder(orderToPost);
|
|
135
|
+
};
|
|
136
|
+
window.addEventListener("pagehide", sendUnsentOrderOnPageHide, {
|
|
137
|
+
once: true
|
|
138
|
+
});
|
|
139
|
+
try {
|
|
140
|
+
const depositTxHash = await sendDepositTxMut.sendTransactionAsync({
|
|
141
|
+
to: DeltaContract,
|
|
142
|
+
from: account,
|
|
143
|
+
data: depositAndPreSignCalldata,
|
|
144
|
+
value: depositAmount
|
|
145
|
+
});
|
|
146
|
+
logger.log("[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:", depositTxHash);
|
|
147
|
+
const depositTxReceiptPromise = ensureTxReceipt({
|
|
148
|
+
hash: depositTxHash,
|
|
149
|
+
chainId,
|
|
150
|
+
onReplaced: (data) => {
|
|
151
|
+
logger.log("[DepositAndSubmit] onReplaced:txHash", depositTxHash, data);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
if (onTxSent) {
|
|
155
|
+
onTxSent({
|
|
156
|
+
chainId,
|
|
157
|
+
action: "depositNativeAndPreSign",
|
|
158
|
+
receiptPromise: depositTxReceiptPromise,
|
|
159
|
+
transactionHash: depositTxHash,
|
|
160
|
+
transactionSpecificData: {
|
|
161
|
+
action: "depositNativeAndPreSign",
|
|
162
|
+
order: orderToPost,
|
|
163
|
+
depositAmount
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
const depositTxReceipt = await depositTxReceiptPromise;
|
|
168
|
+
logger.log("[DepositAndSubmit] depositNativeAndPreSign tx mined, receipt:", depositTxReceipt);
|
|
169
|
+
const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);
|
|
170
|
+
orderIsPosted = true;
|
|
171
|
+
return orderFromAPI;
|
|
172
|
+
} catch (error_0) {
|
|
173
|
+
logger.error("[DepositAndSubmit] error", error_0);
|
|
174
|
+
throw error_0;
|
|
175
|
+
} finally {
|
|
176
|
+
window.removeEventListener("pagehide", sendUnsentOrderOnPageHide);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
const reset = () => {
|
|
180
|
+
depositOrderMut.reset();
|
|
181
|
+
sendDepositTxMut.reset();
|
|
182
|
+
postOrderMut.reset();
|
|
183
|
+
};
|
|
184
|
+
return {
|
|
185
|
+
deltaOrderDeposit,
|
|
186
|
+
depositAndSubmitDeltaOrder,
|
|
187
|
+
reset
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { useDepositAndSubmitDeltaOrder };
|
|
192
|
+
//# sourceMappingURL=useDepositAndSubmitDeltaOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport {\n useDepositPreSignDeltaOrder,\n type DeltaOrderToPost,\n} from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\n\nimport { isAddress, type Address, type TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { DeltaOrderApiResponse, MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\nimport { useSendArbitraryTx } from \"@/hooks/txs/mutations/useSendTx\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\nexport type DeltaOrderDepositResult = {\n depositPrep: {\n order?: DeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitDeltaOrderResult = {\n deltaOrderDeposit: DeltaOrderDepositResult;\n depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const depositOrderMut = useDepositPreSignDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const depositPrep: DeltaOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: depositOrderMut.isPending,\n isOrderHashReady: depositOrderMut.isSuccess,\n order: depositOrderMut.data?.orderToPost,\n isPending: depositOrderMut.isPending,\n isError: depositOrderMut.isError,\n isSuccess: depositOrderMut.isSuccess,\n error: depositOrderMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendArbitraryTx();\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.txHash,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.txHash,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderDeposit: DeltaOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n deltaOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error: depositPrep.error || depositTx.error || deltaOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc = async ({\n depositAmount: _depositAmount,\n createDeltaOrderInput,\n onTxSent,\n }) => {\n const depositAmount = BigInt(_depositAmount);\n\n assert(\n isETHaddress(createDeltaOrderInput.orderInput.srcToken),\n \"srcToken must be ETH\"\n );\n assert(depositAmount > 0n, \"depositAmount must be greater than 0\");\n\n // prepare Order for depositing + pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.depositNativeAndPreSign(orderHash) tx calldata\n\n const { signal } = createDeltaOrderInput;\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { orderToPost, depositAndPreSignCalldata } =\n await depositOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let orderIsPosted = false;\n\n const sendUnsentOrderOnPageHide = () => {\n if (orderIsPosted) return;\n orderIsPosted = true;\n fetchOnlySDK?.postDeltaOrder(orderToPost);\n };\n\n // subscribe to `pagehide` event\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n\n try {\n // 4. send the depositNativeAndPreSign tx\n const depositTxHash = await sendDepositTxMut.sendTransactionAsync({\n to: DeltaContract,\n from: account,\n data: depositAndPreSignCalldata,\n value: depositAmount,\n });\n\n logger.log(\n \"[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:\",\n depositTxHash\n );\n\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\n \"[DepositAndSubmit] onReplaced:txHash\",\n depositTxHash,\n data\n );\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"depositNativeAndPreSign\",\n receiptPromise: depositTxReceiptPromise,\n transactionHash: depositTxHash,\n transactionSpecificData: {\n action: \"depositNativeAndPreSign\",\n order: orderToPost,\n depositAmount,\n },\n });\n }\n\n // 5. wait for the depositNativeAndPreSign tx to be mined\n const depositTxReceipt = await depositTxReceiptPromise;\n\n logger.log(\n \"[DepositAndSubmit] depositNativeAndPreSign tx mined, receipt:\",\n depositTxReceipt\n );\n\n // 6. POST the Order to API with signature=0x\n const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);\n orderIsPosted = true;\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"[DepositAndSubmit] error\", error);\n throw error;\n } finally {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n }\n };\n\n const reset = () => {\n depositOrderMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderDeposit,\n depositAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitDeltaOrderFunc = (\n input: DepositAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n"],"names":["useDepositAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","depositOrderMut","useDepositPreSignDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","depositPrep","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","sendDepositTxMut","useSendArbitraryTx","awaitDepositTx","useAwaitTx","hash","txHash","depositTx","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","onSuccess","log","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","onError","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderDeposit","postingOrder","ensureTxReceipt","useEnsureTxReceipt","ensureContractsLoaded","useEnsureContractsQuery","depositAndSubmitDeltaOrder","depositAmount","_depositAmount","createDeltaOrderInput","onTxSent","BigInt","assert","isETHaddress","orderInput","srcToken","signal","ParaswapDelta","DeltaContract","isAddress","throwIfAborted","depositAndPreSignCalldata","mutateAsync","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","depositTxHash","sendTransactionAsync","to","from","value","depositTxReceiptPromise","onReplaced","action","receiptPromise","transactionHash","transactionSpecificData","depositTxReceipt","orderFromAPI","removeEventListener","reset"],"mappings":"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"}
|
|
@@ -53,13 +53,11 @@ export declare function usePreSignAndSubmitDeltaOrder({ chainId, account, logger
|
|
|
53
53
|
type PreSignAndSubmitDeltaOrderInput = {
|
|
54
54
|
createDeltaOrderInput: CreateDeltaOrderInput;
|
|
55
55
|
approval: Pick<ApprovalFlowResult, "spender" | "allowanceToSet" | "token" | "chainId">;
|
|
56
|
-
preWrapETH?: boolean;
|
|
57
56
|
onTxSent?: (txSent: CallsSentObject) => void;
|
|
58
57
|
};
|
|
59
58
|
type PreSignAndSubmitDeltaOrderFunc = (input: PreSignAndSubmitDeltaOrderInput) => Promise<DeltaOrderApiResponse>;
|
|
60
59
|
type ShouldApproveOrBatchInput = {
|
|
61
60
|
approval: Pick<ApprovalFlowResult, "needsApproval" | "allowanceToSet">;
|
|
62
|
-
preWrapETH?: boolean;
|
|
63
61
|
signPermit: Pick<SignPermitFlowResult, "isPermitSupported" | "isPermitReadyToSign">;
|
|
64
62
|
canBatchTxs?: boolean;
|
|
65
63
|
isConnectedToSafe: boolean;
|
|
@@ -69,6 +67,6 @@ type ShouldApproveOrBatchResult = {
|
|
|
69
67
|
tryPermit: boolean;
|
|
70
68
|
shouldPreSignBatch: boolean;
|
|
71
69
|
};
|
|
72
|
-
export declare function shouldApproveOrBatch({ approval,
|
|
70
|
+
export declare function shouldApproveOrBatch({ approval, signPermit, canBatchTxs, isConnectedToSafe, }: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult;
|
|
73
71
|
export {};
|
|
74
72
|
//# sourceMappingURL=usePreSignAndSubmitDeltaOrder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,6DAA6D,CAAC;AAUrE,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAK5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,6 @@ import { useConnectedSafe } from '../../../connectors/useIsConnectedSafe.js';
|
|
|
9
9
|
import { useCanBatchTxs } from '../../../batch/useCanBatchTxs.js';
|
|
10
10
|
import { usePostDeltaOrder } from '../../prices/delta/mutations/usePostDeltaOrder.js';
|
|
11
11
|
import { useQueryClient } from '@tanstack/react-query';
|
|
12
|
-
import { wrappedNativeCurrency } from '../../../../lib/constants/weth.js';
|
|
13
|
-
import { depositWETHCalldata } from './utils.js';
|
|
14
12
|
import { assert } from 'ts-essentials';
|
|
15
13
|
import { useEnsureContractsQuery } from '../../prices/market/queries/useSpenderAndContracts.js';
|
|
16
14
|
|
|
@@ -126,13 +124,11 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
126
124
|
});
|
|
127
125
|
const preSignAndSubmitDeltaOrder = async ({
|
|
128
126
|
createDeltaOrderInput,
|
|
129
|
-
preWrapETH,
|
|
130
127
|
approval,
|
|
131
128
|
onTxSent
|
|
132
129
|
}) => {
|
|
133
130
|
const {
|
|
134
|
-
signal
|
|
135
|
-
orderInput
|
|
131
|
+
signal
|
|
136
132
|
} = createDeltaOrderInput;
|
|
137
133
|
const {
|
|
138
134
|
orderToPost,
|
|
@@ -153,16 +149,6 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
153
149
|
chainId
|
|
154
150
|
}];
|
|
155
151
|
const needToApprove = approval.allowanceToSet && approval.allowanceToSet > 0n && approval.spender;
|
|
156
|
-
if (preWrapETH) {
|
|
157
|
-
const wrapAmount = BigInt(orderInput.srcAmount);
|
|
158
|
-
txsParams.unshift({
|
|
159
|
-
to: wrappedNativeCurrency[chainId],
|
|
160
|
-
account,
|
|
161
|
-
data: depositWETHCalldata,
|
|
162
|
-
value: wrapAmount,
|
|
163
|
-
chainId
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
152
|
const approveProps = needToApprove ? [{
|
|
167
153
|
spender: approval.spender,
|
|
168
154
|
allowanceToSet: approval.allowanceToSet,
|
|
@@ -235,7 +221,6 @@ function usePreSignAndSubmitDeltaOrder({
|
|
|
235
221
|
}
|
|
236
222
|
function shouldApproveOrBatch({
|
|
237
223
|
approval,
|
|
238
|
-
preWrapETH,
|
|
239
224
|
signPermit,
|
|
240
225
|
canBatchTxs,
|
|
241
226
|
isConnectedToSafe
|
|
@@ -245,10 +230,6 @@ function shouldApproveOrBatch({
|
|
|
245
230
|
const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;
|
|
246
231
|
let numberOfActions = 1;
|
|
247
232
|
let numberOfTxs = 0;
|
|
248
|
-
if (preWrapETH) {
|
|
249
|
-
numberOfActions++;
|
|
250
|
-
numberOfTxs++;
|
|
251
|
-
}
|
|
252
233
|
if (tokenNeedsApproval) {
|
|
253
234
|
numberOfActions++;
|
|
254
235
|
if (!tryPermit) {
|