@metamask-previews/bridge-controller 19.0.0-preview-47d1bd5 → 19.0.0-preview-3300ffa
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/CHANGELOG.md +0 -1
- package/dist/bridge-controller.cjs +25 -13
- package/dist/bridge-controller.cjs.map +1 -1
- package/dist/bridge-controller.d.cts +1 -4
- package/dist/bridge-controller.d.cts.map +1 -1
- package/dist/bridge-controller.d.mts +1 -4
- package/dist/bridge-controller.d.mts.map +1 -1
- package/dist/bridge-controller.mjs +27 -15
- package/dist/bridge-controller.mjs.map +1 -1
- package/dist/constants/bridge.cjs +5 -0
- package/dist/constants/bridge.cjs.map +1 -1
- package/dist/constants/bridge.d.cts.map +1 -1
- package/dist/constants/bridge.d.mts.map +1 -1
- package/dist/constants/bridge.mjs +5 -0
- package/dist/constants/bridge.mjs.map +1 -1
- package/dist/index.cjs +4 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/selectors.cjs +12 -32
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +26 -239
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +26 -239
- package/dist/selectors.d.mts.map +1 -1
- package/dist/selectors.mjs +11 -31
- package/dist/selectors.mjs.map +1 -1
- package/dist/types.cjs +12 -2
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +21 -6
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +21 -6
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +11 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/fetch.cjs +40 -1
- package/dist/utils/fetch.cjs.map +1 -1
- package/dist/utils/fetch.d.cts +10 -1
- package/dist/utils/fetch.d.cts.map +1 -1
- package/dist/utils/fetch.d.mts +10 -1
- package/dist/utils/fetch.d.mts.map +1 -1
- package/dist/utils/fetch.mjs +40 -2
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/validators.cjs +6 -2
- package/dist/utils/validators.cjs.map +1 -1
- package/dist/utils/validators.d.cts +2 -2
- package/dist/utils/validators.d.cts.map +1 -1
- package/dist/utils/validators.d.mts +2 -2
- package/dist/utils/validators.d.mts.map +1 -1
- package/dist/utils/validators.mjs +7 -3
- package/dist/utils/validators.mjs.map +1 -1
- package/package.json +1 -3
- package/dist/utils/feature-flags.cjs +0 -38
- package/dist/utils/feature-flags.cjs.map +0 -1
- package/dist/utils/feature-flags.d.cts +0 -16
- package/dist/utils/feature-flags.d.cts.map +0 -1
- package/dist/utils/feature-flags.d.mts +0 -16
- package/dist/utils/feature-flags.d.mts.map +0 -1
- package/dist/utils/feature-flags.mjs +0 -32
- package/dist/utils/feature-flags.mjs.map +0 -1
package/dist/selectors.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport type {\n CurrencyRateState,\n MultichainAssetsRatesControllerState,\n TokenRatesControllerState,\n} from '@metamask/assets-controllers';\nimport type { GasFeeEstimates } from '@metamask/gas-fee-controller';\nimport type { CaipAssetType, Json } from '@metamask/utils';\nimport { isStrictHexString } from '@metamask/utils';\nimport { orderBy } from 'lodash';\nimport {\n createSelector as createSelector_,\n createStructuredSelector as createStructuredSelector_,\n} from 'reselect';\n\nimport { BRIDGE_PREFERRED_GAS_ESTIMATE } from './constants/bridge';\nimport type {\n BridgeControllerState,\n ExchangeRate,\n GenericQuoteRequest,\n QuoteMetadata,\n QuoteResponse,\n} from './types';\nimport { RequestStatus, SortOrder } from './types';\nimport {\n getNativeAssetForChainId,\n isNativeAddress,\n isSolanaChainId,\n} from './utils/bridge';\nimport {\n formatAddressToAssetId,\n formatChainIdToCaip,\n formatChainIdToHex,\n} from './utils/caip-formatters';\nimport { processFeatureFlags } from './utils/feature-flags';\nimport {\n calcAdjustedReturn,\n calcCost,\n calcEstimatedAndMaxTotalGasFee,\n calcRelayerFee,\n calcSentAmount,\n calcSolanaTotalNetworkFee,\n calcSwapRate,\n calcToAmount,\n calcTotalEstimatedNetworkFee,\n calcTotalMaxNetworkFee,\n} from './utils/quote';\n\n/**\n * The controller states that provide exchange rates\n */\ntype ExchangeRateControllerState = MultichainAssetsRatesControllerState &\n TokenRatesControllerState &\n CurrencyRateState &\n Pick<BridgeControllerState, 'assetExchangeRates'>;\n/**\n * The state of the bridge controller and all its dependency controllers\n */\nexport type BridgeAppState = BridgeControllerState & {\n gasFeeEstimates: GasFeeEstimates;\n} & ExchangeRateControllerState & {\n participateInMetaMetrics: boolean;\n } & { bridgeConfig: Json };\n\n/**\n * Creates a structured selector for the bridge controller\n */\nconst createStructuredBridgeSelector =\n createStructuredSelector_.withTypes<BridgeAppState>();\n/**\n * Creates a typed selector for the bridge controller\n */\nconst createBridgeSelector = createSelector_.withTypes<BridgeAppState>();\n/**\n * Required parameters that clients must provide for the bridge quotes selector\n */\ntype BridgeQuotesClientParams = {\n sortOrder: SortOrder;\n selectedQuote: (QuoteResponse & QuoteMetadata) | null;\n};\n\nconst createFeatureFlagsSelector = createSelector_.withTypes<{\n bridgeConfig: unknown;\n}>();\n\n/**\n * Selects the bridge feature flags\n *\n * @param state - The state of the bridge controller\n * @returns The bridge feature flags\n *\n * @example\n * ```ts\n * const featureFlags = useSelector(state => selectBridgeFeatureFlags(state));\n *\n * Or\n *\n * export const selectBridgeFeatureFlags = createSelector(\n * selectRemoteFeatureFlags,\n * (remoteFeatureFlags) =>\n * selectBridgeFeatureFlagsBase({\n * bridgeConfig: remoteFeatureFlags.bridgeConfig,\n * }),\n * );\n * ```\n */\nexport const selectBridgeFeatureFlags = createFeatureFlagsSelector(\n [(state) => state.bridgeConfig],\n (bridgeConfig: unknown) => processFeatureFlags(bridgeConfig),\n);\n\nconst getExchangeRateByChainIdAndAddress = (\n exchangeRateSources: ExchangeRateControllerState,\n chainId?: GenericQuoteRequest['srcChainId'],\n address?: GenericQuoteRequest['srcTokenAddress'],\n): ExchangeRate => {\n if (!chainId || !address) {\n return {};\n }\n // TODO return usd exchange rate if user has opted into metrics\n const assetId = formatAddressToAssetId(address, chainId);\n if (!assetId) {\n return {};\n }\n\n const { assetExchangeRates, currencyRates, marketData, conversionRates } =\n exchangeRateSources;\n\n // If the asset exchange rate is available in the bridge controller, use it\n // This is defined if the token's rate is not available from the assets controllers\n const bridgeControllerRate =\n assetExchangeRates?.[assetId] ??\n assetExchangeRates?.[assetId.toLowerCase() as CaipAssetType];\n if (bridgeControllerRate?.exchangeRate) {\n return bridgeControllerRate;\n }\n // If the chain is a Solana chain, use the conversion rate from the multichain assets controller\n if (isSolanaChainId(chainId)) {\n const multichainAssetExchangeRate = conversionRates?.[assetId];\n if (multichainAssetExchangeRate) {\n return {\n exchangeRate: multichainAssetExchangeRate.rate,\n usdExchangeRate: undefined,\n };\n }\n return {};\n }\n // If the chain is an EVM chain, use the conversion rate from the currency rates controller\n if (isNativeAddress(address)) {\n const { symbol } = getNativeAssetForChainId(chainId);\n const evmNativeExchangeRate = currencyRates?.[symbol];\n if (evmNativeExchangeRate) {\n return {\n exchangeRate: evmNativeExchangeRate?.conversionRate?.toString(),\n usdExchangeRate: evmNativeExchangeRate?.usdConversionRate?.toString(),\n };\n }\n return {};\n }\n // If the chain is an EVM chain and the asset is not the native asset, use the conversion rate from the token rates controller\n const evmTokenExchangeRates = marketData?.[formatChainIdToHex(chainId)];\n const evmTokenExchangeRateForAddress = isStrictHexString(address)\n ? evmTokenExchangeRates?.[address]\n : null;\n if (evmTokenExchangeRateForAddress) {\n return {\n exchangeRate: evmTokenExchangeRateForAddress?.price.toString(),\n usdExchangeRate: undefined,\n };\n }\n\n return {};\n};\n\n/**\n * Selects the asset exchange rate for a given chain and address\n *\n * @param state The state of the bridge controller and its dependency controllers\n * @param chainId The chain ID of the asset\n * @param address The address of the asset\n * @returns The asset exchange rate for the given chain and address\n */\nexport const selectExchangeRateByChainIdAndAddress = (\n state: BridgeAppState,\n chainId?: GenericQuoteRequest['srcChainId'],\n address?: GenericQuoteRequest['srcTokenAddress'],\n) => {\n return getExchangeRateByChainIdAndAddress(state, chainId, address);\n};\n\n/**\n * Checks whether an exchange rate is available for a given chain and address\n *\n * @param params The parameters to pass to {@link getExchangeRateByChainIdAndAddress}\n * @returns Whether an exchange rate is available for the given chain and address\n */\nexport const selectIsAssetExchangeRateInState = (\n ...params: Parameters<typeof getExchangeRateByChainIdAndAddress>\n) =>\n Boolean(getExchangeRateByChainIdAndAddress(...params)?.exchangeRate) &&\n Boolean(getExchangeRateByChainIdAndAddress(...params)?.usdExchangeRate);\n\n/**\n * Selects the gas fee estimates from the gas fee controller. All potential networks\n * support EIP1559 gas fees so assume that gasFeeEstimates is of type GasFeeEstimates\n *\n * @returns The gas fee estimates in decGWEI\n */\nconst selectBridgeFeesPerGas = createStructuredBridgeSelector({\n estimatedBaseFeeInDecGwei: ({ gasFeeEstimates }) =>\n gasFeeEstimates?.estimatedBaseFee,\n maxPriorityFeePerGasInDecGwei: ({ gasFeeEstimates }) =>\n gasFeeEstimates?.[BRIDGE_PREFERRED_GAS_ESTIMATE]\n ?.suggestedMaxPriorityFeePerGas,\n maxFeePerGasInDecGwei: ({ gasFeeEstimates }) =>\n gasFeeEstimates?.high?.suggestedMaxFeePerGas,\n});\n\n// Selects cross-chain swap quotes including their metadata\nconst selectBridgeQuotesWithMetadata = createBridgeSelector(\n [\n ({ quotes }) => quotes,\n selectBridgeFeesPerGas,\n createBridgeSelector(\n [\n (state) => state,\n ({ quoteRequest: { srcChainId } }) => srcChainId,\n ({ quoteRequest: { srcTokenAddress } }) => srcTokenAddress,\n ],\n selectExchangeRateByChainIdAndAddress,\n ),\n createBridgeSelector(\n [\n (state) => state,\n ({ quoteRequest: { destChainId } }) => destChainId,\n ({ quoteRequest: { destTokenAddress } }) => destTokenAddress,\n ],\n selectExchangeRateByChainIdAndAddress,\n ),\n createBridgeSelector(\n [(state) => state, ({ quoteRequest: { srcChainId } }) => srcChainId],\n (state, chainId) =>\n selectExchangeRateByChainIdAndAddress(state, chainId, AddressZero),\n ),\n ],\n (\n quotes,\n bridgeFeesPerGas,\n srcTokenExchangeRate,\n destTokenExchangeRate,\n nativeExchangeRate,\n ) => {\n const newQuotes = quotes.map((quote) => {\n const sentAmount = calcSentAmount(quote.quote, srcTokenExchangeRate);\n const toTokenAmount = calcToAmount(quote.quote, destTokenExchangeRate);\n\n let totalEstimatedNetworkFee, gasFee, totalMaxNetworkFee, relayerFee;\n\n if (isSolanaChainId(quote.quote.srcChainId)) {\n totalEstimatedNetworkFee = calcSolanaTotalNetworkFee(\n quote,\n nativeExchangeRate,\n );\n gasFee = totalEstimatedNetworkFee;\n totalMaxNetworkFee = totalEstimatedNetworkFee;\n } else {\n relayerFee = calcRelayerFee(quote, nativeExchangeRate);\n gasFee = calcEstimatedAndMaxTotalGasFee({\n bridgeQuote: quote,\n ...bridgeFeesPerGas,\n ...nativeExchangeRate,\n });\n totalEstimatedNetworkFee = calcTotalEstimatedNetworkFee(\n gasFee,\n relayerFee,\n );\n totalMaxNetworkFee = calcTotalMaxNetworkFee(gasFee, relayerFee);\n }\n\n const adjustedReturn = calcAdjustedReturn(\n toTokenAmount,\n totalEstimatedNetworkFee,\n );\n const cost = calcCost(adjustedReturn, sentAmount);\n\n return {\n ...quote,\n // QuoteMetadata fields\n sentAmount,\n toTokenAmount,\n swapRate: calcSwapRate(sentAmount.amount, toTokenAmount.amount),\n totalNetworkFee: totalEstimatedNetworkFee,\n totalMaxNetworkFee,\n gasFee,\n adjustedReturn,\n cost,\n };\n });\n\n return newQuotes;\n },\n);\n\nconst selectSortedBridgeQuotes = createBridgeSelector(\n [\n selectBridgeQuotesWithMetadata,\n (_, { sortOrder }: BridgeQuotesClientParams) => sortOrder,\n ],\n (quotesWithMetadata, sortOrder): (QuoteResponse & QuoteMetadata)[] => {\n switch (sortOrder) {\n case SortOrder.ETA_ASC:\n return orderBy(\n quotesWithMetadata,\n (quote) => quote.estimatedProcessingTimeInSeconds,\n 'asc',\n );\n default:\n return orderBy(\n quotesWithMetadata,\n ({ cost }) =>\n cost.valueInCurrency ? Number(cost.valueInCurrency) : 0,\n 'asc',\n );\n }\n },\n);\n\nconst selectRecommendedQuote = createBridgeSelector(\n [selectSortedBridgeQuotes],\n (quotes) => (quotes.length > 0 ? quotes[0] : null),\n);\n\nconst selectActiveQuote = createBridgeSelector(\n [\n selectRecommendedQuote,\n (_, { selectedQuote }: BridgeQuotesClientParams) => selectedQuote,\n ],\n (recommendedQuote, selectedQuote) => selectedQuote ?? recommendedQuote,\n);\n\nconst selectIsQuoteGoingToRefresh = createBridgeSelector(\n [\n selectBridgeFeatureFlags,\n (state) => state.quoteRequest.insufficientBal,\n (state) => state.quotesRefreshCount,\n ],\n (featureFlags, insufficientBal, quotesRefreshCount) =>\n insufficientBal ? false : featureFlags.maxRefreshCount > quotesRefreshCount,\n);\n\nconst selectQuoteRefreshRate = createBridgeSelector(\n [selectBridgeFeatureFlags, (state) => state.quoteRequest.srcChainId],\n (featureFlags, srcChainId) =>\n (srcChainId\n ? featureFlags.chains[formatChainIdToCaip(srcChainId)]?.refreshRate\n : featureFlags.refreshRate) ?? featureFlags.refreshRate,\n);\n\nexport const selectIsQuoteExpired = createBridgeSelector(\n [\n selectIsQuoteGoingToRefresh,\n ({ quotesLastFetched }) => quotesLastFetched,\n selectQuoteRefreshRate,\n (_, __, currentTimeInMs: number) => currentTimeInMs,\n ],\n (isQuoteGoingToRefresh, quotesLastFetched, refreshRate, currentTimeInMs) =>\n Boolean(\n !isQuoteGoingToRefresh &&\n quotesLastFetched &&\n currentTimeInMs - quotesLastFetched > refreshRate,\n ),\n);\n\n/**\n * Selects sorted cross-chain swap quotes. By default, the quotes are sorted by cost in ascending order.\n *\n * @param state - The state of the bridge controller and its dependency controllers\n * @param sortOrder - The sort order of the quotes\n * @param selectedQuote - The quote that is currently selected by the user, should be cleared by clients when the req params change\n * @returns The activeQuote, recommendedQuote, sortedQuotes, and other quote fetching metadata\n *\n * @example\n * ```ts\n * const quotes = useSelector(state => selectBridgeQuotes(\n * { ...state.metamask, bridgeConfig: remoteFeatureFlags.bridgeConfig },\n * {\n * sortOrder: state.bridge.sortOrder,\n * selectedQuote: state.bridge.selectedQuote,\n * }\n * ));\n * ```\n */\nexport const selectBridgeQuotes = createStructuredBridgeSelector({\n sortedQuotes: selectSortedBridgeQuotes,\n recommendedQuote: selectRecommendedQuote,\n activeQuote: selectActiveQuote,\n quotesLastFetchedMs: (state) => state.quotesLastFetched,\n isLoading: (state) => state.quotesLoadingStatus === RequestStatus.LOADING,\n quoteFetchError: (state) => state.quoteFetchError,\n quotesRefreshCount: (state) => state.quotesRefreshCount,\n quotesInitialLoadTimeMs: (state) => state.quotesInitialLoadTime,\n isQuoteGoingToRefresh: selectIsQuoteGoingToRefresh,\n});\n"]}
|
1
|
+
{"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport type {\n CurrencyRateState,\n MultichainAssetsRatesControllerState,\n TokenRatesControllerState,\n} from '@metamask/assets-controllers';\nimport type { GasFeeEstimates } from '@metamask/gas-fee-controller';\nimport type { CaipAssetType } from '@metamask/utils';\nimport { isStrictHexString } from '@metamask/utils';\nimport { orderBy } from 'lodash';\nimport {\n createSelector as createSelector_,\n createStructuredSelector as createStructuredSelector_,\n} from 'reselect';\n\nimport { BRIDGE_PREFERRED_GAS_ESTIMATE } from './constants/bridge';\nimport type {\n BridgeControllerState,\n BridgeFeatureFlagsKey,\n ExchangeRate,\n GenericQuoteRequest,\n QuoteMetadata,\n QuoteResponse,\n} from './types';\nimport { RequestStatus, SortOrder } from './types';\nimport {\n getNativeAssetForChainId,\n isNativeAddress,\n isSolanaChainId,\n} from './utils/bridge';\nimport {\n formatAddressToAssetId,\n formatChainIdToCaip,\n formatChainIdToHex,\n} from './utils/caip-formatters';\nimport {\n calcAdjustedReturn,\n calcCost,\n calcEstimatedAndMaxTotalGasFee,\n calcRelayerFee,\n calcSentAmount,\n calcSolanaTotalNetworkFee,\n calcSwapRate,\n calcToAmount,\n calcTotalEstimatedNetworkFee,\n calcTotalMaxNetworkFee,\n} from './utils/quote';\n\n/**\n * The controller states that provide exchange rates\n */\ntype ExchangeRateControllerState = MultichainAssetsRatesControllerState &\n TokenRatesControllerState &\n CurrencyRateState &\n Pick<BridgeControllerState, 'assetExchangeRates'>;\n/**\n * The state of the bridge controller and all its dependency controllers\n */\nexport type BridgeAppState = BridgeControllerState & {\n gasFeeEstimates: GasFeeEstimates;\n} & ExchangeRateControllerState & {\n participateInMetaMetrics: boolean;\n };\n/**\n * Creates a structured selector for the bridge controller\n */\nconst createStructuredBridgeSelector =\n createStructuredSelector_.withTypes<BridgeAppState>();\n/**\n * Creates a typed selector for the bridge controller\n */\nconst createBridgeSelector = createSelector_.withTypes<BridgeAppState>();\n/**\n * Required parameters that clients must provide for the bridge quotes selector\n */\ntype BridgeQuotesClientParams = {\n sortOrder: SortOrder;\n selectedQuote: (QuoteResponse & QuoteMetadata) | null;\n featureFlagsKey: BridgeFeatureFlagsKey;\n};\n\nconst getExchangeRateByChainIdAndAddress = (\n exchangeRateSources: ExchangeRateControllerState,\n chainId?: GenericQuoteRequest['srcChainId'],\n address?: GenericQuoteRequest['srcTokenAddress'],\n): ExchangeRate => {\n if (!chainId || !address) {\n return {};\n }\n // TODO return usd exchange rate if user has opted into metrics\n const assetId = formatAddressToAssetId(address, chainId);\n if (!assetId) {\n return {};\n }\n\n const { assetExchangeRates, currencyRates, marketData, conversionRates } =\n exchangeRateSources;\n\n // If the asset exchange rate is available in the bridge controller, use it\n // This is defined if the token's rate is not available from the assets controllers\n const bridgeControllerRate =\n assetExchangeRates?.[assetId] ??\n assetExchangeRates?.[assetId.toLowerCase() as CaipAssetType];\n if (bridgeControllerRate?.exchangeRate) {\n return bridgeControllerRate;\n }\n // If the chain is a Solana chain, use the conversion rate from the multichain assets controller\n if (isSolanaChainId(chainId)) {\n const multichainAssetExchangeRate = conversionRates?.[assetId];\n if (multichainAssetExchangeRate) {\n return {\n exchangeRate: multichainAssetExchangeRate.rate,\n usdExchangeRate: undefined,\n };\n }\n return {};\n }\n // If the chain is an EVM chain, use the conversion rate from the currency rates controller\n if (isNativeAddress(address)) {\n const { symbol } = getNativeAssetForChainId(chainId);\n const evmNativeExchangeRate = currencyRates?.[symbol];\n if (evmNativeExchangeRate) {\n return {\n exchangeRate: evmNativeExchangeRate?.conversionRate?.toString(),\n usdExchangeRate: evmNativeExchangeRate?.usdConversionRate?.toString(),\n };\n }\n return {};\n }\n // If the chain is an EVM chain and the asset is not the native asset, use the conversion rate from the token rates controller\n const evmTokenExchangeRates = marketData?.[formatChainIdToHex(chainId)];\n const evmTokenExchangeRateForAddress = isStrictHexString(address)\n ? evmTokenExchangeRates?.[address]\n : null;\n if (evmTokenExchangeRateForAddress) {\n return {\n exchangeRate: evmTokenExchangeRateForAddress?.price.toString(),\n usdExchangeRate: undefined,\n };\n }\n\n return {};\n};\n\n/**\n * Selects the asset exchange rate for a given chain and address\n *\n * @param state The state of the bridge controller and its dependency controllers\n * @param chainId The chain ID of the asset\n * @param address The address of the asset\n * @returns The asset exchange rate for the given chain and address\n */\nexport const selectExchangeRateByChainIdAndAddress = (\n state: BridgeAppState,\n chainId?: GenericQuoteRequest['srcChainId'],\n address?: GenericQuoteRequest['srcTokenAddress'],\n) => {\n return getExchangeRateByChainIdAndAddress(state, chainId, address);\n};\n\n/**\n * Checks whether an exchange rate is available for a given chain and address\n *\n * @param params The parameters to pass to {@link getExchangeRateByChainIdAndAddress}\n * @returns Whether an exchange rate is available for the given chain and address\n */\nexport const selectIsAssetExchangeRateInState = (\n ...params: Parameters<typeof getExchangeRateByChainIdAndAddress>\n) =>\n Boolean(getExchangeRateByChainIdAndAddress(...params)?.exchangeRate) &&\n Boolean(getExchangeRateByChainIdAndAddress(...params)?.usdExchangeRate);\n\n/**\n * Selects the gas fee estimates from the gas fee controller. All potential networks\n * support EIP1559 gas fees so assume that gasFeeEstimates is of type GasFeeEstimates\n *\n * @returns The gas fee estimates in decGWEI\n */\nconst selectBridgeFeesPerGas = createStructuredBridgeSelector({\n estimatedBaseFeeInDecGwei: ({ gasFeeEstimates }) =>\n gasFeeEstimates?.estimatedBaseFee,\n maxPriorityFeePerGasInDecGwei: ({ gasFeeEstimates }) =>\n gasFeeEstimates?.[BRIDGE_PREFERRED_GAS_ESTIMATE]\n ?.suggestedMaxPriorityFeePerGas,\n maxFeePerGasInDecGwei: ({ gasFeeEstimates }) =>\n gasFeeEstimates?.high?.suggestedMaxFeePerGas,\n});\n\n// Selects cross-chain swap quotes including their metadata\nconst selectBridgeQuotesWithMetadata = createBridgeSelector(\n [\n ({ quotes }) => quotes,\n selectBridgeFeesPerGas,\n createBridgeSelector(\n [\n (state) => state,\n ({ quoteRequest: { srcChainId } }) => srcChainId,\n ({ quoteRequest: { srcTokenAddress } }) => srcTokenAddress,\n ],\n selectExchangeRateByChainIdAndAddress,\n ),\n createBridgeSelector(\n [\n (state) => state,\n ({ quoteRequest: { destChainId } }) => destChainId,\n ({ quoteRequest: { destTokenAddress } }) => destTokenAddress,\n ],\n selectExchangeRateByChainIdAndAddress,\n ),\n createBridgeSelector(\n [(state) => state, ({ quoteRequest: { srcChainId } }) => srcChainId],\n (state, chainId) =>\n selectExchangeRateByChainIdAndAddress(state, chainId, AddressZero),\n ),\n ],\n (\n quotes,\n bridgeFeesPerGas,\n srcTokenExchangeRate,\n destTokenExchangeRate,\n nativeExchangeRate,\n ) => {\n const newQuotes = quotes.map((quote) => {\n const sentAmount = calcSentAmount(quote.quote, srcTokenExchangeRate);\n const toTokenAmount = calcToAmount(quote.quote, destTokenExchangeRate);\n\n let totalEstimatedNetworkFee, gasFee, totalMaxNetworkFee, relayerFee;\n\n if (isSolanaChainId(quote.quote.srcChainId)) {\n totalEstimatedNetworkFee = calcSolanaTotalNetworkFee(\n quote,\n nativeExchangeRate,\n );\n gasFee = totalEstimatedNetworkFee;\n totalMaxNetworkFee = totalEstimatedNetworkFee;\n } else {\n relayerFee = calcRelayerFee(quote, nativeExchangeRate);\n gasFee = calcEstimatedAndMaxTotalGasFee({\n bridgeQuote: quote,\n ...bridgeFeesPerGas,\n ...nativeExchangeRate,\n });\n totalEstimatedNetworkFee = calcTotalEstimatedNetworkFee(\n gasFee,\n relayerFee,\n );\n totalMaxNetworkFee = calcTotalMaxNetworkFee(gasFee, relayerFee);\n }\n\n const adjustedReturn = calcAdjustedReturn(\n toTokenAmount,\n totalEstimatedNetworkFee,\n );\n const cost = calcCost(adjustedReturn, sentAmount);\n\n return {\n ...quote,\n // QuoteMetadata fields\n sentAmount,\n toTokenAmount,\n swapRate: calcSwapRate(sentAmount.amount, toTokenAmount.amount),\n totalNetworkFee: totalEstimatedNetworkFee,\n totalMaxNetworkFee,\n gasFee,\n adjustedReturn,\n cost,\n };\n });\n\n return newQuotes;\n },\n);\n\nconst selectSortedBridgeQuotes = createBridgeSelector(\n [\n selectBridgeQuotesWithMetadata,\n (_, { sortOrder }: BridgeQuotesClientParams) => sortOrder,\n ],\n (quotesWithMetadata, sortOrder): (QuoteResponse & QuoteMetadata)[] => {\n switch (sortOrder) {\n case SortOrder.ETA_ASC:\n return orderBy(\n quotesWithMetadata,\n (quote) => quote.estimatedProcessingTimeInSeconds,\n 'asc',\n );\n default:\n return orderBy(\n quotesWithMetadata,\n ({ cost }) =>\n cost.valueInCurrency ? Number(cost.valueInCurrency) : 0,\n 'asc',\n );\n }\n },\n);\n\nconst selectRecommendedQuote = createBridgeSelector(\n [selectSortedBridgeQuotes],\n (quotes) => (quotes.length > 0 ? quotes[0] : null),\n);\n\nconst selectActiveQuote = createBridgeSelector(\n [\n selectRecommendedQuote,\n (_, { selectedQuote }: BridgeQuotesClientParams) => selectedQuote,\n ],\n (recommendedQuote, selectedQuote) => selectedQuote ?? recommendedQuote,\n);\n\nconst selectIsQuoteGoingToRefresh = (\n state: BridgeAppState,\n { featureFlagsKey }: BridgeQuotesClientParams,\n) =>\n state.quoteRequest.insufficientBal\n ? false\n : state.quotesRefreshCount <\n state.bridgeFeatureFlags[featureFlagsKey].maxRefreshCount;\n\nconst selectQuoteRefreshRate = createBridgeSelector(\n [\n ({ bridgeFeatureFlags }, { featureFlagsKey }: BridgeQuotesClientParams) =>\n bridgeFeatureFlags[featureFlagsKey],\n (state) => state.quoteRequest.srcChainId,\n ],\n (featureFlags, srcChainId) =>\n (srcChainId\n ? featureFlags.chains[formatChainIdToCaip(srcChainId)]?.refreshRate\n : featureFlags.refreshRate) ?? featureFlags.refreshRate,\n);\n\nexport const selectIsQuoteExpired = createBridgeSelector(\n [\n selectIsQuoteGoingToRefresh,\n ({ quotesLastFetched }) => quotesLastFetched,\n selectQuoteRefreshRate,\n (_, __, currentTimeInMs: number) => currentTimeInMs,\n ],\n (isQuoteGoingToRefresh, quotesLastFetched, refreshRate, currentTimeInMs) =>\n Boolean(\n !isQuoteGoingToRefresh &&\n quotesLastFetched &&\n currentTimeInMs - quotesLastFetched > refreshRate,\n ),\n);\n\n/**\n * Selects sorted cross-chain swap quotes. By default, the quotes are sorted by cost in ascending order.\n *\n * @param state - The state of the bridge controller and its dependency controllers\n * @param sortOrder - The sort order of the quotes\n * @param selectedQuote - The quote that is currently selected by the user, should be cleared by clients when the req params change\n * @param featureFlagsKey - The feature flags key for the client (e.g. `BridgeFeatureFlagsKey.EXTENSION_CONFIG`\n * @returns The activeQuote, recommendedQuote, sortedQuotes, and other quote fetching metadata\n *\n * @example\n * ```ts\n * const quotes = useSelector(state => selectBridgeQuotes(\n * state.metamask,\n * {\n * sortOrder: state.bridge.sortOrder,\n * selectedQuote: state.bridge.selectedQuote,\n * featureFlagsKey: BridgeFeatureFlagsKey.EXTENSION_CONFIG,\n * }\n * ));\n * ```\n */\nexport const selectBridgeQuotes = createStructuredBridgeSelector({\n sortedQuotes: selectSortedBridgeQuotes,\n recommendedQuote: selectRecommendedQuote,\n activeQuote: selectActiveQuote,\n quotesLastFetchedMs: (state) => state.quotesLastFetched,\n isLoading: (state) => state.quotesLoadingStatus === RequestStatus.LOADING,\n quoteFetchError: (state) => state.quoteFetchError,\n quotesRefreshCount: (state) => state.quotesRefreshCount,\n quotesInitialLoadTimeMs: (state) => state.quotesInitialLoadTime,\n isQuoteGoingToRefresh: selectIsQuoteGoingToRefresh,\n});\n"]}
|
package/dist/selectors.d.cts
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
import type { CurrencyRateState, MultichainAssetsRatesControllerState, TokenRatesControllerState } from "@metamask/assets-controllers";
|
2
2
|
import type { GasFeeEstimates } from "@metamask/gas-fee-controller";
|
3
|
-
import type {
|
4
|
-
import type { BridgeControllerState, ExchangeRate, GenericQuoteRequest, QuoteMetadata, QuoteResponse } from "./types.cjs";
|
3
|
+
import type { BridgeControllerState, BridgeFeatureFlagsKey, ExchangeRate, GenericQuoteRequest, QuoteMetadata, QuoteResponse } from "./types.cjs";
|
5
4
|
import { SortOrder } from "./types.cjs";
|
6
5
|
/**
|
7
6
|
* The controller states that provide exchange rates
|
@@ -14,8 +13,6 @@ export type BridgeAppState = BridgeControllerState & {
|
|
14
13
|
gasFeeEstimates: GasFeeEstimates;
|
15
14
|
} & ExchangeRateControllerState & {
|
16
15
|
participateInMetaMetrics: boolean;
|
17
|
-
} & {
|
18
|
-
bridgeConfig: Json;
|
19
16
|
};
|
20
17
|
/**
|
21
18
|
* Required parameters that clients must provide for the bridge quotes selector
|
@@ -23,52 +20,7 @@ export type BridgeAppState = BridgeControllerState & {
|
|
23
20
|
type BridgeQuotesClientParams = {
|
24
21
|
sortOrder: SortOrder;
|
25
22
|
selectedQuote: (QuoteResponse & QuoteMetadata) | null;
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Selects the bridge feature flags
|
29
|
-
*
|
30
|
-
* @param state - The state of the bridge controller
|
31
|
-
* @returns The bridge feature flags
|
32
|
-
*
|
33
|
-
* @example
|
34
|
-
* ```ts
|
35
|
-
* const featureFlags = useSelector(state => selectBridgeFeatureFlags(state));
|
36
|
-
*
|
37
|
-
* Or
|
38
|
-
*
|
39
|
-
* export const selectBridgeFeatureFlags = createSelector(
|
40
|
-
* selectRemoteFeatureFlags,
|
41
|
-
* (remoteFeatureFlags) =>
|
42
|
-
* selectBridgeFeatureFlagsBase({
|
43
|
-
* bridgeConfig: remoteFeatureFlags.bridgeConfig,
|
44
|
-
* }),
|
45
|
-
* );
|
46
|
-
* ```
|
47
|
-
*/
|
48
|
-
export declare const selectBridgeFeatureFlags: ((state: {
|
49
|
-
bridgeConfig: unknown;
|
50
|
-
}) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
51
|
-
clearCache: () => void;
|
52
|
-
resultsCount: () => number;
|
53
|
-
resetResultsCount: () => void;
|
54
|
-
} & {
|
55
|
-
resultFunc: (resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig;
|
56
|
-
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
57
|
-
clearCache: () => void;
|
58
|
-
resultsCount: () => number;
|
59
|
-
resetResultsCount: () => void;
|
60
|
-
};
|
61
|
-
lastResult: () => import("./types.cjs").FeatureFlagsPlatformConfig;
|
62
|
-
dependencies: [(state: {
|
63
|
-
bridgeConfig: unknown;
|
64
|
-
}) => unknown];
|
65
|
-
recomputations: () => number;
|
66
|
-
resetRecomputations: () => void;
|
67
|
-
dependencyRecomputations: () => number;
|
68
|
-
resetDependencyRecomputations: () => void;
|
69
|
-
} & {
|
70
|
-
argsMemoize: typeof import("reselect").weakMapMemoize;
|
71
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
23
|
+
featureFlagsKey: BridgeFeatureFlagsKey;
|
72
24
|
};
|
73
25
|
/**
|
74
26
|
* Selects the asset exchange rate for a given chain and address
|
@@ -86,14 +38,10 @@ export declare const selectExchangeRateByChainIdAndAddress: (state: BridgeAppSta
|
|
86
38
|
* @returns Whether an exchange rate is available for the given chain and address
|
87
39
|
*/
|
88
40
|
export declare const selectIsAssetExchangeRateInState: (exchangeRateSources: ExchangeRateControllerState, chainId?: string | number | undefined, address?: string | undefined) => boolean;
|
89
|
-
export declare const selectIsQuoteExpired: ((state: {
|
90
|
-
bridgeConfig: unknown;
|
91
|
-
} & BridgeControllerState & {
|
41
|
+
export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
|
92
42
|
gasFeeEstimates: GasFeeEstimates;
|
93
43
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
94
44
|
participateInMetaMetrics: boolean;
|
95
|
-
} & {
|
96
|
-
bridgeConfig: Json;
|
97
45
|
}, __: any, currentTimeInMs: number) => boolean) & {
|
98
46
|
clearCache: () => void;
|
99
47
|
resultsCount: () => number;
|
@@ -106,102 +54,37 @@ export declare const selectIsQuoteExpired: ((state: {
|
|
106
54
|
resetResultsCount: () => void;
|
107
55
|
};
|
108
56
|
lastResult: () => boolean;
|
109
|
-
dependencies: [((state: {
|
110
|
-
bridgeConfig: unknown;
|
111
|
-
} & BridgeControllerState & {
|
112
|
-
gasFeeEstimates: GasFeeEstimates;
|
113
|
-
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
114
|
-
participateInMetaMetrics: boolean;
|
115
|
-
} & {
|
116
|
-
bridgeConfig: Json;
|
117
|
-
}) => boolean) & {
|
118
|
-
clearCache: () => void;
|
119
|
-
resultsCount: () => number;
|
120
|
-
resetResultsCount: () => void;
|
121
|
-
} & {
|
122
|
-
resultFunc: (resultFuncArgs_0: import("./types.cjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean;
|
123
|
-
memoizedResultFunc: ((resultFuncArgs_0: import("./types.cjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean) & {
|
124
|
-
clearCache: () => void;
|
125
|
-
resultsCount: () => number;
|
126
|
-
resetResultsCount: () => void;
|
127
|
-
};
|
128
|
-
lastResult: () => boolean;
|
129
|
-
dependencies: [((state: {
|
130
|
-
bridgeConfig: unknown;
|
131
|
-
}) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
132
|
-
clearCache: () => void;
|
133
|
-
resultsCount: () => number;
|
134
|
-
resetResultsCount: () => void;
|
135
|
-
} & {
|
136
|
-
resultFunc: (resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig;
|
137
|
-
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
138
|
-
clearCache: () => void;
|
139
|
-
resultsCount: () => number;
|
140
|
-
resetResultsCount: () => void;
|
141
|
-
};
|
142
|
-
lastResult: () => import("./types.cjs").FeatureFlagsPlatformConfig;
|
143
|
-
dependencies: [(state: {
|
144
|
-
bridgeConfig: unknown;
|
145
|
-
}) => unknown];
|
146
|
-
recomputations: () => number;
|
147
|
-
resetRecomputations: () => void;
|
148
|
-
dependencyRecomputations: () => number;
|
149
|
-
resetDependencyRecomputations: () => void;
|
150
|
-
} & {
|
151
|
-
argsMemoize: typeof import("reselect").weakMapMemoize;
|
152
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
153
|
-
}, (state: BridgeAppState) => boolean | undefined, (state: BridgeAppState) => number];
|
154
|
-
recomputations: () => number;
|
155
|
-
resetRecomputations: () => void;
|
156
|
-
dependencyRecomputations: () => number;
|
157
|
-
resetDependencyRecomputations: () => void;
|
158
|
-
} & {
|
159
|
-
argsMemoize: typeof import("reselect").weakMapMemoize;
|
160
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
161
|
-
}, ({ quotesLastFetched }: BridgeAppState) => number | null, ((state: {
|
162
|
-
bridgeConfig: unknown;
|
163
|
-
} & BridgeControllerState & {
|
57
|
+
dependencies: [(state: BridgeAppState, { featureFlagsKey }: BridgeQuotesClientParams) => boolean, ({ quotesLastFetched }: BridgeAppState) => number | null, ((state: BridgeControllerState & {
|
164
58
|
gasFeeEstimates: GasFeeEstimates;
|
165
59
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
166
60
|
participateInMetaMetrics: boolean;
|
167
|
-
} & {
|
168
|
-
bridgeConfig: Json;
|
169
|
-
}) => number) & {
|
61
|
+
}, params_0: BridgeQuotesClientParams) => number) & {
|
170
62
|
clearCache: () => void;
|
171
63
|
resultsCount: () => number;
|
172
64
|
resetResultsCount: () => void;
|
173
65
|
} & {
|
174
|
-
resultFunc: (resultFuncArgs_0:
|
175
|
-
|
66
|
+
resultFunc: (resultFuncArgs_0: {
|
67
|
+
refreshRate: number;
|
68
|
+
maxRefreshCount: number;
|
69
|
+
support: boolean;
|
70
|
+
chains: Record<`${string}:${string}`, import("./types.cjs").ChainConfiguration>;
|
71
|
+
}, resultFuncArgs_1: string | number | undefined) => number;
|
72
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
73
|
+
refreshRate: number;
|
74
|
+
maxRefreshCount: number;
|
75
|
+
support: boolean;
|
76
|
+
chains: Record<`${string}:${string}`, import("./types.cjs").ChainConfiguration>;
|
77
|
+
}, resultFuncArgs_1: string | number | undefined) => number) & {
|
176
78
|
clearCache: () => void;
|
177
79
|
resultsCount: () => number;
|
178
80
|
resetResultsCount: () => void;
|
179
81
|
};
|
180
82
|
lastResult: () => number;
|
181
|
-
dependencies: [(
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
resetResultsCount: () => void;
|
187
|
-
} & {
|
188
|
-
resultFunc: (resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig;
|
189
|
-
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
190
|
-
clearCache: () => void;
|
191
|
-
resultsCount: () => number;
|
192
|
-
resetResultsCount: () => void;
|
193
|
-
};
|
194
|
-
lastResult: () => import("./types.cjs").FeatureFlagsPlatformConfig;
|
195
|
-
dependencies: [(state: {
|
196
|
-
bridgeConfig: unknown;
|
197
|
-
}) => unknown];
|
198
|
-
recomputations: () => number;
|
199
|
-
resetRecomputations: () => void;
|
200
|
-
dependencyRecomputations: () => number;
|
201
|
-
resetDependencyRecomputations: () => void;
|
202
|
-
} & {
|
203
|
-
argsMemoize: typeof import("reselect").weakMapMemoize;
|
204
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
83
|
+
dependencies: [({ bridgeFeatureFlags }: BridgeAppState, { featureFlagsKey }: BridgeQuotesClientParams) => {
|
84
|
+
refreshRate: number;
|
85
|
+
maxRefreshCount: number;
|
86
|
+
support: boolean;
|
87
|
+
chains: Record<`${string}:${string}`, import("./types.cjs").ChainConfiguration>;
|
205
88
|
}, (state: BridgeAppState) => string | number | undefined];
|
206
89
|
recomputations: () => number;
|
207
90
|
resetRecomputations: () => void;
|
@@ -225,15 +108,17 @@ export declare const selectIsQuoteExpired: ((state: {
|
|
225
108
|
* @param state - The state of the bridge controller and its dependency controllers
|
226
109
|
* @param sortOrder - The sort order of the quotes
|
227
110
|
* @param selectedQuote - The quote that is currently selected by the user, should be cleared by clients when the req params change
|
111
|
+
* @param featureFlagsKey - The feature flags key for the client (e.g. `BridgeFeatureFlagsKey.EXTENSION_CONFIG`
|
228
112
|
* @returns The activeQuote, recommendedQuote, sortedQuotes, and other quote fetching metadata
|
229
113
|
*
|
230
114
|
* @example
|
231
115
|
* ```ts
|
232
116
|
* const quotes = useSelector(state => selectBridgeQuotes(
|
233
|
-
*
|
117
|
+
* state.metamask,
|
234
118
|
* {
|
235
119
|
* sortOrder: state.bridge.sortOrder,
|
236
120
|
* selectedQuote: state.bridge.selectedQuote,
|
121
|
+
* featureFlagsKey: BridgeFeatureFlagsKey.EXTENSION_CONFIG,
|
237
122
|
* }
|
238
123
|
* ));
|
239
124
|
* ```
|
@@ -242,10 +127,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
242
127
|
gasFeeEstimates: GasFeeEstimates;
|
243
128
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
244
129
|
participateInMetaMetrics: boolean;
|
245
|
-
} & {
|
246
|
-
bridgeConfig: Json;
|
247
|
-
} & {
|
248
|
-
bridgeConfig: unknown;
|
249
130
|
}, params_0: BridgeQuotesClientParams) => {
|
250
131
|
sortedQuotes: (QuoteResponse & QuoteMetadata)[];
|
251
132
|
recommendedQuote: (QuoteResponse & QuoteMetadata) | null;
|
@@ -302,8 +183,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
302
183
|
gasFeeEstimates: GasFeeEstimates;
|
303
184
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
304
185
|
participateInMetaMetrics: boolean;
|
305
|
-
} & {
|
306
|
-
bridgeConfig: Json;
|
307
186
|
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
308
187
|
clearCache: () => void;
|
309
188
|
resultsCount: () => number;
|
@@ -402,8 +281,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
402
281
|
gasFeeEstimates: GasFeeEstimates;
|
403
282
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
404
283
|
participateInMetaMetrics: boolean;
|
405
|
-
} & {
|
406
|
-
bridgeConfig: Json;
|
407
284
|
}) => {
|
408
285
|
sentAmount: {
|
409
286
|
amount: string;
|
@@ -592,8 +469,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
592
469
|
gasFeeEstimates: GasFeeEstimates;
|
593
470
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
594
471
|
participateInMetaMetrics: boolean;
|
595
|
-
} & {
|
596
|
-
bridgeConfig: Json;
|
597
472
|
}) => {
|
598
473
|
estimatedBaseFeeInDecGwei: string;
|
599
474
|
maxPriorityFeePerGasInDecGwei: string;
|
@@ -634,8 +509,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
634
509
|
gasFeeEstimates: GasFeeEstimates;
|
635
510
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
636
511
|
participateInMetaMetrics: boolean;
|
637
|
-
} & {
|
638
|
-
bridgeConfig: Json;
|
639
512
|
}) => ExchangeRate) & {
|
640
513
|
clearCache: () => void;
|
641
514
|
resultsCount: () => number;
|
@@ -660,8 +533,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
660
533
|
gasFeeEstimates: GasFeeEstimates;
|
661
534
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
662
535
|
participateInMetaMetrics: boolean;
|
663
|
-
} & {
|
664
|
-
bridgeConfig: Json;
|
665
536
|
}) => ExchangeRate) & {
|
666
537
|
clearCache: () => void;
|
667
538
|
resultsCount: () => number;
|
@@ -686,8 +557,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
686
557
|
gasFeeEstimates: GasFeeEstimates;
|
687
558
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
688
559
|
participateInMetaMetrics: boolean;
|
689
|
-
} & {
|
690
|
-
bridgeConfig: Json;
|
691
560
|
}) => ExchangeRate) & {
|
692
561
|
clearCache: () => void;
|
693
562
|
resultsCount: () => number;
|
@@ -728,8 +597,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
728
597
|
gasFeeEstimates: GasFeeEstimates;
|
729
598
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
730
599
|
participateInMetaMetrics: boolean;
|
731
|
-
} & {
|
732
|
-
bridgeConfig: Json;
|
733
600
|
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
734
601
|
clearCache: () => void;
|
735
602
|
resultsCount: () => number;
|
@@ -746,8 +613,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
746
613
|
gasFeeEstimates: GasFeeEstimates;
|
747
614
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
748
615
|
participateInMetaMetrics: boolean;
|
749
|
-
} & {
|
750
|
-
bridgeConfig: Json;
|
751
616
|
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
752
617
|
clearCache: () => void;
|
753
618
|
resultsCount: () => number;
|
@@ -846,8 +711,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
846
711
|
gasFeeEstimates: GasFeeEstimates;
|
847
712
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
848
713
|
participateInMetaMetrics: boolean;
|
849
|
-
} & {
|
850
|
-
bridgeConfig: Json;
|
851
714
|
}) => {
|
852
715
|
sentAmount: {
|
853
716
|
amount: string;
|
@@ -1036,8 +899,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1036
899
|
gasFeeEstimates: GasFeeEstimates;
|
1037
900
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1038
901
|
participateInMetaMetrics: boolean;
|
1039
|
-
} & {
|
1040
|
-
bridgeConfig: Json;
|
1041
902
|
}) => {
|
1042
903
|
estimatedBaseFeeInDecGwei: string;
|
1043
904
|
maxPriorityFeePerGasInDecGwei: string;
|
@@ -1078,8 +939,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1078
939
|
gasFeeEstimates: GasFeeEstimates;
|
1079
940
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1080
941
|
participateInMetaMetrics: boolean;
|
1081
|
-
} & {
|
1082
|
-
bridgeConfig: Json;
|
1083
942
|
}) => ExchangeRate) & {
|
1084
943
|
clearCache: () => void;
|
1085
944
|
resultsCount: () => number;
|
@@ -1104,8 +963,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1104
963
|
gasFeeEstimates: GasFeeEstimates;
|
1105
964
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1106
965
|
participateInMetaMetrics: boolean;
|
1107
|
-
} & {
|
1108
|
-
bridgeConfig: Json;
|
1109
966
|
}) => ExchangeRate) & {
|
1110
967
|
clearCache: () => void;
|
1111
968
|
resultsCount: () => number;
|
@@ -1130,8 +987,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1130
987
|
gasFeeEstimates: GasFeeEstimates;
|
1131
988
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1132
989
|
participateInMetaMetrics: boolean;
|
1133
|
-
} & {
|
1134
|
-
bridgeConfig: Json;
|
1135
990
|
}) => ExchangeRate) & {
|
1136
991
|
clearCache: () => void;
|
1137
992
|
resultsCount: () => number;
|
@@ -1180,8 +1035,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1180
1035
|
gasFeeEstimates: GasFeeEstimates;
|
1181
1036
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1182
1037
|
participateInMetaMetrics: boolean;
|
1183
|
-
} & {
|
1184
|
-
bridgeConfig: Json;
|
1185
1038
|
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
1186
1039
|
clearCache: () => void;
|
1187
1040
|
resultsCount: () => number;
|
@@ -1198,8 +1051,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1198
1051
|
gasFeeEstimates: GasFeeEstimates;
|
1199
1052
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1200
1053
|
participateInMetaMetrics: boolean;
|
1201
|
-
} & {
|
1202
|
-
bridgeConfig: Json;
|
1203
1054
|
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
1204
1055
|
clearCache: () => void;
|
1205
1056
|
resultsCount: () => number;
|
@@ -1216,8 +1067,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1216
1067
|
gasFeeEstimates: GasFeeEstimates;
|
1217
1068
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1218
1069
|
participateInMetaMetrics: boolean;
|
1219
|
-
} & {
|
1220
|
-
bridgeConfig: Json;
|
1221
1070
|
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
1222
1071
|
clearCache: () => void;
|
1223
1072
|
resultsCount: () => number;
|
@@ -1316,8 +1165,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1316
1165
|
gasFeeEstimates: GasFeeEstimates;
|
1317
1166
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1318
1167
|
participateInMetaMetrics: boolean;
|
1319
|
-
} & {
|
1320
|
-
bridgeConfig: Json;
|
1321
1168
|
}) => {
|
1322
1169
|
sentAmount: {
|
1323
1170
|
amount: string;
|
@@ -1506,8 +1353,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1506
1353
|
gasFeeEstimates: GasFeeEstimates;
|
1507
1354
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1508
1355
|
participateInMetaMetrics: boolean;
|
1509
|
-
} & {
|
1510
|
-
bridgeConfig: Json;
|
1511
1356
|
}) => {
|
1512
1357
|
estimatedBaseFeeInDecGwei: string;
|
1513
1358
|
maxPriorityFeePerGasInDecGwei: string;
|
@@ -1548,8 +1393,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1548
1393
|
gasFeeEstimates: GasFeeEstimates;
|
1549
1394
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1550
1395
|
participateInMetaMetrics: boolean;
|
1551
|
-
} & {
|
1552
|
-
bridgeConfig: Json;
|
1553
1396
|
}) => ExchangeRate) & {
|
1554
1397
|
clearCache: () => void;
|
1555
1398
|
resultsCount: () => number;
|
@@ -1574,8 +1417,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1574
1417
|
gasFeeEstimates: GasFeeEstimates;
|
1575
1418
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1576
1419
|
participateInMetaMetrics: boolean;
|
1577
|
-
} & {
|
1578
|
-
bridgeConfig: Json;
|
1579
1420
|
}) => ExchangeRate) & {
|
1580
1421
|
clearCache: () => void;
|
1581
1422
|
resultsCount: () => number;
|
@@ -1600,8 +1441,6 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1600
1441
|
gasFeeEstimates: GasFeeEstimates;
|
1601
1442
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1602
1443
|
participateInMetaMetrics: boolean;
|
1603
|
-
} & {
|
1604
|
-
bridgeConfig: Json;
|
1605
1444
|
}) => ExchangeRate) & {
|
1606
1445
|
clearCache: () => void;
|
1607
1446
|
resultsCount: () => number;
|
@@ -1654,59 +1493,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1654
1493
|
} & {
|
1655
1494
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
1656
1495
|
memoize: typeof import("reselect").weakMapMemoize;
|
1657
|
-
}, (state: BridgeAppState) => number | null, (state: BridgeAppState) => boolean, (state: BridgeAppState) => number | null, (
|
1658
|
-
bridgeConfig: unknown;
|
1659
|
-
} & BridgeControllerState & {
|
1660
|
-
gasFeeEstimates: GasFeeEstimates;
|
1661
|
-
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1662
|
-
participateInMetaMetrics: boolean;
|
1663
|
-
} & {
|
1664
|
-
bridgeConfig: Json;
|
1665
|
-
}) => boolean) & {
|
1666
|
-
clearCache: () => void;
|
1667
|
-
resultsCount: () => number;
|
1668
|
-
resetResultsCount: () => void;
|
1669
|
-
} & {
|
1670
|
-
resultFunc: (resultFuncArgs_0: import("./types.cjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean;
|
1671
|
-
memoizedResultFunc: ((resultFuncArgs_0: import("./types.cjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean) & {
|
1672
|
-
clearCache: () => void;
|
1673
|
-
resultsCount: () => number;
|
1674
|
-
resetResultsCount: () => void;
|
1675
|
-
};
|
1676
|
-
lastResult: () => boolean;
|
1677
|
-
dependencies: [((state: {
|
1678
|
-
bridgeConfig: unknown;
|
1679
|
-
}) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
1680
|
-
clearCache: () => void;
|
1681
|
-
resultsCount: () => number;
|
1682
|
-
resetResultsCount: () => void;
|
1683
|
-
} & {
|
1684
|
-
resultFunc: (resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig;
|
1685
|
-
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.cjs").FeatureFlagsPlatformConfig) & {
|
1686
|
-
clearCache: () => void;
|
1687
|
-
resultsCount: () => number;
|
1688
|
-
resetResultsCount: () => void;
|
1689
|
-
};
|
1690
|
-
lastResult: () => import("./types.cjs").FeatureFlagsPlatformConfig;
|
1691
|
-
dependencies: [(state: {
|
1692
|
-
bridgeConfig: unknown;
|
1693
|
-
}) => unknown];
|
1694
|
-
recomputations: () => number;
|
1695
|
-
resetRecomputations: () => void;
|
1696
|
-
dependencyRecomputations: () => number;
|
1697
|
-
resetDependencyRecomputations: () => void;
|
1698
|
-
} & {
|
1699
|
-
argsMemoize: typeof import("reselect").weakMapMemoize;
|
1700
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
1701
|
-
}, (state: BridgeAppState) => boolean | undefined, (state: BridgeAppState) => number];
|
1702
|
-
recomputations: () => number;
|
1703
|
-
resetRecomputations: () => void;
|
1704
|
-
dependencyRecomputations: () => number;
|
1705
|
-
resetDependencyRecomputations: () => void;
|
1706
|
-
} & {
|
1707
|
-
argsMemoize: typeof import("reselect").weakMapMemoize;
|
1708
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
1709
|
-
}];
|
1496
|
+
}, (state: BridgeAppState) => number | null, (state: BridgeAppState) => boolean, (state: BridgeAppState) => number | null, (state: BridgeAppState, { featureFlagsKey }: BridgeQuotesClientParams) => boolean];
|
1710
1497
|
recomputations: () => number;
|
1711
1498
|
resetRecomputations: () => void;
|
1712
1499
|
dependencyRecomputations: () => number;
|
package/dist/selectors.d.cts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,oCAAoC,EACpC,yBAAyB,EAC1B,qCAAqC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;
|
1
|
+
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
|