@metamask-previews/network-enablement-controller 6.0.5-preview-4f4c98e → 6.0.5-preview-eb263b0ee
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 +0 -1
- package/dist/NetworkEnablementController-method-action-types.cjs +7 -0
- package/dist/NetworkEnablementController-method-action-types.cjs.map +1 -0
- package/dist/{NetworkEnablementController-method-action-types.d.ts → NetworkEnablementController-method-action-types.d.cts} +2 -2
- package/dist/NetworkEnablementController-method-action-types.d.cts.map +1 -0
- package/dist/NetworkEnablementController-method-action-types.d.mts +185 -0
- package/dist/NetworkEnablementController-method-action-types.d.mts.map +1 -0
- package/dist/{NetworkEnablementController-method-action-types.js → NetworkEnablementController-method-action-types.mjs} +1 -1
- package/dist/NetworkEnablementController-method-action-types.mjs.map +1 -0
- package/dist/NetworkEnablementController.cjs +590 -0
- package/dist/NetworkEnablementController.cjs.map +1 -0
- package/dist/{NetworkEnablementController.d.ts → NetworkEnablementController.d.cts} +10 -10
- package/dist/NetworkEnablementController.d.cts.map +1 -0
- package/dist/NetworkEnablementController.d.mts +234 -0
- package/dist/NetworkEnablementController.d.mts.map +1 -0
- package/dist/{NetworkEnablementController.js → NetworkEnablementController.mjs} +9 -9
- package/dist/NetworkEnablementController.mjs.map +1 -0
- package/dist/constants.cjs +22 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +3 -0
- package/dist/constants.d.cts.map +1 -0
- package/dist/constants.d.mts +3 -0
- package/dist/constants.d.mts.map +1 -0
- package/dist/{constants.js → constants.mjs} +1 -1
- package/dist/constants.mjs.map +1 -0
- package/dist/index.cjs +18 -0
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.ts → index.d.cts} +6 -6
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +4 -0
- package/dist/index.mjs.map +1 -0
- package/dist/selectors.cjs +87 -0
- package/dist/selectors.cjs.map +1 -0
- package/dist/{selectors.d.ts → selectors.d.cts} +30 -18
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +280 -0
- package/dist/selectors.d.mts.map +1 -0
- package/dist/{selectors.js → selectors.mjs} +4 -4
- package/dist/selectors.mjs.map +1 -0
- package/dist/services/Slip44Service.cjs +182 -0
- package/dist/services/Slip44Service.cjs.map +1 -0
- package/dist/services/{Slip44Service.d.ts → Slip44Service.d.cts} +1 -1
- package/dist/services/Slip44Service.d.cts.map +1 -0
- package/dist/services/Slip44Service.d.mts +63 -0
- package/dist/services/Slip44Service.d.mts.map +1 -0
- package/dist/services/{Slip44Service.js → Slip44Service.mjs} +3 -3
- package/dist/services/Slip44Service.mjs.map +1 -0
- package/dist/services/index.cjs +11 -0
- package/dist/services/index.cjs.map +1 -0
- package/dist/services/{index.d.ts → index.d.cts} +2 -2
- package/dist/services/index.d.cts.map +1 -0
- package/dist/services/index.d.mts +5 -0
- package/dist/services/index.d.mts.map +1 -0
- package/dist/services/{index.js → index.mjs} +2 -2
- package/dist/services/index.mjs.map +1 -0
- package/dist/utils.cjs +62 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/{utils.d.ts → utils.d.cts} +3 -3
- package/dist/utils.d.cts.map +1 -0
- package/dist/utils.d.mts +36 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/{utils.js → utils.mjs} +4 -4
- package/dist/utils.mjs.map +1 -0
- package/package.json +16 -12
- package/dist/NetworkEnablementController-method-action-types.d.ts.map +0 -1
- package/dist/NetworkEnablementController-method-action-types.js.map +0 -1
- package/dist/NetworkEnablementController.d.ts.map +0 -1
- package/dist/NetworkEnablementController.js.map +0 -1
- package/dist/constants.d.ts +0 -3
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/dist/selectors.d.ts.map +0 -1
- package/dist/selectors.js.map +0 -1
- package/dist/services/Slip44Service.d.ts.map +0 -1
- package/dist/services/Slip44Service.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js.map +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSlip44BySymbol = exports.getEvmSlip44 = exports.Slip44Service = exports.selectEnabledSolanaNetworks = exports.selectEnabledEvmNetworks = exports.selectEnabledNetworksCount = exports.selectAllEnabledNetworks = exports.createSelectorForEnabledNetworksForNamespace = exports.selectIsNetworkEnabled = exports.selectEnabledNetworkMap = exports.NetworkEnablementController = void 0;
|
|
4
|
+
var NetworkEnablementController_js_1 = require("./NetworkEnablementController.cjs");
|
|
5
|
+
Object.defineProperty(exports, "NetworkEnablementController", { enumerable: true, get: function () { return NetworkEnablementController_js_1.NetworkEnablementController; } });
|
|
6
|
+
var selectors_js_1 = require("./selectors.cjs");
|
|
7
|
+
Object.defineProperty(exports, "selectEnabledNetworkMap", { enumerable: true, get: function () { return selectors_js_1.selectEnabledNetworkMap; } });
|
|
8
|
+
Object.defineProperty(exports, "selectIsNetworkEnabled", { enumerable: true, get: function () { return selectors_js_1.selectIsNetworkEnabled; } });
|
|
9
|
+
Object.defineProperty(exports, "createSelectorForEnabledNetworksForNamespace", { enumerable: true, get: function () { return selectors_js_1.createSelectorForEnabledNetworksForNamespace; } });
|
|
10
|
+
Object.defineProperty(exports, "selectAllEnabledNetworks", { enumerable: true, get: function () { return selectors_js_1.selectAllEnabledNetworks; } });
|
|
11
|
+
Object.defineProperty(exports, "selectEnabledNetworksCount", { enumerable: true, get: function () { return selectors_js_1.selectEnabledNetworksCount; } });
|
|
12
|
+
Object.defineProperty(exports, "selectEnabledEvmNetworks", { enumerable: true, get: function () { return selectors_js_1.selectEnabledEvmNetworks; } });
|
|
13
|
+
Object.defineProperty(exports, "selectEnabledSolanaNetworks", { enumerable: true, get: function () { return selectors_js_1.selectEnabledSolanaNetworks; } });
|
|
14
|
+
var index_js_1 = require("./services/index.cjs");
|
|
15
|
+
Object.defineProperty(exports, "Slip44Service", { enumerable: true, get: function () { return index_js_1.Slip44Service; } });
|
|
16
|
+
Object.defineProperty(exports, "getEvmSlip44", { enumerable: true, get: function () { return index_js_1.getEvmSlip44; } });
|
|
17
|
+
Object.defineProperty(exports, "getSlip44BySymbol", { enumerable: true, get: function () { return index_js_1.getSlip44BySymbol; } });
|
|
18
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oFAA+E;AAAtE,6IAAA,2BAA2B,OAAA;AA2BpC,gDAQwB;AAPtB,uHAAA,uBAAuB,OAAA;AACvB,sHAAA,sBAAsB,OAAA;AACtB,4IAAA,4CAA4C,OAAA;AAC5C,wHAAA,wBAAwB,OAAA;AACxB,0HAAA,0BAA0B,OAAA;AAC1B,wHAAA,wBAAwB,OAAA;AACxB,2HAAA,2BAA2B,OAAA;AAG7B,iDAI6B;AAH3B,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,6GAAA,iBAAiB,OAAA","sourcesContent":["export { NetworkEnablementController } from './NetworkEnablementController.js';\n\nexport type {\n NetworkEnablementControllerState,\n NetworkEnablementControllerGetStateAction,\n NetworkEnablementControllerActions,\n NetworkEnablementControllerEvents,\n NetworkEnablementControllerStateChangeEvent,\n NetworkEnablementControllerMessenger,\n NativeAssetIdentifier,\n NativeAssetIdentifiersMap,\n NetworkConfig,\n} from './NetworkEnablementController.js';\n\nexport type {\n NetworkEnablementControllerEnableNetworkAction,\n NetworkEnablementControllerEnableNetworkInNamespaceAction,\n NetworkEnablementControllerEnableAllPopularNetworksAction,\n NetworkEnablementControllerInitAction,\n NetworkEnablementControllerInitNativeAssetIdentifiersAction,\n NetworkEnablementControllerDisableNetworkAction,\n NetworkEnablementControllerIsNetworkEnabledAction,\n NetworkEnablementControllerListPopularEvmNetworksAction,\n NetworkEnablementControllerListPopularMultichainNetworksAction,\n NetworkEnablementControllerListPopularNetworksAction,\n} from './NetworkEnablementController-method-action-types.js';\n\nexport {\n selectEnabledNetworkMap,\n selectIsNetworkEnabled,\n createSelectorForEnabledNetworksForNamespace,\n selectAllEnabledNetworks,\n selectEnabledNetworksCount,\n selectEnabledEvmNetworks,\n selectEnabledSolanaNetworks,\n} from './selectors.js';\n\nexport {\n Slip44Service,\n getEvmSlip44,\n getSlip44BySymbol,\n} from './services/index.js';\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { NetworkEnablementController } from
|
|
2
|
-
export type { NetworkEnablementControllerState, NetworkEnablementControllerGetStateAction, NetworkEnablementControllerActions, NetworkEnablementControllerEvents, NetworkEnablementControllerStateChangeEvent, NetworkEnablementControllerMessenger, NativeAssetIdentifier, NativeAssetIdentifiersMap, NetworkConfig, } from
|
|
3
|
-
export type { NetworkEnablementControllerEnableNetworkAction, NetworkEnablementControllerEnableNetworkInNamespaceAction, NetworkEnablementControllerEnableAllPopularNetworksAction, NetworkEnablementControllerInitAction, NetworkEnablementControllerInitNativeAssetIdentifiersAction, NetworkEnablementControllerDisableNetworkAction, NetworkEnablementControllerIsNetworkEnabledAction, NetworkEnablementControllerListPopularEvmNetworksAction, NetworkEnablementControllerListPopularMultichainNetworksAction, NetworkEnablementControllerListPopularNetworksAction, } from
|
|
4
|
-
export { selectEnabledNetworkMap, selectIsNetworkEnabled, createSelectorForEnabledNetworksForNamespace, selectAllEnabledNetworks, selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks, } from
|
|
5
|
-
export { Slip44Service, getEvmSlip44, getSlip44BySymbol, } from
|
|
6
|
-
//# sourceMappingURL=index.d.
|
|
1
|
+
export { NetworkEnablementController } from "./NetworkEnablementController.cjs";
|
|
2
|
+
export type { NetworkEnablementControllerState, NetworkEnablementControllerGetStateAction, NetworkEnablementControllerActions, NetworkEnablementControllerEvents, NetworkEnablementControllerStateChangeEvent, NetworkEnablementControllerMessenger, NativeAssetIdentifier, NativeAssetIdentifiersMap, NetworkConfig, } from "./NetworkEnablementController.cjs";
|
|
3
|
+
export type { NetworkEnablementControllerEnableNetworkAction, NetworkEnablementControllerEnableNetworkInNamespaceAction, NetworkEnablementControllerEnableAllPopularNetworksAction, NetworkEnablementControllerInitAction, NetworkEnablementControllerInitNativeAssetIdentifiersAction, NetworkEnablementControllerDisableNetworkAction, NetworkEnablementControllerIsNetworkEnabledAction, NetworkEnablementControllerListPopularEvmNetworksAction, NetworkEnablementControllerListPopularMultichainNetworksAction, NetworkEnablementControllerListPopularNetworksAction, } from "./NetworkEnablementController-method-action-types.cjs";
|
|
4
|
+
export { selectEnabledNetworkMap, selectIsNetworkEnabled, createSelectorForEnabledNetworksForNamespace, selectAllEnabledNetworks, selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks, } from "./selectors.cjs";
|
|
5
|
+
export { Slip44Service, getEvmSlip44, getSlip44BySymbol, } from "./services/index.cjs";
|
|
6
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAyC;AAE/E,YAAY,EACV,gCAAgC,EAChC,yCAAyC,EACzC,kCAAkC,EAClC,iCAAiC,EACjC,2CAA2C,EAC3C,oCAAoC,EACpC,qBAAqB,EACrB,yBAAyB,EACzB,aAAa,GACd,0CAAyC;AAE1C,YAAY,EACV,8CAA8C,EAC9C,yDAAyD,EACzD,yDAAyD,EACzD,qCAAqC,EACrC,2DAA2D,EAC3D,+CAA+C,EAC/C,iDAAiD,EACjD,uDAAuD,EACvD,8DAA8D,EAC9D,oDAAoD,GACrD,8DAA6D;AAE9D,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,4CAA4C,EAC5C,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,GAC5B,wBAAuB;AAExB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,GAClB,6BAA4B"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { NetworkEnablementController } from "./NetworkEnablementController.mjs";
|
|
2
|
+
export type { NetworkEnablementControllerState, NetworkEnablementControllerGetStateAction, NetworkEnablementControllerActions, NetworkEnablementControllerEvents, NetworkEnablementControllerStateChangeEvent, NetworkEnablementControllerMessenger, NativeAssetIdentifier, NativeAssetIdentifiersMap, NetworkConfig, } from "./NetworkEnablementController.mjs";
|
|
3
|
+
export type { NetworkEnablementControllerEnableNetworkAction, NetworkEnablementControllerEnableNetworkInNamespaceAction, NetworkEnablementControllerEnableAllPopularNetworksAction, NetworkEnablementControllerInitAction, NetworkEnablementControllerInitNativeAssetIdentifiersAction, NetworkEnablementControllerDisableNetworkAction, NetworkEnablementControllerIsNetworkEnabledAction, NetworkEnablementControllerListPopularEvmNetworksAction, NetworkEnablementControllerListPopularMultichainNetworksAction, NetworkEnablementControllerListPopularNetworksAction, } from "./NetworkEnablementController-method-action-types.mjs";
|
|
4
|
+
export { selectEnabledNetworkMap, selectIsNetworkEnabled, createSelectorForEnabledNetworksForNamespace, selectAllEnabledNetworks, selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks, } from "./selectors.mjs";
|
|
5
|
+
export { Slip44Service, getEvmSlip44, getSlip44BySymbol, } from "./services/index.mjs";
|
|
6
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAyC;AAE/E,YAAY,EACV,gCAAgC,EAChC,yCAAyC,EACzC,kCAAkC,EAClC,iCAAiC,EACjC,2CAA2C,EAC3C,oCAAoC,EACpC,qBAAqB,EACrB,yBAAyB,EACzB,aAAa,GACd,0CAAyC;AAE1C,YAAY,EACV,8CAA8C,EAC9C,yDAAyD,EACzD,yDAAyD,EACzD,qCAAqC,EACrC,2DAA2D,EAC3D,+CAA+C,EAC/C,iDAAiD,EACjD,uDAAuD,EACvD,8DAA8D,EAC9D,oDAAoD,GACrD,8DAA6D;AAE9D,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,4CAA4C,EAC5C,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,GAC5B,wBAAuB;AAExB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,GAClB,6BAA4B"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { NetworkEnablementController } from "./NetworkEnablementController.mjs";
|
|
2
|
+
export { selectEnabledNetworkMap, selectIsNetworkEnabled, createSelectorForEnabledNetworksForNamespace, selectAllEnabledNetworks, selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks } from "./selectors.mjs";
|
|
3
|
+
export { Slip44Service, getEvmSlip44, getSlip44BySymbol } from "./services/index.mjs";
|
|
4
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAyC;AA2B/E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,4CAA4C,EAC5C,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC5B,wBAAuB;AAExB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,EAClB,6BAA4B","sourcesContent":["export { NetworkEnablementController } from './NetworkEnablementController.js';\n\nexport type {\n NetworkEnablementControllerState,\n NetworkEnablementControllerGetStateAction,\n NetworkEnablementControllerActions,\n NetworkEnablementControllerEvents,\n NetworkEnablementControllerStateChangeEvent,\n NetworkEnablementControllerMessenger,\n NativeAssetIdentifier,\n NativeAssetIdentifiersMap,\n NetworkConfig,\n} from './NetworkEnablementController.js';\n\nexport type {\n NetworkEnablementControllerEnableNetworkAction,\n NetworkEnablementControllerEnableNetworkInNamespaceAction,\n NetworkEnablementControllerEnableAllPopularNetworksAction,\n NetworkEnablementControllerInitAction,\n NetworkEnablementControllerInitNativeAssetIdentifiersAction,\n NetworkEnablementControllerDisableNetworkAction,\n NetworkEnablementControllerIsNetworkEnabledAction,\n NetworkEnablementControllerListPopularEvmNetworksAction,\n NetworkEnablementControllerListPopularMultichainNetworksAction,\n NetworkEnablementControllerListPopularNetworksAction,\n} from './NetworkEnablementController-method-action-types.js';\n\nexport {\n selectEnabledNetworkMap,\n selectIsNetworkEnabled,\n createSelectorForEnabledNetworksForNamespace,\n selectAllEnabledNetworks,\n selectEnabledNetworksCount,\n selectEnabledEvmNetworks,\n selectEnabledSolanaNetworks,\n} from './selectors.js';\n\nexport {\n Slip44Service,\n getEvmSlip44,\n getSlip44BySymbol,\n} from './services/index.js';\n"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectEnabledSolanaNetworks = exports.selectEnabledEvmNetworks = exports.selectEnabledNetworksCount = exports.selectAllEnabledNetworks = exports.createSelectorForEnabledNetworksForNamespace = exports.selectIsNetworkEnabled = exports.selectEnabledNetworkMap = void 0;
|
|
4
|
+
const utils_1 = require("@metamask/utils");
|
|
5
|
+
const reselect_1 = require("reselect");
|
|
6
|
+
const utils_js_1 = require("./utils.cjs");
|
|
7
|
+
/**
|
|
8
|
+
* Base selector to get the enabled network map from the controller state.
|
|
9
|
+
*
|
|
10
|
+
* @param state - The NetworkEnablementController state
|
|
11
|
+
* @returns The enabled network map
|
|
12
|
+
*/
|
|
13
|
+
const selectEnabledNetworkMap = (state) => state.enabledNetworkMap;
|
|
14
|
+
exports.selectEnabledNetworkMap = selectEnabledNetworkMap;
|
|
15
|
+
/**
|
|
16
|
+
* Selector to check if a specific network is enabled.
|
|
17
|
+
*
|
|
18
|
+
* This selector accepts either a Hex chain ID (for EVM networks) or a CAIP-2 chain ID
|
|
19
|
+
* (for any blockchain network) and returns whether the network is currently enabled.
|
|
20
|
+
* It returns false for unknown networks or if there's an error parsing the chain ID.
|
|
21
|
+
*
|
|
22
|
+
* @param chainId - The chain ID to check (Hex or CAIP-2 format)
|
|
23
|
+
* @returns A selector function that returns true if the network is enabled, false otherwise
|
|
24
|
+
*/
|
|
25
|
+
const selectIsNetworkEnabled = (chainId) => (0, reselect_1.createSelector)(exports.selectEnabledNetworkMap, (enabledNetworkMap) => {
|
|
26
|
+
const { namespace, storageKey } = (0, utils_js_1.deriveKeys)(chainId);
|
|
27
|
+
return (namespace in enabledNetworkMap &&
|
|
28
|
+
storageKey in enabledNetworkMap[namespace] &&
|
|
29
|
+
enabledNetworkMap[namespace][storageKey]);
|
|
30
|
+
});
|
|
31
|
+
exports.selectIsNetworkEnabled = selectIsNetworkEnabled;
|
|
32
|
+
/**
|
|
33
|
+
* Selector builder to get all enabled networks for a specific namespace.
|
|
34
|
+
*
|
|
35
|
+
* The selector returned by this function returns an array of chain IDs (as strings) for all enabled networks
|
|
36
|
+
* within the specified namespace (e.g., 'eip155' for EVM networks, 'solana' for Solana).
|
|
37
|
+
*
|
|
38
|
+
* @param namespace - The CAIP namespace to get enabled networks for (e.g., 'eip155', 'solana')
|
|
39
|
+
* @returns A selector function that returns an array of chain ID strings for enabled networks in the namespace
|
|
40
|
+
*/
|
|
41
|
+
const createSelectorForEnabledNetworksForNamespace = (namespace) => (0, reselect_1.createSelector)(exports.selectEnabledNetworkMap, (enabledNetworkMap) => {
|
|
42
|
+
return Object.entries(enabledNetworkMap[namespace] ?? {})
|
|
43
|
+
.filter(([, enabled]) => enabled)
|
|
44
|
+
.map(([id]) => id);
|
|
45
|
+
});
|
|
46
|
+
exports.createSelectorForEnabledNetworksForNamespace = createSelectorForEnabledNetworksForNamespace;
|
|
47
|
+
/**
|
|
48
|
+
* Selector to get all enabled networks across all namespaces.
|
|
49
|
+
*
|
|
50
|
+
* This selector returns a record where keys are CAIP namespaces and values are arrays
|
|
51
|
+
* of enabled chain IDs within each namespace.
|
|
52
|
+
*
|
|
53
|
+
* @returns A selector function that returns a record mapping namespace to array of enabled chain IDs
|
|
54
|
+
*/
|
|
55
|
+
exports.selectAllEnabledNetworks = (0, reselect_1.createSelector)(exports.selectEnabledNetworkMap, (enabledNetworkMap) => {
|
|
56
|
+
return Object.keys(enabledNetworkMap).reduce((acc, ns) => {
|
|
57
|
+
acc[ns] = Object.entries(enabledNetworkMap[ns])
|
|
58
|
+
.filter(([, enabled]) => enabled)
|
|
59
|
+
.map(([id]) => id);
|
|
60
|
+
return acc;
|
|
61
|
+
}, {});
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Selector to get the total count of enabled networks across all namespaces.
|
|
65
|
+
*
|
|
66
|
+
* @returns A selector function that returns the total number of enabled networks
|
|
67
|
+
*/
|
|
68
|
+
exports.selectEnabledNetworksCount = (0, reselect_1.createSelector)(exports.selectAllEnabledNetworks, (allEnabledNetworks) => {
|
|
69
|
+
return Object.values(allEnabledNetworks).flat().length;
|
|
70
|
+
});
|
|
71
|
+
/**
|
|
72
|
+
* Selector to get all enabled EVM networks.
|
|
73
|
+
*
|
|
74
|
+
* This is a convenience selector that specifically targets EIP-155 networks.
|
|
75
|
+
*
|
|
76
|
+
* @returns A selector function that returns an array of enabled EVM chain IDs
|
|
77
|
+
*/
|
|
78
|
+
exports.selectEnabledEvmNetworks = (0, reselect_1.createSelector)((0, exports.createSelectorForEnabledNetworksForNamespace)(utils_1.KnownCaipNamespace.Eip155), (enabledEvmNetworks) => enabledEvmNetworks);
|
|
79
|
+
/**
|
|
80
|
+
* Selector to get all enabled Solana networks.
|
|
81
|
+
*
|
|
82
|
+
* This is a convenience selector that specifically targets Solana networks.
|
|
83
|
+
*
|
|
84
|
+
* @returns A selector function that returns an array of enabled Solana chain IDs
|
|
85
|
+
*/
|
|
86
|
+
exports.selectEnabledSolanaNetworks = (0, reselect_1.createSelector)((0, exports.createSelectorForEnabledNetworksForNamespace)(utils_1.KnownCaipNamespace.Solana), (enabledSolanaNetworks) => enabledSolanaNetworks);
|
|
87
|
+
//# sourceMappingURL=selectors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":";;;AACA,2CAAqD;AACrD,uCAA0C;AAG1C,0CAAwC;AAExC;;;;;GAKG;AACI,MAAM,uBAAuB,GAAG,CACrC,KAAuC,EACvC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAFhB,QAAA,uBAAuB,2BAEP;AAE7B;;;;;;;;;GASG;AACI,MAAM,sBAAsB,GAAG,CAAC,OAA0B,EAAE,EAAE,CACnE,IAAA,yBAAc,EAAC,+BAAuB,EAAE,CAAC,iBAAiB,EAAE,EAAE;IAC5D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,CAAC;IAEtD,OAAO,CACL,SAAS,IAAI,iBAAiB;QAC9B,UAAU,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAC1C,iBAAiB,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CACzC,CAAC;AACJ,CAAC,CAAC,CAAC;AATQ,QAAA,sBAAsB,0BAS9B;AAEL;;;;;;;;GAQG;AACI,MAAM,4CAA4C,GAAG,CAC1D,SAAwB,EACxB,EAAE,CACF,IAAA,yBAAc,EAAC,+BAAuB,EAAE,CAAC,iBAAiB,EAAE,EAAE;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAPQ,QAAA,4CAA4C,gDAOpD;AAEL;;;;;;;GAOG;AACU,QAAA,wBAAwB,GAAG,IAAA,yBAAc,EACpD,+BAAuB,EACvB,CAAC,iBAAiB,EAAE,EAAE;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAE1C,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACZ,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,0BAA0B,GAAG,IAAA,yBAAc,EACtD,gCAAwB,EACxB,CAAC,kBAAkB,EAAE,EAAE;IACrB,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AACzD,CAAC,CACF,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,wBAAwB,GAAG,IAAA,yBAAc,EACpD,IAAA,oDAA4C,EAAC,0BAAkB,CAAC,MAAM,CAAC,EACvE,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAC3C,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,2BAA2B,GAAG,IAAA,yBAAc,EACvD,IAAA,oDAA4C,EAAC,0BAAkB,CAAC,MAAM,CAAC,EACvE,CAAC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CACjD,CAAC","sourcesContent":["import type { CaipChainId, CaipNamespace, Hex } from '@metamask/utils';\nimport { KnownCaipNamespace } from '@metamask/utils';\nimport { createSelector } from 'reselect';\n\nimport type { NetworkEnablementControllerState } from './NetworkEnablementController.js';\nimport { deriveKeys } from './utils.js';\n\n/**\n * Base selector to get the enabled network map from the controller state.\n *\n * @param state - The NetworkEnablementController state\n * @returns The enabled network map\n */\nexport const selectEnabledNetworkMap = (\n state: NetworkEnablementControllerState,\n) => state.enabledNetworkMap;\n\n/**\n * Selector to check if a specific network is enabled.\n *\n * This selector accepts either a Hex chain ID (for EVM networks) or a CAIP-2 chain ID\n * (for any blockchain network) and returns whether the network is currently enabled.\n * It returns false for unknown networks or if there's an error parsing the chain ID.\n *\n * @param chainId - The chain ID to check (Hex or CAIP-2 format)\n * @returns A selector function that returns true if the network is enabled, false otherwise\n */\nexport const selectIsNetworkEnabled = (chainId: Hex | CaipChainId) =>\n createSelector(selectEnabledNetworkMap, (enabledNetworkMap) => {\n const { namespace, storageKey } = deriveKeys(chainId);\n\n return (\n namespace in enabledNetworkMap &&\n storageKey in enabledNetworkMap[namespace] &&\n enabledNetworkMap[namespace][storageKey]\n );\n });\n\n/**\n * Selector builder to get all enabled networks for a specific namespace.\n *\n * The selector returned by this function returns an array of chain IDs (as strings) for all enabled networks\n * within the specified namespace (e.g., 'eip155' for EVM networks, 'solana' for Solana).\n *\n * @param namespace - The CAIP namespace to get enabled networks for (e.g., 'eip155', 'solana')\n * @returns A selector function that returns an array of chain ID strings for enabled networks in the namespace\n */\nexport const createSelectorForEnabledNetworksForNamespace = (\n namespace: CaipNamespace,\n) =>\n createSelector(selectEnabledNetworkMap, (enabledNetworkMap) => {\n return Object.entries(enabledNetworkMap[namespace] ?? {})\n .filter(([, enabled]) => enabled)\n .map(([id]) => id);\n });\n\n/**\n * Selector to get all enabled networks across all namespaces.\n *\n * This selector returns a record where keys are CAIP namespaces and values are arrays\n * of enabled chain IDs within each namespace.\n *\n * @returns A selector function that returns a record mapping namespace to array of enabled chain IDs\n */\nexport const selectAllEnabledNetworks = createSelector(\n selectEnabledNetworkMap,\n (enabledNetworkMap) => {\n return Object.keys(enabledNetworkMap).reduce<\n Record<CaipNamespace, string[]>\n >((acc, ns) => {\n acc[ns] = Object.entries(enabledNetworkMap[ns])\n .filter(([, enabled]) => enabled)\n .map(([id]) => id);\n return acc;\n }, {});\n },\n);\n\n/**\n * Selector to get the total count of enabled networks across all namespaces.\n *\n * @returns A selector function that returns the total number of enabled networks\n */\nexport const selectEnabledNetworksCount = createSelector(\n selectAllEnabledNetworks,\n (allEnabledNetworks) => {\n return Object.values(allEnabledNetworks).flat().length;\n },\n);\n\n/**\n * Selector to get all enabled EVM networks.\n *\n * This is a convenience selector that specifically targets EIP-155 networks.\n *\n * @returns A selector function that returns an array of enabled EVM chain IDs\n */\nexport const selectEnabledEvmNetworks = createSelector(\n createSelectorForEnabledNetworksForNamespace(KnownCaipNamespace.Eip155),\n (enabledEvmNetworks) => enabledEvmNetworks,\n);\n\n/**\n * Selector to get all enabled Solana networks.\n *\n * This is a convenience selector that specifically targets Solana networks.\n *\n * @returns A selector function that returns an array of enabled Solana chain IDs\n */\nexport const selectEnabledSolanaNetworks = createSelector(\n createSelectorForEnabledNetworksForNamespace(KnownCaipNamespace.Solana),\n (enabledSolanaNetworks) => enabledSolanaNetworks,\n);\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CaipChainId, CaipNamespace, Hex } from
|
|
2
|
-
import type { NetworkEnablementControllerState } from
|
|
1
|
+
import type { CaipChainId, CaipNamespace, Hex } from "@metamask/utils";
|
|
2
|
+
import type { NetworkEnablementControllerState } from "./NetworkEnablementController.cjs";
|
|
3
3
|
/**
|
|
4
4
|
* Base selector to get the enabled network map from the controller state.
|
|
5
5
|
*
|
|
@@ -35,14 +35,16 @@ export declare const selectIsNetworkEnabled: (chainId: Hex | CaipChainId) => ((s
|
|
|
35
35
|
resetResultsCount: () => void;
|
|
36
36
|
};
|
|
37
37
|
lastResult: () => boolean;
|
|
38
|
-
dependencies: [
|
|
38
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
39
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
40
|
+
}];
|
|
39
41
|
recomputations: () => number;
|
|
40
42
|
resetRecomputations: () => void;
|
|
41
43
|
dependencyRecomputations: () => number;
|
|
42
44
|
resetDependencyRecomputations: () => void;
|
|
43
45
|
} & {
|
|
44
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
45
46
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
47
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
46
48
|
};
|
|
47
49
|
/**
|
|
48
50
|
* Selector builder to get all enabled networks for a specific namespace.
|
|
@@ -69,14 +71,16 @@ export declare const createSelectorForEnabledNetworksForNamespace: (namespace: C
|
|
|
69
71
|
resetResultsCount: () => void;
|
|
70
72
|
};
|
|
71
73
|
lastResult: () => string[];
|
|
72
|
-
dependencies: [
|
|
74
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
75
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
76
|
+
}];
|
|
73
77
|
recomputations: () => number;
|
|
74
78
|
resetRecomputations: () => void;
|
|
75
79
|
dependencyRecomputations: () => number;
|
|
76
80
|
resetDependencyRecomputations: () => void;
|
|
77
81
|
} & {
|
|
78
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
79
82
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
83
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
80
84
|
};
|
|
81
85
|
/**
|
|
82
86
|
* Selector to get all enabled networks across all namespaces.
|
|
@@ -102,14 +106,16 @@ export declare const selectAllEnabledNetworks: ((state: NetworkEnablementControl
|
|
|
102
106
|
resetResultsCount: () => void;
|
|
103
107
|
};
|
|
104
108
|
lastResult: () => Record<string, string[]>;
|
|
105
|
-
dependencies: [
|
|
109
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
110
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
111
|
+
}];
|
|
106
112
|
recomputations: () => number;
|
|
107
113
|
resetRecomputations: () => void;
|
|
108
114
|
dependencyRecomputations: () => number;
|
|
109
115
|
resetDependencyRecomputations: () => void;
|
|
110
116
|
} & {
|
|
111
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
112
117
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
118
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
113
119
|
};
|
|
114
120
|
/**
|
|
115
121
|
* Selector to get the total count of enabled networks across all namespaces.
|
|
@@ -144,22 +150,24 @@ export declare const selectEnabledNetworksCount: ((state: NetworkEnablementContr
|
|
|
144
150
|
resetResultsCount: () => void;
|
|
145
151
|
};
|
|
146
152
|
lastResult: () => Record<string, string[]>;
|
|
147
|
-
dependencies: [
|
|
153
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
154
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
155
|
+
}];
|
|
148
156
|
recomputations: () => number;
|
|
149
157
|
resetRecomputations: () => void;
|
|
150
158
|
dependencyRecomputations: () => number;
|
|
151
159
|
resetDependencyRecomputations: () => void;
|
|
152
160
|
} & {
|
|
153
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
154
161
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
162
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
155
163
|
}];
|
|
156
164
|
recomputations: () => number;
|
|
157
165
|
resetRecomputations: () => void;
|
|
158
166
|
dependencyRecomputations: () => number;
|
|
159
167
|
resetDependencyRecomputations: () => void;
|
|
160
168
|
} & {
|
|
161
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
162
169
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
170
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
163
171
|
};
|
|
164
172
|
/**
|
|
165
173
|
* Selector to get all enabled EVM networks.
|
|
@@ -196,22 +204,24 @@ export declare const selectEnabledEvmNetworks: ((state: NetworkEnablementControl
|
|
|
196
204
|
resetResultsCount: () => void;
|
|
197
205
|
};
|
|
198
206
|
lastResult: () => string[];
|
|
199
|
-
dependencies: [
|
|
207
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
208
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
209
|
+
}];
|
|
200
210
|
recomputations: () => number;
|
|
201
211
|
resetRecomputations: () => void;
|
|
202
212
|
dependencyRecomputations: () => number;
|
|
203
213
|
resetDependencyRecomputations: () => void;
|
|
204
214
|
} & {
|
|
205
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
206
215
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
216
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
207
217
|
}];
|
|
208
218
|
recomputations: () => number;
|
|
209
219
|
resetRecomputations: () => void;
|
|
210
220
|
dependencyRecomputations: () => number;
|
|
211
221
|
resetDependencyRecomputations: () => void;
|
|
212
222
|
} & {
|
|
213
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
214
223
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
224
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
215
225
|
};
|
|
216
226
|
/**
|
|
217
227
|
* Selector to get all enabled Solana networks.
|
|
@@ -248,21 +258,23 @@ export declare const selectEnabledSolanaNetworks: ((state: NetworkEnablementCont
|
|
|
248
258
|
resetResultsCount: () => void;
|
|
249
259
|
};
|
|
250
260
|
lastResult: () => string[];
|
|
251
|
-
dependencies: [
|
|
261
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
262
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
263
|
+
}];
|
|
252
264
|
recomputations: () => number;
|
|
253
265
|
resetRecomputations: () => void;
|
|
254
266
|
dependencyRecomputations: () => number;
|
|
255
267
|
resetDependencyRecomputations: () => void;
|
|
256
268
|
} & {
|
|
257
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
258
269
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
270
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
259
271
|
}];
|
|
260
272
|
recomputations: () => number;
|
|
261
273
|
resetRecomputations: () => void;
|
|
262
274
|
dependencyRecomputations: () => number;
|
|
263
275
|
resetDependencyRecomputations: () => void;
|
|
264
276
|
} & {
|
|
265
|
-
memoize: typeof import("reselect").weakMapMemoize;
|
|
266
277
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
278
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
267
279
|
};
|
|
268
|
-
//# sourceMappingURL=selectors.d.
|
|
280
|
+
//# sourceMappingURL=selectors.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,wBAAwB;AAIvE,OAAO,KAAK,EAAE,gCAAgC,EAAE,0CAAyC;AAGzF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,UAC3B,gCAAgC;;CACb,CAAC;AAE7B;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,YAAa,GAAG,GAAG,WAAW;;;;;;;;;;;;;;;;2BAbxD,gCAAgC;;;;;;;;;;CAsBrC,CAAC;AAEL;;;;;;;;GAQG;AACH,eAAO,MAAM,4CAA4C,cAC5C,aAAa;;;;;;;;;;;;;;;;2BAlCjB,gCAAgC;;;;;;;;;;CAwCrC,CAAC;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;2BAlD5B,gCAAgC;;;;;;;;;;CA8DxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BArE9B,gCAAgC;;;;;;;;;;;;;;;;;;CA0ExC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAnF5B,gCAAgC;;;;;;;;;;;;;;;;;;CAsFxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA/F/B,gCAAgC;;;;;;;;;;;;;;;;;;CAkGxC,CAAC"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import type { CaipChainId, CaipNamespace, Hex } from "@metamask/utils";
|
|
2
|
+
import type { NetworkEnablementControllerState } from "./NetworkEnablementController.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* Base selector to get the enabled network map from the controller state.
|
|
5
|
+
*
|
|
6
|
+
* @param state - The NetworkEnablementController state
|
|
7
|
+
* @returns The enabled network map
|
|
8
|
+
*/
|
|
9
|
+
export declare const selectEnabledNetworkMap: (state: NetworkEnablementControllerState) => {
|
|
10
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Selector to check if a specific network is enabled.
|
|
14
|
+
*
|
|
15
|
+
* This selector accepts either a Hex chain ID (for EVM networks) or a CAIP-2 chain ID
|
|
16
|
+
* (for any blockchain network) and returns whether the network is currently enabled.
|
|
17
|
+
* It returns false for unknown networks or if there's an error parsing the chain ID.
|
|
18
|
+
*
|
|
19
|
+
* @param chainId - The chain ID to check (Hex or CAIP-2 format)
|
|
20
|
+
* @returns A selector function that returns true if the network is enabled, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
export declare const selectIsNetworkEnabled: (chainId: Hex | CaipChainId) => ((state: NetworkEnablementControllerState) => boolean) & {
|
|
23
|
+
clearCache: () => void;
|
|
24
|
+
resultsCount: () => number;
|
|
25
|
+
resetResultsCount: () => void;
|
|
26
|
+
} & {
|
|
27
|
+
resultFunc: (resultFuncArgs_0: {
|
|
28
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
29
|
+
}) => boolean;
|
|
30
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
31
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
32
|
+
}) => boolean) & {
|
|
33
|
+
clearCache: () => void;
|
|
34
|
+
resultsCount: () => number;
|
|
35
|
+
resetResultsCount: () => void;
|
|
36
|
+
};
|
|
37
|
+
lastResult: () => boolean;
|
|
38
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
39
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
40
|
+
}];
|
|
41
|
+
recomputations: () => number;
|
|
42
|
+
resetRecomputations: () => void;
|
|
43
|
+
dependencyRecomputations: () => number;
|
|
44
|
+
resetDependencyRecomputations: () => void;
|
|
45
|
+
} & {
|
|
46
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
47
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Selector builder to get all enabled networks for a specific namespace.
|
|
51
|
+
*
|
|
52
|
+
* The selector returned by this function returns an array of chain IDs (as strings) for all enabled networks
|
|
53
|
+
* within the specified namespace (e.g., 'eip155' for EVM networks, 'solana' for Solana).
|
|
54
|
+
*
|
|
55
|
+
* @param namespace - The CAIP namespace to get enabled networks for (e.g., 'eip155', 'solana')
|
|
56
|
+
* @returns A selector function that returns an array of chain ID strings for enabled networks in the namespace
|
|
57
|
+
*/
|
|
58
|
+
export declare const createSelectorForEnabledNetworksForNamespace: (namespace: CaipNamespace) => ((state: NetworkEnablementControllerState) => string[]) & {
|
|
59
|
+
clearCache: () => void;
|
|
60
|
+
resultsCount: () => number;
|
|
61
|
+
resetResultsCount: () => void;
|
|
62
|
+
} & {
|
|
63
|
+
resultFunc: (resultFuncArgs_0: {
|
|
64
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
65
|
+
}) => string[];
|
|
66
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
67
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
68
|
+
}) => string[]) & {
|
|
69
|
+
clearCache: () => void;
|
|
70
|
+
resultsCount: () => number;
|
|
71
|
+
resetResultsCount: () => void;
|
|
72
|
+
};
|
|
73
|
+
lastResult: () => string[];
|
|
74
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
75
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
76
|
+
}];
|
|
77
|
+
recomputations: () => number;
|
|
78
|
+
resetRecomputations: () => void;
|
|
79
|
+
dependencyRecomputations: () => number;
|
|
80
|
+
resetDependencyRecomputations: () => void;
|
|
81
|
+
} & {
|
|
82
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
83
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Selector to get all enabled networks across all namespaces.
|
|
87
|
+
*
|
|
88
|
+
* This selector returns a record where keys are CAIP namespaces and values are arrays
|
|
89
|
+
* of enabled chain IDs within each namespace.
|
|
90
|
+
*
|
|
91
|
+
* @returns A selector function that returns a record mapping namespace to array of enabled chain IDs
|
|
92
|
+
*/
|
|
93
|
+
export declare const selectAllEnabledNetworks: ((state: NetworkEnablementControllerState) => Record<string, string[]>) & {
|
|
94
|
+
clearCache: () => void;
|
|
95
|
+
resultsCount: () => number;
|
|
96
|
+
resetResultsCount: () => void;
|
|
97
|
+
} & {
|
|
98
|
+
resultFunc: (resultFuncArgs_0: {
|
|
99
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
100
|
+
}) => Record<string, string[]>;
|
|
101
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
102
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
103
|
+
}) => Record<string, string[]>) & {
|
|
104
|
+
clearCache: () => void;
|
|
105
|
+
resultsCount: () => number;
|
|
106
|
+
resetResultsCount: () => void;
|
|
107
|
+
};
|
|
108
|
+
lastResult: () => Record<string, string[]>;
|
|
109
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
110
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
111
|
+
}];
|
|
112
|
+
recomputations: () => number;
|
|
113
|
+
resetRecomputations: () => void;
|
|
114
|
+
dependencyRecomputations: () => number;
|
|
115
|
+
resetDependencyRecomputations: () => void;
|
|
116
|
+
} & {
|
|
117
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
118
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Selector to get the total count of enabled networks across all namespaces.
|
|
122
|
+
*
|
|
123
|
+
* @returns A selector function that returns the total number of enabled networks
|
|
124
|
+
*/
|
|
125
|
+
export declare const selectEnabledNetworksCount: ((state: NetworkEnablementControllerState) => number) & {
|
|
126
|
+
clearCache: () => void;
|
|
127
|
+
resultsCount: () => number;
|
|
128
|
+
resetResultsCount: () => void;
|
|
129
|
+
} & {
|
|
130
|
+
resultFunc: (resultFuncArgs_0: Record<string, string[]>) => number;
|
|
131
|
+
memoizedResultFunc: ((resultFuncArgs_0: Record<string, string[]>) => number) & {
|
|
132
|
+
clearCache: () => void;
|
|
133
|
+
resultsCount: () => number;
|
|
134
|
+
resetResultsCount: () => void;
|
|
135
|
+
};
|
|
136
|
+
lastResult: () => number;
|
|
137
|
+
dependencies: [((state: NetworkEnablementControllerState) => Record<string, string[]>) & {
|
|
138
|
+
clearCache: () => void;
|
|
139
|
+
resultsCount: () => number;
|
|
140
|
+
resetResultsCount: () => void;
|
|
141
|
+
} & {
|
|
142
|
+
resultFunc: (resultFuncArgs_0: {
|
|
143
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
144
|
+
}) => Record<string, string[]>;
|
|
145
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
146
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
147
|
+
}) => Record<string, string[]>) & {
|
|
148
|
+
clearCache: () => void;
|
|
149
|
+
resultsCount: () => number;
|
|
150
|
+
resetResultsCount: () => void;
|
|
151
|
+
};
|
|
152
|
+
lastResult: () => Record<string, string[]>;
|
|
153
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
154
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
155
|
+
}];
|
|
156
|
+
recomputations: () => number;
|
|
157
|
+
resetRecomputations: () => void;
|
|
158
|
+
dependencyRecomputations: () => number;
|
|
159
|
+
resetDependencyRecomputations: () => void;
|
|
160
|
+
} & {
|
|
161
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
162
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
163
|
+
}];
|
|
164
|
+
recomputations: () => number;
|
|
165
|
+
resetRecomputations: () => void;
|
|
166
|
+
dependencyRecomputations: () => number;
|
|
167
|
+
resetDependencyRecomputations: () => void;
|
|
168
|
+
} & {
|
|
169
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
170
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Selector to get all enabled EVM networks.
|
|
174
|
+
*
|
|
175
|
+
* This is a convenience selector that specifically targets EIP-155 networks.
|
|
176
|
+
*
|
|
177
|
+
* @returns A selector function that returns an array of enabled EVM chain IDs
|
|
178
|
+
*/
|
|
179
|
+
export declare const selectEnabledEvmNetworks: ((state: NetworkEnablementControllerState) => string[]) & {
|
|
180
|
+
clearCache: () => void;
|
|
181
|
+
resultsCount: () => number;
|
|
182
|
+
resetResultsCount: () => void;
|
|
183
|
+
} & {
|
|
184
|
+
resultFunc: (resultFuncArgs_0: string[]) => string[];
|
|
185
|
+
memoizedResultFunc: ((resultFuncArgs_0: string[]) => string[]) & {
|
|
186
|
+
clearCache: () => void;
|
|
187
|
+
resultsCount: () => number;
|
|
188
|
+
resetResultsCount: () => void;
|
|
189
|
+
};
|
|
190
|
+
lastResult: () => string[];
|
|
191
|
+
dependencies: [((state: NetworkEnablementControllerState) => string[]) & {
|
|
192
|
+
clearCache: () => void;
|
|
193
|
+
resultsCount: () => number;
|
|
194
|
+
resetResultsCount: () => void;
|
|
195
|
+
} & {
|
|
196
|
+
resultFunc: (resultFuncArgs_0: {
|
|
197
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
198
|
+
}) => string[];
|
|
199
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
200
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
201
|
+
}) => string[]) & {
|
|
202
|
+
clearCache: () => void;
|
|
203
|
+
resultsCount: () => number;
|
|
204
|
+
resetResultsCount: () => void;
|
|
205
|
+
};
|
|
206
|
+
lastResult: () => string[];
|
|
207
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
208
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
209
|
+
}];
|
|
210
|
+
recomputations: () => number;
|
|
211
|
+
resetRecomputations: () => void;
|
|
212
|
+
dependencyRecomputations: () => number;
|
|
213
|
+
resetDependencyRecomputations: () => void;
|
|
214
|
+
} & {
|
|
215
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
216
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
217
|
+
}];
|
|
218
|
+
recomputations: () => number;
|
|
219
|
+
resetRecomputations: () => void;
|
|
220
|
+
dependencyRecomputations: () => number;
|
|
221
|
+
resetDependencyRecomputations: () => void;
|
|
222
|
+
} & {
|
|
223
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
224
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Selector to get all enabled Solana networks.
|
|
228
|
+
*
|
|
229
|
+
* This is a convenience selector that specifically targets Solana networks.
|
|
230
|
+
*
|
|
231
|
+
* @returns A selector function that returns an array of enabled Solana chain IDs
|
|
232
|
+
*/
|
|
233
|
+
export declare const selectEnabledSolanaNetworks: ((state: NetworkEnablementControllerState) => string[]) & {
|
|
234
|
+
clearCache: () => void;
|
|
235
|
+
resultsCount: () => number;
|
|
236
|
+
resetResultsCount: () => void;
|
|
237
|
+
} & {
|
|
238
|
+
resultFunc: (resultFuncArgs_0: string[]) => string[];
|
|
239
|
+
memoizedResultFunc: ((resultFuncArgs_0: string[]) => string[]) & {
|
|
240
|
+
clearCache: () => void;
|
|
241
|
+
resultsCount: () => number;
|
|
242
|
+
resetResultsCount: () => void;
|
|
243
|
+
};
|
|
244
|
+
lastResult: () => string[];
|
|
245
|
+
dependencies: [((state: NetworkEnablementControllerState) => string[]) & {
|
|
246
|
+
clearCache: () => void;
|
|
247
|
+
resultsCount: () => number;
|
|
248
|
+
resetResultsCount: () => void;
|
|
249
|
+
} & {
|
|
250
|
+
resultFunc: (resultFuncArgs_0: {
|
|
251
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
252
|
+
}) => string[];
|
|
253
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
254
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
255
|
+
}) => string[]) & {
|
|
256
|
+
clearCache: () => void;
|
|
257
|
+
resultsCount: () => number;
|
|
258
|
+
resetResultsCount: () => void;
|
|
259
|
+
};
|
|
260
|
+
lastResult: () => string[];
|
|
261
|
+
dependencies: [(state: NetworkEnablementControllerState) => {
|
|
262
|
+
[x: string]: Record<`${string}:${string}` | `0x${string}`, boolean>;
|
|
263
|
+
}];
|
|
264
|
+
recomputations: () => number;
|
|
265
|
+
resetRecomputations: () => void;
|
|
266
|
+
dependencyRecomputations: () => number;
|
|
267
|
+
resetDependencyRecomputations: () => void;
|
|
268
|
+
} & {
|
|
269
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
270
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
271
|
+
}];
|
|
272
|
+
recomputations: () => number;
|
|
273
|
+
resetRecomputations: () => void;
|
|
274
|
+
dependencyRecomputations: () => number;
|
|
275
|
+
resetDependencyRecomputations: () => void;
|
|
276
|
+
} & {
|
|
277
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
278
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
279
|
+
};
|
|
280
|
+
//# sourceMappingURL=selectors.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,wBAAwB;AAIvE,OAAO,KAAK,EAAE,gCAAgC,EAAE,0CAAyC;AAGzF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,UAC3B,gCAAgC;;CACb,CAAC;AAE7B;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,YAAa,GAAG,GAAG,WAAW;;;;;;;;;;;;;;;;2BAbxD,gCAAgC;;;;;;;;;;CAsBrC,CAAC;AAEL;;;;;;;;GAQG;AACH,eAAO,MAAM,4CAA4C,cAC5C,aAAa;;;;;;;;;;;;;;;;2BAlCjB,gCAAgC;;;;;;;;;;CAwCrC,CAAC;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;2BAlD5B,gCAAgC;;;;;;;;;;CA8DxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BArE9B,gCAAgC;;;;;;;;;;;;;;;;;;CA0ExC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAnF5B,gCAAgC;;;;;;;;;;;;;;;;;;CAsFxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA/F/B,gCAAgC;;;;;;;;;;;;;;;;;;CAkGxC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { KnownCaipNamespace } from
|
|
2
|
-
import { createSelector } from
|
|
3
|
-
import { deriveKeys } from
|
|
1
|
+
import { KnownCaipNamespace } from "@metamask/utils";
|
|
2
|
+
import { createSelector } from "reselect";
|
|
3
|
+
import { deriveKeys } from "./utils.mjs";
|
|
4
4
|
/**
|
|
5
5
|
* Base selector to get the enabled network map from the controller state.
|
|
6
6
|
*
|
|
@@ -78,4 +78,4 @@ export const selectEnabledEvmNetworks = createSelector(createSelectorForEnabledN
|
|
|
78
78
|
* @returns A selector function that returns an array of enabled Solana chain IDs
|
|
79
79
|
*/
|
|
80
80
|
export const selectEnabledSolanaNetworks = createSelector(createSelectorForEnabledNetworksForNamespace(KnownCaipNamespace.Solana), (enabledSolanaNetworks) => enabledSolanaNetworks);
|
|
81
|
-
//# sourceMappingURL=selectors.
|
|
81
|
+
//# sourceMappingURL=selectors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB;AAG1C,OAAO,EAAE,UAAU,EAAE,oBAAmB;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAuC,EACvC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAE7B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA0B,EAAE,EAAE,CACnE,cAAc,CAAC,uBAAuB,EAAE,CAAC,iBAAiB,EAAE,EAAE;IAC5D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO,CACL,SAAS,IAAI,iBAAiB;QAC9B,UAAU,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAC1C,iBAAiB,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CACzC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4CAA4C,GAAG,CAC1D,SAAwB,EACxB,EAAE,CACF,cAAc,CAAC,uBAAuB,EAAE,CAAC,iBAAiB,EAAE,EAAE;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CACpD,uBAAuB,EACvB,CAAC,iBAAiB,EAAE,EAAE;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAE1C,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACZ,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CACtD,wBAAwB,EACxB,CAAC,kBAAkB,EAAE,EAAE;IACrB,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AACzD,CAAC,CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CACpD,4CAA4C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACvE,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAC3C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CACvD,4CAA4C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACvE,CAAC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CACjD,CAAC","sourcesContent":["import type { CaipChainId, CaipNamespace, Hex } from '@metamask/utils';\nimport { KnownCaipNamespace } from '@metamask/utils';\nimport { createSelector } from 'reselect';\n\nimport type { NetworkEnablementControllerState } from './NetworkEnablementController.js';\nimport { deriveKeys } from './utils.js';\n\n/**\n * Base selector to get the enabled network map from the controller state.\n *\n * @param state - The NetworkEnablementController state\n * @returns The enabled network map\n */\nexport const selectEnabledNetworkMap = (\n state: NetworkEnablementControllerState,\n) => state.enabledNetworkMap;\n\n/**\n * Selector to check if a specific network is enabled.\n *\n * This selector accepts either a Hex chain ID (for EVM networks) or a CAIP-2 chain ID\n * (for any blockchain network) and returns whether the network is currently enabled.\n * It returns false for unknown networks or if there's an error parsing the chain ID.\n *\n * @param chainId - The chain ID to check (Hex or CAIP-2 format)\n * @returns A selector function that returns true if the network is enabled, false otherwise\n */\nexport const selectIsNetworkEnabled = (chainId: Hex | CaipChainId) =>\n createSelector(selectEnabledNetworkMap, (enabledNetworkMap) => {\n const { namespace, storageKey } = deriveKeys(chainId);\n\n return (\n namespace in enabledNetworkMap &&\n storageKey in enabledNetworkMap[namespace] &&\n enabledNetworkMap[namespace][storageKey]\n );\n });\n\n/**\n * Selector builder to get all enabled networks for a specific namespace.\n *\n * The selector returned by this function returns an array of chain IDs (as strings) for all enabled networks\n * within the specified namespace (e.g., 'eip155' for EVM networks, 'solana' for Solana).\n *\n * @param namespace - The CAIP namespace to get enabled networks for (e.g., 'eip155', 'solana')\n * @returns A selector function that returns an array of chain ID strings for enabled networks in the namespace\n */\nexport const createSelectorForEnabledNetworksForNamespace = (\n namespace: CaipNamespace,\n) =>\n createSelector(selectEnabledNetworkMap, (enabledNetworkMap) => {\n return Object.entries(enabledNetworkMap[namespace] ?? {})\n .filter(([, enabled]) => enabled)\n .map(([id]) => id);\n });\n\n/**\n * Selector to get all enabled networks across all namespaces.\n *\n * This selector returns a record where keys are CAIP namespaces and values are arrays\n * of enabled chain IDs within each namespace.\n *\n * @returns A selector function that returns a record mapping namespace to array of enabled chain IDs\n */\nexport const selectAllEnabledNetworks = createSelector(\n selectEnabledNetworkMap,\n (enabledNetworkMap) => {\n return Object.keys(enabledNetworkMap).reduce<\n Record<CaipNamespace, string[]>\n >((acc, ns) => {\n acc[ns] = Object.entries(enabledNetworkMap[ns])\n .filter(([, enabled]) => enabled)\n .map(([id]) => id);\n return acc;\n }, {});\n },\n);\n\n/**\n * Selector to get the total count of enabled networks across all namespaces.\n *\n * @returns A selector function that returns the total number of enabled networks\n */\nexport const selectEnabledNetworksCount = createSelector(\n selectAllEnabledNetworks,\n (allEnabledNetworks) => {\n return Object.values(allEnabledNetworks).flat().length;\n },\n);\n\n/**\n * Selector to get all enabled EVM networks.\n *\n * This is a convenience selector that specifically targets EIP-155 networks.\n *\n * @returns A selector function that returns an array of enabled EVM chain IDs\n */\nexport const selectEnabledEvmNetworks = createSelector(\n createSelectorForEnabledNetworksForNamespace(KnownCaipNamespace.Eip155),\n (enabledEvmNetworks) => enabledEvmNetworks,\n);\n\n/**\n * Selector to get all enabled Solana networks.\n *\n * This is a convenience selector that specifically targets Solana networks.\n *\n * @returns A selector function that returns an array of enabled Solana chain IDs\n */\nexport const selectEnabledSolanaNetworks = createSelector(\n createSelectorForEnabledNetworksForNamespace(KnownCaipNamespace.Solana),\n (enabledSolanaNetworks) => enabledSolanaNetworks,\n);\n"]}
|