@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.
- 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 +239 -26
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +239 -26
- 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 +6 -21
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +6 -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/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,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 {
|
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
|
-
|
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:
|
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: [(
|
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
|
-
}
|
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
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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: [(
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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:
|
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;
|
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;
|
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.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
|
* ```
|