@velora-dex/widget 0.3.2-dev.1 → 0.3.3-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +5 -11
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaAuction,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\nimport { extractSelectedBridgePrice } from \"../prices/delta/bridge/utils\";\nimport type { DeltaOrBridgePrice } from \"../prices/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\nimport { protocolSelectorAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions,\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions,\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: Omit<DeltaAuction, \"signature\" | \"transactions\">;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n\n const swapSideFromInput = useSwapSide();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n const protocolSelector = useAtomValue(protocolSelectorAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (price) => {\n let newPrice: DeltaOrBridgePrice = price;\n if (isBridgePrice(price)) {\n newPrice = extractSelectedBridgePrice({\n price,\n protocolSelector,\n bridgePreference,\n });\n }\n\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide,\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide,\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput: CreateDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions,\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n const result = deltaOrderMut.data;\n\n /**\n * priority:\n * 1. lastOrderState = updated sent Order from final result\n * 2. sentOrder = just sent Order from final result\n * 3. deltaOrderExecution.lastOrderState = updated sent Order from watchOrderExecution (intermediate result)\n * 4. deltaOrderExecution.sentOrder = just sent Order from watchOrderExecution (intermediate result)\n */\n const submittedDeltaOrder:\n | Omit<DeltaAuction, \"signature\" | \"transactions\">\n | undefined =\n result?.deltaOrder.lastOrderState ||\n result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState ||\n deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result,\n usedPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","protocolSelector","useAtomValue","protocolSelectorAtom","bridgePreference","bridgePreferenceAtom","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","isBridgePrice","extractSelectedBridgePrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","side","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result","submittedDeltaOrder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaAuction,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\nimport { extractSelectedBridgePrice } from \"../prices/delta/bridge/utils\";\nimport type { DeltaOrBridgePrice } from \"../prices/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: Omit<DeltaAuction, \"signature\" | \"transactions\">;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n\n const swapSideFromInput = useSwapSide();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (price) => {\n let newPrice: DeltaOrBridgePrice = price;\n if (isBridgePrice(price)) {\n newPrice = extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n }\n\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput: CreateDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n const result = deltaOrderMut.data;\n\n /**\n * priority:\n * 1. lastOrderState = updated sent Order from final result\n * 2. sentOrder = just sent Order from final result\n * 3. deltaOrderExecution.lastOrderState = updated sent Order from watchOrderExecution (intermediate result)\n * 4. deltaOrderExecution.sentOrder = just sent Order from watchOrderExecution (intermediate result)\n */\n const submittedDeltaOrder:\n | Omit<DeltaAuction, \"signature\" | \"transactions\">\n | undefined =\n result?.deltaOrder.lastOrderState ||\n result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState ||\n deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result,\n usedPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","protocolName","useAtomValue","protocolNameAtom","bridgePreference","bridgePreferenceAtom","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","isBridgePrice","extractSelectedBridgePrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","side","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result","submittedDeltaOrder"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA,MAAMA,kBAAAA,GAAqB,YAAA;AAgF3B,MAAMC,wBAAAA,GAA2B,mBAAA;AAE1B,SAASC,YAAAA,CAAa;AAAA,EAC3BC,UAAAA;AAAAA,EACAC;AACiB,CAAA,EAAuB;AACxC,EAAA,MAAMC,MAAAA,GAASC,UAAU,WAAW,CAAA;AACpC,EAAA,MAAMC,UAAUC,UAAAA,EAAW;AAC3B,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAiB,GAAIC,YAAY,MAAM,CAAA;AAW/C,EAAA,MAAMC,oBAAoBC,WAAAA,EAAY;AAEtC,EAAA,MAAM;AAAA,IACJC,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,MAAAA,EAAQC;AAAAA,MACNC,kBAAAA,CAAmB;AAAA,IACrBC,UAAUjB,UAAAA,EAAYiB,QAAAA;AAAAA,IACtBC,WAAWlB,UAAAA,EAAYkB,SAAAA;AAAAA,IACvBC,mBAAAA,EAAqB,eAAA;AAAA,IACrBC,QAAAA,EACGpB,UAAAA,IAAcqB,yBAAAA,CAA0BrB,UAAU,CAAA,IACnDQ,iBAAAA;AAAAA,IACFc,SAAAA,EAAW;AAAA,GACZ,CAAA;AAID,EAAA,MAAM;AAAA,IAAEC,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AAExC,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAcC,gBAAAA,CAAiB;AAAA,IACrCvB,OAAAA;AAAAA,IACAoB;AAAAA,GACD,CAAA;AACD,EAAA,MAAMI,cAAcC,cAAAA,EAAe;AAEnC,EAAA,MAAMC,iBAAiBC,mBAAAA,CAAoB;AAAA,IACzC3B,OAAAA;AAAAA,IACAoB,OAAAA;AAAAA,IACAQ,MAAAA,EAAQN,SAAAA;AAAAA,IACRO,eAAAA,EAAiB;AAAA,MACfC,WAAYC,CAAAA,KAAAA,KAAU;AACpBjC,QAAAA,MAAAA,CAAOkC,GAAAA,CAAI,8BAA8BD,KAAK,CAAA;AAAA,MAChD,CAAA;AAAA,MACAE,SAAUC,CAAAA,KAAAA,KAAU;AAClBpC,QAAAA,MAAAA,CAAOoC,KAAAA,CAAM,4BAA4BA,KAAK,CAAA;AAAA,MAChD;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAMC,yBAAAA,GACJ;AAAA,IACEJ,OAAOL,cAAAA,CAAeU,IAAAA;AAAAA,IACtBC,iBAAiBX,cAAAA,CAAeY,SAAAA;AAAAA,IAChCC,aAAab,cAAAA,CAAec,SAAAA;AAAAA,IAC5BF,WAAWZ,cAAAA,CAAeY,SAAAA;AAAAA,IAC1BG,SAASf,cAAAA,CAAee,OAAAA;AAAAA,IACxBD,WAAWd,cAAAA,CAAec,SAAAA;AAAAA,IAC1BN,OAAOR,cAAAA,CAAeQ;AAAAA,GACxB;AAQF,EAAA,MAAM;AAAA,IACJQ,iBAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,KAAAA,EAAOC;AAAAA,MACLC,6BAAAA,CAA8B;AAAA,IAChChD,OAAAA;AAAAA,IACAoB,OAAAA;AAAAA,IACAtB,MAAAA;AAAAA,IACAmD,UAAAA,EAAY3B;AAAAA,GACb,CAAA;AAGD,EAAA,MAAM4B,oBAAAA,GAAmE;AAAA,IACvEnB,KAAAA,EAAOI,yBAAAA,CAA0BJ,KAAAA,IAASW,iBAAAA,CAAkBX,KAAAA;AAAAA,IAC5DM,eAAAA,EACEF,yBAAAA,CAA0BG,SAAAA,IAAaI,iBAAAA,CAAkBL,eAAAA;AAAAA,IAC3DE,WAAAA,EACEJ,yBAAAA,CAA0BK,SAAAA,IAAaE,iBAAAA,CAAkBH,WAAAA;AAAAA,IAC3DD,SAAAA,EACEH,yBAAAA,CAA0BG,SAAAA,IAAaI,iBAAAA,CAAkBJ,SAAAA;AAAAA,IAC3DG,OAAAA,EAASN,yBAAAA,CAA0BM,OAAAA,IAAWC,iBAAAA,CAAkBD,OAAAA;AAAAA,IAChED,SAAAA,EACEL,yBAAAA,CAA0BK,SAAAA,IAAaE,iBAAAA,CAAkBF,SAAAA;AAAAA,IAC3DN,KAAAA,EAAOC,yBAAAA,CAA0BD,KAAAA,IAASQ,iBAAAA,CAAkBR;AAAAA,GAC9D;AAIA,EAAA,MAAMiB,sBAAsBC,oBAAAA,CAAqB;AAAA,IAC/CC,OAAAA,EAASH,qBAAqBnB,KAAAA,EAAOuB,EAAAA;AAAAA,IACrCC,kBAAmBxB,CAAAA,OAAAA,KAAU;AAC3BjC,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,uBAAuBD,OAAK,CAAA;AAAA,IACzC,CAAA;AAAA,IACAyB,kBAAmBzB,CAAAA,OAAAA,KAAU;AAC3BjC,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,uBAAuBD,OAAK,CAAA;AAAA,IACzC,CAAA;AAAA,IACA0B,kBAAmB1B,CAAAA,OAAAA,KAAU;AAC3BjC,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,uBAAuBD,OAAK,CAAA;AAAA,IACzC,CAAA;AAAA,IACA2B,uBAAwB3B,CAAAA,OAAAA,KAAU;AAChCjC,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,uBAAuBD,OAAK,CAAA;AAAA,IACzC;AAAA,GACD,CAAA;AAED,EAAA,MAAM4B,cAAcR,mBAAAA,CAAoBf,IAAAA,GACpCwB,qBAAAA,CAAsBT,mBAAAA,CAAoBf,IAAI,CAAA,GAC9C,IAAA;AAGJ,EAAA,MAAMyB,yBAAAA,GACJV,mBAAAA,CAAoBf,IAAAA,KAAS,IAAA,IAAQe,mBAAAA,CAAoBX,SAAAA;AAE3D,EAAA,MAAMsB,mBAAAA,GAAiE;AAAA,IACrEC,WAAWb,oBAAAA,CAAqBnB,KAAAA;AAAAA,IAChCiC,gBAAgBb,mBAAAA,CAAoBf,IAAAA;AAAAA,IACpC6B,gBAAgBN,WAAAA,KAAgB,SAAA;AAAA,IAChCO,kBAAkBP,WAAAA,KAAgB,WAAA;AAAA,IAClCQ,iBAAiBR,WAAAA,KAAgB,WAAA;AAAA,IACjCrB,WACEa,mBAAAA,CAAoBiB,SAAAA,IACpBjB,oBAAoBkB,YAAAA,IACpBV,WAAAA,KAAgB,aAChBA,WAAAA,KAAgB,WAAA;AAAA,IAClBlB,OAAAA,EACEU,mBAAAA,CAAoBV,OAAAA,IACpBkB,WAAAA,KAAgB,QAAA,IAChBE,yBAAAA;AAAAA,IACFrB,WAAWmB,WAAAA,KAAgB,WAAA;AAAA,IAC3BzB,OAAOiB,mBAAAA,CAAoBjB;AAAAA,GAC7B;AAEA,EAAA,MAAMoC,sBAAsBC,2BAAAA,CAA4B;AAAA,IACtDhB,kBAAmBxB,CAAAA,OAAAA,KAAU;AAC3BP,MAAAA,WAAAA,CAAYgD,iBAAAA,CAAkB;AAAA,QAC5BC,UAAUC,mBAAAA,CAAoB;AAAA,UAC5BC,aAAa5C,OAAAA,CAAM6C;AAAAA,SACpB,CAAA;AAAA,QACDC,KAAAA,EAAO;AAAA,OACR,CAAA;AAAA,IACH,CAAA;AAAA,IACArB,kBAAmBzB,CAAAA,OAAAA,KAAU;AAC3BP,MAAAA,WAAAA,CAAYgD,iBAAAA,CAAkB;AAAA,QAC5BC,UAAUC,mBAAAA,CAAoB;AAAA,UAC5BC,aAAa5C,OAAAA,CAAM6C;AAAAA,SACpB,CAAA;AAAA,QACDC,KAAAA,EAAO;AAAA,OACR,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AACD,EAAA,MAAMC,kBAAkBC,kBAAAA,EAAmB;AAE3C,EAAA,MAAMC,yBAAAA,GAA4BC,OAA+B,IAAI,CAAA;AACrE,EAAA,MAAMC,aAAAA,GAAgBD,OAAwC,IAAI,CAAA;AAElE,EAAA,MAAME,aAAaA,MAAM;AACvBH,IAAAA,yBAAAA,CAA0BI,OAAAA,EAASC,KAAAA,CAAM,IAAIC,kBAAAA,EAAoB,CAAA;AACjEN,IAAAA,yBAAAA,CAA0BI,OAAAA,GAAU,IAAA;AAEpCF,IAAAA,aAAAA,CAAcE,OAAAA,GAAU,IAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAMG,kBAAkBC,2BAAAA,EAA4B;AAEpD,EAAA,MAAM;AAAA,IAAEC,eAAAA;AAAAA,IAAiBC;AAAAA,MAAeC,4BAAAA,CAA6B;AAAA,IACnE3F;AAAAA,GACD,CAAA;AAED,EAAA,MAAM4F,UAAUC,UAAAA,EAAW;AAC3B,EAAA,MAAMC,YAAAA,GAAeC,aAAaC,gBAAgB,CAAA;AAClD,EAAA,MAAMC,gBAAAA,GAAmBF,aAAaG,oBAAoB,CAAA;AAE1D,EAAA,MAAMC,mBAAmBC,0BAAAA,EAA2B;AACpD,EAAA,MAAMC,mBAAmBC,wBAAAA,EAAyB;AAElD,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAWC,eAAAA,EAAgB;AAEnC,EAAA,MAAMC,mBAAmB,OAAO;AAAA,IAC9BC,QAAAA;AAAAA,IACAC;AAAAA,GACoB,GAAI,EAAC,KAAuC;AAGhEnG,IAAAA,YAAAA,CAAasC,KAAAA,EAAM;AACnBrC,IAAAA,aAAAA,CAAcqC,KAAAA,EAAM;AACpBpB,IAAAA,cAAAA,CAAeoB,KAAAA,EAAM;AACrBC,IAAAA,+BAAAA,EAAgC;AAKhC6D,IAAAA,MAAAA,CAAOhH,YAAY,8BAA8B,CAAA;AACjD,IAAA,MAAMoB,QAAAA,GAAWC,0BAA0BrB,UAAU,CAAA;AAErD,IAAA,MAAMiH,eAAAA,GAAkB,IAAIC,eAAAA,EAAgB;AAC5C9B,IAAAA,yBAAAA,CAA0BI,OAAAA,GAAUyB,eAAAA;AAEpC,IAAA,MAAME,SAASF,eAAAA,CAAgBE,MAAAA;AAG/B,IAAA,MAAMC,gBAAgBC,yBAAAA,EAA0B;AAEhD,IAAA,IAAIC,kBAAAA;AAEJ,IAAA,IAAIC,aAAAA;AACJ,IAAA,IAAIC,gBAAAA;AAGJ,IAAA,MAAMC,iBAAiB/G,QAAAA,CAAS+G,cAAAA;AAIhC,IAAA,IAAIC,UAAAA,GAAa1H,UAAAA;AACjB,IAAA,IAAI2H,oBAAAA;AAEJrC,IAAAA,aAAAA,CAAcE,OAAAA,GAAUkC,UAAAA;AASxB,IAAA,MAAM;AAAA,MAAEE,0BAAAA;AAAAA,MAA4BC,SAAAA;AAAAA,MAAWC;AAAAA,QAC7CC,oBAAAA,CAAqB;AAAA,MACnBrH,QAAAA;AAAAA,MACAT,UAAAA;AAAAA,MACAU,UAAAA;AAAAA,MACAoC,WAAAA;AAAAA,MACAC;AAAAA,KACD,CAAA;AAEH,IAAA,IAAI;AACF,MAAA,IAAI4E,8BAA8BH,cAAAA,EAAgB;AAGhD,QAAA,MAAM5C,WAAW0B,gBAAAA,CAAiB;AAAA,UAChCnG,OAAAA;AAAAA,UACA4H,KAAAA,EAAON;AAAAA,SACR,CAAA,EAAG7C,QAAAA;AAGJ,QAAA,IAAIA,QAAAA,EAAU;AAEZ,UAAA,MAAMoD,cAAAA,GAAiBR,cAAAA;AAIvBE,UAAAA,oBAAAA,GAAuBlB,gBAAAA,CAAiB;AAAA,YACtC5B,QAAAA;AAAAA,YACAqD,QAASF,CAAAA,KAAAA,KAAU;AACjB,cAAA,IAAIG,QAAAA,GAA+BH,KAAAA;AACnC,cAAA,IAAII,aAAAA,CAAcJ,KAAK,CAAA,EAAG;AACxBG,gBAAAA,QAAAA,GAAWE,0BAAAA,CAA2B;AAAA,kBACpCL,KAAAA;AAAAA,kBACA9B,YAAAA;AAAAA,kBACAG;AAAAA,iBACD,CAAA;AAAA,cACH;AAEA,cAAA,IAAIc,OAAOmB,OAAAA,EAAS;AAGlBX,gBAAAA,oBAAAA,IAAuB;AACvBA,gBAAAA,oBAAAA,GAAuBY,KAAAA,CAAAA;AACvB,gBAAA;AAAA,cACF;AAIA,cAAA,MAAMC,uBAAuBC,aAAAA,CAC3B;AAAA,gBACEvH,WAAWiH,QAAAA,CAASjH,SAAAA;AAAAA,gBACpBwH,YAAYP,QAAAA,CAASQ;AAAAA,eACvB,EACArI,kBACAc,QACF,CAAA;AAGA,cAAA,IAAI6G,cAAAA,IAAkBW,MAAAA,CAAOJ,oBAAAA,CAAqBtH,SAAS,CAAA,EAAG;AAC5DhB,gBAAAA,MAAAA,CAAOkC,GAAAA,CAAI,mBAAmB+F,QAAQ,CAAA;AACtCT,gBAAAA,UAAAA,GAAaS,QAAAA;AACb7C,gBAAAA,aAAAA,CAAcE,OAAAA,GAAUkC,UAAAA;AAAAA,cAC1B;AAAA,YACF;AAAA,WACD,CAAA;AAAA,QACH;AAEA,QAAA,IAAI;AACF,UAAA,IAAI,CAACG,SAAAA,EAAW;AACd9G,YAAAA,qBAAAA,CAAsB8H,YAAYC,OAAAA,CAAQ;AAAA,cAAErB;AAAAA,aAAgB,CAAA;AAE5DF,YAAAA,aAAAA,GAAgB,MAAM3G,aAAamI,YAAAA,CAAa;AAAA,cAC9CC,aAAAA,EAAe;AAAA,gBACbvB;AAAAA;AACF,aACD,CAAA;AAED1G,YAAAA,qBAAAA,CAAsB8H,YAAYI,IAAAA,CAAK;AAAA,cACrCxB,cAAAA;AAAAA,cACAyB,MAAAA,EAAQ3B;AAAAA,aACT,CAAA;AAGDJ,YAAAA,MAAAA,CAAOgC,cAAAA,EAAe;AAEtB,YAAA,MAAMC,0BAA0BlE,eAAAA,CAAgB;AAAA,cAC9CmE,IAAAA,EAAM9B,aAAAA;AAAAA,cACNnH,OAAAA;AAAAA,cACAkJ,YAAa9G,CAAAA,IAAAA,KAAS;AACpBtC,gBAAAA,MAAAA,CAAOkC,GAAAA,CAAI,sBAAA,EAAwBmF,aAAAA,EAAe/E,IAAI,CAAA;AAAA,cACxD;AAAA,aACD,CAAA;AAED,YAAA,IAAIsE,QAAAA,EAAU;AACZA,cAAAA,QAAAA,CAAS;AAAA,gBACP1G,OAAAA;AAAAA,gBACAmJ,MAAAA,EAAQ,SAAA;AAAA,gBACRC,eAAAA,EAAiBjC,aAAAA;AAAAA,gBACjBkC,cAAAA,EAAgBL,uBAAAA;AAAAA,gBAChBM,uBAAAA,EAAyB;AAAA,kBACvBH,MAAAA,EAAQ,SAAA;AAAA,kBACRtB,cAAAA,EAAgBR,cAAAA;AAAAA,kBAChBkC,cAAcjJ,QAAAA,CAASkJ,KAAAA;AAAAA,kBACvBC,gBAAgBnJ,QAAAA,CAASoJ;AAAAA;AAC3B,eACD,CAAA;AAAA,YACH;AAEAtC,YAAAA,gBAAAA,GAAmB,MAAM4B,uBAAAA;AAEzBrI,YAAAA,qBAAAA,CAAsB8H,YAAYkB,SAAAA,CAAU;AAAA,cAC1CtC,cAAAA;AAAAA,cACAyB,MAAAA,EAAQ3B,aAAAA;AAAAA,cACRyC,SAAAA,EAAWxC;AAAAA,aACZ,CAAA;AAEDtH,YAAAA,MAAAA,CAAOkC,GAAAA,CAAI,0BAA0BoF,gBAAgB,CAAA;AAAA,UAGvD,CAAA,MAAO;AACLzG,YAAAA,qBAAAA,CAAsBkJ,aAAanB,OAAAA,CAAQ;AAAA,cAAErB;AAAAA,aAAgB,CAAA;AAG7DH,YAAAA,kBAAAA,GAAqB,MAAMzG,cAAcqJ,eAAAA,CAAgB;AAAA,cACvDC,QAAAA,EAAU/C,aAAAA;AAAAA,cACVgD,KAAAA,EAAO3C;AAAAA,aACR,CAAA;AAED1G,YAAAA,qBAAAA,CAAsBkJ,aAAaF,SAAAA,CAAU;AAAA,cAC3CtC,cAAAA;AAAAA,cACA4C,QAAQ/C,kBAAAA,EAAoBgD;AAAAA,aAC7B,CAAA;AAAA,UACH;AAAA,QACF,SAAShI,OAAAA,EAAO;AACd,UAAA,IAAI,CAACuF,SAAAA,EAAW;AACd9G,YAAAA,qBAAAA,CAAsB8H,YAAY0B,MAAAA,CAAO;AAAA,cACvC9C,cAAAA;AAAAA,cACAnF,KAAAA,EAAOA,OAAAA;AAAAA,cACP4G,MAAAA,EAAQ3B;AAAAA;AAAAA,aACT,CAAA;AAAA,UACH,CAAA,MAAO;AACLxG,YAAAA,qBAAAA,CAAsBkJ,aAAaM,MAAAA,CAAO;AAAA,cACxC9C,cAAAA;AAAAA,cACAnF,KAAAA,EAAOA;AAAAA,aACR,CAAA;AAAA,UACH;AACA,UAAA,MAAMA,OAAAA;AAAAA,QACR;AAAA,MACF;AAGA6E,MAAAA,MAAAA,CAAOgC,cAAAA,EAAe;AAEtBnC,MAAAA,MAAAA,CAAOxF,SAAS,0BAA0B,CAAA;AAG1C,MAAA,MAAMgJ,eAAAA,GAAkB9C,UAAAA;AACxBpC,MAAAA,aAAAA,CAAcE,OAAAA,GAAUgF,eAAAA;AAExB7C,MAAAA,oBAAAA,IAAuB;AACvBA,MAAAA,oBAAAA,GAAuBY,KAAAA,CAAAA;AAEvBvB,MAAAA,MAAAA,CAAOwD,iBAAiB,8BAA8B,CAAA;AAEtD,MAAA,MAAMhC,yBAAuBC,aAAAA,CAC3B;AAAA,QACEvH,WAAWsJ,eAAAA,CAAgBtJ,SAAAA;AAAAA,QAC3BwH,YAAY8B,eAAAA,CAAgB7B;AAAAA,OAC9B,EACArI,kBACAc,QACF,CAAA;AAEA,MAAA,IAAIiJ,SAAS/C,kBAAAA,EAAoBgD,iBAAAA;AACjC,MAAA,IACEhD,oBAAoBmD,gBAAAA,CAAiBC,IAAAA,KAAS,aAC9CpD,kBAAAA,CAAmBmD,gBAAAA,CAAiBE,YAAY,cAAA,EAChD;AAGAN,QAAAA,MAAAA,GAASO,wCAAAA,CAAyC;AAAA,UAChDC,KAAAA,EAAOvD,mBAAmBmD,gBAAAA,CAAiBI,KAAAA;AAAAA,UAC3CC,WAAWxD,kBAAAA,CAAmBwD;AAAAA,SAC/B,CAAA;AAAA,MACH;AAEA,MAAA,MAAMC,cAAc3C,aAAAA,CAAcoC,eAAe,CAAA,GAC7CA,eAAAA,CAAgBQ,OAAOC,kBAAAA,GACvB7K,OAAAA;AAEJuG,MAAAA,MAAAA,GAAS;AAAA,QACPuE,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,cAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,OAAA;AAAA,YACVrD,KAAAA,EAAOwC;AAAAA;AACT;AACF,OACD,CAAA;AAED,MAAA,IAAIc,YAAAA;AAEJ,MAAA,MAAMC,gBAAAA,GAA0C;AAAA,QAC9CpE,MAAAA;AAAAA,QACAuD,IAAAA,EAAM,QAAA;AAAA,QACNc,UAAAA,EAAY;AAAA,UACVC,KAAAA,EAAOjK,OAAAA;AAAAA,UACPkK,WAAAA,EAAa/F,eAAAA;AAAAA,UACb1E,UAAUuJ,eAAAA,CAAgBvJ,QAAAA;AAAAA,UAC1B0K,WAAWnB,eAAAA,CAAgBmB,SAAAA;AAAAA,UAC3BtB,MAAAA;AAAAA,UACAU,WAAAA;AAAAA,UACA/K,UAAAA,EAAYwK,eAAAA;AAAAA,UACZxE,OAAAA;AAAAA,UACA,GAAGwC,sBAAAA;AAAAA,UACH2B,QAAAA,EAAUyB,OAAOxE,aAAa,CAAA;AAAA,UAC9ByE,IAAAA,EAAMzK;AAAAA;AACR,OACF;AAEA,MAAA,IAAI,CAAC0G,kBAAAA,EAAoB;AAEvBwD,QAAAA,YAAAA,GAAe,MAAMxJ,cAAAA,CAAegK,WAAAA,CAAYP,gBAAgB,CAAA;AAAA,MAClE,CAAA,MAAO;AAMLD,QAAAA,YAAAA,GAAe,MAAMrI,0BAAAA,CAA2B;AAAA,UAC9C8I,qBAAAA,EAAuBR,gBAAAA;AAAAA,UACvB7K,QAAAA;AAAAA,UACAT,UAAAA;AAAAA,UACA6G;AAAAA,SACD,CAAA;AAAA,MACH;AAGA,MAAA,IAAIQ,kBAAAA,EAAoB;AACtBzB,QAAAA,eAAAA,CAAgByB,mBAAmBmD,gBAAgB,CAAA;AAAA,MACrD;AAEA9D,MAAAA,MAAAA,GAAS;AAAA,QACPuE,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,WAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,OAAA;AAAA,YACVrD,KAAAA,EAAOwC,eAAAA;AAAAA,YACPrI,KAAAA,EAAOmJ;AAAAA;AACT;AACF,OACD,CAAA;AAID,MAAA,MAAMU,wBAAwBtH,mBAAAA,CAAoB;AAAA,QAChDjB,SAAS6H,YAAAA,CAAa5H;AAAAA;AAAAA,OAEvB,CAAA;AAED,MAAA,IAAIqD,WAAAA,EAAa;AACfA,QAAAA,WAAAA,CAAY;AAAA,UACV5E,KAAAA,EAAOmJ,YAAAA;AAAAA,UACPlH,cAAAA,EAAgB4H;AAAAA,SACjB,CAAA;AAAA,MACH;AAEA,MAAA,MAAM5H,iBAAiB,MAAM4H,qBAAAA;AAE7BrF,MAAAA,MAAAA,GAAS;AAAA,QACPuE,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,gBAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,OAAA;AAAA,YACVrD,KAAAA,EAAOwC,eAAAA;AAAAA,YACPrI,KAAAA,EAAOmJ;AAAAA;AACT;AACF,OACD,CAAA;AASD,MAAA,OAAO;AAAA,QACLW,aAAAA,EAAepM,kBAAAA;AAAAA,QACfqM,OAAAA,EAAS;AAAA,UACPhD,MAAAA,EAAQ3B,aAAAA;AAAAA,UACR4E,OAAAA,EAAS3E;AAAAA,SACX;AAAA,QACA4E,UAAAA,EAAY;AAAA,UACVjI,SAAAA,EAAWmH,YAAAA;AAAAA,UACXlH;AAAAA,SACF;AAAA,QACApE,UAAAA,EAAYwK,eAAAA;AAAAA;AAAAA,QAEZhJ,OAAAA;AAAAA,QACAmE;AAAAA,OACF;AAAA,IACF,SAASrD,OAAAA,EAAO;AAGd,MAAA,IAAIgF,kBAAAA,EAAoB;AACtBxB,QAAAA,UAAAA,CAAWwB,mBAAmBmD,gBAAgB,CAAA;AAAA,MAChD;AACA9D,MAAAA,MAAAA,GAAS;AAAA,QACPuE,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,aAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,OAAA;AAAA,YACV/I,KAAAA,EAAOA;AAAAA;AACT;AACF,OACD,CAAA;AAED,MAAA,MAAMA,OAAAA;AAAAA,IACR,CAAA,SAAC;AAECqF,MAAAA,oBAAAA,IAAuB;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM0E,gBAAgBC,WAAAA,CAAY;AAAA,IAChCC,UAAAA,EAAY1F,gBAAAA;AAAAA,IACZ2F,WAAAA,EAAa,CAAC1M,wBAAwB,CAAA;AAAA,IACtCoC,WAAYM,CAAAA,MAAAA,KAAS;AACnBtC,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,uBAAuBI,MAAI,CAAA;AAAA,IACxC,CAAA;AAAA,IACAH,SAAUC,CAAAA,OAAAA,KAAU;AAClBpC,MAAAA,MAAAA,CAAOoC,KAAAA,CAAM,qBAAqBA,OAAK,CAAA;AAAA,IACzC,CAAA;AAAA,IACAmK,WAAWA,MAAM;AACfvM,MAAAA,MAAAA,CAAOkC,IAAI,qBAAqB,CAAA;AAAA,IAClC;AAAA,GACD,CAAA;AAED,EAAA,MAAMsK,oBAAoBL,aAAAA,CAAcP,WAAAA;AAExC,EAAA,MAAM5I,QAAQA,MAAM;AAClBoC,IAAAA,aAAAA,CAAcE,OAAAA,GAAU,IAAA;AAExB5E,IAAAA,YAAAA,CAAasC,KAAAA,EAAM;AACnBrC,IAAAA,aAAAA,CAAcqC,KAAAA,EAAM;AACpBpB,IAAAA,cAAAA,CAAeoB,KAAAA,EAAM;AACrBmJ,IAAAA,aAAAA,CAAcnJ,KAAAA,EAAM;AACpBC,IAAAA,+BAAAA,EAAgC;AAAA,EAClC,CAAA;AAEA,EAAA,MAAMwJ,SAAAA,GAAYA,CAChBC,OAAAA,KACoC;AACpC1J,IAAAA,KAAAA,EAAM;AACN,IAAA,OAAOwJ,kBAAkBE,OAAO,CAAA;AAAA,EAClC,CAAA;AAGA,EAAA,MAAMC,SAAAA,GAA+BvH,cAAcE,OAAAA,IAAWxF,UAAAA;AAE9D,EAAA,MAAM8M,SAAST,aAAAA,CAAc7J,IAAAA;AAS7B,EAAA,MAAMuK,mBAAAA,GAGJD,QAAQV,UAAAA,CAAWhI,cAAAA,IACnB0I,QAAQV,UAAAA,CAAWjI,SAAAA,IACnBD,mBAAAA,CAAoBE,cAAAA,IACpBF,mBAAAA,CAAoBC,SAAAA;AAGtB,EAAA,OAAO;AAAA,IACL8H,aAAAA,EAAepM,kBAAAA;AAAAA,IACfO,OAAAA;AAAAA,IACAsM,iBAAAA;AAAAA,IACAxJ,KAAAA;AAAAA,IACAqC,UAAAA;AAAAA,IACAoH,SAAAA;AAAAA,IACAjM,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAmC,iBAAAA;AAAAA,IACAQ,oBAAAA;AAAAA,IACAY,mBAAAA;AAAAA;AAAAA,IAEAxB,WAAW2J,aAAAA,CAAc3J,SAAAA;AAAAA,IACzBE,SAAAA,EAAWU,oBAAAA,CAAqBV,SAAAA,IAAasB,mBAAAA,CAAoBtB,SAAAA;AAAAA;AAAAA,IACjEC,SAASwJ,aAAAA,CAAcxJ,OAAAA;AAAAA,IACvBP,OAAO+J,aAAAA,CAAc/J,KAAAA;AAAAA,IACrBwK,MAAAA;AAAAA,IACAD,SAAAA;AAAAA,IACAE;AAAAA,GACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAllTokensWithFilter.d.ts","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAK5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAE5F,eAAO,MAAM,sBAAsB,GAAI,6EAKpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"useAllTokensWithFilter.d.ts","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAK5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAE5F,eAAO,MAAM,sBAAsB,GAAI,6EAKpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,wBAAwB,EA8E3B,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAMpC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,aAAa,GACd,EAAE,wBAAwB,GAAG;IAC5B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACtC,CAqBA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,WAAW,EACX,SAAS,EACT,IAAI,GACL,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,cAAc,CAAC;CACtB,8BAuBA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as distExports } from '../../_virtual/index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createSortWithClosestMatch } from '../../tokens/utils/sorting.js';
|
|
3
3
|
import { filterTokens } from '../../tokens/utils/filtering.js';
|
|
4
4
|
import { useAllTokens } from '../../tokens/hooks.js';
|
|
5
5
|
import { useAtomValue } from '../../core/store.js';
|
|
@@ -126,10 +126,12 @@ const useAllTokensWithFilter = (t0) => {
|
|
|
126
126
|
const attachTokenBalance = useAttachTokenBalanceMultichain(t6);
|
|
127
127
|
let t7;
|
|
128
128
|
if ($[19] !== attachTokenBalance || $[20] !== tokenFilter || $[21] !== tokensToDisplay) {
|
|
129
|
+
const trimmedTokenFilter = tokenFilter.trim();
|
|
130
|
+
const sorter = createSortWithClosestMatch(trimmedTokenFilter);
|
|
129
131
|
t7 = filterTokens({
|
|
130
|
-
filterString:
|
|
132
|
+
filterString: trimmedTokenFilter,
|
|
131
133
|
tokenArray: tokensToDisplay
|
|
132
|
-
}).map(attachTokenBalance).sort(
|
|
134
|
+
}).map(attachTokenBalance).sort(sorter);
|
|
133
135
|
$[19] = attachTokenBalance;
|
|
134
136
|
$[20] = tokenFilter;
|
|
135
137
|
$[21] = tokensToDisplay;
|
|
@@ -227,10 +229,13 @@ function useAcrossTokenLists(t0) {
|
|
|
227
229
|
const attachTokenBalance = useAttachTokenBalanceMultichain(t3);
|
|
228
230
|
let t4;
|
|
229
231
|
if ($[9] !== attachTokenBalance || $[10] !== crossTokens || $[11] !== tokenFilter) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
+
const trimmedTokenFilter = tokenFilter.trim();
|
|
233
|
+
const sorter = createSortWithClosestMatch(trimmedTokenFilter);
|
|
234
|
+
const filteredTokens = filterTokens({
|
|
235
|
+
filterString: trimmedTokenFilter,
|
|
232
236
|
tokenArray: crossTokens
|
|
233
|
-
})
|
|
237
|
+
});
|
|
238
|
+
t4 = filteredTokens.map(attachTokenBalance).sort(sorter);
|
|
234
239
|
$[9] = attachTokenBalance;
|
|
235
240
|
$[10] = crossTokens;
|
|
236
241
|
$[11] = tokenFilter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { sortTokens } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport type { BridgeInfoMode } from \"../swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sortTokens);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n mode: BridgeInfoMode;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n mode,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(\n () =>\n filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: crossTokens,\n })\n .map(attachTokenBalance)\n .sort(sortTokens),\n [attachTokenBalance, crossTokens, tokenFilter]\n );\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t2","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t3","emptyArray","t4","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t5","bb0","t6","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t7","t8","attachTokenBalance","useAttachTokenBalanceMultichain","sort","sortTokens","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","mode","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { createSortWithClosestMatch } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport type { BridgeInfoMode } from \"../swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n return filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sorter);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n mode: BridgeInfoMode;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n mode,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n const filteredTokens = filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: crossTokens,\n });\n return filteredTokens.map(attachTokenBalance).sort(sorter);\n }, [attachTokenBalance, crossTokens, tokenFilter]);\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t2","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t3","emptyArray","t4","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t5","bb0","t6","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t7","t8","attachTokenBalance","useAttachTokenBalanceMultichain","trimmedTokenFilter","sorter","createSortWithClosestMatch","sort","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","mode","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BridgeProtocolsMapping
|
|
2
|
-
export declare function useGetBridgeProtocols(): import('./swap/prices/delta/queries/bridgeProtocols/types').BridgeProtocolsQueryResult<BridgeProtocolsReturn>;
|
|
1
|
+
import { BridgeProtocolsMapping } from './swap/prices/delta/queries/bridgeProtocols/types';
|
|
3
2
|
export declare function useGetBridgeProtocolsMap(): import('./swap/prices/delta/queries/bridgeProtocols/types').BridgeProtocolsQueryResult<BridgeProtocolsMapping>;
|
|
4
3
|
//# sourceMappingURL=useBridgeProtocols.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBridgeProtocols.d.ts","sourceRoot":"","sources":["../../src/hooks/useBridgeProtocols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,
|
|
1
|
+
{"version":3,"file":"useBridgeProtocols.d.ts","sourceRoot":"","sources":["../../src/hooks/useBridgeProtocols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,mDAAmD,CAAC;AAW3D,wBAAgB,wBAAwB,mHAUvC"}
|
|
@@ -12,23 +12,6 @@ const createProtocolMapping = (data) => data.reduce((acc, {
|
|
|
12
12
|
};
|
|
13
13
|
return acc;
|
|
14
14
|
}, {});
|
|
15
|
-
function useGetBridgeProtocols() {
|
|
16
|
-
const $ = distExports.c(1);
|
|
17
|
-
let t0;
|
|
18
|
-
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
19
|
-
t0 = {
|
|
20
|
-
query: {
|
|
21
|
-
staleTime: Infinity,
|
|
22
|
-
gcTime: Infinity
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
$[0] = t0;
|
|
26
|
-
} else {
|
|
27
|
-
t0 = $[0];
|
|
28
|
-
}
|
|
29
|
-
const result = useBridgeProtocolsQuery(t0);
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
15
|
function useGetBridgeProtocolsMap() {
|
|
33
16
|
const $ = distExports.c(1);
|
|
34
17
|
let t0;
|
|
@@ -48,5 +31,5 @@ function useGetBridgeProtocolsMap() {
|
|
|
48
31
|
return result;
|
|
49
32
|
}
|
|
50
33
|
|
|
51
|
-
export {
|
|
34
|
+
export { useGetBridgeProtocolsMap };
|
|
52
35
|
//# sourceMappingURL=useBridgeProtocols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBridgeProtocols.js","sources":["../../src/hooks/useBridgeProtocols.ts"],"sourcesContent":["import type {\n BridgeProtocolsMapping,\n BridgeProtocolsReturn,\n} from \"./swap/prices/delta/queries/bridgeProtocols/types\";\nimport { useBridgeProtocolsQuery } from \"./swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\n\n// mapping {[protocol.toLowerCase()]: bridgeProtocolResponse} for faster access\nconst createProtocolMapping = (data: BridgeProtocolsReturn) =>\n data.reduce<BridgeProtocolsMapping>((acc, { protocol, ...rest }) => {\n const lowercasedProtocol = protocol.toLowerCase();\n acc[lowercasedProtocol] = { protocol: lowercasedProtocol, ...rest };\n return acc;\n }, {});\n\nexport function
|
|
1
|
+
{"version":3,"file":"useBridgeProtocols.js","sources":["../../src/hooks/useBridgeProtocols.ts"],"sourcesContent":["import type {\n BridgeProtocolsMapping,\n BridgeProtocolsReturn,\n} from \"./swap/prices/delta/queries/bridgeProtocols/types\";\nimport { useBridgeProtocolsQuery } from \"./swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\n\n// mapping {[protocol.toLowerCase()]: bridgeProtocolResponse} for faster access\nconst createProtocolMapping = (data: BridgeProtocolsReturn) =>\n data.reduce<BridgeProtocolsMapping>((acc, { protocol, ...rest }) => {\n const lowercasedProtocol = protocol.toLowerCase();\n acc[lowercasedProtocol] = { protocol: lowercasedProtocol, ...rest };\n return acc;\n }, {});\n\nexport function useGetBridgeProtocolsMap() {\n const result = useBridgeProtocolsQuery({\n query: {\n staleTime: Infinity,\n gcTime: Infinity,\n select: createProtocolMapping,\n },\n });\n\n return result;\n}\n"],"names":["createProtocolMapping","data","reduce","acc","protocol","rest","lowercasedProtocol","toLowerCase","useGetBridgeProtocolsMap","$","_c","t0","Symbol","for","query","staleTime","Infinity","gcTime","select","result","useBridgeProtocolsQuery"],"mappings":";;;AAOA,MAAMA,wBAAwBA,CAACC,IAAAA,KAC7BA,IAAAA,CAAKC,MAAAA,CAA+B,CAACC,GAAAA,EAAK;AAAA,EAAEC,QAAAA;AAAAA,EAAU,GAAGC;AAAK,CAAA,KAAM;AAClE,EAAA,MAAMC,kBAAAA,GAAqBF,SAASG,WAAAA,EAAY;AAChDJ,EAAAA,GAAAA,CAAIG,kBAAkB,CAAA,GAAI;AAAA,IAAEF,QAAAA,EAAUE,kBAAAA;AAAAA,IAAoB,GAAGD;AAAAA,GAAK;AAClE,EAAA,OAAOF,GAAAA;AACT,CAAA,EAAG,EAAE,CAAA;AAEA,SAAAK,wBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAG,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACkCF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,KAAAA,EAC9B;AAAA,QAAAC,SAAAA,EACMC,QAAAA;AAAAA,QAAQC,MAAAA,EACXD,QAAAA;AAAAA,QAAQE,MAAAA,EACRlB;AAAAA;AACV,KACF;AAACS,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAND,EAAA,MAAAU,MAAAA,GAAeC,wBAAwBT,EAMtC,CAAA;AAAE,EAAA,OAEIQ,MAAAA;AAAM;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/storage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../../../src/lib/constants/storage.ts"],"sourcesContent":["export const LOCAL_STORAGE_PREFIX = \"velora_widget\";\n"],"names":["LOCAL_STORAGE_PREFIX"],"mappings":"AAAO,MAAMA,oBAAAA,GAAuB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.js","sources":["../../../src/lib/utils/tuple.ts"],"sourcesContent":["import { assert, type NonEmptyArray } from \"ts-essentials\";\n\n// checks that array has at least one element\nexport const isFilledArray = <T>(array: T[]): array is NonEmptyArray<T> => {\n return array.length > 0;\n};\n\nexport function assertFilledArray<T>(\n array: T[]
|
|
1
|
+
{"version":3,"file":"tuple.js","sources":["../../../src/lib/utils/tuple.ts"],"sourcesContent":["import { assert, type NonEmptyArray } from \"ts-essentials\";\n\n// checks that array has at least one element\nexport const isFilledArray = <T>(array: T[]): array is NonEmptyArray<T> => {\n return array.length > 0;\n};\n\nexport function assertFilledArray<T>(\n array: T[]\n): asserts array is NonEmptyArray<T> {\n assert(isFilledArray(array), \"array must not be empty\");\n}\n\nexport function nonEmptyArrayOrUndefined<T>(\n arr?: T[]\n): NonEmptyArray<T> | undefined {\n if (!arr) return;\n return isFilledArray(arr) ? arr : undefined;\n}\n\nexport function isTupleOfLength<T, N extends number>(\n array: T[],\n len: N\n): array is TupleOfLength<T, N> {\n return array.length === len;\n}\n\nexport function isTupleAtLeastLength<T, N extends number>(\n array: T[],\n len: N\n): array is TupleOfLengthAtLeast<T, N> {\n return array.length >= len;\n}\n\n// based on https://stackoverflow.com/a/52490977/7316062\nexport type TupleOfLength<T, N extends number> = number extends N\n ? never\n : _TupleOf<T, N, []>;\ntype _TupleOf<T, N extends number, R extends unknown[]> = R[\"length\"] extends N\n ? R\n : _TupleOf<T, N, [T, ...R]>;\n\nexport type TupleOfLengthAtLeast<T, N extends number> = number extends N\n ? never\n : _TupleOfAtLeast<T, N, []>;\ntype _TupleOfAtLeast<\n T,\n N extends number,\n R extends unknown[],\n> = R[\"length\"] extends N ? [...R, ...T[]] : _TupleOfAtLeast<T, N, [T, ...R]>;\n"],"names":["isFilledArray","array","length","nonEmptyArrayOrUndefined","arr","undefined","isTupleAtLeastLength","len"],"mappings":";;AAGO,MAAMA,aAAAA,GAAgB,CAAIC,KAAAA,KAA0C;AACzE,EAAA,OAAOA,MAAMC,MAAAA,GAAS,CAAA;AACxB;AAQO,SAASC,yBACdC,GAAAA,EAC8B;AAC9B,EAAA,IAAI,CAACA,GAAAA,EAAK;AACV,EAAA,OAAOJ,aAAAA,CAAcI,GAAG,CAAA,GAAIA,GAAAA,GAAMC,MAAAA;AACpC;AASO,SAASC,oBAAAA,CACdL,OACAM,GAAAA,EACqC;AACrC,EAAA,OAAON,MAAMC,MAAAA,IAAUK,GAAAA;AACzB;;;;"}
|
package/dist/styles.css
CHANGED
|
@@ -113,6 +113,7 @@
|
|
|
113
113
|
--font-geist: var(--font-geist);
|
|
114
114
|
--font-geist-mono: var(--font-geist-mono);
|
|
115
115
|
--font-inter: var(--font-inter);
|
|
116
|
+
--shadow-card-1: var(--shadow-card-1);
|
|
116
117
|
}
|
|
117
118
|
.velora-widget.velora-widget {
|
|
118
119
|
-webkit-text-size-adjust: 100%;
|
|
@@ -793,6 +794,9 @@
|
|
|
793
794
|
.velora-widget.velora-widget .max-h-\[80vh\] {
|
|
794
795
|
max-height: 80vh;
|
|
795
796
|
}
|
|
797
|
+
.velora-widget.velora-widget .min-h-\[20px\] {
|
|
798
|
+
min-height: 20px;
|
|
799
|
+
}
|
|
796
800
|
.velora-widget.velora-widget .min-h-\[28px\] {
|
|
797
801
|
min-height: 28px;
|
|
798
802
|
}
|
|
@@ -1883,8 +1887,8 @@
|
|
|
1883
1887
|
--tw-shadow: 0px 2px 6px 0px var(--tw-shadow-color, #2738720d);
|
|
1884
1888
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1885
1889
|
}
|
|
1886
|
-
.velora-widget.velora-widget .shadow
|
|
1887
|
-
--tw-shadow:
|
|
1890
|
+
.velora-widget.velora-widget .shadow-card-1 {
|
|
1891
|
+
--tw-shadow: var(--shadow-card-1);
|
|
1888
1892
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1889
1893
|
}
|
|
1890
1894
|
.velora-widget.velora-widget .shadow-lg {
|
|
@@ -3055,6 +3059,7 @@
|
|
|
3055
3059
|
--secondary-shamrock_green-1: #009767;
|
|
3056
3060
|
--secondary-shamrock_green-2: #34ca9a;
|
|
3057
3061
|
--secondary-shamrock_green-3: #bbffea;
|
|
3062
|
+
--shadow-card-1: 0px 4px 16px #09162e0d;
|
|
3058
3063
|
}
|
|
3059
3064
|
.velora-widget.dark {
|
|
3060
3065
|
--background: oklch(14.5% 0 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importedTokensAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/importedTokensAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"importedTokensAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/importedTokensAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,eAAO,MAAM,kBAAkB,iQAI7B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;CAA4B,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { atom } from 'jotai';
|
|
2
2
|
import { atomWithStorage } from 'jotai/utils';
|
|
3
|
+
import { LOCAL_STORAGE_PREFIX } from '../../lib/constants/storage.js';
|
|
3
4
|
|
|
4
|
-
const importedTokensAtom = atomWithStorage(
|
|
5
|
+
const importedTokensAtom = atomWithStorage(`${LOCAL_STORAGE_PREFIX}_imported_tokens`, {}, void 0, {
|
|
6
|
+
getOnInit: true
|
|
7
|
+
});
|
|
5
8
|
const autoImportedTokensAtom = atom([]);
|
|
6
9
|
|
|
7
10
|
export { autoImportedTokensAtom, importedTokensAtom };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importedTokensAtom.js","sources":["../../../src/tokens/state/importedTokensAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { ImportedToken } from \"./types\";\nimport { atomWithStorage } from \"jotai/utils\";\n\nexport const importedTokensAtom = atomWithStorage<\n Record<number, ImportedToken[]>\n>(
|
|
1
|
+
{"version":3,"file":"importedTokensAtom.js","sources":["../../../src/tokens/state/importedTokensAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { ImportedToken } from \"./types\";\nimport { atomWithStorage } from \"jotai/utils\";\nimport { LOCAL_STORAGE_PREFIX } from \"@/lib/constants/storage\";\n\nexport const importedTokensAtom = atomWithStorage<\n Record<number, ImportedToken[]>\n>(`${LOCAL_STORAGE_PREFIX}_imported_tokens`, {}, undefined, {\n getOnInit: true,\n});\n\nexport const autoImportedTokensAtom = atom<ImportedToken[]>([]);\n"],"names":["importedTokensAtom","atomWithStorage","LOCAL_STORAGE_PREFIX","undefined","getOnInit","autoImportedTokensAtom","atom"],"mappings":";;;;AAKO,MAAMA,qBAAqBC,eAAAA,CAEhC,CAAA,EAAGC,oBAAoB,CAAA,gBAAA,CAAA,EAAoB,IAAIC,MAAAA,EAAW;AAAA,EAC1DC,SAAAA,EAAW;AACb,CAAC;AAEM,MAAMC,sBAAAA,GAAyBC,IAAAA,CAAsB,EAAE;;;;"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { TokenMaybeWithUsdBalance } from '../state/types';
|
|
2
2
|
type TokenLikeMaybeWithUsdBalance = Pick<TokenMaybeWithUsdBalance, "address" | "usdBalance">;
|
|
3
3
|
export declare function sortTokens(tokenA: TokenLikeMaybeWithUsdBalance, tokenB: TokenLikeMaybeWithUsdBalance): number;
|
|
4
|
+
type MinTokenToSort = Pick<TokenMaybeWithUsdBalance, "symbol" | "name" | "address" | "usdBalance">;
|
|
5
|
+
type CustomSorter = (tokenA: MinTokenToSort, tokenB: MinTokenToSort) => number;
|
|
6
|
+
export declare function createSortWithClosestMatch(tokenFilter: string): CustomSorter;
|
|
7
|
+
type SortTokensByCloserMatch = (tokenA: Pick<TokenMaybeWithUsdBalance, "symbol" | "name">, tokenB: Pick<TokenMaybeWithUsdBalance, "symbol" | "name">) => number;
|
|
8
|
+
export declare function createSortTokensByCloserMatch(tokenFilter: string): SortTokensByCloserMatch;
|
|
4
9
|
export {};
|
|
5
10
|
//# sourceMappingURL=sorting.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../../src/tokens/utils/sorting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../../src/tokens/utils/sorting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAI/D,KAAK,4BAA4B,GAAG,IAAI,CACtC,wBAAwB,EACxB,SAAS,GAAG,YAAY,CACzB,CAAC;AAEF,wBAAgB,UAAU,CACxB,MAAM,EAAE,4BAA4B,EACpC,MAAM,EAAE,4BAA4B,UAgCrC;AAED,KAAK,cAAc,GAAG,IAAI,CACxB,wBAAwB,EACxB,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAC7C,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,KAAK,MAAM,CAAC;AAE/E,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAgB5E;AAED,KAAK,uBAAuB,GAAG,CAC7B,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,MAAM,CAAC,EACzD,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,MAAM,CAAC,KACtD,MAAM,CAAC;AAEZ,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,GAClB,uBAAuB,CAyCzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isAddress } from 'viem';
|
|
1
2
|
import { isVLR } from './brand.js';
|
|
2
3
|
import { isETH } from './eth.js';
|
|
3
4
|
|
|
@@ -17,6 +18,38 @@ function sortTokens(tokenA, tokenB) {
|
|
|
17
18
|
}
|
|
18
19
|
return 0;
|
|
19
20
|
}
|
|
21
|
+
function createSortWithClosestMatch(tokenFilter) {
|
|
22
|
+
const isFilterAddress = isAddress(tokenFilter);
|
|
23
|
+
if (isFilterAddress || tokenFilter === "") return sortTokens;
|
|
24
|
+
const lowercasedTokenFilter = tokenFilter.toLowerCase();
|
|
25
|
+
const sortByClosestMatch = createSortTokensByCloserMatch(lowercasedTokenFilter);
|
|
26
|
+
return (tokenA, tokenB) => {
|
|
27
|
+
const res = sortByClosestMatch(tokenA, tokenB);
|
|
28
|
+
if (res !== 0) return res;
|
|
29
|
+
return sortTokens(tokenA, tokenB);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function createSortTokensByCloserMatch(tokenFilter) {
|
|
33
|
+
const lowercasedTokenFilter = tokenFilter.toLowerCase();
|
|
34
|
+
return (tokenA, tokenB) => {
|
|
35
|
+
const symbolA = tokenA.symbol;
|
|
36
|
+
const symbolB = tokenB.symbol;
|
|
37
|
+
if (!symbolA || !symbolB) return 0;
|
|
38
|
+
const matchedBySymbolA = symbolA.toLowerCase().includes(lowercasedTokenFilter);
|
|
39
|
+
const matchedBySymbolB = symbolB.toLowerCase().includes(lowercasedTokenFilter);
|
|
40
|
+
if (!matchedBySymbolA && !matchedBySymbolB) return 0;
|
|
41
|
+
if (matchedBySymbolA && !matchedBySymbolB) {
|
|
42
|
+
return -1;
|
|
43
|
+
}
|
|
44
|
+
if (matchedBySymbolB && !matchedBySymbolA) {
|
|
45
|
+
return 1;
|
|
46
|
+
}
|
|
47
|
+
if (symbolA.length !== symbolB.length) {
|
|
48
|
+
return symbolA.length - symbolB.length;
|
|
49
|
+
}
|
|
50
|
+
return 0;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
20
53
|
|
|
21
|
-
export { sortTokens };
|
|
54
|
+
export { createSortTokensByCloserMatch, createSortWithClosestMatch, sortTokens };
|
|
22
55
|
//# sourceMappingURL=sorting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sorting.js","sources":["../../../src/tokens/utils/sorting.ts"],"sourcesContent":["import type { TokenMaybeWithUsdBalance } from \"../state/types\";\nimport { isVLR } from \"./brand\";\nimport { isETH } from \"./eth\";\n\ntype TokenLikeMaybeWithUsdBalance = Pick<\n TokenMaybeWithUsdBalance,\n \"address\" | \"usdBalance\"\n>;\n\nexport function sortTokens(\n tokenA: TokenLikeMaybeWithUsdBalance,\n tokenB: TokenLikeMaybeWithUsdBalance\n) {\n // both tokens are native (from different chains) - first goes with bigger usdBalance\n if (\n isETH(tokenA) &&\n isETH(tokenB) &&\n \"usdBalance\" in tokenA &&\n \"usdBalance\" in tokenB &&\n tokenA.usdBalance &&\n tokenB.usdBalance\n ) {\n return tokenA.usdBalance > tokenB.usdBalance ? -1 : 1;\n }\n // Native Token goes first\n if (isETH(tokenA)) return -1;\n if (isETH(tokenB)) return 1;\n // VLR goes second\n if (isVLR(tokenA, 1)) return -1;\n if (isVLR(tokenB, 1)) return 1;\n\n if (\"usdBalance\" in tokenA && \"usdBalance\" in tokenB) {\n const balanceA =\n \"usdBalance\" in tokenA && tokenA.usdBalance ? tokenA.usdBalance : 0;\n const balanceB =\n \"usdBalance\" in tokenB && tokenB.usdBalance ? tokenB.usdBalance : 0;\n\n // all other Tokens sort by USD balance\n const balDiff = balanceB - balanceA;\n return balDiff;\n }\n\n return 0;\n}\n"],"names":["sortTokens","tokenA","tokenB","isETH","usdBalance","isVLR","balanceA","balanceB","balDiff"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sorting.js","sources":["../../../src/tokens/utils/sorting.ts"],"sourcesContent":["import { isAddress } from \"viem\";\nimport type { TokenMaybeWithUsdBalance } from \"../state/types\";\nimport { isVLR } from \"./brand\";\nimport { isETH } from \"./eth\";\n\ntype TokenLikeMaybeWithUsdBalance = Pick<\n TokenMaybeWithUsdBalance,\n \"address\" | \"usdBalance\"\n>;\n\nexport function sortTokens(\n tokenA: TokenLikeMaybeWithUsdBalance,\n tokenB: TokenLikeMaybeWithUsdBalance\n) {\n // both tokens are native (from different chains) - first goes with bigger usdBalance\n if (\n isETH(tokenA) &&\n isETH(tokenB) &&\n \"usdBalance\" in tokenA &&\n \"usdBalance\" in tokenB &&\n tokenA.usdBalance &&\n tokenB.usdBalance\n ) {\n return tokenA.usdBalance > tokenB.usdBalance ? -1 : 1;\n }\n // Native Token goes first\n if (isETH(tokenA)) return -1;\n if (isETH(tokenB)) return 1;\n // VLR goes second\n if (isVLR(tokenA, 1)) return -1;\n if (isVLR(tokenB, 1)) return 1;\n\n if (\"usdBalance\" in tokenA && \"usdBalance\" in tokenB) {\n const balanceA =\n \"usdBalance\" in tokenA && tokenA.usdBalance ? tokenA.usdBalance : 0;\n const balanceB =\n \"usdBalance\" in tokenB && tokenB.usdBalance ? tokenB.usdBalance : 0;\n\n // all other Tokens sort by USD balance\n const balDiff = balanceB - balanceA;\n return balDiff;\n }\n\n return 0;\n}\n\ntype MinTokenToSort = Pick<\n TokenMaybeWithUsdBalance,\n \"symbol\" | \"name\" | \"address\" | \"usdBalance\"\n>;\n\ntype CustomSorter = (tokenA: MinTokenToSort, tokenB: MinTokenToSort) => number;\n\nexport function createSortWithClosestMatch(tokenFilter: string): CustomSorter {\n const isFilterAddress = isAddress(tokenFilter);\n if (isFilterAddress || tokenFilter === \"\") return sortTokens;\n\n const lowercasedTokenFilter = tokenFilter.toLowerCase();\n const sortByClosestMatch = createSortTokensByCloserMatch(\n lowercasedTokenFilter\n );\n\n return (tokenA, tokenB) => {\n const res = sortByClosestMatch(tokenA, tokenB);\n if (res !== 0) return res;\n\n // sort the usual way (ETH, VLR, then by balance)\n return sortTokens(tokenA, tokenB);\n };\n}\n\ntype SortTokensByCloserMatch = (\n tokenA: Pick<TokenMaybeWithUsdBalance, \"symbol\" | \"name\">,\n tokenB: Pick<TokenMaybeWithUsdBalance, \"symbol\" | \"name\">\n) => number;\n\nexport function createSortTokensByCloserMatch(\n tokenFilter: string\n): SortTokensByCloserMatch {\n const lowercasedTokenFilter = tokenFilter.toLowerCase();\n\n return (tokenA, tokenB) => {\n const symbolA = tokenA.symbol;\n const symbolB = tokenB.symbol;\n\n // no symbols to consider in sorting\n if (!symbolA || !symbolB) return 0;\n\n const matchedBySymbolA = symbolA\n .toLowerCase()\n .includes(lowercasedTokenFilter);\n const matchedBySymbolB = symbolB\n .toLowerCase()\n .includes(lowercasedTokenFilter);\n\n // no token matched by symbol (all matched by name)\n if (!matchedBySymbolA && !matchedBySymbolB) return 0;\n\n // token A matched by symbol, token B by name\n if (matchedBySymbolA && !matchedBySymbolB) {\n // token A first\n return -1;\n }\n\n // token B matched by symbol, token A by name\n if (matchedBySymbolB && !matchedBySymbolA) {\n // token B first\n return 1;\n }\n\n if (symbolA.length !== symbolB.length) {\n // if token was matched by symbol, then shorter symbol is a closer match\n // if token matched by address (previously in filter function), then there's only one token anyway (or same token on multiple chains)\n // Side-effect: independent of balance for `eth` filter the result will be: aETH then aWETH\n return symbolA.length - symbolB.length;\n }\n\n return 0;\n };\n}\n"],"names":["sortTokens","tokenA","tokenB","isETH","usdBalance","isVLR","balanceA","balanceB","balDiff","createSortWithClosestMatch","tokenFilter","isFilterAddress","isAddress","lowercasedTokenFilter","toLowerCase","sortByClosestMatch","createSortTokensByCloserMatch","res","symbolA","symbol","symbolB","matchedBySymbolA","includes","matchedBySymbolB","length"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionsAtom.d.ts","sourceRoot":"","sources":["../../../src/transactions/state/transactionsAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAWlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionsAtom.d.ts","sourceRoot":"","sources":["../../../src/transactions/state/transactionsAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAWlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAMpC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAEjE,eAAO,MAAM,gBAAgB,yMAW5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,yCAG9B,CAAC;AAEH,eAAO,MAAM,oBAAoB,yCAM/B,CAAC;AAEH,eAAO,MAAM,iCAAiC,mDAK5C,CAAC;AAEH,eAAO,MAAM,4BAA4B,8CAKxC,CAAC;AAEF,eAAO,MAAM,wCAAwC,mDAKnD,CAAC;AAEH,eAAO,MAAM,mCAAmC,8CAK/C,CAAC;AAEF,eAAO,MAAM,2BAA2B,yCAGtC,CAAC;AAEH,eAAO,MAAM,wBAAwB,6CAGnC,CAAC"}
|