@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.
Files changed (84) hide show
  1. package/CHANGELOG.md +0 -1
  2. package/dist/NetworkEnablementController-method-action-types.cjs +7 -0
  3. package/dist/NetworkEnablementController-method-action-types.cjs.map +1 -0
  4. package/dist/{NetworkEnablementController-method-action-types.d.ts → NetworkEnablementController-method-action-types.d.cts} +2 -2
  5. package/dist/NetworkEnablementController-method-action-types.d.cts.map +1 -0
  6. package/dist/NetworkEnablementController-method-action-types.d.mts +185 -0
  7. package/dist/NetworkEnablementController-method-action-types.d.mts.map +1 -0
  8. package/dist/{NetworkEnablementController-method-action-types.js → NetworkEnablementController-method-action-types.mjs} +1 -1
  9. package/dist/NetworkEnablementController-method-action-types.mjs.map +1 -0
  10. package/dist/NetworkEnablementController.cjs +590 -0
  11. package/dist/NetworkEnablementController.cjs.map +1 -0
  12. package/dist/{NetworkEnablementController.d.ts → NetworkEnablementController.d.cts} +10 -10
  13. package/dist/NetworkEnablementController.d.cts.map +1 -0
  14. package/dist/NetworkEnablementController.d.mts +234 -0
  15. package/dist/NetworkEnablementController.d.mts.map +1 -0
  16. package/dist/{NetworkEnablementController.js → NetworkEnablementController.mjs} +9 -9
  17. package/dist/NetworkEnablementController.mjs.map +1 -0
  18. package/dist/constants.cjs +22 -0
  19. package/dist/constants.cjs.map +1 -0
  20. package/dist/constants.d.cts +3 -0
  21. package/dist/constants.d.cts.map +1 -0
  22. package/dist/constants.d.mts +3 -0
  23. package/dist/constants.d.mts.map +1 -0
  24. package/dist/{constants.js → constants.mjs} +1 -1
  25. package/dist/constants.mjs.map +1 -0
  26. package/dist/index.cjs +18 -0
  27. package/dist/index.cjs.map +1 -0
  28. package/dist/{index.d.ts → index.d.cts} +6 -6
  29. package/dist/index.d.cts.map +1 -0
  30. package/dist/index.d.mts +6 -0
  31. package/dist/index.d.mts.map +1 -0
  32. package/dist/index.mjs +4 -0
  33. package/dist/index.mjs.map +1 -0
  34. package/dist/selectors.cjs +87 -0
  35. package/dist/selectors.cjs.map +1 -0
  36. package/dist/{selectors.d.ts → selectors.d.cts} +30 -18
  37. package/dist/selectors.d.cts.map +1 -0
  38. package/dist/selectors.d.mts +280 -0
  39. package/dist/selectors.d.mts.map +1 -0
  40. package/dist/{selectors.js → selectors.mjs} +4 -4
  41. package/dist/selectors.mjs.map +1 -0
  42. package/dist/services/Slip44Service.cjs +182 -0
  43. package/dist/services/Slip44Service.cjs.map +1 -0
  44. package/dist/services/{Slip44Service.d.ts → Slip44Service.d.cts} +1 -1
  45. package/dist/services/Slip44Service.d.cts.map +1 -0
  46. package/dist/services/Slip44Service.d.mts +63 -0
  47. package/dist/services/Slip44Service.d.mts.map +1 -0
  48. package/dist/services/{Slip44Service.js → Slip44Service.mjs} +3 -3
  49. package/dist/services/Slip44Service.mjs.map +1 -0
  50. package/dist/services/index.cjs +11 -0
  51. package/dist/services/index.cjs.map +1 -0
  52. package/dist/services/{index.d.ts → index.d.cts} +2 -2
  53. package/dist/services/index.d.cts.map +1 -0
  54. package/dist/services/index.d.mts +5 -0
  55. package/dist/services/index.d.mts.map +1 -0
  56. package/dist/services/{index.js → index.mjs} +2 -2
  57. package/dist/services/index.mjs.map +1 -0
  58. package/dist/utils.cjs +62 -0
  59. package/dist/utils.cjs.map +1 -0
  60. package/dist/{utils.d.ts → utils.d.cts} +3 -3
  61. package/dist/utils.d.cts.map +1 -0
  62. package/dist/utils.d.mts +36 -0
  63. package/dist/utils.d.mts.map +1 -0
  64. package/dist/{utils.js → utils.mjs} +4 -4
  65. package/dist/utils.mjs.map +1 -0
  66. package/package.json +16 -12
  67. package/dist/NetworkEnablementController-method-action-types.d.ts.map +0 -1
  68. package/dist/NetworkEnablementController-method-action-types.js.map +0 -1
  69. package/dist/NetworkEnablementController.d.ts.map +0 -1
  70. package/dist/NetworkEnablementController.js.map +0 -1
  71. package/dist/constants.d.ts +0 -3
  72. package/dist/constants.d.ts.map +0 -1
  73. package/dist/constants.js.map +0 -1
  74. package/dist/index.d.ts.map +0 -1
  75. package/dist/index.js +0 -4
  76. package/dist/index.js.map +0 -1
  77. package/dist/selectors.d.ts.map +0 -1
  78. package/dist/selectors.js.map +0 -1
  79. package/dist/services/Slip44Service.d.ts.map +0 -1
  80. package/dist/services/Slip44Service.js.map +0 -1
  81. package/dist/services/index.d.ts.map +0 -1
  82. package/dist/services/index.js.map +0 -1
  83. package/dist/utils.d.ts.map +0 -1
  84. 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 './NetworkEnablementController.js';
2
- export type { NetworkEnablementControllerState, NetworkEnablementControllerGetStateAction, NetworkEnablementControllerActions, NetworkEnablementControllerEvents, NetworkEnablementControllerStateChangeEvent, NetworkEnablementControllerMessenger, NativeAssetIdentifier, NativeAssetIdentifiersMap, NetworkConfig, } from './NetworkEnablementController.js';
3
- export type { NetworkEnablementControllerEnableNetworkAction, NetworkEnablementControllerEnableNetworkInNamespaceAction, NetworkEnablementControllerEnableAllPopularNetworksAction, NetworkEnablementControllerInitAction, NetworkEnablementControllerInitNativeAssetIdentifiersAction, NetworkEnablementControllerDisableNetworkAction, NetworkEnablementControllerIsNetworkEnabledAction, NetworkEnablementControllerListPopularEvmNetworksAction, NetworkEnablementControllerListPopularMultichainNetworksAction, NetworkEnablementControllerListPopularNetworksAction, } from './NetworkEnablementController-method-action-types.js';
4
- export { selectEnabledNetworkMap, selectIsNetworkEnabled, createSelectorForEnabledNetworksForNamespace, selectAllEnabledNetworks, selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks, } from './selectors.js';
5
- export { Slip44Service, getEvmSlip44, getSlip44BySymbol, } from './services/index.js';
6
- //# sourceMappingURL=index.d.ts.map
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"}
@@ -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 '@metamask/utils';
2
- import type { NetworkEnablementControllerState } from './NetworkEnablementController.js';
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: [typeof selectEnabledNetworkMap];
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: [typeof selectEnabledNetworkMap];
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: [typeof selectEnabledNetworkMap];
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: [typeof selectEnabledNetworkMap];
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: [typeof selectEnabledNetworkMap];
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: [typeof selectEnabledNetworkMap];
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.ts.map
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 '@metamask/utils';
2
- import { createSelector } from 'reselect';
3
- import { deriveKeys } from './utils.js';
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.js.map
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"]}