@velora-dex/widget 0.4.2-dev.3 → 0.4.3
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/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +23 -18
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +2 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +2 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts +4 -6
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +147 -133
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js +55 -138
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js +137 -87
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/types.d.ts +5 -3
- package/dist/components/widget/PayReceiveInfo/types.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js +2 -2
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.d.ts +2 -2
- package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +108 -87
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js +14 -12
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +3 -3
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +74 -101
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +72 -63
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +16 -13
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.d.ts +2 -1
- package/dist/components/widget/TradeOverview/Step/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js +4 -2
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +59 -62
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +5 -3
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +181 -13
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts +2 -2
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js +4 -4
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +18 -2
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +145 -111
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts +2 -0
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +65 -58
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +32 -0
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +12 -2
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +13 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts +4 -0
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js +6 -0
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +1 -0
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +4 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js +2 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +2 -0
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +236 -3
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +40 -18
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +46 -24
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useMaxButtonProps.js +2 -2
- package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
- package/dist/events/types/cancel.d.ts +1 -7
- package/dist/events/types/cancel.d.ts.map +1 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +9 -8
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +7 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +85 -13
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +1 -13
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +1 -80
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.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 +2 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +1 -27
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +2 -3
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +2 -8
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +1 -27
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +9 -0
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +32 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +149 -142
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +35 -35
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +3 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +20 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -8
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +127 -68
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +4 -3
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +186 -98
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +4 -6
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +72 -56
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +33 -23
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +37 -11
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +161 -79
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.d.ts +10 -2
- package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/utils.js +19 -8
- package/dist/hooks/tokens/allowance/utils.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +3 -3
- 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.d.ts.map +1 -1
- package/dist/lib/constants/urls.js.map +1 -1
- package/dist/lib/utils/fee.js +1 -1
- package/dist/lib/utils/fee.js.map +1 -1
- package/dist/lib/utils/slippage.d.ts.map +1 -1
- package/dist/lib/utils/slippage.js +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/toDecimal.d.ts.map +1 -1
- package/dist/lib/utils/toDecimal.js +5 -3
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/styles.css +0 -3
- package/dist/transactions/types.d.ts +1 -9
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts +0 -7
- package/dist/components/widget/Button/CancelButton/CancelButton.d.ts.map +0 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js +0 -102
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +0 -1
- package/dist/components/widget/Button/CancelButton/constants.d.ts +0 -2
- package/dist/components/widget/Button/CancelButton/constants.d.ts.map +0 -1
- package/dist/components/widget/Button/CancelButton/constants.js +0 -4
- package/dist/components/widget/Button/CancelButton/constants.js.map +0 -1
- package/dist/components/widget/Button/DismissButton.d.ts +0 -4
- package/dist/components/widget/Button/DismissButton.d.ts.map +0 -1
- package/dist/components/widget/Button/DismissButton.js +0 -29
- package/dist/components/widget/Button/DismissButton.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +0 -11
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +0 -87
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +0 -31
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +0 -246
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +0 -44
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +0 -268
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts +0 -108
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js +0 -168
- package/dist/hooks/swap/prices/delta/queries/useIsDeltaNonceUsed.js.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +0 -69
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +0 -192
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaLimitOrderRequiredBalance.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport { assert, type MarkRequired } from \"ts-essentials\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\n\nimport { isAddress, type Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\n\n// ============================================================================\n// Types for getRequiredBalanceForDeltaLimitOrders\n// ============================================================================\n\ntype DeltaLimitOrderRequiredBalanceReturn = Record<string, string>;\n\ntype DeltaLimitOrderRequiredBalanceQueryParams<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n> = Omit<\n UseQueryOptions<\n DeltaLimitOrderRequiredBalanceReturn,\n Error,\n TData,\n DeltaLimitOrderRequiredBalanceQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaLimitOrderRequiredBalanceQueryResult<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n> = UseQueryResult<TData, Error>;\n\ntype DeltaLimitOrderRequiredBalanceQueryInput<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n> = {\n tokenAddress?: string;\n query?: DeltaLimitOrderRequiredBalanceQueryParams<TData>;\n};\n\ntype DeltaLimitOrderRequiredBalanceQueryKey = [\n base: \"delta/getRequiredBalance\",\n { chainId: number; account?: Address; tokenAddress?: string },\n];\n\nexport function useDeltaLimitOrderRequiredBalance<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n>({\n tokenAddress,\n query,\n}: DeltaLimitOrderRequiredBalanceQueryInput<TData>): DeltaLimitOrderRequiredBalanceQueryResult<TData> {\n const chainId = useChainId();\n const { address: account } = useAccount();\n const { minClient } = useMinViemClient({ chainId, account });\n\n const { sdk } = useDeltaSDK({\n chainId,\n client: minClient,\n account,\n });\n\n return useQuery<\n DeltaLimitOrderRequiredBalanceReturn,\n Error,\n TData,\n DeltaLimitOrderRequiredBalanceQueryKey\n >({\n queryKey: deltaLimitOrderRequiredBalanceQueryKey({\n chainId,\n account,\n tokenAddress,\n }),\n queryFn: ({ signal }) => {\n assert(sdk, \"SDK not initialized\");\n assert(account, \"account is required\");\n\n return sdk.getRequiredBalanceForDeltaLimitOrders(\n { userAddress: account, tokenAddress },\n { signal }\n );\n },\n ...query,\n enabled:\n !!(chainId && account && sdk) &&\n // either no specific token given\n (!tokenAddress ||\n // or the token with a valid address\n isAddress(tokenAddress)) &&\n (query?.enabled ?? true),\n });\n}\n\nexport function deltaLimitOrderRequiredBalanceQueryKey({\n chainId,\n account,\n tokenAddress,\n}: {\n chainId: SupportedChainId;\n account?: Address;\n tokenAddress?: string;\n}): DeltaLimitOrderRequiredBalanceQueryKey {\n return [\n \"delta/getRequiredBalance\",\n {\n chainId,\n account: account?.toLowerCase() as Address,\n tokenAddress: tokenAddress?.toLowerCase(),\n },\n ] as const;\n}\n\ntype DeltaOrderRequiredAllowanceInput = {\n tokenAddress?: string;\n amount?: string | bigint;\n enabled: boolean;\n};\n\ntype DeltaOrderRequiredAllowanceResult = {\n combinedAllowance?: bigint;\n isLoading: boolean;\n};\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: MarkRequired<DeltaOrderRequiredAllowanceInput, \"amount\">): MarkRequired<\n DeltaOrderRequiredAllowanceResult,\n \"combinedAllowance\"\n>;\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: DeltaOrderRequiredAllowanceInput & {\n amount: undefined;\n}): DeltaOrderRequiredAllowanceResult & { combinedAllowance: undefined };\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: DeltaOrderRequiredAllowanceInput): DeltaOrderRequiredAllowanceResult;\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: DeltaOrderRequiredAllowanceInput): DeltaOrderRequiredAllowanceResult {\n const { data: balanceRequiredForCurrentOrders, isLoading } =\n useDeltaLimitOrderRequiredBalance({\n tokenAddress,\n query: {\n enabled: !!tokenAddress && enabled,\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n select: (data) => {\n if (!tokenAddress) return 0n;\n\n const balanceRequired = data[tokenAddress.toLowerCase()];\n if (!balanceRequired) return 0n;\n return BigInt(balanceRequired);\n },\n },\n });\n\n if (!amount || !enabled || !balanceRequiredForCurrentOrders)\n // don't include current orders allowance if not enabled\n return {\n isLoading,\n combinedAllowance: amount !== undefined ? BigInt(amount) : undefined,\n };\n\n // amount required to cover allowance of current Orders + amount for the new Order\n const combinedAllowance = BigInt(amount) + balanceRequiredForCurrentOrders;\n\n return {\n combinedAllowance,\n isLoading,\n };\n}\n"],"names":["useDeltaLimitOrderRequiredBalance","t0","$","_c","tokenAddress","query","chainId","useChainId","address","account","useAccount","t1","minClient","useMinViemClient","t2","client","sdk","useDeltaSDK","t3","deltaLimitOrderRequiredBalanceQueryKey","t4","t5","signal","assert","getRequiredBalanceForDeltaLimitOrders","userAddress","enabled","isAddress","t6","queryKey","queryFn","useQuery","toLowerCase","useDeltaOrderRequiredAllowance","amount","data","balanceRequiredForCurrentOrders","isLoading","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","select","balanceRequired","BigInt","combinedAllowance","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaLimitOrderRequiredBalance.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport { assert, type MarkRequired } from \"ts-essentials\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\n\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { isAddress, type Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\n\n// ============================================================================\n// Types for getRequiredBalanceForDeltaLimitOrders\n// ============================================================================\n\ntype DeltaLimitOrderRequiredBalanceReturn = Record<string, string>;\n\ntype DeltaLimitOrderRequiredBalanceQueryParams<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n> = Omit<\n UseQueryOptions<\n DeltaLimitOrderRequiredBalanceReturn,\n Error,\n TData,\n DeltaLimitOrderRequiredBalanceQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaLimitOrderRequiredBalanceQueryResult<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n> = UseQueryResult<TData, Error>;\n\ntype DeltaLimitOrderRequiredBalanceQueryInput<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n> = {\n tokenAddress?: string;\n query?: DeltaLimitOrderRequiredBalanceQueryParams<TData>;\n};\n\ntype DeltaLimitOrderRequiredBalanceQueryKey = [\n base: \"delta/getRequiredBalance\",\n { chainId: number; account?: Address; tokenAddress?: string },\n];\n\nexport function useDeltaLimitOrderRequiredBalance<\n TData = DeltaLimitOrderRequiredBalanceReturn,\n>({\n tokenAddress,\n query,\n}: DeltaLimitOrderRequiredBalanceQueryInput<TData>): DeltaLimitOrderRequiredBalanceQueryResult<TData> {\n const chainId = useChainId();\n const { address: account } = useAccount();\n const { minClient } = useMinViemClient({ chainId, account });\n\n const { sdk } = useDeltaSDK({\n chainId,\n client: minClient,\n account,\n });\n\n return useQuery<\n DeltaLimitOrderRequiredBalanceReturn,\n Error,\n TData,\n DeltaLimitOrderRequiredBalanceQueryKey\n >({\n queryKey: deltaLimitOrderRequiredBalanceQueryKey({\n chainId,\n account,\n tokenAddress,\n }),\n queryFn: ({ signal }) => {\n assert(sdk, \"SDK not initialized\");\n assert(account, \"account is required\");\n\n return sdk.getRequiredBalanceForDeltaLimitOrders(\n { userAddress: account, tokenAddress },\n { signal }\n );\n },\n ...query,\n enabled:\n !!(chainId && account && sdk) &&\n // either no specific token given\n (!tokenAddress ||\n // or a non-ETH token with a valid address\n (isAddress(tokenAddress) && !isETHaddress(tokenAddress))) &&\n (query?.enabled ?? true),\n });\n}\n\nexport function deltaLimitOrderRequiredBalanceQueryKey({\n chainId,\n account,\n tokenAddress,\n}: {\n chainId: SupportedChainId;\n account?: Address;\n tokenAddress?: string;\n}): DeltaLimitOrderRequiredBalanceQueryKey {\n return [\n \"delta/getRequiredBalance\",\n {\n chainId,\n account: account?.toLowerCase() as Address,\n tokenAddress: tokenAddress?.toLowerCase(),\n },\n ] as const;\n}\n\ntype DeltaOrderRequiredAllowanceInput = {\n tokenAddress?: string;\n amount?: string | bigint;\n enabled: boolean;\n};\n\ntype DeltaOrderRequiredAllowanceResult = {\n combinedAllowance?: bigint;\n isLoading: boolean;\n};\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: MarkRequired<DeltaOrderRequiredAllowanceInput, \"amount\">): MarkRequired<\n DeltaOrderRequiredAllowanceResult,\n \"combinedAllowance\"\n>;\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: DeltaOrderRequiredAllowanceInput & {\n amount: undefined;\n}): DeltaOrderRequiredAllowanceResult & { combinedAllowance: undefined };\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: DeltaOrderRequiredAllowanceInput): DeltaOrderRequiredAllowanceResult;\nexport function useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount,\n enabled,\n}: DeltaOrderRequiredAllowanceInput): DeltaOrderRequiredAllowanceResult {\n const { data: balanceRequiredForCurrentOrders, isLoading } =\n useDeltaLimitOrderRequiredBalance({\n tokenAddress,\n query: {\n enabled: !!tokenAddress && enabled,\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n select: (data) => {\n if (!tokenAddress) return 0n;\n\n const balanceRequired = data[tokenAddress.toLowerCase()];\n if (!balanceRequired) return 0n;\n return BigInt(balanceRequired);\n },\n },\n });\n\n if (!amount || !enabled || !balanceRequiredForCurrentOrders)\n // don't include current orders allowance if not enabled\n return {\n isLoading,\n combinedAllowance: amount !== undefined ? BigInt(amount) : undefined,\n };\n\n // amount required to cover allowance of current Orders + amount for the new Order\n const combinedAllowance = BigInt(amount) + balanceRequiredForCurrentOrders;\n\n return {\n combinedAllowance,\n isLoading,\n };\n}\n"],"names":["useDeltaLimitOrderRequiredBalance","t0","$","_c","tokenAddress","query","chainId","useChainId","address","account","useAccount","t1","minClient","useMinViemClient","t2","client","sdk","useDeltaSDK","t3","deltaLimitOrderRequiredBalanceQueryKey","t4","t5","signal","assert","getRequiredBalanceForDeltaLimitOrders","userAddress","enabled","isAddress","isETHaddress","t6","queryKey","queryFn","useQuery","toLowerCase","useDeltaOrderRequiredAllowance","amount","data","balanceRequiredForCurrentOrders","isLoading","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","select","balanceRequired","BigInt","combinedAllowance","undefined"],"mappings":"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"}
|
|
@@ -116,32 +116,6 @@ function isDeltaPrice(price) {
|
|
|
116
116
|
function isBridgePrice(price) {
|
|
117
117
|
return price.bridge.destinationChainId !== 0;
|
|
118
118
|
}
|
|
119
|
-
function useDeltaPriceQueryForPrice() {
|
|
120
|
-
const $ = distExports.c(2);
|
|
121
|
-
const queryClient = useQueryClient();
|
|
122
|
-
let t0;
|
|
123
|
-
if ($[0] !== queryClient) {
|
|
124
|
-
t0 = (t1) => {
|
|
125
|
-
const {
|
|
126
|
-
chainId,
|
|
127
|
-
price
|
|
128
|
-
} = t1;
|
|
129
|
-
const queryKey = [DeltaPriceQueryKeyPrefix, chainId];
|
|
130
|
-
const queryCache = queryClient.getQueryCache();
|
|
131
|
-
const query_0 = queryCache.find({
|
|
132
|
-
queryKey,
|
|
133
|
-
exact: false,
|
|
134
|
-
predicate: (query) => query.state.data === price
|
|
135
|
-
});
|
|
136
|
-
return query_0;
|
|
137
|
-
};
|
|
138
|
-
$[0] = queryClient;
|
|
139
|
-
$[1] = t0;
|
|
140
|
-
} else {
|
|
141
|
-
t0 = $[1];
|
|
142
|
-
}
|
|
143
|
-
return t0;
|
|
144
|
-
}
|
|
145
119
|
function useSubscribeToDeltaPrice() {
|
|
146
120
|
const $ = distExports.c(2);
|
|
147
121
|
const queryClient = useQueryClient();
|
|
@@ -230,5 +204,5 @@ function useDeltaPriceQueryKey({
|
|
|
230
204
|
}, [priceParams.beneficiary, priceParams.destDecimals, priceParams.destToken, priceParams.excludeAgents, priceParams.includeAgents, priceParams.includeBridges, priceParams.excludeBridges, priceParams.partner, priceParams.partnerFeeBps, priceParams.side, priceParams.srcDecimals, priceParams.srcToken, priceParams.userAddress, priceParams.allowBridgeAndSwap, chainId, debouncedAmount, destChainId]);
|
|
231
205
|
}
|
|
232
206
|
|
|
233
|
-
export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery,
|
|
207
|
+
export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery, useDeltaPriceQueryKey, useSubscribeToDeltaPrice };
|
|
234
208
|
//# sourceMappingURL=useDeltaPriceQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n OptimalRate,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useMemo } from \"react\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const DeltaPriceQueryKeyPrefix = \"swap/prices/delta\";\n\nexport type DeltaPriceQueryKey = readonly [\n base: typeof DeltaPriceQueryKeyPrefix,\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n} {\n const { sdk } = useDeltaSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useDeltaPriceQueryKey({\n priceParams: _priceParams,\n chainId,\n destChainId,\n });\n\n const result = useQuery<\n DeltaPrice | BridgePrice,\n Error,\n TData,\n DeltaPriceQueryKey\n >({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n\n return { result, queryKey };\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n priceParams.destDecimals !== undefined &&\n Number(priceParams.amount) > 0\n );\n}\n\nexport function isDeltaPrice(\n price: OptimalRate | DeltaPrice\n): price is DeltaPrice {\n return \"bridge\" in price;\n}\n\nexport function isBridgePrice(\n price: DeltaPrice | BridgePrice\n): price is BridgePrice {\n return price.bridge.destinationChainId !== 0;\n}\n\ntype GetDeltaPriceQueryForPriceInput = {\n price: DeltaPrice | BridgePrice;\n chainId: number;\n};\n\ntype DeltaPriceQuery = Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n>;\n\ntype GetDeltaPriceQueryForPrice = (\n input: GetDeltaPriceQueryForPriceInput\n) =>\n | Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n >\n | undefined;\n\n// get query for a given deltaPrice\nexport function useDeltaPriceQueryForPrice(): GetDeltaPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [DeltaPriceQueryKey[0], DeltaPriceQueryKey[1]] = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice\n >({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as DeltaPriceQuery | undefined;\n };\n}\n\ntype SubscribeToDeltaPriceInput = {\n queryKey: DeltaPriceQueryKey;\n onData?: (data: DeltaPrice | BridgePrice) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToDeltaPriceResult = (\n input: SubscribeToDeltaPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToDeltaPrice(): SubscribeToDeltaPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nfunction getLastDeltaPriceQuery(\n queryClient: QueryClient\n):\n | Query<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>\n | undefined {\n return queryClient\n .getQueryCache()\n .find<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>({\n queryKey: [DeltaPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n}\n\nexport function getLastDeltaPrice(\n queryClient: QueryClient\n): DeltaPrice | BridgePrice | undefined {\n const query = getLastDeltaPriceQuery(queryClient);\n\n return query?.state.data;\n}\n\nexport function isLastDeltaPriceQueryInError(\n queryClient: QueryClient\n): boolean {\n const query = getLastDeltaPriceQuery(queryClient);\n const error = query?.state.error;\n return !!error;\n}\n\nexport function isDataDeltaOrBridgePrice(\n price: unknown\n): price is DeltaPrice | BridgePrice {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bridge\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nexport function useDeltaPriceQueryKey({\n priceParams,\n chainId,\n destChainId,\n}: Pick<DeltaPriceQueryInput, \"priceParams\" | \"chainId\"> & {\n destChainId?: number;\n}) {\n \"use no memo\";\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n return useMemo(() => {\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & {\n destChainId?: number;\n } = {\n amount: debouncedAmount,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n beneficiary: priceParams.beneficiary,\n partner: priceParams.partner,\n partnerFeeBps: priceParams.partnerFeeBps,\n side: priceParams.side,\n includeAgents: priceParams.includeAgents,\n excludeAgents: priceParams.excludeAgents,\n includeBridges: priceParams.includeBridges,\n excludeBridges: priceParams.excludeBridges,\n allowBridgeAndSwap: priceParams.allowBridgeAndSwap,\n destChainId: destChainId,\n };\n\n const queryKey: DeltaPriceQueryKey = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n }, [\n priceParams.beneficiary,\n priceParams.destDecimals,\n priceParams.destToken,\n priceParams.excludeAgents,\n priceParams.includeAgents,\n priceParams.includeBridges,\n priceParams.excludeBridges,\n priceParams.partner,\n priceParams.partnerFeeBps,\n priceParams.side,\n priceParams.srcDecimals,\n priceParams.srcToken,\n priceParams.userAddress,\n priceParams.allowBridgeAndSwap,\n chainId,\n debouncedAmount,\n destChainId,\n ]);\n}\n"],"names":["DeltaPriceQueryKeyPrefix","useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useDeltaPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getDeltaPrice","t5","queryFn","result","useQuery","t6","destToken","destDecimals","undefined","Number","amount","isDeltaPrice","isBridgePrice","bridge","destinationChainId","useDeltaPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToDeltaPrice","onData","onError","observer","QueryObserver","subscribe","error","getLastDeltaPriceQuery","type","getLastDeltaPrice","isLastDeltaPriceQueryInError","isDataDeltaOrBridgePrice","debouncedAmount","useDebouncedValue","wait","useMemo","srcToken","srcDecimals","userAddress","beneficiary","partner","partnerFeeBps","side","includeAgents","excludeAgents","includeBridges","excludeBridges","allowBridgeAndSwap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n OptimalRate,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useMemo } from \"react\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const DeltaPriceQueryKeyPrefix = \"swap/prices/delta\";\n\nexport type DeltaPriceQueryKey = readonly [\n base: typeof DeltaPriceQueryKeyPrefix,\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n} {\n const { sdk } = useDeltaSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useDeltaPriceQueryKey({\n priceParams: _priceParams,\n chainId,\n destChainId,\n });\n\n const result = useQuery<\n DeltaPrice | BridgePrice,\n Error,\n TData,\n DeltaPriceQueryKey\n >({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n\n return { result, queryKey };\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n priceParams.destDecimals !== undefined &&\n Number(priceParams.amount) > 0\n );\n}\n\nexport function isDeltaPrice(\n price: OptimalRate | DeltaPrice\n): price is DeltaPrice {\n return \"bridge\" in price;\n}\n\nexport function isBridgePrice(\n price: DeltaPrice | BridgePrice\n): price is BridgePrice {\n return price.bridge.destinationChainId !== 0;\n}\n\ntype GetDeltaPriceQueryForPriceInput = {\n price: DeltaPrice | BridgePrice;\n chainId: number;\n};\n\ntype DeltaPriceQuery = Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n>;\n\ntype GetDeltaPriceQueryForPrice = (\n input: GetDeltaPriceQueryForPriceInput\n) =>\n | Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n >\n | undefined;\n\n// get query for a given deltaPrice\nexport function useDeltaPriceQueryForPrice(): GetDeltaPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [DeltaPriceQueryKey[0], DeltaPriceQueryKey[1]] = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice\n >({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as DeltaPriceQuery | undefined;\n };\n}\n\ntype SubscribeToDeltaPriceInput = {\n queryKey: DeltaPriceQueryKey;\n onData?: (data: DeltaPrice | BridgePrice) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToDeltaPriceResult = (\n input: SubscribeToDeltaPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToDeltaPrice(): SubscribeToDeltaPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nfunction getLastDeltaPriceQuery(\n queryClient: QueryClient\n):\n | Query<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>\n | undefined {\n return queryClient\n .getQueryCache()\n .find<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>({\n queryKey: [DeltaPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n}\n\nexport function getLastDeltaPrice(\n queryClient: QueryClient\n): DeltaPrice | BridgePrice | undefined {\n const query = getLastDeltaPriceQuery(queryClient);\n\n return query?.state.data;\n}\n\nexport function isLastDeltaPriceQueryInError(\n queryClient: QueryClient\n): boolean {\n const query = getLastDeltaPriceQuery(queryClient);\n const error = query?.state.error;\n return !!error;\n}\n\nexport function isDataDeltaOrBridgePrice(\n price: unknown\n): price is DeltaPrice | BridgePrice {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bridge\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nexport function useDeltaPriceQueryKey({\n priceParams,\n chainId,\n destChainId,\n}: Pick<DeltaPriceQueryInput, \"priceParams\" | \"chainId\"> & {\n destChainId?: number;\n}) {\n \"use no memo\";\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n return useMemo(() => {\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & {\n destChainId?: number;\n } = {\n amount: debouncedAmount,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n beneficiary: priceParams.beneficiary,\n partner: priceParams.partner,\n partnerFeeBps: priceParams.partnerFeeBps,\n side: priceParams.side,\n includeAgents: priceParams.includeAgents,\n excludeAgents: priceParams.excludeAgents,\n includeBridges: priceParams.includeBridges,\n excludeBridges: priceParams.excludeBridges,\n allowBridgeAndSwap: priceParams.allowBridgeAndSwap,\n destChainId: destChainId,\n };\n\n const queryKey: DeltaPriceQueryKey = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n }, [\n priceParams.beneficiary,\n priceParams.destDecimals,\n priceParams.destToken,\n priceParams.excludeAgents,\n priceParams.includeAgents,\n priceParams.includeBridges,\n priceParams.excludeBridges,\n priceParams.partner,\n priceParams.partnerFeeBps,\n priceParams.side,\n priceParams.srcDecimals,\n priceParams.srcToken,\n priceParams.userAddress,\n priceParams.allowBridgeAndSwap,\n chainId,\n debouncedAmount,\n destChainId,\n ]);\n}\n"],"names":["DeltaPriceQueryKeyPrefix","useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useDeltaPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getDeltaPrice","t5","queryFn","result","useQuery","t6","destToken","destDecimals","undefined","Number","amount","isDeltaPrice","isBridgePrice","bridge","destinationChainId","useSubscribeToDeltaPrice","queryClient","useQueryClient","onData","onError","observer","QueryObserver","subscribe","error","data","getLastDeltaPriceQuery","getQueryCache","find","exact","type","getLastDeltaPrice","state","isLastDeltaPriceQueryInError","isDataDeltaOrBridgePrice","debouncedAmount","useDebouncedValue","wait","useMemo","srcToken","srcDecimals","userAddress","beneficiary","partner","partnerFeeBps","side","includeAgents","excludeAgents","includeBridges","excludeBridges","allowBridgeAndSwap"],"mappings":"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"}
|
|
@@ -13,16 +13,15 @@ export declare function deltaAuctionPollingQueryKey({ orderId, }?: {
|
|
|
13
13
|
orderId?: string;
|
|
14
14
|
}): SingleDeltaAuctionQueryKey;
|
|
15
15
|
export type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null;
|
|
16
|
-
type UseWatchDeltaAuctionQueryInput
|
|
16
|
+
type UseWatchDeltaAuctionQueryInput = {
|
|
17
17
|
orderId?: string;
|
|
18
18
|
enabled?: boolean;
|
|
19
|
-
select?: (data: MaybeVeloraDeltaAuction) => TData;
|
|
20
19
|
onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;
|
|
21
20
|
onAuctionFailure?: (auction: FailedDeltaAuction) => void;
|
|
22
21
|
onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, "signature">) => void;
|
|
23
22
|
onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, "id">) => void;
|
|
24
23
|
};
|
|
25
|
-
export declare function useWatchDeltaAuction
|
|
24
|
+
export declare function useWatchDeltaAuction({ orderId, enabled, onAuctionSuccess, onAuctionFailure, onUpdatedAuction, onTimeoutGettingOrder, }: UseWatchDeltaAuctionQueryInput): UseQueryResult<MaybeVeloraDeltaAuction>;
|
|
26
25
|
type EnsureOrderExecutedFn = (options: {
|
|
27
26
|
orderId: string;
|
|
28
27
|
signal?: AbortSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWatchDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAMhF,QAAA,MAAM,qCAAqC,yBAAyB,CAAC;AACrE,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,OAAO,qCAAqC;IAClD,OAAO,CAAC,EAAE,MAAM;CACjB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,EAC1C,OAAO,GACR,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,0BAA0B,CAElC;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useWatchDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,6 @@ const LOOK_FOR_ORDER_TIMEOUT = 6e4;
|
|
|
19
19
|
function constructDeltaAuctionPollingQueryOptions({
|
|
20
20
|
orderId,
|
|
21
21
|
enabled = true,
|
|
22
|
-
select,
|
|
23
22
|
getAuction,
|
|
24
23
|
onUpdatedAuction,
|
|
25
24
|
onAuctionSuccess,
|
|
@@ -87,16 +86,12 @@ function constructDeltaAuctionPollingQueryOptions({
|
|
|
87
86
|
}
|
|
88
87
|
return DELTA_ORDER_POLLING_INTERVAL;
|
|
89
88
|
},
|
|
90
|
-
enabled: !!orderId && enabled
|
|
91
|
-
select
|
|
89
|
+
enabled: !!orderId && enabled
|
|
92
90
|
};
|
|
93
91
|
}
|
|
94
92
|
function useWatchDeltaAuction({
|
|
95
93
|
orderId,
|
|
96
94
|
enabled = true,
|
|
97
|
-
// important to pass stable reference of select function,
|
|
98
|
-
// otherwise constructQueryOptions will re-execute every render
|
|
99
|
-
select,
|
|
100
95
|
onAuctionSuccess,
|
|
101
96
|
onAuctionFailure,
|
|
102
97
|
onUpdatedAuction,
|
|
@@ -125,14 +120,13 @@ function useWatchDeltaAuction({
|
|
|
125
120
|
return constructDeltaAuctionPollingQueryOptions({
|
|
126
121
|
orderId,
|
|
127
122
|
enabled,
|
|
128
|
-
select,
|
|
129
123
|
getAuction: sdk.getDeltaOrderById,
|
|
130
124
|
onUpdatedAuction: callbacksRef.current.onUpdatedAuction,
|
|
131
125
|
onAuctionSuccess: callbacksRef.current.onAuctionSuccess,
|
|
132
126
|
onAuctionFailure: callbacksRef.current.onAuctionFailure,
|
|
133
127
|
onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder
|
|
134
128
|
});
|
|
135
|
-
}, [orderId, enabled,
|
|
129
|
+
}, [orderId, enabled, sdk.getDeltaOrderById]);
|
|
136
130
|
return useQuery(queryOptions);
|
|
137
131
|
}
|
|
138
132
|
function useEnsureDeltaOrderExecuted(t0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWatchDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"sourcesContent":["import {\n QueryObserver,\n useQueries,\n useQuery,\n useQueryClient,\n type QueryMeta,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useLayoutEffect, useMemo, useRef } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport type { DeltaOrderFromAPI } from \"./useDeltaOrders\";\nimport {\n isMetaWithTimeStart,\n type BridgedDepositResponseFailure,\n type BridgedDepositResponseSuccess,\n type GetBridgedDepositStatusInput,\n type RefetchMetaWithTiming,\n} from \"../bridge/utils\";\nimport type { BridgedDepositResponse } from \"../bridge/types\";\nimport { useBridgedDepositStatus } from \"../bridge/useBridgedDeposit\";\nimport type { DeltaAuction } from \"@velora-dex/sdk\";\nimport {\n DeltaOrderStatusChecker,\n isExecutedDeltaAuction,\n isFailedDeltaAuction,\n isDeltaAuctionExpired,\n isCanceledDeltaAuction,\n} from \"../orders/utils\";\nimport type { ExecutedDeltaAuction, FailedDeltaAuction } from \"../orders/types\";\nimport { getLogger, useLogger } from \"@/core/logger\";\nimport { DeltaOrderFailedError } from \"./errors\";\n\n// ------------------------------------ Single Delta Auction -----------------------------------\n\nconst SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = \"single_delta_auction\";\ntype SingleDeltaAuctionQueryKey = [\n base: typeof SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId?: string,\n];\n\nexport function deltaAuctionPollingQueryKey({\n orderId,\n}: {\n orderId?: string;\n} = {}): SingleDeltaAuctionQueryKey {\n return [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId] as const;\n}\n\nexport type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null; // null is when no such Order for orderId\n\ntype UseDeltaAuctionQueryOptions<TData = MaybeVeloraDeltaAuction> =\n UseQueryOptions<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >;\n\nconst DELTA_ORDER_POLLING_INTERVAL = 3_000;\n\ntype ConstructDeltaAuctionPollingQueryOptionsInput<\n TData = MaybeVeloraDeltaAuction,\n> = {\n orderId?: string;\n enabled?: boolean;\n select?: (data: MaybeVeloraDeltaAuction) => TData;\n getAuction(\n orderId: string,\n requestParams: { signal?: AbortSignal }\n ): Promise<MaybeVeloraDeltaAuction>;\n} & Pick<\n UseWatchMultiDeltaAuctions,\n | \"onAuctionSuccess\"\n | \"onAuctionFailure\"\n | \"onUpdatedAuction\"\n | \"onTimeoutGettingOrder\"\n>;\n\nconst LOOK_FOR_ORDER_TIMEOUT = 60_000;\n\nfunction constructDeltaAuctionPollingQueryOptions<\n TData = MaybeVeloraDeltaAuction,\n>({\n orderId,\n enabled = true,\n select,\n getAuction,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n}: ConstructDeltaAuctionPollingQueryOptionsInput<TData>): Pick<\n UseDeltaAuctionQueryOptions<TData>,\n \"queryKey\" | \"queryFn\" | \"meta\" | \"refetchInterval\" | \"enabled\" | \"select\"\n> {\n const doneState = false;\n\n const isMetaWithDoneState = (\n queryMeta: QueryMeta\n ): queryMeta is { doneState: boolean } => {\n return \"doneState\" in queryMeta && typeof queryMeta.doneState === \"boolean\";\n };\n\n // queryOptions has to be memoized, otherwise queryMeta is updated on each render,\n // including startedQueryAt\n const meta: RefetchMetaWithTiming & {\n doneState: boolean;\n } = {\n startedQueryAt: Date.now(),\n doneState,\n };\n\n return {\n queryKey: deltaAuctionPollingQueryKey({ orderId }),\n queryFn: ({ signal }) => {\n assert(orderId, \"orderId is required\");\n return getAuction(orderId, { signal });\n },\n meta,\n refetchInterval: (query) => {\n const maybeOrder = query.state.data;\n\n const queryMeta = query.options.meta;\n // refetchInterval is called on each render, regardless of queryOptions memoizations.\n // @TODO rework Watch Order logic to avoid callbacks inside refetchInterval,\n // or do away with these callbacks, they are unused currently.\n const isWithDoneState = !!queryMeta && isMetaWithDoneState(queryMeta);\n if (isWithDoneState && queryMeta.doneState) {\n getLogger(\"DeltaAuctionPollingQueryOptions\").log(\n \"Shortcut return for refetchInterval\"\n );\n return false;\n }\n\n // Order could have an updated status during its lifecycle\n if (maybeOrder) onUpdatedAuction?.(maybeOrder);\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n if (\n isFailedDeltaAuction(maybeOrder) ||\n isDeltaAuctionExpired(maybeOrder) ||\n isCanceledDeltaAuction(maybeOrder)\n ) {\n onAuctionFailure?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n }\n\n if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - queryMeta.startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n assert(orderId, \"orderId is required\");\n onTimeoutGettingOrder?.({ id: orderId });\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling after 1 minute\n }\n }\n\n return DELTA_ORDER_POLLING_INTERVAL; // default interval for both crosschain and singlechain Orders\n },\n enabled: !!orderId && enabled,\n select,\n };\n}\n\n// ----------------- Single Delta Query -----------------------------------\n\ntype UseWatchDeltaAuctionQueryInput<TData = MaybeVeloraDeltaAuction> = {\n orderId?: string;\n enabled?: boolean;\n select?: (data: MaybeVeloraDeltaAuction) => TData;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchDeltaAuction<TData = MaybeVeloraDeltaAuction>({\n orderId,\n enabled = true,\n // important to pass stable reference of select function,\n // otherwise constructQueryOptions will re-execute every render\n select,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchDeltaAuctionQueryInput<TData>): UseQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queryOptions = useMemo(() => {\n /* eslint-disable react-hooks/refs */\n return constructDeltaAuctionPollingQueryOptions<TData>({\n orderId,\n enabled,\n select,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n });\n /* eslint-enable react-hooks/refs */\n }, [orderId, enabled, select, sdk.getDeltaOrderById]);\n\n return useQuery<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >(queryOptions);\n}\n\ntype EnsureOrderExecutedFn = (options: {\n orderId: string;\n signal?: AbortSignal;\n}) => Promise<MaybeVeloraDeltaAuction>;\n\nexport function useEnsureDeltaOrderExecuted({\n onAuctionSuccess,\n onAuctionFailure,\n}: Pick<\n UseWatchDeltaAuctionQueryInput,\n \"onAuctionSuccess\" | \"onAuctionFailure\"\n> = {}): EnsureOrderExecutedFn {\n const queryClient = useQueryClient();\n const logger = useLogger(\"EnsureDeltaOrderExecuted\");\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const ensureOrderSent: EnsureOrderExecutedFn = async ({\n orderId,\n signal,\n }): Promise<MaybeVeloraDeltaAuction> => {\n const queryKey: SingleDeltaAuctionQueryKey = deltaAuctionPollingQueryKey({\n orderId,\n });\n\n const queryOptions = constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled: true,\n getAuction: sdk.getDeltaOrderById,\n });\n\n const observer = new QueryObserver<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryClient, queryOptions);\n\n const promise = new Promise<MaybeVeloraDeltaAuction>((resolve, reject) => {\n const startedQueryAt = Date.now();\n\n // don't leave the promise and therefore the observer hanging,\n // observer has its own stop-refetching logic in refetchIterval,\n // but this is an extra failsafe\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n logger.log(\"QueryObserver\", queryKey, \"timeout\");\n unsubscribe();\n reject(new Error(`Order ${orderId} not found`));\n }, LOOK_FOR_ORDER_TIMEOUT + 1000); // a bit of jitter time\n\n signal?.addEventListener(\"abort\", () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n unsubscribe();\n reject(new Error(`Order execution aborted: ${signal.reason}`));\n });\n\n const unsubscribe = observer.subscribe((result) => {\n const cleanup = () => {\n logger.log(\"QueryObserver\", queryKey, \"cleanup\");\n unsubscribe();\n };\n\n logger.log(\"QueryObserver\", queryKey, result);\n\n const maybeOrder = result.data;\n\n if (maybeOrder && timeout !== null) {\n // Order fetched at least once\n clearTimeout(timeout);\n timeout = null;\n }\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n cleanup();\n resolve(maybeOrder);\n return;\n }\n if (\n isFailedDeltaAuction(maybeOrder) ||\n isDeltaAuctionExpired(maybeOrder) ||\n isCanceledDeltaAuction(maybeOrder)\n ) {\n onAuctionFailure?.(maybeOrder);\n cleanup();\n reject(\n new DeltaOrderFailedError({\n order: maybeOrder,\n })\n );\n return;\n }\n }\n\n if (maybeOrder === null) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n cleanup();\n reject(new Error(`Order ${orderId} not found`));\n return;\n }\n }\n if (result.error) {\n cleanup();\n reject(result.error);\n return;\n }\n });\n });\n\n return promise;\n };\n\n return ensureOrderSent;\n}\n\n// ----------------- Multi Delta Queries -----------------------------------\n\ntype UseWatchMultiDeltaAuctions = {\n orderIds: string[];\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchMultiDeltaAuctions({\n orderIds,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchMultiDeltaAuctions): UseQueryResult<MaybeVeloraDeltaAuction>[] {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queries = useMemo<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>[]\n >(\n () =>\n orderIds.map(\n /* eslint-disable react-hooks/refs */\n (orderId) =>\n constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n })\n /* eslint-enable react-hooks/refs */\n ),\n [enabled, orderIds, sdk.getDeltaOrderById]\n );\n\n const auctionsResults = useQueries({ queries });\n\n return auctionsResults;\n}\n\ntype MultiOrdersStatusCrossChainInput = {\n orders: DeltaOrderFromAPI[];\n onAuctionSuccess?: (order: DeltaOrderFromAPI) => void;\n onAuctionFailure?: (order: DeltaOrderFromAPI) => void;\n onUpdatedAuction?: (\n auction: MarkOptional<DeltaAuction, \"signature\">,\n bridgeResponse: BridgedDepositResponse\n ) => void;\n};\n\n// can be used for checking Crosschain Order status checking\n// if status check from API is slow to update\nexport function useWatchMultiOrdersStatusCrossChain({\n orders,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n}: MultiOrdersStatusCrossChainInput): UseQueryResult<BridgedDepositResponse>[] {\n const { deposits, onNewResponse, onDepositSuccess, onDepositFailure } =\n useMemo(() => {\n const { deposits, depositId2Order } = orders.reduce<{\n deposits: GetBridgedDepositStatusInput[];\n depositId2Order: Record<string, DeltaOrderFromAPI>;\n }>(\n (acc, order) => {\n if (order.bridgeMetadata?.depositId) {\n acc.deposits.push({\n depositId: String(order.bridgeMetadata.depositId),\n originChainId: order.chainId,\n });\n acc.depositId2Order[order.bridgeMetadata.depositId] = order;\n }\n return acc;\n },\n { deposits: [], depositId2Order: {} }\n );\n const onNewResponse = (response: BridgedDepositResponse) => {\n const order = depositId2Order[response.depositId];\n if (order) {\n onUpdatedAuction?.(order, response);\n }\n };\n\n const onDepositSuccess = onAuctionSuccess\n ? (deposit: BridgedDepositResponseSuccess) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const successfulOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionSuccess(successfulOrder);\n }\n }\n : undefined;\n\n const onDepositFailure = onAuctionFailure\n ? (deposit: BridgedDepositResponseFailure) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const failedOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx || undefined,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionFailure(failedOrder);\n }\n }\n : undefined;\n\n return { deposits, onNewResponse, onDepositSuccess, onDepositFailure };\n }, [orders, onAuctionSuccess, onAuctionFailure, onUpdatedAuction]);\n\n const depositStatuses = useBridgedDepositStatus({\n deposits,\n onNewResponse,\n onDepositSuccess,\n onDepositFailure,\n });\n\n return depositStatuses;\n}\n"],"names":["SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX","deltaAuctionPollingQueryKey","orderId","DELTA_ORDER_POLLING_INTERVAL","LOOK_FOR_ORDER_TIMEOUT","constructDeltaAuctionPollingQueryOptions","enabled","select","getAuction","onUpdatedAuction","onAuctionSuccess","onAuctionFailure","onTimeoutGettingOrder","doneState","isMetaWithDoneState","queryMeta","meta","startedQueryAt","Date","now","queryKey","queryFn","signal","assert","refetchInterval","query","maybeOrder","state","data","options","isWithDoneState","getLogger","log","DeltaOrderStatusChecker","completed","has","status","isExecutedDeltaAuction","isFailedDeltaAuction","isDeltaAuctionExpired","isCanceledDeltaAuction","isMetaWithTimeStart","elapsed","id","useWatchDeltaAuction","sdk","useDeltaSDK","chainId","callbacksRef","useRef","useLayoutEffect","current","queryOptions","useMemo","getDeltaOrderById","useQuery","useEnsureDeltaOrderExecuted","t0","$","_c","t1","undefined","queryClient","useQueryClient","logger","useLogger","t2","Symbol","for","t3","t4","observer","QueryObserver","promise","Promise","resolve","reject","timeout","setTimeout","unsubscribe","Error","addEventListener","clearTimeout","reason","subscribe","result","cleanup","DeltaOrderFailedError","order","error","ensureOrderSent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useWatchDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useWatchDeltaOrder.ts"],"sourcesContent":["import {\n QueryObserver,\n useQueries,\n useQuery,\n useQueryClient,\n type QueryMeta,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useLayoutEffect, useMemo, useRef } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport type { DeltaOrderFromAPI } from \"./useDeltaOrders\";\nimport {\n isMetaWithTimeStart,\n type BridgedDepositResponseFailure,\n type BridgedDepositResponseSuccess,\n type GetBridgedDepositStatusInput,\n type RefetchMetaWithTiming,\n} from \"../bridge/utils\";\nimport type { BridgedDepositResponse } from \"../bridge/types\";\nimport { useBridgedDepositStatus } from \"../bridge/useBridgedDeposit\";\nimport type { DeltaAuction } from \"@velora-dex/sdk\";\nimport {\n DeltaOrderStatusChecker,\n isExecutedDeltaAuction,\n isFailedDeltaAuction,\n isDeltaAuctionExpired,\n isCanceledDeltaAuction,\n} from \"../orders/utils\";\nimport type { ExecutedDeltaAuction, FailedDeltaAuction } from \"../orders/types\";\nimport { getLogger, useLogger } from \"@/core/logger\";\nimport { DeltaOrderFailedError } from \"./errors\";\n\n// ------------------------------------ Single Delta Auction -----------------------------------\n\nconst SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX = \"single_delta_auction\";\ntype SingleDeltaAuctionQueryKey = [\n base: typeof SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX,\n orderId?: string,\n];\n\nexport function deltaAuctionPollingQueryKey({\n orderId,\n}: {\n orderId?: string;\n} = {}): SingleDeltaAuctionQueryKey {\n return [SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX, orderId] as const;\n}\n\nexport type MaybeVeloraDeltaAuction = DeltaOrderFromAPI | null; // null is when no such Order for orderId\n\ntype UseDeltaAuctionQueryOptions<TData = MaybeVeloraDeltaAuction> =\n UseQueryOptions<\n MaybeVeloraDeltaAuction,\n Error,\n TData,\n SingleDeltaAuctionQueryKey\n >;\n\nconst DELTA_ORDER_POLLING_INTERVAL = 3_000;\n\ntype ConstructDeltaAuctionPollingQueryOptionsInput = {\n orderId?: string;\n enabled?: boolean;\n getAuction(\n orderId: string,\n requestParams: { signal?: AbortSignal }\n ): Promise<MaybeVeloraDeltaAuction>;\n} & Pick<\n UseWatchMultiDeltaAuctions,\n | \"onAuctionSuccess\"\n | \"onAuctionFailure\"\n | \"onUpdatedAuction\"\n | \"onTimeoutGettingOrder\"\n>;\n\nconst LOOK_FOR_ORDER_TIMEOUT = 60_000;\n\nfunction constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled = true,\n getAuction,\n onUpdatedAuction,\n onAuctionSuccess,\n onAuctionFailure,\n onTimeoutGettingOrder,\n}: ConstructDeltaAuctionPollingQueryOptionsInput): Pick<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>,\n \"queryKey\" | \"queryFn\" | \"meta\" | \"refetchInterval\" | \"enabled\"\n> {\n const doneState = false;\n\n const isMetaWithDoneState = (\n queryMeta: QueryMeta\n ): queryMeta is { doneState: boolean } => {\n return \"doneState\" in queryMeta && typeof queryMeta.doneState === \"boolean\";\n };\n\n // queryOptions has to be memoized, otherwise queryMeta is updated on each render,\n // including startedQueryAt\n const meta: RefetchMetaWithTiming & {\n doneState: boolean;\n } = {\n startedQueryAt: Date.now(),\n doneState,\n };\n\n return {\n queryKey: deltaAuctionPollingQueryKey({ orderId }),\n queryFn: ({ signal }) => {\n assert(orderId, \"orderId is required\");\n return getAuction(orderId, { signal });\n },\n meta,\n refetchInterval: (query) => {\n const maybeOrder = query.state.data;\n\n const queryMeta = query.options.meta;\n // refetchInterval is called on each render, regardless of queryOptions memoizations.\n // @TODO rework Watch Order logic to avoid callbacks inside refetchInterval,\n // or do away with these callbacks, they are unused currently.\n const isWithDoneState = !!queryMeta && isMetaWithDoneState(queryMeta);\n if (isWithDoneState && queryMeta.doneState) {\n getLogger(\"DeltaAuctionPollingQueryOptions\").log(\n \"Shortcut return for refetchInterval\"\n );\n return false;\n }\n\n // Order could have an updated status during its lifecycle\n if (maybeOrder) onUpdatedAuction?.(maybeOrder);\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n if (\n isFailedDeltaAuction(maybeOrder) ||\n isDeltaAuctionExpired(maybeOrder) ||\n isCanceledDeltaAuction(maybeOrder)\n ) {\n onAuctionFailure?.(maybeOrder);\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling\n }\n }\n\n if (maybeOrder === null && queryMeta && isMetaWithTimeStart(queryMeta)) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - queryMeta.startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n assert(orderId, \"orderId is required\");\n onTimeoutGettingOrder?.({ id: orderId });\n if (isWithDoneState) {\n queryMeta.doneState = true;\n }\n return false; // stop polling after 1 minute\n }\n }\n\n return DELTA_ORDER_POLLING_INTERVAL; // default interval for both crosschain and singlechain Orders\n },\n enabled: !!orderId && enabled,\n };\n}\n\n// ----------------- Single Delta Query -----------------------------------\n\ntype UseWatchDeltaAuctionQueryInput = {\n orderId?: string;\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchDeltaAuction({\n orderId,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchDeltaAuctionQueryInput): UseQueryResult<MaybeVeloraDeltaAuction> {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queryOptions = useMemo(() => {\n /* eslint-disable react-hooks/refs */\n return constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n });\n /* eslint-enable react-hooks/refs */\n }, [orderId, enabled, sdk.getDeltaOrderById]);\n\n return useQuery<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryOptions);\n}\n\ntype EnsureOrderExecutedFn = (options: {\n orderId: string;\n signal?: AbortSignal;\n}) => Promise<MaybeVeloraDeltaAuction>;\n\nexport function useEnsureDeltaOrderExecuted({\n onAuctionSuccess,\n onAuctionFailure,\n}: Pick<\n UseWatchDeltaAuctionQueryInput,\n \"onAuctionSuccess\" | \"onAuctionFailure\"\n> = {}): EnsureOrderExecutedFn {\n const queryClient = useQueryClient();\n const logger = useLogger(\"EnsureDeltaOrderExecuted\");\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const ensureOrderSent: EnsureOrderExecutedFn = async ({\n orderId,\n signal,\n }): Promise<MaybeVeloraDeltaAuction> => {\n const queryKey: SingleDeltaAuctionQueryKey = deltaAuctionPollingQueryKey({\n orderId,\n });\n\n const queryOptions = constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled: true,\n getAuction: sdk.getDeltaOrderById,\n });\n\n const observer = new QueryObserver<\n MaybeVeloraDeltaAuction,\n Error,\n MaybeVeloraDeltaAuction,\n MaybeVeloraDeltaAuction,\n SingleDeltaAuctionQueryKey\n >(queryClient, queryOptions);\n\n const promise = new Promise<MaybeVeloraDeltaAuction>((resolve, reject) => {\n const startedQueryAt = Date.now();\n\n // don't leave the promise and therefore the observer hanging,\n // observer has its own stop-refetching logic in refetchIterval,\n // but this is an extra failsafe\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n logger.log(\"QueryObserver\", queryKey, \"timeout\");\n unsubscribe();\n reject(new Error(`Order ${orderId} not found`));\n }, LOOK_FOR_ORDER_TIMEOUT + 1000); // a bit of jitter time\n\n signal?.addEventListener(\"abort\", () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n unsubscribe();\n reject(new Error(`Order execution aborted: ${signal.reason}`));\n });\n\n const unsubscribe = observer.subscribe((result) => {\n const cleanup = () => {\n logger.log(\"QueryObserver\", queryKey, \"cleanup\");\n unsubscribe();\n };\n\n logger.log(\"QueryObserver\", queryKey, result);\n\n const maybeOrder = result.data;\n\n if (maybeOrder && timeout !== null) {\n // Order fetched at least once\n clearTimeout(timeout);\n timeout = null;\n }\n\n // Order done with one way or the other\n if (\n maybeOrder &&\n DeltaOrderStatusChecker.completed.has(maybeOrder.status)\n ) {\n // Crosschain Orders are considered executed when both srcChain and destChain are executed\n if (isExecutedDeltaAuction(maybeOrder)) {\n onAuctionSuccess?.(maybeOrder);\n cleanup();\n resolve(maybeOrder);\n return;\n }\n if (\n isFailedDeltaAuction(maybeOrder) ||\n isDeltaAuctionExpired(maybeOrder) ||\n isCanceledDeltaAuction(maybeOrder)\n ) {\n onAuctionFailure?.(maybeOrder);\n cleanup();\n reject(\n new DeltaOrderFailedError({\n order: maybeOrder,\n })\n );\n return;\n }\n }\n\n if (maybeOrder === null) {\n // no Order for this orderId for a long time\n const elapsed = Date.now() - startedQueryAt;\n if (elapsed > LOOK_FOR_ORDER_TIMEOUT) {\n cleanup();\n reject(new Error(`Order ${orderId} not found`));\n return;\n }\n }\n if (result.error) {\n cleanup();\n reject(result.error);\n return;\n }\n });\n });\n\n return promise;\n };\n\n return ensureOrderSent;\n}\n\n// ----------------- Multi Delta Queries -----------------------------------\n\ntype UseWatchMultiDeltaAuctions = {\n orderIds: string[];\n enabled?: boolean;\n onAuctionSuccess?: (auction: ExecutedDeltaAuction) => void;\n onAuctionFailure?: (auction: FailedDeltaAuction) => void;\n onUpdatedAuction?: (auction: MarkOptional<DeltaAuction, \"signature\">) => void;\n onTimeoutGettingOrder?: (auction: Pick<DeltaAuction, \"id\">) => void;\n};\n\nexport function useWatchMultiDeltaAuctions({\n orderIds,\n enabled = true,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n}: UseWatchMultiDeltaAuctions): UseQueryResult<MaybeVeloraDeltaAuction>[] {\n const { sdk } = useDeltaSDK({ chainId: 1 }); // chain doesn't matter\n\n const callbacksRef = useRef({\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n });\n\n useLayoutEffect(() => {\n callbacksRef.current = {\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n };\n }, [\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n onTimeoutGettingOrder,\n ]);\n\n const queries = useMemo<\n UseDeltaAuctionQueryOptions<MaybeVeloraDeltaAuction>[]\n >(\n () =>\n orderIds.map(\n /* eslint-disable react-hooks/refs */\n (orderId) =>\n constructDeltaAuctionPollingQueryOptions({\n orderId,\n enabled,\n getAuction: sdk.getDeltaOrderById,\n onUpdatedAuction: callbacksRef.current.onUpdatedAuction,\n onAuctionSuccess: callbacksRef.current.onAuctionSuccess,\n onAuctionFailure: callbacksRef.current.onAuctionFailure,\n onTimeoutGettingOrder: callbacksRef.current.onTimeoutGettingOrder,\n })\n /* eslint-enable react-hooks/refs */\n ),\n [enabled, orderIds, sdk.getDeltaOrderById]\n );\n\n const auctionsResults = useQueries({ queries });\n\n return auctionsResults;\n}\n\ntype MultiOrdersStatusCrossChainInput = {\n orders: DeltaOrderFromAPI[];\n onAuctionSuccess?: (order: DeltaOrderFromAPI) => void;\n onAuctionFailure?: (order: DeltaOrderFromAPI) => void;\n onUpdatedAuction?: (\n auction: MarkOptional<DeltaAuction, \"signature\">,\n bridgeResponse: BridgedDepositResponse\n ) => void;\n};\n\n// can be used for checking Crosschain Order status checking\n// if status check from API is slow to update\nexport function useWatchMultiOrdersStatusCrossChain({\n orders,\n onAuctionSuccess,\n onAuctionFailure,\n onUpdatedAuction,\n}: MultiOrdersStatusCrossChainInput): UseQueryResult<BridgedDepositResponse>[] {\n const { deposits, onNewResponse, onDepositSuccess, onDepositFailure } =\n useMemo(() => {\n const { deposits, depositId2Order } = orders.reduce<{\n deposits: GetBridgedDepositStatusInput[];\n depositId2Order: Record<string, DeltaOrderFromAPI>;\n }>(\n (acc, order) => {\n if (order.bridgeMetadata?.depositId) {\n acc.deposits.push({\n depositId: String(order.bridgeMetadata.depositId),\n originChainId: order.chainId,\n });\n acc.depositId2Order[order.bridgeMetadata.depositId] = order;\n }\n return acc;\n },\n { deposits: [], depositId2Order: {} }\n );\n const onNewResponse = (response: BridgedDepositResponse) => {\n const order = depositId2Order[response.depositId];\n if (order) {\n onUpdatedAuction?.(order, response);\n }\n };\n\n const onDepositSuccess = onAuctionSuccess\n ? (deposit: BridgedDepositResponseSuccess) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const successfulOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionSuccess(successfulOrder);\n }\n }\n : undefined;\n\n const onDepositFailure = onAuctionFailure\n ? (deposit: BridgedDepositResponseFailure) => {\n const order = depositId2Order[deposit.depositId];\n if (order) {\n const failedOrder = {\n ...order,\n bridgeStatus: deposit.status,\n bridgeMetadata: {\n ...order.bridgeMetadata,\n fillTx: deposit.fillTx || undefined,\n },\n } as DeltaOrderFromAPI; // order.bridgeMetadata should be filled but not according to types\n onAuctionFailure(failedOrder);\n }\n }\n : undefined;\n\n return { deposits, onNewResponse, onDepositSuccess, onDepositFailure };\n }, [orders, onAuctionSuccess, onAuctionFailure, onUpdatedAuction]);\n\n const depositStatuses = useBridgedDepositStatus({\n deposits,\n onNewResponse,\n onDepositSuccess,\n onDepositFailure,\n });\n\n return depositStatuses;\n}\n"],"names":["SINGLE_DELTA_AUCTION_QUERY_KEY_PREFIX","deltaAuctionPollingQueryKey","orderId","DELTA_ORDER_POLLING_INTERVAL","LOOK_FOR_ORDER_TIMEOUT","constructDeltaAuctionPollingQueryOptions","enabled","getAuction","onUpdatedAuction","onAuctionSuccess","onAuctionFailure","onTimeoutGettingOrder","doneState","isMetaWithDoneState","queryMeta","meta","startedQueryAt","Date","now","queryKey","queryFn","signal","assert","refetchInterval","query","maybeOrder","state","data","options","isWithDoneState","getLogger","log","DeltaOrderStatusChecker","completed","has","status","isExecutedDeltaAuction","isFailedDeltaAuction","isDeltaAuctionExpired","isCanceledDeltaAuction","isMetaWithTimeStart","elapsed","id","useWatchDeltaAuction","sdk","useDeltaSDK","chainId","callbacksRef","useRef","useLayoutEffect","current","queryOptions","useMemo","getDeltaOrderById","useQuery","useEnsureDeltaOrderExecuted","t0","$","_c","t1","undefined","queryClient","useQueryClient","logger","useLogger","t2","Symbol","for","t3","t4","observer","QueryObserver","promise","Promise","resolve","reject","timeout","setTimeout","unsubscribe","Error","addEventListener","clearTimeout","reason","subscribe","result","cleanup","DeltaOrderFailedError","order","error","ensureOrderSent"],"mappings":"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"}
|
|
@@ -107,32 +107,6 @@ function useMarketPriceQuery(t0) {
|
|
|
107
107
|
function isPriceParamsValid(priceParams) {
|
|
108
108
|
return !!priceParams.destToken && Number(priceParams.amount) > 0;
|
|
109
109
|
}
|
|
110
|
-
function useMarketPriceQueryForPrice() {
|
|
111
|
-
const $ = distExports.c(2);
|
|
112
|
-
const queryClient = useQueryClient();
|
|
113
|
-
let t0;
|
|
114
|
-
if ($[0] !== queryClient) {
|
|
115
|
-
t0 = (t1) => {
|
|
116
|
-
const {
|
|
117
|
-
chainId,
|
|
118
|
-
price
|
|
119
|
-
} = t1;
|
|
120
|
-
const queryKey = [MarketPriceQueryKeyPrefix, chainId];
|
|
121
|
-
const queryCache = queryClient.getQueryCache();
|
|
122
|
-
const query_0 = queryCache.find({
|
|
123
|
-
queryKey,
|
|
124
|
-
exact: false,
|
|
125
|
-
predicate: (query) => query.state.data === price
|
|
126
|
-
});
|
|
127
|
-
return query_0;
|
|
128
|
-
};
|
|
129
|
-
$[0] = queryClient;
|
|
130
|
-
$[1] = t0;
|
|
131
|
-
} else {
|
|
132
|
-
t0 = $[1];
|
|
133
|
-
}
|
|
134
|
-
return t0;
|
|
135
|
-
}
|
|
136
110
|
function useSubscribeToMarketPrice() {
|
|
137
111
|
const $ = distExports.c(2);
|
|
138
112
|
const queryClient = useQueryClient();
|
|
@@ -223,5 +197,5 @@ function useMarketPriceQueryKey({
|
|
|
223
197
|
}, [chainId, debouncedAmount, priceParams.destDecimals, priceParams.destToken, priceParams.destTokenDexTransferFee, priceParams.destTokenTransferFee, priceParams.excludeContractMethods, priceParams.excludeContractMethodsWithoutFeeModel, priceParams.excludeDEXS, priceParams.excludePools, priceParams.excludeRFQ, priceParams.ignoreBadUsdPrice, priceParams.includeContractMethods, priceParams.includeDEXS, priceParams.maxImpact, priceParams.maxUSDImpact, priceParams.otherExchangePrices, priceParams.partner, priceParams.partnerFeeBps, priceParams.side, priceParams.srcDecimals, priceParams.srcToken, priceParams.srcTokenDexTransferFee, priceParams.srcTokenTransferFee, priceParams.userAddress]);
|
|
224
198
|
}
|
|
225
199
|
|
|
226
|
-
export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery,
|
|
200
|
+
export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryKey, useSubscribeToMarketPrice };
|
|
227
201
|
//# sourceMappingURL=useMarketPriceQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { useMemo } from \"react\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\nexport type MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): {\n result: MarketQueryResult<TData>;\n queryKey: MarketPriceQueryKey;\n} {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n\n const result = useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n\n return { result, queryKey };\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nexport function useMarketPriceQueryKey({\n priceParams,\n chainId,\n}: Pick<MarketPriceQueryInput, \"priceParams\" | \"chainId\">) {\n \"use no memo\";\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n return useMemo(() => {\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams = {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n partnerFeeBps: priceParams.partnerFeeBps,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n\n const queryKey: MarketPriceQueryKey = [\n MarketPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n }, [\n chainId,\n debouncedAmount,\n priceParams.destDecimals,\n priceParams.destToken,\n priceParams.destTokenDexTransferFee,\n priceParams.destTokenTransferFee,\n priceParams.excludeContractMethods,\n priceParams.excludeContractMethodsWithoutFeeModel,\n priceParams.excludeDEXS,\n priceParams.excludePools,\n priceParams.excludeRFQ,\n priceParams.ignoreBadUsdPrice,\n priceParams.includeContractMethods,\n priceParams.includeDEXS,\n priceParams.maxImpact,\n priceParams.maxUSDImpact,\n priceParams.otherExchangePrices,\n priceParams.partner,\n priceParams.partnerFeeBps,\n priceParams.side,\n priceParams.srcDecimals,\n priceParams.srcToken,\n priceParams.srcTokenDexTransferFee,\n priceParams.srcTokenTransferFee,\n priceParams.userAddress,\n ]);\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useMarketPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getRate","t5","queryFn","result","useQuery","t6","destToken","Number","amount","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","error","getLastMarketPrice","type","isDataMarketPrice","debouncedAmount","useDebouncedValue","wait","useMemo","userAddress","side","srcDecimals","destDecimals","srcToken","options","excludeDEXS","includeDEXS","excludePools","excludeContractMethods","includeContractMethods","partner","partnerFeeBps","maxImpact","maxUSDImpact","otherExchangePrices","ignoreBadUsdPrice","excludeRFQ","excludeContractMethodsWithoutFeeModel","srcTokenTransferFee","destTokenTransferFee","srcTokenDexTransferFee","destTokenDexTransferFee"],"mappings":";;;;;;;AAuCO,MAAMA,yBAAAA,GAA4B;AAQlC,SAAAC,oBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAkD,EAAA,MAAA;AAAA,IAAAC,WAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAK1B,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAN,CAAAA,QAAAI,OAAAA,EAAA;AAIIE,IAAAA,EAAAA,GAAA;AAAA,MAAAF;AAAAA,KAAU;AAACJ,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAA5C,EAAA,MAAA;AAAA,IAAAO;AAAAA,GAAA,GAAgBC,iBAAiBF,EAAW,CAAA;AAE5C,EAAA,MAAAG,YAAAA,GAAqBN,OAAKO,OAAAA,IAAL,IAAA;AAAuB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,EAAA,CAAA,CAAA,KAAAI,WAAAJ,CAAAA,QAAAE,WAAAA,EAAA;AAEsBS,IAAAA,EAAAA,GAAA;AAAA,MAAAT,WAAAA;AAAAA,MAAAE;AAAAA,KAGlE;AAACJ,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAE,WAAAA;AAAAF,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAAY,QAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAA2CC,uBAAuBH,EAGjE,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAa,oBAAAA,IAAAb,CAAAA,QAAAO,GAAAA,IAAAP,CAAAA,CAAA,CAAA,CAAA,KAAAK,OAAAA,EAAA;AAIQU,IAAAA,EAAAA,GAAAC,CAAAA,GAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,GAAAA;AACRE,MAAAA,MAAAA,CAAOC,kBAAAA,CAAmBN,oBAAoB,CAAA,EAAG,uBAAuB,CAAA;AACxE,MAAA,MAAAO,KAAAA,GAAcb,GAAAA,CAAGc,OAAAA,CAASR,oBAAAA,EAAsB;AAAA,QAAAI,MAAAA;AAAAA,QAAAZ;AAAAA,OAAmB,CAAA;AAAE,MAAA,OAC9De,KAAAA;AAAAA,IAAK,CAAA;AACbpB,IAAAA,CAAAA,MAAAa,oBAAAA;AAAAb,IAAAA,CAAAA,MAAAO,GAAAA;AAAAP,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAgB,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAS,gBAAAT,CAAAA,SAAAa,oBAAAA,EAAA;AAEQG,IAAAA,EAAAA,GAAAP,YAAAA,IAAgBU,mBAAmBN,oBAAoB,CAAA;AAACb,IAAAA,CAAAA,MAAAS,YAAAA;AAAAT,IAAAA,CAAAA,OAAAa,oBAAAA;AAAAb,IAAAA,CAAAA,OAAAgB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAsB,EAAAA;AAAA,EAAA,IAAAtB,CAAAA,CAAA,EAAA,CAAA,KAAAG,KAAAA,IAAAH,EAAA,EAAA,CAAA,KAAAY,QAAAA,IAAAZ,CAAAA,CAAA,EAAA,CAAA,KAAAe,EAAAA,IAAAf,CAAAA,SAAAgB,EAAAA,EAAA;AARKM,IAAAA,EAAAA,GAAA;AAAA,MAAAV,QAAAA;AAAAA,MAAAW,OAAAA,EAE7DR,EAAAA;AAAAA,MAIR,GACEZ,KAAAA;AAAAA,MAAKO,OAAAA,EACCM;AAAAA,KACX;AAAChB,IAAAA,CAAAA,OAAAG,KAAAA;AAAAH,IAAAA,CAAAA,OAAAY,QAAAA;AAAAZ,IAAAA,CAAAA,OAAAe,EAAAA;AAAAf,IAAAA,CAAAA,OAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,OAAAsB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtB,EAAA,EAAA,CAAA;AAAA,EAAA;AATD,EAAA,MAAAwB,MAAAA,GAAeC,SAAyDH,EASvE,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAA1B,EAAA,EAAA,CAAA,KAAAY,YAAAZ,CAAAA,SAAAwB,MAAAA,EAAA;AAEIE,IAAAA,EAAAA,GAAA;AAAA,MAAAF,MAAAA;AAAAA,MAAAZ;AAAAA,KAAmB;AAACZ,IAAAA,CAAAA,OAAAY,QAAAA;AAAAZ,IAAAA,CAAAA,OAAAwB,MAAAA;AAAAxB,IAAAA,CAAAA,OAAA0B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAApB0B,EAAAA;AAAoB;AAG7B,SAASP,mBACPjB,WAAAA,EAC6B;AAC7B,EAAA,OAAO,CAAC,CAACA,WAAAA,CAAYyB,aAAaC,MAAAA,CAAO1B,WAAAA,CAAY2B,MAAM,CAAA,GAAI,CAAA;AACjE;AAmBO,SAAAC,2BAAAA,GAAA;AAAA,EAAA,MAAA9B,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA8B,cAAoBC,cAAAA,EAAe;AAAE,EAAA,IAAAjC,EAAAA;AAAA,EAAA,IAAAC,CAAAA,QAAA+B,WAAAA,EAAA;AAE9BhC,IAAAA,EAAAA,GAAAO,CAAAA,EAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAF,OAAAA;AAAAA,QAAAgB;AAAAA,OAAA,GAAAd,EAAAA;AACN,MAAA,MAAAM,QAAAA,GAAmE,CACjEf,yBAAAA,EACAO,OAAO,CAAA;AAET,MAAA,MAAA6B,UAAAA,GAAmBF,YAAWG,aAAAA,EAAe;AAC7C,MAAA,MAAAC,OAAAA,GAAcF,WAAUG,IAAAA,CAAuC;AAAA,QAAAxB,QAAAA;AAAAA,QAAAyB,KAAAA,EAEtD,KAAA;AAAA,QAAKC,SAAAA,EACDnC,CAAAA,KAAAA,KACFA,KAAAA,CAAKoC,KAAAA,CAAMC,IAAAA,KAAUpB;AAAAA,OAE/B,CAAA;AAAE,MAAA,OAEIjB,OAAAA;AAAAA,IAAqC,CAAA;AAC7CH,IAAAA,CAAAA,MAAA+B,WAAAA;AAAA/B,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAfMD,EAAAA;AAeN;AAcI,SAAA0C,yBAAAA,GAAA;AAAA,EAAA,MAAAzC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA8B,cAAoBC,cAAAA,EAAe;AAAE,EAAA,IAAAjC,EAAAA;AAAA,EAAA,IAAAC,CAAAA,QAAA+B,WAAAA,EAAA;AAE9BhC,IAAAA,EAAAA,GAAAO,CAAAA,EAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAM,QAAAA;AAAAA,QAAA8B,MAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAArC,EAAAA;AACN,MAAA,MAAAsC,QAAAA,GAAiB,IAAIC,aAAAA,CAMnBd,WAAAA,EAAa;AAAA,QAAAnB,QAAAA;AAAAA,QAAAF,OAAAA,EAGJ;AAAA,OACV,CAAA;AAAE,MAAA,OAGIkC,QAAAA,CAAQE,UAAWtB,CAAAA,MAAAA,KAAA;AACxB,QAAA,IAAIA,OAAMuB,KAAAA,EAAM;AACdJ,UAAAA,OAAAA,GAAUnB,OAAMuB,KAAM,CAAA;AAAC,UAAA;AAAA,QAAA;AAGzB,QAAA,IAAIvB,OAAMgB,IAAAA,EAAK;AACbE,UAAAA,MAAAA,GAASlB,OAAMgB,IAAK,CAAA;AAAA,QAAC;AAAA,MACtB,CACF,CAAA;AAAA,IAAC,CAAA;AACHxC,IAAAA,CAAAA,MAAA+B,WAAAA;AAAA/B,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAvBMD,EAAAA;AAuBN;AAGI,SAASiD,mBACdjB,WAAAA,EACyB;AACzB,EAAA,MAAME,UAAAA,GAAaF,YAAYG,aAAAA,EAAc;AAC7C,EAAA,MAAM/B,KAAAA,GAAQ8B,WAAWG,IAAAA,CAAsC;AAAA,IAC7DxB,QAAAA,EAAU,CAACf,yBAAyB,CAAA;AAAA,IACpCwC,KAAAA,EAAO,KAAA;AAAA,IACPY,IAAAA,EAAM;AAAA;AAAA,GACP,CAAA;AAED,EAAA,OAAO9C,OAAOoC,KAAAA,CAAMC,IAAAA;AACtB;AAEO,SAASU,kBAAkB9B,KAAAA,EAAsC;AACtE,EAAA,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,WAAA,IAAeA,KAAAA,IACf,UAAA,IAAcA,KAAAA,IACd,WAAA,IAAeA,KAAAA,IACf,WAAA,IAAeA,SACf,YAAA,IAAgBA,KAAAA;AAEpB;AAEO,SAASN,sBAAAA,CAAuB;AAAA,EACrCZ,WAAAA;AAAAA,EACAE;AACsD,CAAA,EAAG;AACzD,EAAA,aAAA;AAGA,EAAA,MAAM,CAAC+C,eAAe,CAAA,GAAIC,iBAAAA,CAAkBlD,YAAY2B,MAAAA,EAAQ;AAAA,IAC9DwB,IAAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,OAAOC,QAAQ,MAAM;AAEnB,IAAA,MAAMzC,oBAAAA,GAAuB;AAAA,MAC3BgB,MAAAA,EAAQsB,eAAAA;AAAAA,MACRI,aAAarD,WAAAA,CAAYqD,WAAAA;AAAAA,MACzBC,MAAMtD,WAAAA,CAAYsD,IAAAA;AAAAA,MAClBC,aAAavD,WAAAA,CAAYuD,WAAAA;AAAAA,MACzBC,cAAcxD,WAAAA,CAAYwD,YAAAA;AAAAA,MAC1BC,UAAUzD,WAAAA,CAAYyD,QAAAA;AAAAA,MACtBhC,WAAWzB,WAAAA,CAAYyB,SAAAA;AAAAA,MACvBiC,OAAAA,EAAS;AAAA,QACPC,aAAa3D,WAAAA,CAAY2D,WAAAA;AAAAA,QACzBC,aAAa5D,WAAAA,CAAY4D,WAAAA;AAAAA,QACzBC,cAAc7D,WAAAA,CAAY6D,YAAAA;AAAAA,QAC1BC,wBAAwB9D,WAAAA,CAAY8D,sBAAAA;AAAAA,QACpCC,wBAAwB/D,WAAAA,CAAY+D,sBAAAA;AAAAA,QACpCC,SAAShE,WAAAA,CAAYgE,OAAAA;AAAAA,QACrBC,eAAejE,WAAAA,CAAYiE,aAAAA;AAAAA,QAC3BC,WAAWlE,WAAAA,CAAYkE,SAAAA;AAAAA,QACvBC,cAAcnE,WAAAA,CAAYmE,YAAAA;AAAAA,QAC1BC,qBAAqBpE,WAAAA,CAAYoE,mBAAAA;AAAAA,QACjCC,mBAAmBrE,WAAAA,CAAYqE,iBAAAA;AAAAA,QAC/BC,YAAYtE,WAAAA,CAAYsE,UAAAA;AAAAA,QACxBC,uCACEvE,WAAAA,CAAYuE,qCAAAA;AAAAA,QACdC,qBAAqBxE,WAAAA,CAAYwE,mBAAAA;AAAAA,QACjCC,sBAAsBzE,WAAAA,CAAYyE,oBAAAA;AAAAA,QAClCC,wBAAwB1E,WAAAA,CAAY0E,sBAAAA;AAAAA,QACpCC,yBAAyB3E,WAAAA,CAAY2E;AAAAA;AACvC,KACF;AAEA,IAAA,MAAMjE,QAAAA,GAAgC,CACpCf,yBAAAA,EACAO,OAAAA,EACAS,oBAAoB,CAAA;AAGtB,IAAA,OAAO;AAAA,MAAED,QAAAA;AAAAA,MAAUC;AAAAA,KAAqB;AAAA,EAC1C,CAAA,EAAG,CACDT,OAAAA,EACA+C,eAAAA,EACAjD,YAAYwD,YAAAA,EACZxD,WAAAA,CAAYyB,SAAAA,EACZzB,WAAAA,CAAY2E,uBAAAA,EACZ3E,WAAAA,CAAYyE,sBACZzE,WAAAA,CAAY8D,sBAAAA,EACZ9D,WAAAA,CAAYuE,qCAAAA,EACZvE,WAAAA,CAAY2D,WAAAA,EACZ3D,YAAY6D,YAAAA,EACZ7D,WAAAA,CAAYsE,UAAAA,EACZtE,WAAAA,CAAYqE,iBAAAA,EACZrE,WAAAA,CAAY+D,wBACZ/D,WAAAA,CAAY4D,WAAAA,EACZ5D,YAAYkE,SAAAA,EACZlE,WAAAA,CAAYmE,cACZnE,WAAAA,CAAYoE,mBAAAA,EACZpE,WAAAA,CAAYgE,OAAAA,EACZhE,WAAAA,CAAYiE,aAAAA,EACZjE,YAAYsD,IAAAA,EACZtD,WAAAA,CAAYuD,WAAAA,EACZvD,WAAAA,CAAYyD,QAAAA,EACZzD,WAAAA,CAAY0E,wBACZ1E,WAAAA,CAAYwE,mBAAAA,EACZxE,WAAAA,CAAYqD,WAAW,CACxB,CAAA;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { useMemo } from \"react\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\nexport type MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): {\n result: MarketQueryResult<TData>;\n queryKey: MarketPriceQueryKey;\n} {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n\n const result = useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n\n return { result, queryKey };\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nexport function useMarketPriceQueryKey({\n priceParams,\n chainId,\n}: Pick<MarketPriceQueryInput, \"priceParams\" | \"chainId\">) {\n \"use no memo\";\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n return useMemo(() => {\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams = {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n partnerFeeBps: priceParams.partnerFeeBps,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n\n const queryKey: MarketPriceQueryKey = [\n MarketPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n }, [\n chainId,\n debouncedAmount,\n priceParams.destDecimals,\n priceParams.destToken,\n priceParams.destTokenDexTransferFee,\n priceParams.destTokenTransferFee,\n priceParams.excludeContractMethods,\n priceParams.excludeContractMethodsWithoutFeeModel,\n priceParams.excludeDEXS,\n priceParams.excludePools,\n priceParams.excludeRFQ,\n priceParams.ignoreBadUsdPrice,\n priceParams.includeContractMethods,\n priceParams.includeDEXS,\n priceParams.maxImpact,\n priceParams.maxUSDImpact,\n priceParams.otherExchangePrices,\n priceParams.partner,\n priceParams.partnerFeeBps,\n priceParams.side,\n priceParams.srcDecimals,\n priceParams.srcToken,\n priceParams.srcTokenDexTransferFee,\n priceParams.srcTokenTransferFee,\n priceParams.userAddress,\n ]);\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useMarketPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getRate","t5","queryFn","result","useQuery","t6","destToken","Number","amount","useSubscribeToMarketPrice","queryClient","useQueryClient","onData","onError","observer","QueryObserver","subscribe","error","data","getLastMarketPrice","queryCache","getQueryCache","find","exact","type","state","isDataMarketPrice","debouncedAmount","useDebouncedValue","wait","useMemo","userAddress","side","srcDecimals","destDecimals","srcToken","options","excludeDEXS","includeDEXS","excludePools","excludeContractMethods","includeContractMethods","partner","partnerFeeBps","maxImpact","maxUSDImpact","otherExchangePrices","ignoreBadUsdPrice","excludeRFQ","excludeContractMethodsWithoutFeeModel","srcTokenTransferFee","destTokenTransferFee","srcTokenDexTransferFee","destTokenDexTransferFee"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { RateParamsInput } from './market/queries/useMarketPriceQuery';
|
|
|
2
2
|
import { MarkOptional, MarkRequired } from 'ts-essentials';
|
|
3
3
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
4
4
|
import { TradeMode } from '../../../core/state/tradeModeAtom';
|
|
5
|
+
import { Address } from 'viem';
|
|
5
6
|
export type FetchPriceParams = MarkRequired<MarkOptional<Pick<RateParamsInput, "srcToken" | "destToken" | "amount" | "userAddress" | "side" | "srcDecimals" | "destDecimals" | "partner" | "ignoreBadUsdPrice" | "srcTokenDexTransferFee" | "destTokenDexTransferFee" | "otherExchangePrices" | "partnerFeeBps">, "destToken">, "srcDecimals" | "side">;
|
|
6
7
|
export declare function usePricesParams(tradeMode: TradeMode): {
|
|
7
8
|
priceParams: FetchPriceParams;
|
|
@@ -9,4 +10,12 @@ export declare function usePricesParams(tradeMode: TradeMode): {
|
|
|
9
10
|
chainId: SupportedChainId;
|
|
10
11
|
destChainId?: SupportedChainId;
|
|
11
12
|
};
|
|
13
|
+
export declare function useExtraDeltaPriceParams({ srcToken, chainId, }: {
|
|
14
|
+
srcToken: string;
|
|
15
|
+
chainId: SupportedChainId;
|
|
16
|
+
}): {
|
|
17
|
+
excludeBridges?: string[];
|
|
18
|
+
beneficiary?: Address;
|
|
19
|
+
srcToken: string;
|
|
20
|
+
};
|
|
12
21
|
//# sourceMappingURL=usePricesParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePricesParams.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAI5E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"usePricesParams.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAI5E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAS5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,MAAM,gBAAgB,GAAG,YAAY,CACzC,YAAY,CACV,IAAI,CACF,eAAe,EACb,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,MAAM,GACN,aAAa,GACb,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,wBAAwB,GACxB,yBAAyB,GACzB,qBAAqB,GACrB,eAAe,CAClB,EACD,WAAW,CACZ,EACD,aAAa,GAAG,MAAM,CACvB,CAAC;AAIF,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG;IACrD,WAAW,EAAE,gBAAgB,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAyDA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,GAAG;IACF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAkBA"}
|
|
@@ -6,6 +6,10 @@ import { useTokenTaxFee } from '../../tokens/useTokenTaxFee.js';
|
|
|
6
6
|
import { usePartner } from '../../usePartner.js';
|
|
7
7
|
import { tradeModeToTokenAtoms, tradeModeToPayAmountWeiAtom, tradeModeToReceiveAmountWeiAtom } from '../../../core/inputs/state/common.js';
|
|
8
8
|
import { useWidgetConfig } from '../../../core/state/configAtom.js';
|
|
9
|
+
import { useSwapReceiverAddressValue } from '../../../components/widget/ReceiverAddress/state/receiverAddressAtom.js';
|
|
10
|
+
import { excludeBridgesAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js';
|
|
11
|
+
import { isETH } from '../../../tokens/utils/eth.js';
|
|
12
|
+
import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
|
|
9
13
|
|
|
10
14
|
function usePricesParams(tradeMode) {
|
|
11
15
|
const $ = distExports.c(28);
|
|
@@ -136,6 +140,33 @@ function usePricesParams(tradeMode) {
|
|
|
136
140
|
}
|
|
137
141
|
return t10;
|
|
138
142
|
}
|
|
143
|
+
function useExtraDeltaPriceParams(t0) {
|
|
144
|
+
const $ = distExports.c(4);
|
|
145
|
+
const {
|
|
146
|
+
srcToken,
|
|
147
|
+
chainId
|
|
148
|
+
} = t0;
|
|
149
|
+
const excludeBridges = useAtomValue(excludeBridgesAtom);
|
|
150
|
+
const receiverAddress = useSwapReceiverAddressValue();
|
|
151
|
+
const srcTokenForDelta = isETH({
|
|
152
|
+
address: srcToken
|
|
153
|
+
}) ? wrappedNativeCurrency[chainId] : srcToken;
|
|
154
|
+
let t1;
|
|
155
|
+
if ($[0] !== excludeBridges || $[1] !== receiverAddress || $[2] !== srcTokenForDelta) {
|
|
156
|
+
t1 = {
|
|
157
|
+
excludeBridges,
|
|
158
|
+
beneficiary: receiverAddress,
|
|
159
|
+
srcToken: srcTokenForDelta
|
|
160
|
+
};
|
|
161
|
+
$[0] = excludeBridges;
|
|
162
|
+
$[1] = receiverAddress;
|
|
163
|
+
$[2] = srcTokenForDelta;
|
|
164
|
+
$[3] = t1;
|
|
165
|
+
} else {
|
|
166
|
+
t1 = $[3];
|
|
167
|
+
}
|
|
168
|
+
return t1;
|
|
169
|
+
}
|
|
139
170
|
|
|
140
|
-
export { usePricesParams };
|
|
171
|
+
export { useExtraDeltaPriceParams, usePricesParams };
|
|
141
172
|
//# sourceMappingURL=usePricesParams.js.map
|