@metamask-previews/bridge-controller 18.0.0-preview-83a6970d → 19.0.0-preview-836a8df

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/dist/bridge-controller.cjs +13 -25
  3. package/dist/bridge-controller.cjs.map +1 -1
  4. package/dist/bridge-controller.d.cts +4 -1
  5. package/dist/bridge-controller.d.cts.map +1 -1
  6. package/dist/bridge-controller.d.mts +4 -1
  7. package/dist/bridge-controller.d.mts.map +1 -1
  8. package/dist/bridge-controller.mjs +15 -27
  9. package/dist/bridge-controller.mjs.map +1 -1
  10. package/dist/constants/bridge.cjs +0 -5
  11. package/dist/constants/bridge.cjs.map +1 -1
  12. package/dist/constants/bridge.d.cts.map +1 -1
  13. package/dist/constants/bridge.d.mts.map +1 -1
  14. package/dist/constants/bridge.mjs +0 -5
  15. package/dist/constants/bridge.mjs.map +1 -1
  16. package/dist/index.cjs +3 -4
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +3 -3
  19. package/dist/index.d.cts.map +1 -1
  20. package/dist/index.d.mts +3 -3
  21. package/dist/index.d.mts.map +1 -1
  22. package/dist/index.mjs +2 -2
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/selectors.cjs +32 -12
  25. package/dist/selectors.cjs.map +1 -1
  26. package/dist/selectors.d.cts +239 -26
  27. package/dist/selectors.d.cts.map +1 -1
  28. package/dist/selectors.d.mts +239 -26
  29. package/dist/selectors.d.mts.map +1 -1
  30. package/dist/selectors.mjs +31 -11
  31. package/dist/selectors.mjs.map +1 -1
  32. package/dist/types.cjs +2 -12
  33. package/dist/types.cjs.map +1 -1
  34. package/dist/types.d.cts +6 -21
  35. package/dist/types.d.cts.map +1 -1
  36. package/dist/types.d.mts +6 -21
  37. package/dist/types.d.mts.map +1 -1
  38. package/dist/types.mjs +1 -11
  39. package/dist/types.mjs.map +1 -1
  40. package/dist/utils/feature-flags.cjs +38 -0
  41. package/dist/utils/feature-flags.cjs.map +1 -0
  42. package/dist/utils/feature-flags.d.cts +16 -0
  43. package/dist/utils/feature-flags.d.cts.map +1 -0
  44. package/dist/utils/feature-flags.d.mts +16 -0
  45. package/dist/utils/feature-flags.d.mts.map +1 -0
  46. package/dist/utils/feature-flags.mjs +32 -0
  47. package/dist/utils/feature-flags.mjs.map +1 -0
  48. package/dist/utils/fetch.cjs +1 -40
  49. package/dist/utils/fetch.cjs.map +1 -1
  50. package/dist/utils/fetch.d.cts +1 -10
  51. package/dist/utils/fetch.d.cts.map +1 -1
  52. package/dist/utils/fetch.d.mts +1 -10
  53. package/dist/utils/fetch.d.mts.map +1 -1
  54. package/dist/utils/fetch.mjs +2 -40
  55. package/dist/utils/fetch.mjs.map +1 -1
  56. package/dist/utils/validators.cjs +2 -6
  57. package/dist/utils/validators.cjs.map +1 -1
  58. package/dist/utils/validators.d.cts +2 -2
  59. package/dist/utils/validators.d.cts.map +1 -1
  60. package/dist/utils/validators.d.mts +2 -2
  61. package/dist/utils/validators.d.mts.map +1 -1
  62. package/dist/utils/validators.mjs +3 -7
  63. package/dist/utils/validators.mjs.map +1 -1
  64. package/package.json +5 -3
@@ -1,6 +1,7 @@
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, BridgeFeatureFlagsKey, ExchangeRate, GenericQuoteRequest, QuoteMetadata, QuoteResponse } from "./types.mjs";
3
+ import type { Json } from "@metamask/utils";
4
+ import type { BridgeControllerState, ExchangeRate, GenericQuoteRequest, QuoteMetadata, QuoteResponse } from "./types.mjs";
4
5
  import { SortOrder } from "./types.mjs";
5
6
  /**
6
7
  * The controller states that provide exchange rates
@@ -13,6 +14,8 @@ export type BridgeAppState = BridgeControllerState & {
13
14
  gasFeeEstimates: GasFeeEstimates;
14
15
  } & ExchangeRateControllerState & {
15
16
  participateInMetaMetrics: boolean;
17
+ } & {
18
+ bridgeConfig: Json;
16
19
  };
17
20
  /**
18
21
  * Required parameters that clients must provide for the bridge quotes selector
@@ -20,7 +23,52 @@ export type BridgeAppState = BridgeControllerState & {
20
23
  type BridgeQuotesClientParams = {
21
24
  sortOrder: SortOrder;
22
25
  selectedQuote: (QuoteResponse & QuoteMetadata) | null;
23
- featureFlagsKey: BridgeFeatureFlagsKey;
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.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: {
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;
24
72
  };
25
73
  /**
26
74
  * Selects the asset exchange rate for a given chain and address
@@ -38,10 +86,14 @@ export declare const selectExchangeRateByChainIdAndAddress: (state: BridgeAppSta
38
86
  * @returns Whether an exchange rate is available for the given chain and address
39
87
  */
40
88
  export declare const selectIsAssetExchangeRateInState: (exchangeRateSources: ExchangeRateControllerState, chainId?: string | number | undefined, address?: string | undefined) => boolean;
41
- export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
89
+ export declare const selectIsQuoteExpired: ((state: {
90
+ bridgeConfig: unknown;
91
+ } & BridgeControllerState & {
42
92
  gasFeeEstimates: GasFeeEstimates;
43
93
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
44
94
  participateInMetaMetrics: boolean;
95
+ } & {
96
+ bridgeConfig: Json;
45
97
  }, __: any, currentTimeInMs: number) => boolean) & {
46
98
  clearCache: () => void;
47
99
  resultsCount: () => number;
@@ -54,37 +106,102 @@ export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
54
106
  resetResultsCount: () => void;
55
107
  };
56
108
  lastResult: () => boolean;
57
- dependencies: [(state: BridgeAppState, { featureFlagsKey }: BridgeQuotesClientParams) => boolean, ({ quotesLastFetched }: BridgeAppState) => number | null, ((state: BridgeControllerState & {
109
+ dependencies: [((state: {
110
+ bridgeConfig: unknown;
111
+ } & BridgeControllerState & {
58
112
  gasFeeEstimates: GasFeeEstimates;
59
113
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
60
114
  participateInMetaMetrics: boolean;
61
- }, params_0: BridgeQuotesClientParams) => number) & {
115
+ } & {
116
+ bridgeConfig: Json;
117
+ }) => boolean) & {
62
118
  clearCache: () => void;
63
119
  resultsCount: () => number;
64
120
  resetResultsCount: () => void;
65
121
  } & {
66
- resultFunc: (resultFuncArgs_0: {
67
- refreshRate: number;
68
- maxRefreshCount: number;
69
- support: boolean;
70
- chains: Record<`${string}:${string}`, import("./types.mjs").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.mjs").ChainConfiguration>;
77
- }, resultFuncArgs_1: string | number | undefined) => number) & {
122
+ resultFunc: (resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean;
123
+ memoizedResultFunc: ((resultFuncArgs_0: import("./types.mjs").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.mjs").FeatureFlagsPlatformConfig) & {
132
+ clearCache: () => void;
133
+ resultsCount: () => number;
134
+ resetResultsCount: () => void;
135
+ } & {
136
+ resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
137
+ memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
138
+ clearCache: () => void;
139
+ resultsCount: () => number;
140
+ resetResultsCount: () => void;
141
+ };
142
+ lastResult: () => import("./types.mjs").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 & {
164
+ gasFeeEstimates: GasFeeEstimates;
165
+ } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
166
+ participateInMetaMetrics: boolean;
167
+ } & {
168
+ bridgeConfig: Json;
169
+ }) => number) & {
170
+ clearCache: () => void;
171
+ resultsCount: () => number;
172
+ resetResultsCount: () => void;
173
+ } & {
174
+ resultFunc: (resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: string | number | undefined) => number;
175
+ memoizedResultFunc: ((resultFuncArgs_0: import("./types.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: string | number | undefined) => number) & {
78
176
  clearCache: () => void;
79
177
  resultsCount: () => number;
80
178
  resetResultsCount: () => void;
81
179
  };
82
180
  lastResult: () => number;
83
- dependencies: [({ bridgeFeatureFlags }: BridgeAppState, { featureFlagsKey }: BridgeQuotesClientParams) => {
84
- refreshRate: number;
85
- maxRefreshCount: number;
86
- support: boolean;
87
- chains: Record<`${string}:${string}`, import("./types.mjs").ChainConfiguration>;
181
+ dependencies: [((state: {
182
+ bridgeConfig: unknown;
183
+ }) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
184
+ clearCache: () => void;
185
+ resultsCount: () => number;
186
+ resetResultsCount: () => void;
187
+ } & {
188
+ resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
189
+ memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
190
+ clearCache: () => void;
191
+ resultsCount: () => number;
192
+ resetResultsCount: () => void;
193
+ };
194
+ lastResult: () => import("./types.mjs").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;
88
205
  }, (state: BridgeAppState) => string | number | undefined];
89
206
  recomputations: () => number;
90
207
  resetRecomputations: () => void;
@@ -108,17 +225,15 @@ export declare const selectIsQuoteExpired: ((state: BridgeControllerState & {
108
225
  * @param state - The state of the bridge controller and its dependency controllers
109
226
  * @param sortOrder - The sort order of the quotes
110
227
  * @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
228
  * @returns The activeQuote, recommendedQuote, sortedQuotes, and other quote fetching metadata
113
229
  *
114
230
  * @example
115
231
  * ```ts
116
232
  * const quotes = useSelector(state => selectBridgeQuotes(
117
- * state.metamask,
233
+ * { ...state.metamask, bridgeConfig: remoteFeatureFlags.bridgeConfig },
118
234
  * {
119
235
  * sortOrder: state.bridge.sortOrder,
120
236
  * selectedQuote: state.bridge.selectedQuote,
121
- * featureFlagsKey: BridgeFeatureFlagsKey.EXTENSION_CONFIG,
122
237
  * }
123
238
  * ));
124
239
  * ```
@@ -127,6 +242,10 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
127
242
  gasFeeEstimates: GasFeeEstimates;
128
243
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
129
244
  participateInMetaMetrics: boolean;
245
+ } & {
246
+ bridgeConfig: Json;
247
+ } & {
248
+ bridgeConfig: unknown;
130
249
  }, params_0: BridgeQuotesClientParams) => {
131
250
  sortedQuotes: (QuoteResponse & QuoteMetadata)[];
132
251
  recommendedQuote: (QuoteResponse & QuoteMetadata) | null;
@@ -183,6 +302,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
183
302
  gasFeeEstimates: GasFeeEstimates;
184
303
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
185
304
  participateInMetaMetrics: boolean;
305
+ } & {
306
+ bridgeConfig: Json;
186
307
  }, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
187
308
  clearCache: () => void;
188
309
  resultsCount: () => number;
@@ -281,6 +402,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
281
402
  gasFeeEstimates: GasFeeEstimates;
282
403
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
283
404
  participateInMetaMetrics: boolean;
405
+ } & {
406
+ bridgeConfig: Json;
284
407
  }) => {
285
408
  sentAmount: {
286
409
  amount: string;
@@ -469,6 +592,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
469
592
  gasFeeEstimates: GasFeeEstimates;
470
593
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
471
594
  participateInMetaMetrics: boolean;
595
+ } & {
596
+ bridgeConfig: Json;
472
597
  }) => {
473
598
  estimatedBaseFeeInDecGwei: string;
474
599
  maxPriorityFeePerGasInDecGwei: string;
@@ -509,6 +634,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
509
634
  gasFeeEstimates: GasFeeEstimates;
510
635
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
511
636
  participateInMetaMetrics: boolean;
637
+ } & {
638
+ bridgeConfig: Json;
512
639
  }) => ExchangeRate) & {
513
640
  clearCache: () => void;
514
641
  resultsCount: () => number;
@@ -533,6 +660,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
533
660
  gasFeeEstimates: GasFeeEstimates;
534
661
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
535
662
  participateInMetaMetrics: boolean;
663
+ } & {
664
+ bridgeConfig: Json;
536
665
  }) => ExchangeRate) & {
537
666
  clearCache: () => void;
538
667
  resultsCount: () => number;
@@ -557,6 +686,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
557
686
  gasFeeEstimates: GasFeeEstimates;
558
687
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
559
688
  participateInMetaMetrics: boolean;
689
+ } & {
690
+ bridgeConfig: Json;
560
691
  }) => ExchangeRate) & {
561
692
  clearCache: () => void;
562
693
  resultsCount: () => number;
@@ -597,6 +728,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
597
728
  gasFeeEstimates: GasFeeEstimates;
598
729
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
599
730
  participateInMetaMetrics: boolean;
731
+ } & {
732
+ bridgeConfig: Json;
600
733
  }, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
601
734
  clearCache: () => void;
602
735
  resultsCount: () => number;
@@ -613,6 +746,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
613
746
  gasFeeEstimates: GasFeeEstimates;
614
747
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
615
748
  participateInMetaMetrics: boolean;
749
+ } & {
750
+ bridgeConfig: Json;
616
751
  }, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
617
752
  clearCache: () => void;
618
753
  resultsCount: () => number;
@@ -711,6 +846,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
711
846
  gasFeeEstimates: GasFeeEstimates;
712
847
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
713
848
  participateInMetaMetrics: boolean;
849
+ } & {
850
+ bridgeConfig: Json;
714
851
  }) => {
715
852
  sentAmount: {
716
853
  amount: string;
@@ -899,6 +1036,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
899
1036
  gasFeeEstimates: GasFeeEstimates;
900
1037
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
901
1038
  participateInMetaMetrics: boolean;
1039
+ } & {
1040
+ bridgeConfig: Json;
902
1041
  }) => {
903
1042
  estimatedBaseFeeInDecGwei: string;
904
1043
  maxPriorityFeePerGasInDecGwei: string;
@@ -939,6 +1078,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
939
1078
  gasFeeEstimates: GasFeeEstimates;
940
1079
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
941
1080
  participateInMetaMetrics: boolean;
1081
+ } & {
1082
+ bridgeConfig: Json;
942
1083
  }) => ExchangeRate) & {
943
1084
  clearCache: () => void;
944
1085
  resultsCount: () => number;
@@ -963,6 +1104,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
963
1104
  gasFeeEstimates: GasFeeEstimates;
964
1105
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
965
1106
  participateInMetaMetrics: boolean;
1107
+ } & {
1108
+ bridgeConfig: Json;
966
1109
  }) => ExchangeRate) & {
967
1110
  clearCache: () => void;
968
1111
  resultsCount: () => number;
@@ -987,6 +1130,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
987
1130
  gasFeeEstimates: GasFeeEstimates;
988
1131
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
989
1132
  participateInMetaMetrics: boolean;
1133
+ } & {
1134
+ bridgeConfig: Json;
990
1135
  }) => ExchangeRate) & {
991
1136
  clearCache: () => void;
992
1137
  resultsCount: () => number;
@@ -1035,6 +1180,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1035
1180
  gasFeeEstimates: GasFeeEstimates;
1036
1181
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1037
1182
  participateInMetaMetrics: boolean;
1183
+ } & {
1184
+ bridgeConfig: Json;
1038
1185
  }, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
1039
1186
  clearCache: () => void;
1040
1187
  resultsCount: () => number;
@@ -1051,6 +1198,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1051
1198
  gasFeeEstimates: GasFeeEstimates;
1052
1199
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1053
1200
  participateInMetaMetrics: boolean;
1201
+ } & {
1202
+ bridgeConfig: Json;
1054
1203
  }, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata) | null) & {
1055
1204
  clearCache: () => void;
1056
1205
  resultsCount: () => number;
@@ -1067,6 +1216,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1067
1216
  gasFeeEstimates: GasFeeEstimates;
1068
1217
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1069
1218
  participateInMetaMetrics: boolean;
1219
+ } & {
1220
+ bridgeConfig: Json;
1070
1221
  }, params_0: BridgeQuotesClientParams) => (QuoteResponse & QuoteMetadata)[]) & {
1071
1222
  clearCache: () => void;
1072
1223
  resultsCount: () => number;
@@ -1165,6 +1316,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1165
1316
  gasFeeEstimates: GasFeeEstimates;
1166
1317
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1167
1318
  participateInMetaMetrics: boolean;
1319
+ } & {
1320
+ bridgeConfig: Json;
1168
1321
  }) => {
1169
1322
  sentAmount: {
1170
1323
  amount: string;
@@ -1353,6 +1506,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1353
1506
  gasFeeEstimates: GasFeeEstimates;
1354
1507
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1355
1508
  participateInMetaMetrics: boolean;
1509
+ } & {
1510
+ bridgeConfig: Json;
1356
1511
  }) => {
1357
1512
  estimatedBaseFeeInDecGwei: string;
1358
1513
  maxPriorityFeePerGasInDecGwei: string;
@@ -1393,6 +1548,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1393
1548
  gasFeeEstimates: GasFeeEstimates;
1394
1549
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1395
1550
  participateInMetaMetrics: boolean;
1551
+ } & {
1552
+ bridgeConfig: Json;
1396
1553
  }) => ExchangeRate) & {
1397
1554
  clearCache: () => void;
1398
1555
  resultsCount: () => number;
@@ -1417,6 +1574,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1417
1574
  gasFeeEstimates: GasFeeEstimates;
1418
1575
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1419
1576
  participateInMetaMetrics: boolean;
1577
+ } & {
1578
+ bridgeConfig: Json;
1420
1579
  }) => ExchangeRate) & {
1421
1580
  clearCache: () => void;
1422
1581
  resultsCount: () => number;
@@ -1441,6 +1600,8 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1441
1600
  gasFeeEstimates: GasFeeEstimates;
1442
1601
  } & MultichainAssetsRatesControllerState & TokenRatesControllerState & CurrencyRateState & Pick<BridgeControllerState, "assetExchangeRates"> & {
1443
1602
  participateInMetaMetrics: boolean;
1603
+ } & {
1604
+ bridgeConfig: Json;
1444
1605
  }) => ExchangeRate) & {
1445
1606
  clearCache: () => void;
1446
1607
  resultsCount: () => number;
@@ -1493,7 +1654,59 @@ export declare const selectBridgeQuotes: ((state: BridgeControllerState & {
1493
1654
  } & {
1494
1655
  argsMemoize: typeof import("reselect").weakMapMemoize;
1495
1656
  memoize: typeof import("reselect").weakMapMemoize;
1496
- }, (state: BridgeAppState) => number | null, (state: BridgeAppState) => boolean, (state: BridgeAppState) => number | null, (state: BridgeAppState, { featureFlagsKey }: BridgeQuotesClientParams) => boolean];
1657
+ }, (state: BridgeAppState) => number | null, (state: BridgeAppState) => boolean, (state: BridgeAppState) => number | null, ((state: {
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.mjs").FeatureFlagsPlatformConfig, resultFuncArgs_1: boolean | undefined, resultFuncArgs_2: number) => boolean;
1671
+ memoizedResultFunc: ((resultFuncArgs_0: import("./types.mjs").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.mjs").FeatureFlagsPlatformConfig) & {
1680
+ clearCache: () => void;
1681
+ resultsCount: () => number;
1682
+ resetResultsCount: () => void;
1683
+ } & {
1684
+ resultFunc: (resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig;
1685
+ memoizedResultFunc: ((resultFuncArgs_0: any) => import("./types.mjs").FeatureFlagsPlatformConfig) & {
1686
+ clearCache: () => void;
1687
+ resultsCount: () => number;
1688
+ resetResultsCount: () => void;
1689
+ };
1690
+ lastResult: () => import("./types.mjs").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
+ }];
1497
1710
  recomputations: () => number;
1498
1711
  resetRecomputations: () => void;
1499
1712
  dependencyRecomputations: () => number;
@@ -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,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,aAAa,EACd,oBAAgB;AACjB,OAAO,EAAiB,SAAS,EAAE,oBAAgB;AAwBnD;;GAEG;AACH,KAAK,2BAA2B,GAAG,oCAAoC,GACrE,yBAAyB,GACzB,iBAAiB,GACjB,IAAI,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;AACpD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IACnD,eAAe,EAAE,eAAe,CAAC;CAClC,GAAG,2BAA2B,GAAG;IAC9B,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAUJ;;GAEG;AACH,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC;IACtD,eAAe,EAAE,qBAAqB,CAAC;CACxC,CAAC;AAiEF;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC,UACzC,cAAc,YACX,mBAAmB,CAAC,YAAY,CAAC,YACjC,mBAAmB,CAAC,iBAAiB,CAAC,iBAGjD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,oIAI4B,CAAC;AAiK1E,eAAO,MAAM,oBAAoB;qBAhRd,eAAe;;8BAEJ,OAAO;;;;;;;;;;;;;2BA0P5B,cAAc,uBACA,wBAAwB;yBA7P5B,eAAe;;kCAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;qFAoQa,wBAAwB;;;;;;;;;;;;;qDAe7C,MAAM;;;;;;;;CAQlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB;qBApTZ,eAAe;;8BAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAFlB,eAAe;;kCAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAFlB,eAAe;;sCAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAFlB,eAAe;;0CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAFlB,eAAe;;0CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;iCAFlB,eAAe;;0CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;iCAFlB,eAAe;;0CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAuNd,wBAAwB;;;;;;;;;yBAzN5B,eAAe;;kCAEJ,OAAO;;;;;;;;;;;;;;6BAFlB,eAAe;;sCAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAFlB,eAAe;;0CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAFlB,eAAe;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAFlB,eAAe;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;qCAFlB,eAAe;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;qCAFlB,eAAe;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAuNd,wBAAwB;;;;;;;;;;;;;;;;;yBAzN5B,eAAe;;kCAEJ,OAAO;;;;;;;;;;;;;;6BAFlB,eAAe;;sCAEJ,OAAO;;;;;;;;;;;;;;iCAFlB,eAAe;;0CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAFlB,eAAe;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAFlB,eAAe;;kDAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAFlB,eAAe;;kDAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;yCAFlB,eAAe;;kDAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;yCAFlB,eAAe;;kDAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAuNd,wBAAwB;;;;;;;;;;;;;;;;kDA6BpB,wBAAwB;;;;;;;;uIAM1C,cAAc,uBACA,wBAAwB;;;;;;;;CAiE7C,CAAC"}
1
+ {"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
@@ -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.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 = (state, { featureFlagsKey }) => state.quoteRequest.insufficientBal
172
- ? false
173
- : state.quotesRefreshCount <
174
- state.bridgeFeatureFlags[featureFlagsKey].maxRefreshCount;
175
- const selectQuoteRefreshRate = createBridgeSelector([
176
- ({ bridgeFeatureFlags }, { featureFlagsKey }) => bridgeFeatureFlags[featureFlagsKey],
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
  * ```