@metamask-previews/config-registry-controller 0.0.0-preview-32ed9958c
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 +14 -0
- package/LICENSE +20 -0
- package/README.md +15 -0
- package/dist/ConfigRegistryController.cjs +132 -0
- package/dist/ConfigRegistryController.cjs.map +1 -0
- package/dist/ConfigRegistryController.d.cts +134 -0
- package/dist/ConfigRegistryController.d.cts.map +1 -0
- package/dist/ConfigRegistryController.d.mts +134 -0
- package/dist/ConfigRegistryController.d.mts.map +1 -0
- package/dist/ConfigRegistryController.mjs +128 -0
- package/dist/ConfigRegistryController.mjs.map +1 -0
- package/dist/config-registry-api-service/config-registry-api-service.cjs +123 -0
- package/dist/config-registry-api-service/config-registry-api-service.cjs.map +1 -0
- package/dist/config-registry-api-service/config-registry-api-service.d.cts +56 -0
- package/dist/config-registry-api-service/config-registry-api-service.d.cts.map +1 -0
- package/dist/config-registry-api-service/config-registry-api-service.d.mts +56 -0
- package/dist/config-registry-api-service/config-registry-api-service.d.mts.map +1 -0
- package/dist/config-registry-api-service/config-registry-api-service.mjs +119 -0
- package/dist/config-registry-api-service/config-registry-api-service.mjs.map +1 -0
- package/dist/config-registry-api-service/filters.cjs +30 -0
- package/dist/config-registry-api-service/filters.cjs.map +1 -0
- package/dist/config-registry-api-service/filters.d.cts +15 -0
- package/dist/config-registry-api-service/filters.d.cts.map +1 -0
- package/dist/config-registry-api-service/filters.d.mts +15 -0
- package/dist/config-registry-api-service/filters.d.mts.map +1 -0
- package/dist/config-registry-api-service/filters.mjs +26 -0
- package/dist/config-registry-api-service/filters.mjs.map +1 -0
- package/dist/config-registry-api-service/index.cjs +8 -0
- package/dist/config-registry-api-service/index.cjs.map +1 -0
- package/dist/config-registry-api-service/index.d.cts +6 -0
- package/dist/config-registry-api-service/index.d.cts.map +1 -0
- package/dist/config-registry-api-service/index.d.mts +6 -0
- package/dist/config-registry-api-service/index.d.mts.map +1 -0
- package/dist/config-registry-api-service/index.mjs +3 -0
- package/dist/config-registry-api-service/index.mjs.map +1 -0
- package/dist/config-registry-api-service/types.cjs +69 -0
- package/dist/config-registry-api-service/types.cjs.map +1 -0
- package/dist/config-registry-api-service/types.d.cts +476 -0
- package/dist/config-registry-api-service/types.d.cts.map +1 -0
- package/dist/config-registry-api-service/types.d.mts +476 -0
- package/dist/config-registry-api-service/types.d.mts.map +1 -0
- package/dist/config-registry-api-service/types.mjs +65 -0
- package/dist/config-registry-api-service/types.mjs.map +1 -0
- package/dist/index.cjs +15 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/selectors.cjs +34 -0
- package/dist/selectors.cjs.map +1 -0
- package/dist/selectors.d.cts +314 -0
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +314 -0
- package/dist/selectors.d.mts.map +1 -0
- package/dist/selectors.mjs +30 -0
- package/dist/selectors.mjs.map +1 -0
- package/dist/utils/feature-flags.cjs +27 -0
- package/dist/utils/feature-flags.cjs.map +1 -0
- package/dist/utils/feature-flags.d.cts +9 -0
- package/dist/utils/feature-flags.d.cts.map +1 -0
- package/dist/utils/feature-flags.d.mts +9 -0
- package/dist/utils/feature-flags.d.mts.map +1 -0
- package/dist/utils/feature-flags.mjs +23 -0
- package/dist/utils/feature-flags.mjs.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import type { RegistryNetworkConfig } from "./config-registry-api-service/index.cjs";
|
|
2
|
+
import type { ConfigRegistryControllerState } from "./ConfigRegistryController.cjs";
|
|
3
|
+
/**
|
|
4
|
+
* Base selector to get all networks from the controller state.
|
|
5
|
+
*
|
|
6
|
+
* @param state - The ConfigRegistryController state
|
|
7
|
+
* @returns All network configurations keyed by chain ID
|
|
8
|
+
*/
|
|
9
|
+
export declare const selectNetworks: (state: ConfigRegistryControllerState) => Record<string, RegistryNetworkConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* Selector to get featured, active, non-testnet networks.
|
|
12
|
+
* Use this for the default network list (e.g. main network picker).
|
|
13
|
+
*
|
|
14
|
+
* @param state - The ConfigRegistryController state
|
|
15
|
+
* @returns Filtered network configurations keyed by chain ID
|
|
16
|
+
*/
|
|
17
|
+
export declare const selectFeaturedNetworks: ((state: ConfigRegistryControllerState) => Record<string, {
|
|
18
|
+
imageUrl: string;
|
|
19
|
+
name: string;
|
|
20
|
+
chainId: string;
|
|
21
|
+
coingeckoPlatformId: string;
|
|
22
|
+
assets: {
|
|
23
|
+
listUrl: string;
|
|
24
|
+
native: {
|
|
25
|
+
symbol: string;
|
|
26
|
+
assetId: string;
|
|
27
|
+
imageUrl: string;
|
|
28
|
+
name: string;
|
|
29
|
+
decimals: number;
|
|
30
|
+
coingeckoCoinId: string;
|
|
31
|
+
};
|
|
32
|
+
governance?: {
|
|
33
|
+
symbol: string;
|
|
34
|
+
assetId: string;
|
|
35
|
+
imageUrl: string;
|
|
36
|
+
name: string;
|
|
37
|
+
decimals: number;
|
|
38
|
+
coingeckoCoinId: string;
|
|
39
|
+
} | undefined;
|
|
40
|
+
};
|
|
41
|
+
rpcProviders: {
|
|
42
|
+
default: {
|
|
43
|
+
url: string;
|
|
44
|
+
type: string;
|
|
45
|
+
networkClientId: string;
|
|
46
|
+
};
|
|
47
|
+
fallbacks: string[];
|
|
48
|
+
};
|
|
49
|
+
blockExplorerUrls: {
|
|
50
|
+
default: string;
|
|
51
|
+
fallbacks: string[];
|
|
52
|
+
};
|
|
53
|
+
config: {
|
|
54
|
+
isActive: boolean;
|
|
55
|
+
isTestnet: boolean;
|
|
56
|
+
isDefault: boolean;
|
|
57
|
+
isFeatured: boolean;
|
|
58
|
+
isDeprecated: boolean;
|
|
59
|
+
isDeletable: boolean;
|
|
60
|
+
priority: number;
|
|
61
|
+
};
|
|
62
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
63
|
+
}>) & {
|
|
64
|
+
clearCache: () => void;
|
|
65
|
+
resultsCount: () => number;
|
|
66
|
+
resetResultsCount: () => void;
|
|
67
|
+
} & {
|
|
68
|
+
resultFunc: (resultFuncArgs_0: Record<string, {
|
|
69
|
+
imageUrl: string;
|
|
70
|
+
name: string;
|
|
71
|
+
chainId: string;
|
|
72
|
+
coingeckoPlatformId: string;
|
|
73
|
+
assets: {
|
|
74
|
+
listUrl: string;
|
|
75
|
+
native: {
|
|
76
|
+
symbol: string;
|
|
77
|
+
assetId: string;
|
|
78
|
+
imageUrl: string;
|
|
79
|
+
name: string;
|
|
80
|
+
decimals: number;
|
|
81
|
+
coingeckoCoinId: string;
|
|
82
|
+
};
|
|
83
|
+
governance?: {
|
|
84
|
+
symbol: string;
|
|
85
|
+
assetId: string;
|
|
86
|
+
imageUrl: string;
|
|
87
|
+
name: string;
|
|
88
|
+
decimals: number;
|
|
89
|
+
coingeckoCoinId: string;
|
|
90
|
+
} | undefined;
|
|
91
|
+
};
|
|
92
|
+
rpcProviders: {
|
|
93
|
+
default: {
|
|
94
|
+
url: string;
|
|
95
|
+
type: string;
|
|
96
|
+
networkClientId: string;
|
|
97
|
+
};
|
|
98
|
+
fallbacks: string[];
|
|
99
|
+
};
|
|
100
|
+
blockExplorerUrls: {
|
|
101
|
+
default: string;
|
|
102
|
+
fallbacks: string[];
|
|
103
|
+
};
|
|
104
|
+
config: {
|
|
105
|
+
isActive: boolean;
|
|
106
|
+
isTestnet: boolean;
|
|
107
|
+
isDefault: boolean;
|
|
108
|
+
isFeatured: boolean;
|
|
109
|
+
isDeprecated: boolean;
|
|
110
|
+
isDeletable: boolean;
|
|
111
|
+
priority: number;
|
|
112
|
+
};
|
|
113
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
114
|
+
}>) => Record<string, {
|
|
115
|
+
imageUrl: string;
|
|
116
|
+
name: string;
|
|
117
|
+
chainId: string;
|
|
118
|
+
coingeckoPlatformId: string;
|
|
119
|
+
assets: {
|
|
120
|
+
listUrl: string;
|
|
121
|
+
native: {
|
|
122
|
+
symbol: string;
|
|
123
|
+
assetId: string;
|
|
124
|
+
imageUrl: string;
|
|
125
|
+
name: string;
|
|
126
|
+
decimals: number;
|
|
127
|
+
coingeckoCoinId: string;
|
|
128
|
+
};
|
|
129
|
+
governance?: {
|
|
130
|
+
symbol: string;
|
|
131
|
+
assetId: string;
|
|
132
|
+
imageUrl: string;
|
|
133
|
+
name: string;
|
|
134
|
+
decimals: number;
|
|
135
|
+
coingeckoCoinId: string;
|
|
136
|
+
} | undefined;
|
|
137
|
+
};
|
|
138
|
+
rpcProviders: {
|
|
139
|
+
default: {
|
|
140
|
+
url: string;
|
|
141
|
+
type: string;
|
|
142
|
+
networkClientId: string;
|
|
143
|
+
};
|
|
144
|
+
fallbacks: string[];
|
|
145
|
+
};
|
|
146
|
+
blockExplorerUrls: {
|
|
147
|
+
default: string;
|
|
148
|
+
fallbacks: string[];
|
|
149
|
+
};
|
|
150
|
+
config: {
|
|
151
|
+
isActive: boolean;
|
|
152
|
+
isTestnet: boolean;
|
|
153
|
+
isDefault: boolean;
|
|
154
|
+
isFeatured: boolean;
|
|
155
|
+
isDeprecated: boolean;
|
|
156
|
+
isDeletable: boolean;
|
|
157
|
+
priority: number;
|
|
158
|
+
};
|
|
159
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
160
|
+
}>;
|
|
161
|
+
memoizedResultFunc: ((resultFuncArgs_0: Record<string, {
|
|
162
|
+
imageUrl: string;
|
|
163
|
+
name: string;
|
|
164
|
+
chainId: string;
|
|
165
|
+
coingeckoPlatformId: string;
|
|
166
|
+
assets: {
|
|
167
|
+
listUrl: string;
|
|
168
|
+
native: {
|
|
169
|
+
symbol: string;
|
|
170
|
+
assetId: string;
|
|
171
|
+
imageUrl: string;
|
|
172
|
+
name: string;
|
|
173
|
+
decimals: number;
|
|
174
|
+
coingeckoCoinId: string;
|
|
175
|
+
};
|
|
176
|
+
governance?: {
|
|
177
|
+
symbol: string;
|
|
178
|
+
assetId: string;
|
|
179
|
+
imageUrl: string;
|
|
180
|
+
name: string;
|
|
181
|
+
decimals: number;
|
|
182
|
+
coingeckoCoinId: string;
|
|
183
|
+
} | undefined;
|
|
184
|
+
};
|
|
185
|
+
rpcProviders: {
|
|
186
|
+
default: {
|
|
187
|
+
url: string;
|
|
188
|
+
type: string;
|
|
189
|
+
networkClientId: string;
|
|
190
|
+
};
|
|
191
|
+
fallbacks: string[];
|
|
192
|
+
};
|
|
193
|
+
blockExplorerUrls: {
|
|
194
|
+
default: string;
|
|
195
|
+
fallbacks: string[];
|
|
196
|
+
};
|
|
197
|
+
config: {
|
|
198
|
+
isActive: boolean;
|
|
199
|
+
isTestnet: boolean;
|
|
200
|
+
isDefault: boolean;
|
|
201
|
+
isFeatured: boolean;
|
|
202
|
+
isDeprecated: boolean;
|
|
203
|
+
isDeletable: boolean;
|
|
204
|
+
priority: number;
|
|
205
|
+
};
|
|
206
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
207
|
+
}>) => Record<string, {
|
|
208
|
+
imageUrl: string;
|
|
209
|
+
name: string;
|
|
210
|
+
chainId: string;
|
|
211
|
+
coingeckoPlatformId: string;
|
|
212
|
+
assets: {
|
|
213
|
+
listUrl: string;
|
|
214
|
+
native: {
|
|
215
|
+
symbol: string;
|
|
216
|
+
assetId: string;
|
|
217
|
+
imageUrl: string;
|
|
218
|
+
name: string;
|
|
219
|
+
decimals: number;
|
|
220
|
+
coingeckoCoinId: string;
|
|
221
|
+
};
|
|
222
|
+
governance?: {
|
|
223
|
+
symbol: string;
|
|
224
|
+
assetId: string;
|
|
225
|
+
imageUrl: string;
|
|
226
|
+
name: string;
|
|
227
|
+
decimals: number;
|
|
228
|
+
coingeckoCoinId: string;
|
|
229
|
+
} | undefined;
|
|
230
|
+
};
|
|
231
|
+
rpcProviders: {
|
|
232
|
+
default: {
|
|
233
|
+
url: string;
|
|
234
|
+
type: string;
|
|
235
|
+
networkClientId: string;
|
|
236
|
+
};
|
|
237
|
+
fallbacks: string[];
|
|
238
|
+
};
|
|
239
|
+
blockExplorerUrls: {
|
|
240
|
+
default: string;
|
|
241
|
+
fallbacks: string[];
|
|
242
|
+
};
|
|
243
|
+
config: {
|
|
244
|
+
isActive: boolean;
|
|
245
|
+
isTestnet: boolean;
|
|
246
|
+
isDefault: boolean;
|
|
247
|
+
isFeatured: boolean;
|
|
248
|
+
isDeprecated: boolean;
|
|
249
|
+
isDeletable: boolean;
|
|
250
|
+
priority: number;
|
|
251
|
+
};
|
|
252
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
253
|
+
}>) & {
|
|
254
|
+
clearCache: () => void;
|
|
255
|
+
resultsCount: () => number;
|
|
256
|
+
resetResultsCount: () => void;
|
|
257
|
+
};
|
|
258
|
+
lastResult: () => Record<string, {
|
|
259
|
+
imageUrl: string;
|
|
260
|
+
name: string;
|
|
261
|
+
chainId: string;
|
|
262
|
+
coingeckoPlatformId: string;
|
|
263
|
+
assets: {
|
|
264
|
+
listUrl: string;
|
|
265
|
+
native: {
|
|
266
|
+
symbol: string;
|
|
267
|
+
assetId: string;
|
|
268
|
+
imageUrl: string;
|
|
269
|
+
name: string;
|
|
270
|
+
decimals: number;
|
|
271
|
+
coingeckoCoinId: string;
|
|
272
|
+
};
|
|
273
|
+
governance?: {
|
|
274
|
+
symbol: string;
|
|
275
|
+
assetId: string;
|
|
276
|
+
imageUrl: string;
|
|
277
|
+
name: string;
|
|
278
|
+
decimals: number;
|
|
279
|
+
coingeckoCoinId: string;
|
|
280
|
+
} | undefined;
|
|
281
|
+
};
|
|
282
|
+
rpcProviders: {
|
|
283
|
+
default: {
|
|
284
|
+
url: string;
|
|
285
|
+
type: string;
|
|
286
|
+
networkClientId: string;
|
|
287
|
+
};
|
|
288
|
+
fallbacks: string[];
|
|
289
|
+
};
|
|
290
|
+
blockExplorerUrls: {
|
|
291
|
+
default: string;
|
|
292
|
+
fallbacks: string[];
|
|
293
|
+
};
|
|
294
|
+
config: {
|
|
295
|
+
isActive: boolean;
|
|
296
|
+
isTestnet: boolean;
|
|
297
|
+
isDefault: boolean;
|
|
298
|
+
isFeatured: boolean;
|
|
299
|
+
isDeprecated: boolean;
|
|
300
|
+
isDeletable: boolean;
|
|
301
|
+
priority: number;
|
|
302
|
+
};
|
|
303
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
304
|
+
}>;
|
|
305
|
+
dependencies: [(state: ConfigRegistryControllerState) => Record<string, RegistryNetworkConfig>];
|
|
306
|
+
recomputations: () => number;
|
|
307
|
+
resetRecomputations: () => void;
|
|
308
|
+
dependencyRecomputations: () => number;
|
|
309
|
+
resetDependencyRecomputations: () => void;
|
|
310
|
+
} & {
|
|
311
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
312
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
313
|
+
};
|
|
314
|
+
//# sourceMappingURL=selectors.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gDAAsC;AAC3E,OAAO,KAAK,EAAE,6BAA6B,EAAE,uCAAmC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAClB,6BAA6B,KACnC,OAAO,MAAM,EAAE,qBAAqB,CAA2B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAV1B,6BAA6B,KACnC,OAAO,MAAM,EAAE,qBAAqB,CAAC;;;;;;;;CAwBvC,CAAC"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import type { RegistryNetworkConfig } from "./config-registry-api-service/index.mjs";
|
|
2
|
+
import type { ConfigRegistryControllerState } from "./ConfigRegistryController.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* Base selector to get all networks from the controller state.
|
|
5
|
+
*
|
|
6
|
+
* @param state - The ConfigRegistryController state
|
|
7
|
+
* @returns All network configurations keyed by chain ID
|
|
8
|
+
*/
|
|
9
|
+
export declare const selectNetworks: (state: ConfigRegistryControllerState) => Record<string, RegistryNetworkConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* Selector to get featured, active, non-testnet networks.
|
|
12
|
+
* Use this for the default network list (e.g. main network picker).
|
|
13
|
+
*
|
|
14
|
+
* @param state - The ConfigRegistryController state
|
|
15
|
+
* @returns Filtered network configurations keyed by chain ID
|
|
16
|
+
*/
|
|
17
|
+
export declare const selectFeaturedNetworks: ((state: ConfigRegistryControllerState) => Record<string, {
|
|
18
|
+
imageUrl: string;
|
|
19
|
+
name: string;
|
|
20
|
+
chainId: string;
|
|
21
|
+
coingeckoPlatformId: string;
|
|
22
|
+
assets: {
|
|
23
|
+
listUrl: string;
|
|
24
|
+
native: {
|
|
25
|
+
symbol: string;
|
|
26
|
+
assetId: string;
|
|
27
|
+
imageUrl: string;
|
|
28
|
+
name: string;
|
|
29
|
+
decimals: number;
|
|
30
|
+
coingeckoCoinId: string;
|
|
31
|
+
};
|
|
32
|
+
governance?: {
|
|
33
|
+
symbol: string;
|
|
34
|
+
assetId: string;
|
|
35
|
+
imageUrl: string;
|
|
36
|
+
name: string;
|
|
37
|
+
decimals: number;
|
|
38
|
+
coingeckoCoinId: string;
|
|
39
|
+
} | undefined;
|
|
40
|
+
};
|
|
41
|
+
rpcProviders: {
|
|
42
|
+
default: {
|
|
43
|
+
url: string;
|
|
44
|
+
type: string;
|
|
45
|
+
networkClientId: string;
|
|
46
|
+
};
|
|
47
|
+
fallbacks: string[];
|
|
48
|
+
};
|
|
49
|
+
blockExplorerUrls: {
|
|
50
|
+
default: string;
|
|
51
|
+
fallbacks: string[];
|
|
52
|
+
};
|
|
53
|
+
config: {
|
|
54
|
+
isActive: boolean;
|
|
55
|
+
isTestnet: boolean;
|
|
56
|
+
isDefault: boolean;
|
|
57
|
+
isFeatured: boolean;
|
|
58
|
+
isDeprecated: boolean;
|
|
59
|
+
isDeletable: boolean;
|
|
60
|
+
priority: number;
|
|
61
|
+
};
|
|
62
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
63
|
+
}>) & {
|
|
64
|
+
clearCache: () => void;
|
|
65
|
+
resultsCount: () => number;
|
|
66
|
+
resetResultsCount: () => void;
|
|
67
|
+
} & {
|
|
68
|
+
resultFunc: (resultFuncArgs_0: Record<string, {
|
|
69
|
+
imageUrl: string;
|
|
70
|
+
name: string;
|
|
71
|
+
chainId: string;
|
|
72
|
+
coingeckoPlatformId: string;
|
|
73
|
+
assets: {
|
|
74
|
+
listUrl: string;
|
|
75
|
+
native: {
|
|
76
|
+
symbol: string;
|
|
77
|
+
assetId: string;
|
|
78
|
+
imageUrl: string;
|
|
79
|
+
name: string;
|
|
80
|
+
decimals: number;
|
|
81
|
+
coingeckoCoinId: string;
|
|
82
|
+
};
|
|
83
|
+
governance?: {
|
|
84
|
+
symbol: string;
|
|
85
|
+
assetId: string;
|
|
86
|
+
imageUrl: string;
|
|
87
|
+
name: string;
|
|
88
|
+
decimals: number;
|
|
89
|
+
coingeckoCoinId: string;
|
|
90
|
+
} | undefined;
|
|
91
|
+
};
|
|
92
|
+
rpcProviders: {
|
|
93
|
+
default: {
|
|
94
|
+
url: string;
|
|
95
|
+
type: string;
|
|
96
|
+
networkClientId: string;
|
|
97
|
+
};
|
|
98
|
+
fallbacks: string[];
|
|
99
|
+
};
|
|
100
|
+
blockExplorerUrls: {
|
|
101
|
+
default: string;
|
|
102
|
+
fallbacks: string[];
|
|
103
|
+
};
|
|
104
|
+
config: {
|
|
105
|
+
isActive: boolean;
|
|
106
|
+
isTestnet: boolean;
|
|
107
|
+
isDefault: boolean;
|
|
108
|
+
isFeatured: boolean;
|
|
109
|
+
isDeprecated: boolean;
|
|
110
|
+
isDeletable: boolean;
|
|
111
|
+
priority: number;
|
|
112
|
+
};
|
|
113
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
114
|
+
}>) => Record<string, {
|
|
115
|
+
imageUrl: string;
|
|
116
|
+
name: string;
|
|
117
|
+
chainId: string;
|
|
118
|
+
coingeckoPlatformId: string;
|
|
119
|
+
assets: {
|
|
120
|
+
listUrl: string;
|
|
121
|
+
native: {
|
|
122
|
+
symbol: string;
|
|
123
|
+
assetId: string;
|
|
124
|
+
imageUrl: string;
|
|
125
|
+
name: string;
|
|
126
|
+
decimals: number;
|
|
127
|
+
coingeckoCoinId: string;
|
|
128
|
+
};
|
|
129
|
+
governance?: {
|
|
130
|
+
symbol: string;
|
|
131
|
+
assetId: string;
|
|
132
|
+
imageUrl: string;
|
|
133
|
+
name: string;
|
|
134
|
+
decimals: number;
|
|
135
|
+
coingeckoCoinId: string;
|
|
136
|
+
} | undefined;
|
|
137
|
+
};
|
|
138
|
+
rpcProviders: {
|
|
139
|
+
default: {
|
|
140
|
+
url: string;
|
|
141
|
+
type: string;
|
|
142
|
+
networkClientId: string;
|
|
143
|
+
};
|
|
144
|
+
fallbacks: string[];
|
|
145
|
+
};
|
|
146
|
+
blockExplorerUrls: {
|
|
147
|
+
default: string;
|
|
148
|
+
fallbacks: string[];
|
|
149
|
+
};
|
|
150
|
+
config: {
|
|
151
|
+
isActive: boolean;
|
|
152
|
+
isTestnet: boolean;
|
|
153
|
+
isDefault: boolean;
|
|
154
|
+
isFeatured: boolean;
|
|
155
|
+
isDeprecated: boolean;
|
|
156
|
+
isDeletable: boolean;
|
|
157
|
+
priority: number;
|
|
158
|
+
};
|
|
159
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
160
|
+
}>;
|
|
161
|
+
memoizedResultFunc: ((resultFuncArgs_0: Record<string, {
|
|
162
|
+
imageUrl: string;
|
|
163
|
+
name: string;
|
|
164
|
+
chainId: string;
|
|
165
|
+
coingeckoPlatformId: string;
|
|
166
|
+
assets: {
|
|
167
|
+
listUrl: string;
|
|
168
|
+
native: {
|
|
169
|
+
symbol: string;
|
|
170
|
+
assetId: string;
|
|
171
|
+
imageUrl: string;
|
|
172
|
+
name: string;
|
|
173
|
+
decimals: number;
|
|
174
|
+
coingeckoCoinId: string;
|
|
175
|
+
};
|
|
176
|
+
governance?: {
|
|
177
|
+
symbol: string;
|
|
178
|
+
assetId: string;
|
|
179
|
+
imageUrl: string;
|
|
180
|
+
name: string;
|
|
181
|
+
decimals: number;
|
|
182
|
+
coingeckoCoinId: string;
|
|
183
|
+
} | undefined;
|
|
184
|
+
};
|
|
185
|
+
rpcProviders: {
|
|
186
|
+
default: {
|
|
187
|
+
url: string;
|
|
188
|
+
type: string;
|
|
189
|
+
networkClientId: string;
|
|
190
|
+
};
|
|
191
|
+
fallbacks: string[];
|
|
192
|
+
};
|
|
193
|
+
blockExplorerUrls: {
|
|
194
|
+
default: string;
|
|
195
|
+
fallbacks: string[];
|
|
196
|
+
};
|
|
197
|
+
config: {
|
|
198
|
+
isActive: boolean;
|
|
199
|
+
isTestnet: boolean;
|
|
200
|
+
isDefault: boolean;
|
|
201
|
+
isFeatured: boolean;
|
|
202
|
+
isDeprecated: boolean;
|
|
203
|
+
isDeletable: boolean;
|
|
204
|
+
priority: number;
|
|
205
|
+
};
|
|
206
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
207
|
+
}>) => Record<string, {
|
|
208
|
+
imageUrl: string;
|
|
209
|
+
name: string;
|
|
210
|
+
chainId: string;
|
|
211
|
+
coingeckoPlatformId: string;
|
|
212
|
+
assets: {
|
|
213
|
+
listUrl: string;
|
|
214
|
+
native: {
|
|
215
|
+
symbol: string;
|
|
216
|
+
assetId: string;
|
|
217
|
+
imageUrl: string;
|
|
218
|
+
name: string;
|
|
219
|
+
decimals: number;
|
|
220
|
+
coingeckoCoinId: string;
|
|
221
|
+
};
|
|
222
|
+
governance?: {
|
|
223
|
+
symbol: string;
|
|
224
|
+
assetId: string;
|
|
225
|
+
imageUrl: string;
|
|
226
|
+
name: string;
|
|
227
|
+
decimals: number;
|
|
228
|
+
coingeckoCoinId: string;
|
|
229
|
+
} | undefined;
|
|
230
|
+
};
|
|
231
|
+
rpcProviders: {
|
|
232
|
+
default: {
|
|
233
|
+
url: string;
|
|
234
|
+
type: string;
|
|
235
|
+
networkClientId: string;
|
|
236
|
+
};
|
|
237
|
+
fallbacks: string[];
|
|
238
|
+
};
|
|
239
|
+
blockExplorerUrls: {
|
|
240
|
+
default: string;
|
|
241
|
+
fallbacks: string[];
|
|
242
|
+
};
|
|
243
|
+
config: {
|
|
244
|
+
isActive: boolean;
|
|
245
|
+
isTestnet: boolean;
|
|
246
|
+
isDefault: boolean;
|
|
247
|
+
isFeatured: boolean;
|
|
248
|
+
isDeprecated: boolean;
|
|
249
|
+
isDeletable: boolean;
|
|
250
|
+
priority: number;
|
|
251
|
+
};
|
|
252
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
253
|
+
}>) & {
|
|
254
|
+
clearCache: () => void;
|
|
255
|
+
resultsCount: () => number;
|
|
256
|
+
resetResultsCount: () => void;
|
|
257
|
+
};
|
|
258
|
+
lastResult: () => Record<string, {
|
|
259
|
+
imageUrl: string;
|
|
260
|
+
name: string;
|
|
261
|
+
chainId: string;
|
|
262
|
+
coingeckoPlatformId: string;
|
|
263
|
+
assets: {
|
|
264
|
+
listUrl: string;
|
|
265
|
+
native: {
|
|
266
|
+
symbol: string;
|
|
267
|
+
assetId: string;
|
|
268
|
+
imageUrl: string;
|
|
269
|
+
name: string;
|
|
270
|
+
decimals: number;
|
|
271
|
+
coingeckoCoinId: string;
|
|
272
|
+
};
|
|
273
|
+
governance?: {
|
|
274
|
+
symbol: string;
|
|
275
|
+
assetId: string;
|
|
276
|
+
imageUrl: string;
|
|
277
|
+
name: string;
|
|
278
|
+
decimals: number;
|
|
279
|
+
coingeckoCoinId: string;
|
|
280
|
+
} | undefined;
|
|
281
|
+
};
|
|
282
|
+
rpcProviders: {
|
|
283
|
+
default: {
|
|
284
|
+
url: string;
|
|
285
|
+
type: string;
|
|
286
|
+
networkClientId: string;
|
|
287
|
+
};
|
|
288
|
+
fallbacks: string[];
|
|
289
|
+
};
|
|
290
|
+
blockExplorerUrls: {
|
|
291
|
+
default: string;
|
|
292
|
+
fallbacks: string[];
|
|
293
|
+
};
|
|
294
|
+
config: {
|
|
295
|
+
isActive: boolean;
|
|
296
|
+
isTestnet: boolean;
|
|
297
|
+
isDefault: boolean;
|
|
298
|
+
isFeatured: boolean;
|
|
299
|
+
isDeprecated: boolean;
|
|
300
|
+
isDeletable: boolean;
|
|
301
|
+
priority: number;
|
|
302
|
+
};
|
|
303
|
+
geckoTerminalPlatformId?: string | undefined;
|
|
304
|
+
}>;
|
|
305
|
+
dependencies: [(state: ConfigRegistryControllerState) => Record<string, RegistryNetworkConfig>];
|
|
306
|
+
recomputations: () => number;
|
|
307
|
+
resetRecomputations: () => void;
|
|
308
|
+
dependencyRecomputations: () => number;
|
|
309
|
+
resetDependencyRecomputations: () => void;
|
|
310
|
+
} & {
|
|
311
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
312
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
313
|
+
};
|
|
314
|
+
//# sourceMappingURL=selectors.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gDAAsC;AAC3E,OAAO,KAAK,EAAE,6BAA6B,EAAE,uCAAmC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAClB,6BAA6B,KACnC,OAAO,MAAM,EAAE,qBAAqB,CAA2B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAV1B,6BAA6B,KACnC,OAAO,MAAM,EAAE,qBAAqB,CAAC;;;;;;;;CAwBvC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createSelector } from "reselect";
|
|
2
|
+
import { filterNetworks } from "./config-registry-api-service/index.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* Base selector to get all networks from the controller state.
|
|
5
|
+
*
|
|
6
|
+
* @param state - The ConfigRegistryController state
|
|
7
|
+
* @returns All network configurations keyed by chain ID
|
|
8
|
+
*/
|
|
9
|
+
export const selectNetworks = (state) => state.configs.networks;
|
|
10
|
+
/**
|
|
11
|
+
* Selector to get featured, active, non-testnet networks.
|
|
12
|
+
* Use this for the default network list (e.g. main network picker).
|
|
13
|
+
*
|
|
14
|
+
* @param state - The ConfigRegistryController state
|
|
15
|
+
* @returns Filtered network configurations keyed by chain ID
|
|
16
|
+
*/
|
|
17
|
+
export const selectFeaturedNetworks = createSelector(selectNetworks, (networks) => {
|
|
18
|
+
const networkArray = Object.values(networks);
|
|
19
|
+
const filtered = filterNetworks(networkArray, {
|
|
20
|
+
isFeatured: true,
|
|
21
|
+
isActive: true,
|
|
22
|
+
isTestnet: false,
|
|
23
|
+
});
|
|
24
|
+
const result = {};
|
|
25
|
+
filtered.forEach((config) => {
|
|
26
|
+
result[config.chainId] = config;
|
|
27
|
+
});
|
|
28
|
+
return result;
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=selectors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB;AAE1C,OAAO,EAAE,cAAc,EAAE,gDAAsC;AAI/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAoC,EACG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAClD,cAAc,EACd,CAAC,QAAQ,EAAyC,EAAE;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE;QAC5C,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC","sourcesContent":["import { createSelector } from 'reselect';\n\nimport { filterNetworks } from './config-registry-api-service';\nimport type { RegistryNetworkConfig } from './config-registry-api-service';\nimport type { ConfigRegistryControllerState } from './ConfigRegistryController';\n\n/**\n * Base selector to get all networks from the controller state.\n *\n * @param state - The ConfigRegistryController state\n * @returns All network configurations keyed by chain ID\n */\nexport const selectNetworks = (\n state: ConfigRegistryControllerState,\n): Record<string, RegistryNetworkConfig> => state.configs.networks;\n\n/**\n * Selector to get featured, active, non-testnet networks.\n * Use this for the default network list (e.g. main network picker).\n *\n * @param state - The ConfigRegistryController state\n * @returns Filtered network configurations keyed by chain ID\n */\nexport const selectFeaturedNetworks = createSelector(\n selectNetworks,\n (networks): Record<string, RegistryNetworkConfig> => {\n const networkArray = Object.values(networks);\n const filtered = filterNetworks(networkArray, {\n isFeatured: true,\n isActive: true,\n isTestnet: false,\n });\n const result: Record<string, RegistryNetworkConfig> = {};\n filtered.forEach((config) => {\n result[config.chainId] = config;\n });\n return result;\n },\n);\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isConfigRegistryApiEnabled = void 0;
|
|
4
|
+
const FEATURE_FLAG_KEY = 'configRegistryApiEnabled';
|
|
5
|
+
const DEFAULT_FEATURE_FLAG_VALUE = false;
|
|
6
|
+
/**
|
|
7
|
+
* Checks if the config registry API feature flag is enabled.
|
|
8
|
+
*
|
|
9
|
+
* @param messenger - The controller messenger.
|
|
10
|
+
* @returns True if the feature flag is enabled, false otherwise.
|
|
11
|
+
*/
|
|
12
|
+
function isConfigRegistryApiEnabled(messenger) {
|
|
13
|
+
try {
|
|
14
|
+
const state = messenger.call('RemoteFeatureFlagController:getState');
|
|
15
|
+
const featureFlags = state.remoteFeatureFlags;
|
|
16
|
+
const flagValue = featureFlags[FEATURE_FLAG_KEY];
|
|
17
|
+
if (typeof flagValue === 'boolean') {
|
|
18
|
+
return flagValue;
|
|
19
|
+
}
|
|
20
|
+
return DEFAULT_FEATURE_FLAG_VALUE;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return DEFAULT_FEATURE_FLAG_VALUE;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.isConfigRegistryApiEnabled = isConfigRegistryApiEnabled;
|
|
27
|
+
//# sourceMappingURL=feature-flags.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-flags.cjs","sourceRoot":"","sources":["../../src/utils/feature-flags.ts"],"names":[],"mappings":";;;AAEA,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AACpD,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEzC;;;;;GAKG;AACH,SAAgB,0BAA0B,CACxC,SAAkC;IAElC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAE9C,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAEjD,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,0BAA0B,CAAC;IACpC,CAAC;AACH,CAAC;AAjBD,gEAiBC","sourcesContent":["import type { ConfigRegistryMessenger } from '../ConfigRegistryController';\n\nconst FEATURE_FLAG_KEY = 'configRegistryApiEnabled';\nconst DEFAULT_FEATURE_FLAG_VALUE = false;\n\n/**\n * Checks if the config registry API feature flag is enabled.\n *\n * @param messenger - The controller messenger.\n * @returns True if the feature flag is enabled, false otherwise.\n */\nexport function isConfigRegistryApiEnabled(\n messenger: ConfigRegistryMessenger,\n): boolean {\n try {\n const state = messenger.call('RemoteFeatureFlagController:getState');\n const featureFlags = state.remoteFeatureFlags;\n\n const flagValue = featureFlags[FEATURE_FLAG_KEY];\n\n if (typeof flagValue === 'boolean') {\n return flagValue;\n }\n\n return DEFAULT_FEATURE_FLAG_VALUE;\n } catch {\n return DEFAULT_FEATURE_FLAG_VALUE;\n }\n}\n"]}
|