@metamask-previews/bridge-controller 19.0.0-preview-5ea27f10 → 20.0.0-preview-19ee5ff2
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 +12 -1
- package/dist/bridge-controller.cjs +13 -25
- package/dist/bridge-controller.cjs.map +1 -1
- package/dist/bridge-controller.d.cts +4 -1
- package/dist/bridge-controller.d.cts.map +1 -1
- package/dist/bridge-controller.d.mts +4 -1
- package/dist/bridge-controller.d.mts.map +1 -1
- package/dist/bridge-controller.mjs +15 -27
- package/dist/bridge-controller.mjs.map +1 -1
- package/dist/constants/bridge.cjs +0 -5
- 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 +0 -5
- package/dist/constants/bridge.mjs.map +1 -1
- package/dist/index.cjs +3 -4
- 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 +32 -12
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +186 -49
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +186 -49
- package/dist/selectors.d.mts.map +1 -1
- package/dist/selectors.mjs +31 -11
- package/dist/selectors.mjs.map +1 -1
- package/dist/types.cjs +2 -12
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +11 -21
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +11 -21
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +1 -11
- package/dist/types.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +38 -0
- package/dist/utils/feature-flags.cjs.map +1 -0
- package/dist/utils/feature-flags.d.cts +16 -0
- package/dist/utils/feature-flags.d.cts.map +1 -0
- package/dist/utils/feature-flags.d.mts +16 -0
- package/dist/utils/feature-flags.d.mts.map +1 -0
- package/dist/utils/feature-flags.mjs +32 -0
- package/dist/utils/feature-flags.mjs.map +1 -0
- package/dist/utils/fetch.cjs +1 -40
- package/dist/utils/fetch.cjs.map +1 -1
- package/dist/utils/fetch.d.cts +1 -10
- package/dist/utils/fetch.d.cts.map +1 -1
- package/dist/utils/fetch.d.mts +1 -10
- package/dist/utils/fetch.d.mts.map +1 -1
- package/dist/utils/fetch.mjs +2 -40
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/metrics/constants.cjs +1 -1
- package/dist/utils/metrics/constants.cjs.map +1 -1
- package/dist/utils/metrics/constants.d.cts +1 -1
- package/dist/utils/metrics/constants.d.mts +1 -1
- package/dist/utils/metrics/constants.mjs +1 -1
- package/dist/utils/metrics/constants.mjs.map +1 -1
- package/dist/utils/metrics/types.cjs.map +1 -1
- package/dist/utils/metrics/types.d.cts +17 -14
- package/dist/utils/metrics/types.d.cts.map +1 -1
- package/dist/utils/metrics/types.d.mts +17 -14
- package/dist/utils/metrics/types.d.mts.map +1 -1
- package/dist/utils/metrics/types.mjs.map +1 -1
- package/dist/utils/validators.cjs +2 -6
- 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 +3 -7
- package/dist/utils/validators.mjs.map +1 -1
- package/package.json +5 -3
package/dist/selectors.d.mts
CHANGED
@@ -1,6 +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 { BridgeControllerState,
|
3
|
+
import type { BridgeControllerState, ExchangeRate, GenericQuoteRequest, QuoteMetadata, QuoteResponse } from "./types.mjs";
|
4
4
|
import { SortOrder } from "./types.mjs";
|
5
5
|
/**
|
6
6
|
* The controller states that provide exchange rates
|
@@ -9,18 +9,64 @@ type ExchangeRateControllerState = MultichainAssetsRatesControllerState & TokenR
|
|
9
9
|
/**
|
10
10
|
* The state of the bridge controller and all its dependency controllers
|
11
11
|
*/
|
12
|
+
type RemoteFeatureFlagControllerState = {
|
13
|
+
remoteFeatureFlags: {
|
14
|
+
bridgeConfig: unknown;
|
15
|
+
};
|
16
|
+
};
|
12
17
|
export type BridgeAppState = BridgeControllerState & {
|
13
18
|
gasFeeEstimates: GasFeeEstimates;
|
14
19
|
} & ExchangeRateControllerState & {
|
15
20
|
participateInMetaMetrics: boolean;
|
16
|
-
};
|
21
|
+
} & RemoteFeatureFlagControllerState;
|
17
22
|
/**
|
18
23
|
* Required parameters that clients must provide for the bridge quotes selector
|
19
24
|
*/
|
20
25
|
type BridgeQuotesClientParams = {
|
21
26
|
sortOrder: SortOrder;
|
22
27
|
selectedQuote: (QuoteResponse & QuoteMetadata) | null;
|
23
|
-
|
28
|
+
};
|
29
|
+
/**
|
30
|
+
* Selects the bridge feature flags
|
31
|
+
*
|
32
|
+
* @param state - The state of the bridge controller
|
33
|
+
* @returns The bridge feature flags
|
34
|
+
*
|
35
|
+
* @example
|
36
|
+
* ```ts
|
37
|
+
* const featureFlags = useSelector(state => selectBridgeFeatureFlags(state));
|
38
|
+
*
|
39
|
+
* Or
|
40
|
+
*
|
41
|
+
* export const selectBridgeFeatureFlags = createSelector(
|
42
|
+
* selectRemoteFeatureFlags,
|
43
|
+
* (remoteFeatureFlags) =>
|
44
|
+
* selectBridgeFeatureFlagsBase({
|
45
|
+
* bridgeConfig: remoteFeatureFlags.bridgeConfig,
|
46
|
+
* }),
|
47
|
+
* );
|
48
|
+
* ```
|
49
|
+
*/
|
50
|
+
export declare const selectBridgeFeatureFlags: ((state: RemoteFeatureFlagControllerState) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
51
|
+
clearCache: () => void;
|
52
|
+
resultsCount: () => number;
|
53
|
+
resetResultsCount: () => void;
|
54
|
+
} & {
|
55
|
+
resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
|
56
|
+
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
57
|
+
clearCache: () => void;
|
58
|
+
resultsCount: () => number;
|
59
|
+
resetResultsCount: () => void;
|
60
|
+
};
|
61
|
+
lastResult: () => import("./types.mjs").FeatureFlagsPlatformConfig;
|
62
|
+
dependencies: [(state: RemoteFeatureFlagControllerState) => unknown];
|
63
|
+
recomputations: () => number;
|
64
|
+
resetRecomputations: () => void;
|
65
|
+
dependencyRecomputations: () => number;
|
66
|
+
resetDependencyRecomputations: () => void;
|
67
|
+
} & {
|
68
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
69
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
24
70
|
};
|
25
71
|
/**
|
26
72
|
* Selects the asset exchange rate for a given chain and address
|
@@ -38,7 +84,7 @@ export declare const selectExchangeRateByChainIdAndAddress: (state: BridgeAppSta
|
|
38
84
|
* @returns Whether an exchange rate is available for the given chain and address
|
39
85
|
*/
|
40
86
|
export declare const selectIsAssetExchangeRateInState: (exchangeRateSources: ExchangeRateControllerState, chainId?: string | number | undefined, address?: string | undefined) => boolean;
|
41
|
-
export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
|
87
|
+
export declare const selectIsQuoteExpired: ((state: RemoteFeatureFlagControllerState & BridgeControllerState & {
|
42
88
|
gasFeeEstimates: GasFeeEstimates;
|
43
89
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
44
90
|
participateInMetaMetrics: boolean;
|
@@ -54,37 +100,86 @@ export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
|
|
54
100
|
resetResultsCount: () => void;
|
55
101
|
};
|
56
102
|
lastResult: () => boolean;
|
57
|
-
dependencies: [(state:
|
103
|
+
dependencies: [((state: RemoteFeatureFlagControllerState & BridgeControllerState & {
|
58
104
|
gasFeeEstimates: GasFeeEstimates;
|
59
105
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
60
106
|
participateInMetaMetrics: boolean;
|
61
|
-
}
|
107
|
+
}) => boolean) & {
|
62
108
|
clearCache: () => void;
|
63
109
|
resultsCount: () => number;
|
64
110
|
resetResultsCount: () => void;
|
65
111
|
} & {
|
66
|
-
resultFunc: (resultFuncArgs_0:
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
}
|
112
|
+
resultFunc: (resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean;
|
113
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean) & {
|
114
|
+
clearCache: () => void;
|
115
|
+
resultsCount: () => number;
|
116
|
+
resetResultsCount: () => void;
|
117
|
+
};
|
118
|
+
lastResult: () => boolean;
|
119
|
+
dependencies: [((state: RemoteFeatureFlagControllerState) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
120
|
+
clearCache: () => void;
|
121
|
+
resultsCount: () => number;
|
122
|
+
resetResultsCount: () => void;
|
123
|
+
} & {
|
124
|
+
resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
|
125
|
+
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
126
|
+
clearCache: () => void;
|
127
|
+
resultsCount: () => number;
|
128
|
+
resetResultsCount: () => void;
|
129
|
+
};
|
130
|
+
lastResult: () => import("./types.mjs").FeatureFlagsPlatformConfig;
|
131
|
+
dependencies: [(state: RemoteFeatureFlagControllerState) => unknown];
|
132
|
+
recomputations: () => number;
|
133
|
+
resetRecomputations: () => void;
|
134
|
+
dependencyRecomputations: () => number;
|
135
|
+
resetDependencyRecomputations: () => void;
|
136
|
+
} & {
|
137
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
138
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
139
|
+
}, (state: BridgeAppState) => boolean | undefined, (state: BridgeAppState) => number];
|
140
|
+
recomputations: () => number;
|
141
|
+
resetRecomputations: () => void;
|
142
|
+
dependencyRecomputations: () => number;
|
143
|
+
resetDependencyRecomputations: () => void;
|
144
|
+
} & {
|
145
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
146
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
147
|
+
}, ({ quotesLastFetched }: BridgeAppState) => number | null, ((state: RemoteFeatureFlagControllerState & BridgeControllerState & {
|
148
|
+
gasFeeEstimates: GasFeeEstimates;
|
149
|
+
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
150
|
+
participateInMetaMetrics: boolean;
|
151
|
+
}) => number) & {
|
152
|
+
clearCache: () => void;
|
153
|
+
resultsCount: () => number;
|
154
|
+
resetResultsCount: () => void;
|
155
|
+
} & {
|
156
|
+
resultFunc: (resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: string | number | undefined) => number;
|
157
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: string | number | undefined) => number) & {
|
78
158
|
clearCache: () => void;
|
79
159
|
resultsCount: () => number;
|
80
160
|
resetResultsCount: () => void;
|
81
161
|
};
|
82
162
|
lastResult: () => number;
|
83
|
-
dependencies: [(
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
163
|
+
dependencies: [((state: RemoteFeatureFlagControllerState) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
164
|
+
clearCache: () => void;
|
165
|
+
resultsCount: () => number;
|
166
|
+
resetResultsCount: () => void;
|
167
|
+
} & {
|
168
|
+
resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
|
169
|
+
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
170
|
+
clearCache: () => void;
|
171
|
+
resultsCount: () => number;
|
172
|
+
resetResultsCount: () => void;
|
173
|
+
};
|
174
|
+
lastResult: () => import("./types.mjs").FeatureFlagsPlatformConfig;
|
175
|
+
dependencies: [(state: RemoteFeatureFlagControllerState) => unknown];
|
176
|
+
recomputations: () => number;
|
177
|
+
resetRecomputations: () => void;
|
178
|
+
dependencyRecomputations: () => number;
|
179
|
+
resetDependencyRecomputations: () => void;
|
180
|
+
} & {
|
181
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
182
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
88
183
|
}, (state: BridgeAppState) => string | number | undefined];
|
89
184
|
recomputations: () => number;
|
90
185
|
resetRecomputations: () => void;
|
@@ -108,17 +203,15 @@ export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
|
|
108
203
|
* @param state - The state of the bridge controller and its dependency controllers
|
109
204
|
* @param sortOrder - The sort order of the quotes
|
110
205
|
* @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`
|
112
206
|
* @returns The activeQuote, recommendedQuote, sortedQuotes, and other quote fetching metadata
|
113
207
|
*
|
114
208
|
* @example
|
115
209
|
* ```ts
|
116
210
|
* const quotes = useSelector(state => selectBridgeQuotes(
|
117
|
-
* state.metamask,
|
211
|
+
* { ...state.metamask, bridgeConfig: remoteFeatureFlags.bridgeConfig },
|
118
212
|
* {
|
119
213
|
* sortOrder: state.bridge.sortOrder,
|
120
214
|
* selectedQuote: state.bridge.selectedQuote,
|
121
|
-
* featureFlagsKey: BridgeFeatureFlagsKey.EXTENSION_CONFIG,
|
122
215
|
* }
|
123
216
|
* ));
|
124
217
|
* ```
|
@@ -127,7 +220,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
127
220
|
gasFeeEstimates: GasFeeEstimates;
|
128
221
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
129
222
|
participateInMetaMetrics: boolean;
|
130
|
-
}, params_0: BridgeQuotesClientParams) => {
|
223
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => {
|
131
224
|
sortedQuotes: (QuoteResponse & QuoteMetadata)[];
|
132
225
|
recommendedQuote: (QuoteResponse & QuoteMetadata) | null;
|
133
226
|
activeQuote: (QuoteResponse & QuoteMetadata) | null;
|
@@ -183,7 +276,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
183
276
|
gasFeeEstimates: GasFeeEstimates;
|
184
277
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
185
278
|
participateInMetaMetrics: boolean;
|
186
|
-
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
279
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
187
280
|
clearCache: () => void;
|
188
281
|
resultsCount: () => number;
|
189
282
|
resetResultsCount: () => void;
|
@@ -281,7 +374,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
281
374
|
gasFeeEstimates: GasFeeEstimates;
|
282
375
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
283
376
|
participateInMetaMetrics: boolean;
|
284
|
-
}) => {
|
377
|
+
} & RemoteFeatureFlagControllerState) => {
|
285
378
|
sentAmount: {
|
286
379
|
amount: string;
|
287
380
|
valueInCurrency: string | null;
|
@@ -469,7 +562,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
469
562
|
gasFeeEstimates: GasFeeEstimates;
|
470
563
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
471
564
|
participateInMetaMetrics: boolean;
|
472
|
-
}) => {
|
565
|
+
} & RemoteFeatureFlagControllerState) => {
|
473
566
|
estimatedBaseFeeInDecGwei: string;
|
474
567
|
maxPriorityFeePerGasInDecGwei: string;
|
475
568
|
maxFeePerGasInDecGwei: string;
|
@@ -509,7 +602,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
509
602
|
gasFeeEstimates: GasFeeEstimates;
|
510
603
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
511
604
|
participateInMetaMetrics: boolean;
|
512
|
-
}) => ExchangeRate) & {
|
605
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
513
606
|
clearCache: () => void;
|
514
607
|
resultsCount: () => number;
|
515
608
|
resetResultsCount: () => void;
|
@@ -533,7 +626,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
533
626
|
gasFeeEstimates: GasFeeEstimates;
|
534
627
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
535
628
|
participateInMetaMetrics: boolean;
|
536
|
-
}) => ExchangeRate) & {
|
629
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
537
630
|
clearCache: () => void;
|
538
631
|
resultsCount: () => number;
|
539
632
|
resetResultsCount: () => void;
|
@@ -557,7 +650,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
557
650
|
gasFeeEstimates: GasFeeEstimates;
|
558
651
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
559
652
|
participateInMetaMetrics: boolean;
|
560
|
-
}) => ExchangeRate) & {
|
653
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
561
654
|
clearCache: () => void;
|
562
655
|
resultsCount: () => number;
|
563
656
|
resetResultsCount: () => void;
|
@@ -597,7 +690,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
597
690
|
gasFeeEstimates: GasFeeEstimates;
|
598
691
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
599
692
|
participateInMetaMetrics: boolean;
|
600
|
-
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
693
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
601
694
|
clearCache: () => void;
|
602
695
|
resultsCount: () => number;
|
603
696
|
resetResultsCount: () => void;
|
@@ -613,7 +706,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
613
706
|
gasFeeEstimates: GasFeeEstimates;
|
614
707
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
615
708
|
participateInMetaMetrics: boolean;
|
616
|
-
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
709
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
617
710
|
clearCache: () => void;
|
618
711
|
resultsCount: () => number;
|
619
712
|
resetResultsCount: () => void;
|
@@ -711,7 +804,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
711
804
|
gasFeeEstimates: GasFeeEstimates;
|
712
805
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
713
806
|
participateInMetaMetrics: boolean;
|
714
|
-
}) => {
|
807
|
+
} & RemoteFeatureFlagControllerState) => {
|
715
808
|
sentAmount: {
|
716
809
|
amount: string;
|
717
810
|
valueInCurrency: string | null;
|
@@ -899,7 +992,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
899
992
|
gasFeeEstimates: GasFeeEstimates;
|
900
993
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
901
994
|
participateInMetaMetrics: boolean;
|
902
|
-
}) => {
|
995
|
+
} & RemoteFeatureFlagControllerState) => {
|
903
996
|
estimatedBaseFeeInDecGwei: string;
|
904
997
|
maxPriorityFeePerGasInDecGwei: string;
|
905
998
|
maxFeePerGasInDecGwei: string;
|
@@ -939,7 +1032,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
939
1032
|
gasFeeEstimates: GasFeeEstimates;
|
940
1033
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
941
1034
|
participateInMetaMetrics: boolean;
|
942
|
-
}) => ExchangeRate) & {
|
1035
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
943
1036
|
clearCache: () => void;
|
944
1037
|
resultsCount: () => number;
|
945
1038
|
resetResultsCount: () => void;
|
@@ -963,7 +1056,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
963
1056
|
gasFeeEstimates: GasFeeEstimates;
|
964
1057
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
965
1058
|
participateInMetaMetrics: boolean;
|
966
|
-
}) => ExchangeRate) & {
|
1059
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
967
1060
|
clearCache: () => void;
|
968
1061
|
resultsCount: () => number;
|
969
1062
|
resetResultsCount: () => void;
|
@@ -987,7 +1080,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
987
1080
|
gasFeeEstimates: GasFeeEstimates;
|
988
1081
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
989
1082
|
participateInMetaMetrics: boolean;
|
990
|
-
}) => ExchangeRate) & {
|
1083
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
991
1084
|
clearCache: () => void;
|
992
1085
|
resultsCount: () => number;
|
993
1086
|
resetResultsCount: () => void;
|
@@ -1035,7 +1128,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1035
1128
|
gasFeeEstimates: GasFeeEstimates;
|
1036
1129
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1037
1130
|
participateInMetaMetrics: boolean;
|
1038
|
-
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
1131
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
1039
1132
|
clearCache: () => void;
|
1040
1133
|
resultsCount: () => number;
|
1041
1134
|
resetResultsCount: () => void;
|
@@ -1051,7 +1144,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1051
1144
|
gasFeeEstimates: GasFeeEstimates;
|
1052
1145
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1053
1146
|
participateInMetaMetrics: boolean;
|
1054
|
-
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
1147
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
|
1055
1148
|
clearCache: () => void;
|
1056
1149
|
resultsCount: () => number;
|
1057
1150
|
resetResultsCount: () => void;
|
@@ -1067,7 +1160,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1067
1160
|
gasFeeEstimates: GasFeeEstimates;
|
1068
1161
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1069
1162
|
participateInMetaMetrics: boolean;
|
1070
|
-
}, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
1163
|
+
} & RemoteFeatureFlagControllerState, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
|
1071
1164
|
clearCache: () => void;
|
1072
1165
|
resultsCount: () => number;
|
1073
1166
|
resetResultsCount: () => void;
|
@@ -1165,7 +1258,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1165
1258
|
gasFeeEstimates: GasFeeEstimates;
|
1166
1259
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1167
1260
|
participateInMetaMetrics: boolean;
|
1168
|
-
}) => {
|
1261
|
+
} & RemoteFeatureFlagControllerState) => {
|
1169
1262
|
sentAmount: {
|
1170
1263
|
amount: string;
|
1171
1264
|
valueInCurrency: string | null;
|
@@ -1353,7 +1446,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1353
1446
|
gasFeeEstimates: GasFeeEstimates;
|
1354
1447
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1355
1448
|
participateInMetaMetrics: boolean;
|
1356
|
-
}) => {
|
1449
|
+
} & RemoteFeatureFlagControllerState) => {
|
1357
1450
|
estimatedBaseFeeInDecGwei: string;
|
1358
1451
|
maxPriorityFeePerGasInDecGwei: string;
|
1359
1452
|
maxFeePerGasInDecGwei: string;
|
@@ -1393,7 +1486,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1393
1486
|
gasFeeEstimates: GasFeeEstimates;
|
1394
1487
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1395
1488
|
participateInMetaMetrics: boolean;
|
1396
|
-
}) => ExchangeRate) & {
|
1489
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
1397
1490
|
clearCache: () => void;
|
1398
1491
|
resultsCount: () => number;
|
1399
1492
|
resetResultsCount: () => void;
|
@@ -1417,7 +1510,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1417
1510
|
gasFeeEstimates: GasFeeEstimates;
|
1418
1511
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1419
1512
|
participateInMetaMetrics: boolean;
|
1420
|
-
}) => ExchangeRate) & {
|
1513
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
1421
1514
|
clearCache: () => void;
|
1422
1515
|
resultsCount: () => number;
|
1423
1516
|
resetResultsCount: () => void;
|
@@ -1441,7 +1534,7 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1441
1534
|
gasFeeEstimates: GasFeeEstimates;
|
1442
1535
|
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1443
1536
|
participateInMetaMetrics: boolean;
|
1444
|
-
}) => ExchangeRate) & {
|
1537
|
+
} & RemoteFeatureFlagControllerState) => ExchangeRate) & {
|
1445
1538
|
clearCache: () => void;
|
1446
1539
|
resultsCount: () => number;
|
1447
1540
|
resetResultsCount: () => void;
|
@@ -1493,7 +1586,51 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
|
|
1493
1586
|
} & {
|
1494
1587
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
1495
1588
|
memoize: typeof import("reselect").weakMapMemoize;
|
1496
|
-
}, (state: BridgeAppState) => number | null, (state: BridgeAppState) => boolean, (state: BridgeAppState) => number | null, (state:
|
1589
|
+
}, (state: BridgeAppState) => number | null, (state: BridgeAppState) => boolean, (state: BridgeAppState) => number | null, ((state: RemoteFeatureFlagControllerState & BridgeControllerState & {
|
1590
|
+
gasFeeEstimates: GasFeeEstimates;
|
1591
|
+
} & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
|
1592
|
+
participateInMetaMetrics: boolean;
|
1593
|
+
}) => boolean) & {
|
1594
|
+
clearCache: () => void;
|
1595
|
+
resultsCount: () => number;
|
1596
|
+
resetResultsCount: () => void;
|
1597
|
+
} & {
|
1598
|
+
resultFunc: (resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean;
|
1599
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean) & {
|
1600
|
+
clearCache: () => void;
|
1601
|
+
resultsCount: () => number;
|
1602
|
+
resetResultsCount: () => void;
|
1603
|
+
};
|
1604
|
+
lastResult: () => boolean;
|
1605
|
+
dependencies: [((state: RemoteFeatureFlagControllerState) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
1606
|
+
clearCache: () => void;
|
1607
|
+
resultsCount: () => number;
|
1608
|
+
resetResultsCount: () => void;
|
1609
|
+
} & {
|
1610
|
+
resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
|
1611
|
+
memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
|
1612
|
+
clearCache: () => void;
|
1613
|
+
resultsCount: () => number;
|
1614
|
+
resetResultsCount: () => void;
|
1615
|
+
};
|
1616
|
+
lastResult: () => import("./types.mjs").FeatureFlagsPlatformConfig;
|
1617
|
+
dependencies: [(state: RemoteFeatureFlagControllerState) => unknown];
|
1618
|
+
recomputations: () => number;
|
1619
|
+
resetRecomputations: () => void;
|
1620
|
+
dependencyRecomputations: () => number;
|
1621
|
+
resetDependencyRecomputations: () => void;
|
1622
|
+
} & {
|
1623
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
1624
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
1625
|
+
}, (state: BridgeAppState) => boolean | undefined, (state: BridgeAppState) => number];
|
1626
|
+
recomputations: () => number;
|
1627
|
+
resetRecomputations: () => void;
|
1628
|
+
dependencyRecomputations: () => number;
|
1629
|
+
resetDependencyRecomputations: () => void;
|
1630
|
+
} & {
|
1631
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
1632
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
1633
|
+
}];
|
1497
1634
|
recomputations: () => number;
|
1498
1635
|
resetRecomputations: () => void;
|
1499
1636
|
dependencyRecomputations: () => number;
|
package/dist/selectors.d.mts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"selectors.d.mts","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;AAUpE,OAAO,KAAK,EACV,qBAAqB,EACrB,
|
1
|
+
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
|
package/dist/selectors.mjs
CHANGED
@@ -7,6 +7,7 @@ import { BRIDGE_PREFERRED_GAS_ESTIMATE } from "./constants/bridge.mjs";
|
|
7
7
|
import { RequestStatus, SortOrder } from "./types.mjs";
|
8
8
|
import { getNativeAssetForChainId, isNativeAddress, isSolanaChainId } from "./utils/bridge.mjs";
|
9
9
|
import { formatAddressToAssetId, formatChainIdToCaip, formatChainIdToHex } from "./utils/caip-formatters.mjs";
|
10
|
+
import { processFeatureFlags } from "./utils/feature-flags.mjs";
|
10
11
|
import { calcAdjustedReturn, calcCost, calcEstimatedAndMaxTotalGasFee, calcRelayerFee, calcSentAmount, calcSolanaTotalNetworkFee, calcSwapRate, calcToAmount, calcTotalEstimatedNetworkFee, calcTotalMaxNetworkFee } from "./utils/quote.mjs";
|
11
12
|
/**
|
12
13
|
* Creates a structured selector for the bridge controller
|
@@ -16,6 +17,29 @@ const createStructuredBridgeSelector = createStructuredSelector_.withTypes();
|
|
16
17
|
* Creates a typed selector for the bridge controller
|
17
18
|
*/
|
18
19
|
const createBridgeSelector = createSelector_.withTypes();
|
20
|
+
const createFeatureFlagsSelector = createSelector_.withTypes();
|
21
|
+
/**
|
22
|
+
* Selects the bridge feature flags
|
23
|
+
*
|
24
|
+
* @param state - The state of the bridge controller
|
25
|
+
* @returns The bridge feature flags
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* ```ts
|
29
|
+
* const featureFlags = useSelector(state => selectBridgeFeatureFlags(state));
|
30
|
+
*
|
31
|
+
* Or
|
32
|
+
*
|
33
|
+
* export const selectBridgeFeatureFlags = createSelector(
|
34
|
+
* selectRemoteFeatureFlags,
|
35
|
+
* (remoteFeatureFlags) =>
|
36
|
+
* selectBridgeFeatureFlagsBase({
|
37
|
+
* bridgeConfig: remoteFeatureFlags.bridgeConfig,
|
38
|
+
* }),
|
39
|
+
* );
|
40
|
+
* ```
|
41
|
+
*/
|
42
|
+
export const selectBridgeFeatureFlags = createFeatureFlagsSelector([(state) => state.remoteFeatureFlags.bridgeConfig], (bridgeConfig) => processFeatureFlags(bridgeConfig));
|
19
43
|
const getExchangeRateByChainIdAndAddress = (exchangeRateSources, chainId, address) => {
|
20
44
|
if (!chainId || !address) {
|
21
45
|
return {};
|
@@ -168,14 +192,12 @@ const selectActiveQuote = createBridgeSelector([
|
|
168
192
|
selectRecommendedQuote,
|
169
193
|
(_, { selectedQuote }) => selectedQuote,
|
170
194
|
], (recommendedQuote, selectedQuote) => selectedQuote ?? recommendedQuote);
|
171
|
-
const selectIsQuoteGoingToRefresh = (
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
(state) => state.quoteRequest.srcChainId,
|
178
|
-
], (featureFlags, srcChainId) => (srcChainId
|
195
|
+
const selectIsQuoteGoingToRefresh = createBridgeSelector([
|
196
|
+
selectBridgeFeatureFlags,
|
197
|
+
(state) => state.quoteRequest.insufficientBal,
|
198
|
+
(state) => state.quotesRefreshCount,
|
199
|
+
], (featureFlags, insufficientBal, quotesRefreshCount) => insufficientBal ? false : featureFlags.maxRefreshCount > quotesRefreshCount);
|
200
|
+
const selectQuoteRefreshRate = createBridgeSelector([selectBridgeFeatureFlags, (state) => state.quoteRequest.srcChainId], (featureFlags, srcChainId) => (srcChainId
|
179
201
|
? featureFlags.chains[formatChainIdToCaip(srcChainId)]?.refreshRate
|
180
202
|
: featureFlags.refreshRate) ?? featureFlags.refreshRate);
|
181
203
|
export const selectIsQuoteExpired = createBridgeSelector([
|
@@ -192,17 +214,15 @@ export const selectIsQuoteExpired = createBridgeSelector([
|
|
192
214
|
* @param state - The state of the bridge controller and its dependency controllers
|
193
215
|
* @param sortOrder - The sort order of the quotes
|
194
216
|
* @param selectedQuote - The quote that is currently selected by the user, should be cleared by clients when the req params change
|
195
|
-
* @param featureFlagsKey - The feature flags key for the client (e.g. `BridgeFeatureFlagsKey.EXTENSION_CONFIG`
|
196
217
|
* @returns The activeQuote, recommendedQuote, sortedQuotes, and other quote fetching metadata
|
197
218
|
*
|
198
219
|
* @example
|
199
220
|
* ```ts
|
200
221
|
* const quotes = useSelector(state => selectBridgeQuotes(
|
201
|
-
* state.metamask,
|
222
|
+
* { ...state.metamask, bridgeConfig: remoteFeatureFlags.bridgeConfig },
|
202
223
|
* {
|
203
224
|
* sortOrder: state.bridge.sortOrder,
|
204
225
|
* selectedQuote: state.bridge.selectedQuote,
|
205
|
-
* featureFlagsKey: BridgeFeatureFlagsKey.EXTENSION_CONFIG,
|
206
226
|
* }
|
207
227
|
* ));
|
208
228
|
* ```
|