-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathindex.ts
More file actions
52 lines (48 loc) · 1.81 KB
/
index.ts
File metadata and controls
52 lines (48 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { createSelector } from 'reselect';
import { RootState } from '../../reducers';
import {
BridgeControllerState,
selectMinimumBalanceForRentExemptionInSOL,
} from '@metamask/bridge-controller';
import { selectRemoteFeatureFlags } from '../featureFlagController';
import { analytics } from '../../util/analytics/analytics';
import {
getCurrencyRateControllerCurrencyRates,
getCurrencyRateControllerCurrentCurrency,
getMultichainAssetsRatesControllerConversionRates,
getTokenRatesControllerMarketData,
} from '../assets/assets-migration';
export const selectBridgeControllerState = (state: RootState) =>
state.engine.backgroundState.BridgeController;
export const selectQuoteRequest = createSelector(
selectBridgeControllerState,
(bridgeControllerState: BridgeControllerState) =>
bridgeControllerState.quoteRequest[0],
);
// Create the BridgeAppState selector following the same pattern as in bridge slice
export const selectBridgeAppState = (state: RootState) => ({
...state.engine.backgroundState.BridgeController,
gasFeeEstimatesByChainId:
state.engine.backgroundState.GasFeeController.gasFeeEstimatesByChainId ??
{},
...{
conversionRates: getMultichainAssetsRatesControllerConversionRates(state),
historicalPrices: {},
},
...{
marketData: getTokenRatesControllerMarketData(state),
},
...{
currencyRates: getCurrencyRateControllerCurrencyRates(state),
currentCurrency: getCurrencyRateControllerCurrentCurrency(state),
},
participateInMetaMetrics: analytics.isEnabled(),
remoteFeatureFlags: {
bridgeConfig: selectRemoteFeatureFlags(state).bridgeConfig,
},
});
// Use the official bridge controller selector
export const selectMinSolBalance = createSelector(
selectBridgeAppState,
(bridgeAppState) => selectMinimumBalanceForRentExemptionInSOL(bridgeAppState),
);