@velora-dex/widget 0.3.2-dev.1 → 0.3.2
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/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +58 -54
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeListItem.js +2 -2
- package/dist/components/widget/BridgeList/BridgeListItem.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeProtocolsList.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgesList.js +2 -2
- package/dist/components/widget/BridgeList/BridgesList.js.map +1 -1
- package/dist/components/widget/BridgeList/hooks.d.ts.map +1 -1
- package/dist/components/widget/BridgeList/hooks.js +20 -15
- package/dist/components/widget/BridgeList/hooks.js.map +1 -1
- package/dist/components/widget/BridgeList/types.d.ts +1 -0
- package/dist/components/widget/BridgeList/types.d.ts.map +1 -1
- package/dist/components/widget/BridgePreferences/BridgePreferences.d.ts.map +1 -1
- package/dist/components/widget/BridgePreferences/BridgePreferences.js +2 -2
- package/dist/components/widget/BridgePreferences/BridgePreferences.js.map +1 -1
- package/dist/components/widget/CompareQuotes/CompareQuotes.js +5 -3
- package/dist/components/widget/CompareQuotes/CompareQuotes.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/Duration/Duration.d.ts +2 -2
- package/dist/components/widget/Duration/Duration.d.ts.map +1 -1
- package/dist/components/widget/Duration/Duration.js +21 -11
- package/dist/components/widget/Duration/Duration.js.map +1 -1
- package/dist/components/widget/Duration/types.d.ts +5 -0
- package/dist/components/widget/Duration/types.d.ts.map +1 -0
- package/dist/components/widget/Duration/utils.d.ts +4 -0
- package/dist/components/widget/Duration/utils.d.ts.map +1 -0
- package/dist/components/widget/Duration/utils.js +6 -0
- package/dist/components/widget/Duration/utils.js.map +1 -0
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.d.ts.map +1 -1
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.js +2 -2
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js +37 -35
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.d.ts +3 -2
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js +9 -4
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.d.ts +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js +8 -2
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js +8 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.js +11 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.d.ts +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js +9 -4
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.d.ts.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js +93 -99
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/components/widget/YouGet/types.d.ts +2 -1
- package/dist/components/widget/YouGet/types.d.ts.map +1 -1
- package/dist/configurator/state/themeAtom.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -2
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +121 -103
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +133 -118
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/utils.d.ts +10 -0
- package/dist/core/inputs/hooks/utils.d.ts.map +1 -0
- package/dist/core/inputs/hooks/utils.js +41 -0
- package/dist/core/inputs/hooks/utils.js.map +1 -0
- package/dist/core/screen/state/hooks/useSetScreen.d.ts.map +1 -1
- package/dist/core/screen/state/hooks/useSetScreen.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +12 -0
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +12 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/swap/prices/constants.d.ts +1 -1
- package/dist/hooks/swap/prices/constants.d.ts.map +1 -1
- package/dist/hooks/swap/prices/constants.js +2 -2
- package/dist/hooks/swap/prices/constants.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js +5 -5
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.js +5 -4
- package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +3 -3
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +11 -6
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/useBridgeProtocols.d.ts +1 -2
- package/dist/hooks/useBridgeProtocols.d.ts.map +1 -1
- package/dist/hooks/useBridgeProtocols.js +1 -18
- package/dist/hooks/useBridgeProtocols.js.map +1 -1
- package/dist/lib/constants/storage.d.ts +2 -0
- package/dist/lib/constants/storage.d.ts.map +1 -0
- package/dist/lib/constants/storage.js +4 -0
- package/dist/lib/constants/storage.js.map +1 -0
- package/dist/lib/utils/tuple.js.map +1 -1
- package/dist/styles.css +7 -2
- package/dist/tokens/state/importedTokensAtom.d.ts.map +1 -1
- package/dist/tokens/state/importedTokensAtom.js +4 -1
- package/dist/tokens/state/importedTokensAtom.js.map +1 -1
- package/dist/tokens/utils/sorting.d.ts +5 -0
- package/dist/tokens/utils/sorting.d.ts.map +1 -1
- package/dist/tokens/utils/sorting.js +34 -1
- package/dist/tokens/utils/sorting.js.map +1 -1
- package/dist/transactions/state/transactionsAtom.d.ts.map +1 -1
- package/dist/transactions/state/transactionsAtom.js +2 -1
- package/dist/transactions/state/transactionsAtom.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.d.ts +0 -4
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.d.ts.map +0 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.js +0 -6
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.js.map +0 -1
|
@@ -6,6 +6,18 @@ import { useMinViemClient } from '../../useMinViemClient.js';
|
|
|
6
6
|
import { useMutation } from '@tanstack/react-query';
|
|
7
7
|
import { useRef } from 'react';
|
|
8
8
|
import { UserCancelledError } from '../../swap/tradeFlow/common/errors.js';
|
|
9
|
+
import 'react/jsx-runtime';
|
|
10
|
+
import '../../../_virtual/index.js';
|
|
11
|
+
import 'clsx';
|
|
12
|
+
import 'tailwind-merge';
|
|
13
|
+
import 'lucide-react';
|
|
14
|
+
import 'sonner';
|
|
15
|
+
import '../../../assets/spinner.svg.js';
|
|
16
|
+
import '../../../assets/circle-check.svg.js';
|
|
17
|
+
import '../../../assets/circle-exclamation.svg.js';
|
|
18
|
+
import '@radix-ui/react-progress';
|
|
19
|
+
import '../../../lib/web3/wagmi/constants.js';
|
|
20
|
+
import '../../../core/store.js';
|
|
9
21
|
import { useApproveOrPermit } from '../../swap/tradeFlow/common/useApproveOrPermit.js';
|
|
10
22
|
import { useLogger } from '../../../core/logger.js';
|
|
11
23
|
import { useFillOrder } from '../mutations/useFillOrder.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,0BAA0B,QAAmC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const PRICE_REFETCH_INTERVAL_MS = 5e3;
|
|
2
|
-
const
|
|
2
|
+
const PRICE_REFETCH_INTERVAL_SEC = PRICE_REFETCH_INTERVAL_MS / 1e3;
|
|
3
3
|
|
|
4
|
-
export { PRICE_REFETCH_INTERVAL_MS,
|
|
4
|
+
export { PRICE_REFETCH_INTERVAL_MS, PRICE_REFETCH_INTERVAL_SEC };
|
|
5
5
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/hooks/swap/prices/constants.ts"],"sourcesContent":["export const PRICE_REFETCH_INTERVAL_MS = 5000; // 5 seconds\nexport const
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/hooks/swap/prices/constants.ts"],"sourcesContent":["export const PRICE_REFETCH_INTERVAL_MS = 5000; // 5 seconds\nexport const PRICE_REFETCH_INTERVAL_SEC = PRICE_REFETCH_INTERVAL_MS / 1000;\n"],"names":["PRICE_REFETCH_INTERVAL_MS","PRICE_REFETCH_INTERVAL_SEC"],"mappings":"AAAO,MAAMA,yBAAAA,GAA4B;AAClC,MAAMC,6BAA6BD,yBAAAA,GAA4B;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { d as distExports } from '../../../../../_virtual/index.js';
|
|
2
2
|
import { useAtomValue } from '../../../../../core/store.js';
|
|
3
|
-
import {
|
|
3
|
+
import { protocolNameAtom } from '../../../../../components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js';
|
|
4
4
|
import { extractSelectedBridgePrice } from './utils.js';
|
|
5
5
|
import { isBridgePrice } from '../queries/useDeltaPriceQuery.js';
|
|
6
6
|
import { bridgePreferenceAtom } from '../../../../../components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js';
|
|
@@ -10,21 +10,21 @@ function useSelectedBridgePrice(t0) {
|
|
|
10
10
|
const {
|
|
11
11
|
price
|
|
12
12
|
} = t0;
|
|
13
|
-
const
|
|
13
|
+
const protocolName = useAtomValue(protocolNameAtom);
|
|
14
14
|
const bridgePreference = useAtomValue(bridgePreferenceAtom);
|
|
15
15
|
if (!price || !isBridgePrice(price)) {
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
let t1;
|
|
19
|
-
if ($[0] !== bridgePreference || $[1] !== price || $[2] !==
|
|
19
|
+
if ($[0] !== bridgePreference || $[1] !== price || $[2] !== protocolName) {
|
|
20
20
|
t1 = extractSelectedBridgePrice({
|
|
21
21
|
price,
|
|
22
|
-
|
|
22
|
+
protocolName,
|
|
23
23
|
bridgePreference
|
|
24
24
|
});
|
|
25
25
|
$[0] = bridgePreference;
|
|
26
26
|
$[1] = price;
|
|
27
|
-
$[2] =
|
|
27
|
+
$[2] = protocolName;
|
|
28
28
|
$[3] = t1;
|
|
29
29
|
} else {
|
|
30
30
|
t1 = $[3];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectedBridgePrice.js","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { BridgePrice } from \"@velora-dex/sdk\";\nimport {
|
|
1
|
+
{"version":3,"file":"useSelectedBridgePrice.js","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { BridgePrice } from \"@velora-dex/sdk\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport type { DeltaOrBridgePrice } from \"../../types\";\nimport { extractSelectedBridgePrice } from \"./utils\";\nimport { isBridgePrice } from \"../queries/useDeltaPriceQuery\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\n\nexport function useSelectedBridgePrice({\n price,\n}: {\n price?: DeltaOrBridgePrice;\n}): BridgePrice | undefined {\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n // no price available\n if (!price || !isBridgePrice(price)) return;\n\n return extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n}\n"],"names":["useSelectedBridgePrice","t0","$","_c","price","protocolName","useAtomValue","protocolNameAtom","bridgePreference","bridgePreferenceAtom","isBridgePrice","t1","extractSelectedBridgePrice"],"mappings":";;;;;;;AAQO,SAAAA,uBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAgC,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAAAH,EAAAA;AAKrC,EAAA,MAAAI,YAAAA,GAAqBC,aAAaC,gBAAgB,CAAA;AAClD,EAAA,MAAAC,gBAAAA,GAAyBF,aAAaG,oBAAoB,CAAA;AAG1D,EAAA,IAAI,CAACL,KAAAA,IAAD,CAAWM,aAAAA,CAAcN,KAAK,CAAA,EAAC;AAAA,IAAA;AAAA,EAAA;AAAS,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAM,gBAAAA,IAAAN,CAAAA,QAAAE,KAAAA,IAAAF,CAAAA,CAAA,CAAA,CAAA,KAAAG,YAAAA,EAAA;AAErCM,IAAAA,EAAAA,GAAAC,0BAAAA,CAA2B;AAAA,MAAAR,KAAAA;AAAAA,MAAAC,YAAAA;AAAAA,MAAAG;AAAAA,KAIjC,CAAA;AAACN,IAAAA,CAAAA,MAAAM,gBAAAA;AAAAN,IAAAA,CAAAA,MAAAE,KAAAA;AAAAF,IAAAA,CAAAA,MAAAG,YAAAA;AAAAH,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAJKS,EAAAA;AAIL;;;;"}
|
|
@@ -38,9 +38,9 @@ export type RefetchMetaWithTiming = {
|
|
|
38
38
|
startedQueryAt: number;
|
|
39
39
|
};
|
|
40
40
|
export declare function isMetaWithTimeStart(meta: QueryMeta): meta is RefetchMetaWithTiming;
|
|
41
|
-
export declare function extractSelectedBridgePrice({ price,
|
|
41
|
+
export declare function extractSelectedBridgePrice({ price, protocolName, bridgePreference, }: {
|
|
42
42
|
price: BridgePrice;
|
|
43
|
-
|
|
43
|
+
protocolName?: string;
|
|
44
44
|
bridgePreference: BridgePreference;
|
|
45
45
|
}): BridgePrice;
|
|
46
46
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAE1G,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAsB,uBAAuB,CAAC,EAC5C,SAAS,EACT,aAAa,GACd,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAMhE;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,6BAA6B,CAE1C;AAED,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG;IACnE,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG;IACnE,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,6BAA6B,CAE1C;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,sBAAsB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAEA;AAID,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,qBAAqB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CASnC;AAID,MAAM,MAAM,qBAAqB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,GACd,IAAI,IAAI,qBAAqB,CAE/B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAE1G,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAsB,uBAAuB,CAAC,EAC5C,SAAS,EACT,aAAa,GACd,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAMhE;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,6BAA6B,CAE1C;AAED,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG;IACnE,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG;IACnE,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,6BAA6B,CAE1C;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,IAAI,sBAAsB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAEA;AAID,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,qBAAqB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CASnC;AAID,MAAM,MAAM,qBAAqB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,GACd,IAAI,IAAI,qBAAqB,CAE/B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,eAqBA"}
|
|
@@ -5,12 +5,13 @@ function isMetaWithTimeStart(meta) {
|
|
|
5
5
|
}
|
|
6
6
|
function extractSelectedBridgePrice({
|
|
7
7
|
price,
|
|
8
|
-
|
|
8
|
+
protocolName,
|
|
9
9
|
bridgePreference
|
|
10
10
|
}) {
|
|
11
|
-
|
|
12
|
-
if (
|
|
13
|
-
|
|
11
|
+
const loweredProtocolName = protocolName?.toLowerCase();
|
|
12
|
+
if (!loweredProtocolName) return pickBridgePriceByPreference(price, bridgePreference);
|
|
13
|
+
if (loweredProtocolName === price.bridgeInfo.protocolName.toLowerCase()) return price;
|
|
14
|
+
const selectedAmongAvailable = price.availableBridges.find((bridge) => bridge.bridgeInfo.protocolName.toLowerCase() === loweredProtocolName);
|
|
14
15
|
if (selectedAmongAvailable) return combinePriceWithAvailableBridge(price, selectedAmongAvailable);
|
|
15
16
|
return price;
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { BridgedDepositResponse, GetSuggestedFeesResponse } from \"./types\";\nimport type { QueryMeta } from \"@tanstack/react-query\";\nimport type { BridgePrice, AvailableBridge } from \"@velora-dex/sdk\";\nimport type { BridgePreference } from \"@/components/widget/TradeParameters/state/bridgePreferences/types\";\n\nexport type GetBridgedDepositStatusInput = {\n depositId: string;\n originChainId: number;\n};\n\nconst ACROSS_API = \"https://app.across.to/api\";\n\nexport async function getBridgedDepositStatus({\n depositId,\n originChainId,\n}: GetBridgedDepositStatusInput): Promise<BridgedDepositResponse> {\n // non-existing depositId will throw with 404\n const { data } = await axios.get<BridgedDepositResponse>(\n `${ACROSS_API}/deposit/status?depositId=${depositId}&originChainId=${originChainId}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { BridgedDepositResponse, GetSuggestedFeesResponse } from \"./types\";\nimport type { QueryMeta } from \"@tanstack/react-query\";\nimport type { BridgePrice, AvailableBridge } from \"@velora-dex/sdk\";\nimport type { BridgePreference } from \"@/components/widget/TradeParameters/state/bridgePreferences/types\";\n\nexport type GetBridgedDepositStatusInput = {\n depositId: string;\n originChainId: number;\n};\n\nconst ACROSS_API = \"https://app.across.to/api\";\n\nexport async function getBridgedDepositStatus({\n depositId,\n originChainId,\n}: GetBridgedDepositStatusInput): Promise<BridgedDepositResponse> {\n // non-existing depositId will throw with 404\n const { data } = await axios.get<BridgedDepositResponse>(\n `${ACROSS_API}/deposit/status?depositId=${depositId}&originChainId=${originChainId}`\n );\n return data;\n}\n\nexport function isBridgedDepositExecuted(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponseSuccess {\n return deposit.status === \"filled\" && !!deposit.fillTx;\n}\n\nexport type BridgedDepositResponseSuccess = BridgedDepositResponse & {\n status: \"filled\";\n fillTx: string;\n};\n\nexport type BridgedDepositResponseFailure = BridgedDepositResponse & {\n status: \"refunded\" | \"expired\";\n fillTx: null;\n};\n\nexport function isBridgedDepositFailed(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponseFailure {\n return deposit.status === \"refunded\" || deposit.status === \"expired\";\n}\n\nexport function isBridgedDepositRefunded(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponse & {\n status: \"refunded\";\n fillTx: null;\n depositRefundTxHash: string;\n} {\n return deposit.status === \"refunded\" && !!deposit.depositRefundTxHash;\n}\n\n// ------------------- Suggested Fees -------------------\n\nexport type GetSuggestedFeesInput = {\n originChainId: number;\n destinationChainId: number;\n inputToken: string;\n outputToken: string;\n amount: string;\n recipient?: string;\n message?: string;\n relayer?: string;\n timestamp?: number;\n};\n\nexport async function getSuggestedFees(\n params: GetSuggestedFeesInput,\n signal?: AbortSignal\n): Promise<GetSuggestedFeesResponse> {\n const { data } = await axios.get<GetSuggestedFeesResponse>(\n `${ACROSS_API}/suggested-fees`,\n {\n params,\n signal,\n }\n );\n return data;\n}\n\n// ------------------- Generic Utils -------------------\n\nexport type RefetchMetaWithTiming = { startedQueryAt: number };\nexport function isMetaWithTimeStart(\n meta: QueryMeta\n): meta is RefetchMetaWithTiming {\n return \"startedQueryAt\" in meta && typeof meta[\"startedQueryAt\"] === \"number\";\n}\n\nexport function extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n}: {\n price: BridgePrice;\n protocolName?: string;\n bridgePreference: BridgePreference;\n}) {\n const loweredProtocolName = protocolName?.toLowerCase();\n // no protocol selected\n if (!loweredProtocolName)\n return pickBridgePriceByPreference(price, bridgePreference);\n\n // selected protocol is from the top-level bridge price\n if (loweredProtocolName === price.bridgeInfo.protocolName.toLowerCase())\n return price;\n\n const selectedAmongAvailable = price.availableBridges.find(\n (bridge) =>\n bridge.bridgeInfo.protocolName.toLowerCase() === loweredProtocolName\n );\n\n // selected protocol is found among available bridges\n if (selectedAmongAvailable)\n return combinePriceWithAvailableBridge(price, selectedAmongAvailable);\n\n // fallback to top-level bridge price\n return price;\n}\n\nfunction pickBridgePriceByPreference(\n price: BridgePrice,\n bridgePreference: BridgePreference\n): BridgePrice {\n // top-level price matches preference\n if (\n bridgePreference === \"auto\" ||\n (bridgePreference === \"fastest\" && price.bridgeInfo.fastest) ||\n (bridgePreference === \"bestReturn\" && price.bridgeInfo.bestReturn)\n )\n return price;\n\n // look for matching available bridge\n const availableBridge = price.availableBridges.find((availableBridge) => {\n if (bridgePreference === \"fastest\")\n return availableBridge.bridgeInfo.fastest;\n if (bridgePreference === \"bestReturn\")\n return availableBridge.bridgeInfo.bestReturn;\n return false;\n });\n\n if (availableBridge)\n return combinePriceWithAvailableBridge(price, availableBridge);\n\n // fallback to top-level price\n return price;\n}\n\nfunction combinePriceWithAvailableBridge(\n price: BridgePrice,\n availableBridge: AvailableBridge\n): BridgePrice {\n return {\n srcToken: price.srcToken,\n srcAmount: price.srcAmount,\n srcUSD: price.srcUSD,\n partner: price.partner,\n partnerFee: price.partnerFee,\n hmac: price.hmac,\n availableBridges: price.availableBridges,\n ...availableBridge,\n };\n}\n"],"names":["isMetaWithTimeStart","meta","extractSelectedBridgePrice","price","protocolName","bridgePreference","loweredProtocolName","toLowerCase","pickBridgePriceByPreference","bridgeInfo","selectedAmongAvailable","availableBridges","find","bridge","combinePriceWithAvailableBridge","fastest","bestReturn","availableBridge","srcToken","srcAmount","srcUSD","partner","partnerFee","hmac"],"mappings":";;AAuFO,SAASA,oBACdC,IAAAA,EAC+B;AAC/B,EAAA,OAAO,gBAAA,IAAoBA,IAAAA,IAAQ,OAAOA,IAAAA,CAAK,gBAAgB,CAAA,KAAM,QAAA;AACvE;AAEO,SAASC,0BAAAA,CAA2B;AAAA,EACzCC,KAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC;AAKF,CAAA,EAAG;AACD,EAAA,MAAMC,mBAAAA,GAAsBF,cAAcG,WAAAA,EAAY;AAEtD,EAAA,IAAI,CAACD,mBAAAA,EACH,OAAOE,2BAAAA,CAA4BL,OAAOE,gBAAgB,CAAA;AAG5D,EAAA,IAAIC,wBAAwBH,KAAAA,CAAMM,UAAAA,CAAWL,YAAAA,CAAaG,WAAAA,IACxD,OAAOJ,KAAAA;AAET,EAAA,MAAMO,sBAAAA,GAAyBP,KAAAA,CAAMQ,gBAAAA,CAAiBC,IAAAA,CACnDC,CAAAA,MAAAA,KACCA,OAAOJ,UAAAA,CAAWL,YAAAA,CAAaG,WAAAA,EAAY,KAAMD,mBACrD,CAAA;AAGA,EAAA,IAAII,sBAAAA,EACF,OAAOI,+BAAAA,CAAgCX,KAAAA,EAAOO,sBAAsB,CAAA;AAGtE,EAAA,OAAOP,KAAAA;AACT;AAEA,SAASK,2BAAAA,CACPL,OACAE,gBAAAA,EACa;AAEb,EAAA,IACEA,gBAAAA,KAAqB,MAAA,IACpBA,gBAAAA,KAAqB,SAAA,IAAaF,KAAAA,CAAMM,UAAAA,CAAWM,OAAAA,IACnDV,gBAAAA,KAAqB,YAAA,IAAgBF,KAAAA,CAAMM,UAAAA,CAAWO,UAAAA,EAEvD,OAAOb,KAAAA;AAGT,EAAA,MAAMc,eAAAA,GAAkBd,KAAAA,CAAMQ,gBAAAA,CAAiBC,IAAAA,CAAMK,CAAAA,gBAAAA,KAAoB;AACvE,IAAA,IAAIZ,gBAAAA,KAAqB,SAAA,EACvB,OAAOY,gBAAAA,CAAgBR,UAAAA,CAAWM,OAAAA;AACpC,IAAA,IAAIV,gBAAAA,KAAqB,YAAA,EACvB,OAAOY,gBAAAA,CAAgBR,UAAAA,CAAWO,UAAAA;AACpC,IAAA,OAAO,KAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,IAAIC,eAAAA,EACF,OAAOH,+BAAAA,CAAgCX,KAAAA,EAAOc,eAAe,CAAA;AAG/D,EAAA,OAAOd,KAAAA;AACT;AAEA,SAASW,+BAAAA,CACPX,OACAc,eAAAA,EACa;AACb,EAAA,OAAO;AAAA,IACLC,UAAUf,KAAAA,CAAMe,QAAAA;AAAAA,IAChBC,WAAWhB,KAAAA,CAAMgB,SAAAA;AAAAA,IACjBC,QAAQjB,KAAAA,CAAMiB,MAAAA;AAAAA,IACdC,SAASlB,KAAAA,CAAMkB,OAAAA;AAAAA,IACfC,YAAYnB,KAAAA,CAAMmB,UAAAA;AAAAA,IAClBC,MAAMpB,KAAAA,CAAMoB,IAAAA;AAAAA,IACZZ,kBAAkBR,KAAAA,CAAMQ,gBAAAA;AAAAA,IACxB,GAAGM;AAAAA,GACL;AACF;;;;"}
|
|
@@ -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 &&\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 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.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","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","side","includeAgents","excludeAgents","includeBridges","excludeBridges","allowBridgeAndSwap"],"mappings":";;;;;;;AAwCO,MAAMA,wBAAAA,GAA2B;AAgDjC,SAAAC,mBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA8D,EAAA,MAAA;AAAA,IAAAC,WAAAA,EAAAC,YAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAQpE,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,OAAAA,EAAA;AAI6BG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAU;AAACL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAvC,EAAA,MAAA;AAAA,IAAAS;AAAAA,GAAA,GAAgBC,YAAYF,EAAW,CAAA;AAEvC,EAAA,MAAAG,YAAAA,GAAqBP,OAAKQ,OAAAA,IAAL,IAAA;AAAuB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAG,YAAAA,IAAAH,CAAAA,QAAAK,OAAAA,IAAAL,CAAAA,CAAA,CAAA,CAAA,KAAAO,WAAAA,EAAA;AAEqBM,IAAAA,EAAAA,GAAA;AAAA,MAAAX,WAAAA,EAClDC,YAAAA;AAAAA,MAAYE,OAAAA;AAAAA,MAAAE;AAAAA,KAG3B;AAACP,IAAAA,CAAAA,MAAAG,YAAAA;AAAAH,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAO,WAAAA;AAAAP,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAA;AAAA,IAAAc,QAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAA2CC,sBAAsBH,EAIhE,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAe,oBAAAA,IAAAf,CAAAA,QAAAS,GAAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAM,OAAAA,EAAA;AASQW,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,aAAAA,CAAeR,oBAAAA,EAAsB;AAAA,QAAAI,MAAAA;AAAAA,QAAAb;AAAAA,OAGrD,CAAA;AAAE,MAAA,OACIgB,KAAAA;AAAAA,IAAK,CAAA;AACbtB,IAAAA,CAAAA,MAAAe,oBAAAA;AAAAf,IAAAA,CAAAA,MAAAS,GAAAA;AAAAT,IAAAA,CAAAA,MAAAM,OAAAA;AAAAN,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAAlB,EAAA,EAAA,CAAA,KAAAW,gBAAAX,CAAAA,SAAAe,oBAAAA,EAAA;AAEQG,IAAAA,EAAAA,GAAAP,YAAAA,IAAgBU,mBAAmBN,oBAAoB,CAAA;AAACf,IAAAA,CAAAA,OAAAW,YAAAA;AAAAX,IAAAA,CAAAA,OAAAe,oBAAAA;AAAAf,IAAAA,CAAAA,OAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAwB,EAAAA;AAAA,EAAA,IAAAxB,CAAAA,CAAA,EAAA,CAAA,KAAAI,KAAAA,IAAAJ,EAAA,EAAA,CAAA,KAAAc,QAAAA,IAAAd,CAAAA,CAAA,EAAA,CAAA,KAAAiB,EAAAA,IAAAjB,CAAAA,SAAAkB,EAAAA,EAAA;AAXjEM,IAAAA,EAAAA,GAAA;AAAA,MAAAV,QAAAA;AAAAA,MAAAW,OAAAA,EAESR,EAAAA;AAAAA,MAOR,GACEb,KAAAA;AAAAA,MAAKQ,OAAAA,EACCM;AAAAA,KACX;AAAClB,IAAAA,CAAAA,OAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,OAAAc,QAAAA;AAAAd,IAAAA,CAAAA,OAAAiB,EAAAA;AAAAjB,IAAAA,CAAAA,OAAAkB,EAAAA;AAAAlB,IAAAA,CAAAA,OAAAwB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxB,EAAA,EAAA,CAAA;AAAA,EAAA;AAjBD,EAAA,MAAA0B,MAAAA,GAAeC,SAKbH,EAYD,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAA5B,EAAA,EAAA,CAAA,KAAAc,YAAAd,CAAAA,SAAA0B,MAAAA,EAAA;AAEIE,IAAAA,EAAAA,GAAA;AAAA,MAAAF,MAAAA;AAAAA,MAAAZ;AAAAA,KAAmB;AAACd,IAAAA,CAAAA,OAAAc,QAAAA;AAAAd,IAAAA,CAAAA,OAAA0B,MAAAA;AAAA1B,IAAAA,CAAAA,OAAA4B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAApB4B,EAAAA;AAAoB;AAG7B,SAASP,mBACPnB,WAAAA,EACyC;AACzC,EAAA,OACE,CAAC,CAACA,WAAAA,CAAY2B,SAAAA,IACd,CAAC,CAAC3B,WAAAA,CAAY4B,YAAAA,IACdC,MAAAA,CAAO7B,WAAAA,CAAY8B,MAAM,CAAA,GAAI,CAAA;AAEjC;AAEO,SAASC,aACdX,KAAAA,EACqB;AACrB,EAAA,OAAO,QAAA,IAAYA,KAAAA;AACrB;AAEO,SAASY,cACdZ,KAAAA,EACsB;AACtB,EAAA,OAAOA,KAAAA,CAAMa,OAAOC,kBAAAA,KAAuB,CAAA;AAC7C;AA0BO,SAAAC,0BAAAA,GAAA;AAAA,EAAA,MAAArC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAqC,cAAoBC,cAAAA,EAAe;AAAE,EAAA,IAAAxC,EAAAA;AAAA,EAAA,IAAAC,CAAAA,QAAAsC,WAAAA,EAAA;AAE9BvC,IAAAA,EAAAA,GAAAS,CAAAA,EAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAH,OAAAA;AAAAA,QAAAiB;AAAAA,OAAA,GAAAd,EAAAA;AACN,MAAA,MAAAM,QAAAA,GAAiE,CAC/DjB,wBAAAA,EACAQ,OAAO,CAAA;AAET,MAAA,MAAAmC,UAAAA,GAAmBF,YAAWG,aAAAA,EAAe;AAC7C,MAAA,MAAAC,OAAAA,GAAcF,WAAUG,IAAAA,CAItB;AAAA,QAAA7B,QAAAA;AAAAA,QAAA8B,KAAAA,EAEO,KAAA;AAAA,QAAKC,SAAAA,EACDzC,CAAAA,KAAAA,KACFA,KAAAA,CAAK0C,KAAAA,CAAMC,IAAAA,KAAUzB;AAAAA,OAE/B,CAAA;AAAE,MAAA,OAEIlB,OAAAA;AAAAA,IAAoC,CAAA;AAC5CJ,IAAAA,CAAAA,MAAAsC,WAAAA;AAAAtC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAnBMD,EAAAA;AAmBN;AAcI,SAAAiD,wBAAAA,GAAA;AAAA,EAAA,MAAAhD,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAqC,cAAoBC,cAAAA,EAAe;AAAE,EAAA,IAAAxC,EAAAA;AAAA,EAAA,IAAAC,CAAAA,QAAAsC,WAAAA,EAAA;AAE9BvC,IAAAA,EAAAA,GAAAS,CAAAA,EAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAM,QAAAA;AAAAA,QAAAmC,MAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAA1C,EAAAA;AACN,MAAA,MAAA2C,QAAAA,GAAiB,IAAIC,aAAAA,CAMnBd,WAAAA,EAAa;AAAA,QAAAxB,QAAAA;AAAAA,QAAAF,OAAAA,EAGJ;AAAA,OACV,CAAA;AAAE,MAAA,OAGIuC,QAAAA,CAAQE,UAAW3B,CAAAA,MAAAA,KAAA;AACxB,QAAA,IAAIA,OAAM4B,KAAAA,EAAM;AACdJ,UAAAA,OAAAA,GAAUxB,OAAM4B,KAAM,CAAA;AAAC,UAAA;AAAA,QAAA;AAGzB,QAAA,IAAI5B,OAAMqB,IAAAA,EAAK;AACbE,UAAAA,MAAAA,GAASvB,OAAMqB,IAAK,CAAA;AAAA,QAAC;AAAA,MACtB,CACF,CAAA;AAAA,IAAC,CAAA;AACH/C,IAAAA,CAAAA,MAAAsC,WAAAA;AAAAtC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAvBMD,EAAAA;AAuBN;AAGH,SAASwD,uBACPjB,WAAAA,EAGY;AACZ,EAAA,OAAOA,WAAAA,CACJG,aAAAA,EAAc,CACdE,IAAAA,CAAgE;AAAA,IAC/D7B,QAAAA,EAAU,CAACjB,wBAAwB,CAAA;AAAA,IACnC+C,KAAAA,EAAO,KAAA;AAAA,IACPY,IAAAA,EAAM;AAAA;AAAA,GACP,CAAA;AACL;AAEO,SAASC,kBACdnB,WAAAA,EACsC;AACtC,EAAA,MAAMlC,KAAAA,GAAQmD,uBAAuBjB,WAAW,CAAA;AAEhD,EAAA,OAAOlC,OAAO0C,KAAAA,CAAMC,IAAAA;AACtB;AAEO,SAASW,6BACdpB,WAAAA,EACS;AACT,EAAA,MAAMlC,KAAAA,GAAQmD,uBAAuBjB,WAAW,CAAA;AAChD,EAAA,MAAMgB,KAAAA,GAAQlD,OAAO0C,KAAAA,CAAMQ,KAAAA;AAC3B,EAAA,OAAO,CAAC,CAACA,KAAAA;AACX;AAEO,SAASK,yBACdrC,KAAAA,EACmC;AACnC,EAAA,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,QAAA,IAAYA,KAAAA,IACZ,UAAA,IAAcA,KAAAA,IACd,WAAA,IAAeA,KAAAA,IACf,WAAA,IAAeA,SACf,YAAA,IAAgBA,KAAAA;AAEpB;AAEO,SAASN,qBAAAA,CAAsB;AAAA,EACpCd,WAAAA;AAAAA,EACAG,OAAAA;AAAAA,EACAE;AAGF,CAAA,EAAG;AACD,EAAA,aAAA;AAGA,EAAA,MAAM,CAACqD,eAAe,CAAA,GAAIC,iBAAAA,CAAkB3D,YAAY8B,MAAAA,EAAQ;AAAA,IAC9D8B,IAAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,OAAOC,QAAQ,MAAM;AAEnB,IAAA,MAAMhD,oBAAAA,GAEF;AAAA,MACFiB,MAAAA,EAAQ4B,eAAAA;AAAAA,MACRI,UAAU9D,WAAAA,CAAY8D,QAAAA;AAAAA,MACtBnC,WAAW3B,WAAAA,CAAY2B,SAAAA;AAAAA,MACvBoC,aAAa/D,WAAAA,CAAY+D,WAAAA;AAAAA,MACzBnC,cAAc5B,WAAAA,CAAY4B,YAAAA;AAAAA,MAC1BoC,aAAahE,WAAAA,CAAYgE,WAAAA;AAAAA,MACzBC,aAAajE,WAAAA,CAAYiE,WAAAA;AAAAA,MACzBC,SAASlE,WAAAA,CAAYkE,OAAAA;AAAAA,MACrBC,MAAMnE,WAAAA,CAAYmE,IAAAA;AAAAA,MAClBC,eAAepE,WAAAA,CAAYoE,aAAAA;AAAAA,MAC3BC,eAAerE,WAAAA,CAAYqE,aAAAA;AAAAA,MAC3BC,gBAAgBtE,WAAAA,CAAYsE,cAAAA;AAAAA,MAC5BC,gBAAgBvE,WAAAA,CAAYuE,cAAAA;AAAAA,MAC5BC,oBAAoBxE,WAAAA,CAAYwE,kBAAAA;AAAAA,MAChCnE;AAAAA,KACF;AAEA,IAAA,MAAMO,QAAAA,GAA+B,CACnCjB,wBAAAA,EACAQ,OAAAA,EACAU,oBAAoB,CAAA;AAGtB,IAAA,OAAO;AAAA,MAAED,QAAAA;AAAAA,MAAUC;AAAAA,KAAqB;AAAA,EAC1C,CAAA,EAAG,CACDb,WAAAA,CAAYiE,WAAAA,EACZjE,WAAAA,CAAY4B,YAAAA,EACZ5B,WAAAA,CAAY2B,SAAAA,EACZ3B,WAAAA,CAAYqE,aAAAA,EACZrE,WAAAA,CAAYoE,aAAAA,EACZpE,YAAYsE,cAAAA,EACZtE,WAAAA,CAAYuE,cAAAA,EACZvE,WAAAA,CAAYkE,OAAAA,EACZlE,WAAAA,CAAYmE,IAAAA,EACZnE,WAAAA,CAAY+D,aACZ/D,WAAAA,CAAY8D,QAAAA,EACZ9D,WAAAA,CAAYgE,WAAAA,EACZhE,WAAAA,CAAYwE,kBAAAA,EACZrE,OAAAA,EACAuD,eAAAA,EACArD,WAAW,CACZ,CAAA;AACH;;;;"}
|
|
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 &&\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 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.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","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","side","includeAgents","excludeAgents","includeBridges","excludeBridges","allowBridgeAndSwap"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { excludeBridgesAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport type {\n BridgePrice,\n DeltaPrice,\n OptimalRate,\n SwapSideUnion,\n} from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/queries/utils\";\nimport { useSelectedBridgePrice } from \"./delta/bridge/useSelectedBridgePrice\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n side?: SwapSideUnion;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions,\n ) => Promise<QueryObserverResult<OptimalRate, Error>>;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n side?: SwapSideUnion;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions,\n ) => Promise<QueryObserverResult<DeltaPrice | BridgePrice, Error>>;\n error: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {},\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n // excluded bridges from user preferences\n const excludeBridges = useAtomValue(excludeBridgesAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n excludeBridges,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL_MS\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL_MS;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n staleTime: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n side: marketPriceQuery.data?.side,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isRefetching: marketPriceQuery.isRefetching,\n isError: marketPriceQuery.isError,\n refetch: marketPriceQuery.refetch,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n side: deltaPriceQuery.data\n ? getSwapSideFromDeltaPrice(deltaPriceQuery.data)\n : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isRefetching: deltaPriceQuery.isRefetching,\n isError: deltaPriceQuery.isError,\n refetch: deltaPriceQuery.refetch,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n side?: SwapSideUnion;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true },\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n const selectedBridgePrice = useSelectedBridgePrice({ price: delta.price });\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n side: market.side,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","excludeBridges","excludeBridgesAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","PRICE_REFETCH_INTERVAL_MS","staleTime","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","side","t16","error","isError","isFetching","isLoading","isRefetching","refetch","price","canBeUsed","t17","getSwapSideFromDeltaPrice","t18","t19","userSelectedPriceMode","market","delta","useCurrentSwapPrice","selectedBridgePrice","useSelectedBridgePrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { excludeBridgesAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport type {\n BridgePrice,\n DeltaPrice,\n OptimalRate,\n SwapSideUnion,\n} from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/queries/utils\";\nimport { useSelectedBridgePrice } from \"./delta/bridge/useSelectedBridgePrice\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n side?: SwapSideUnion;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<OptimalRate, Error>>;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n side?: SwapSideUnion;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n isError: boolean;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaPrice | BridgePrice, Error>>;\n error: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n // excluded bridges from user preferences\n const excludeBridges = useAtomValue(excludeBridgesAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n excludeBridges,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL_MS\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL_MS;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n staleTime: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n side: marketPriceQuery.data?.side,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isRefetching: marketPriceQuery.isRefetching,\n isError: marketPriceQuery.isError,\n refetch: marketPriceQuery.refetch,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n side: deltaPriceQuery.data\n ? getSwapSideFromDeltaPrice(deltaPriceQuery.data)\n : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isRefetching: deltaPriceQuery.isRefetching,\n isError: deltaPriceQuery.isError,\n refetch: deltaPriceQuery.refetch,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n side?: SwapSideUnion;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n const selectedBridgePrice = useSelectedBridgePrice({ price: delta.price });\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n side: market.side,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: selectedBridgePrice || delta.price,\n side: delta.side,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","excludeBridges","excludeBridgesAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","PRICE_REFETCH_INTERVAL_MS","staleTime","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","side","t16","error","isError","isFetching","isLoading","isRefetching","refetch","price","canBeUsed","t17","getSwapSideFromDeltaPrice","t18","t19","userSelectedPriceMode","market","delta","useCurrentSwapPrice","selectedBridgePrice","useSelectedBridgePrice"],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ import { getSwapSideFromDeltaPrice } from '../prices/delta/queries/utils.js';
|
|
|
26
26
|
import { extractSelectedBridgePrice } from '../prices/delta/bridge/utils.js';
|
|
27
27
|
import { useAtomValue } from '../../../core/store.js';
|
|
28
28
|
import { bridgePreferenceAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js';
|
|
29
|
-
import {
|
|
29
|
+
import { protocolNameAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js';
|
|
30
30
|
|
|
31
31
|
const deltaOrderFlowType = "deltaOrder";
|
|
32
32
|
const DELTA_ORDER_MUTATION_KEY = "runDeltaOrderFlow";
|
|
@@ -168,7 +168,7 @@ function useDeltaFlow({
|
|
|
168
168
|
chainId
|
|
169
169
|
});
|
|
170
170
|
const partner = usePartner();
|
|
171
|
-
const
|
|
171
|
+
const protocolName = useAtomValue(protocolNameAtom);
|
|
172
172
|
const bridgePreference = useAtomValue(bridgePreferenceAtom);
|
|
173
173
|
const getQueryForPrice = useDeltaPriceQueryForPrice();
|
|
174
174
|
const subscribeToPrice = useSubscribeToDeltaPrice();
|
|
@@ -222,7 +222,7 @@ function useDeltaFlow({
|
|
|
222
222
|
if (isBridgePrice(price)) {
|
|
223
223
|
newPrice = extractSelectedBridgePrice({
|
|
224
224
|
price,
|
|
225
|
-
|
|
225
|
+
protocolName,
|
|
226
226
|
bridgePreference
|
|
227
227
|
});
|
|
228
228
|
}
|