@metamask-previews/multichain-network-controller 0.4.0-preview-a9741b3a → 0.4.0-preview-fa52096c
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 -10
- package/dist/{MultichainNetworkController/MultichainNetworkController.cjs → MultichainNetworkController.cjs} +6 -37
- package/dist/MultichainNetworkController.cjs.map +1 -0
- package/dist/{MultichainNetworkController/MultichainNetworkController.d.cts → MultichainNetworkController.d.cts} +2 -12
- package/dist/MultichainNetworkController.d.cts.map +1 -0
- package/dist/{MultichainNetworkController/MultichainNetworkController.d.mts → MultichainNetworkController.d.mts} +2 -12
- package/dist/MultichainNetworkController.d.mts.map +1 -0
- package/dist/{MultichainNetworkController/MultichainNetworkController.mjs → MultichainNetworkController.mjs} +6 -37
- package/dist/MultichainNetworkController.mjs.map +1 -0
- package/dist/constants.cjs +0 -2
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +0 -4
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +0 -4
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +0 -2
- package/dist/constants.mjs.map +1 -1
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +4 -14
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +4 -14
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils.cjs +1 -12
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -8
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +1 -8
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +0 -10
- package/dist/utils.mjs.map +1 -1
- package/package.json +2 -5
- package/dist/MultichainNetworkController/MultichainNetworkController.cjs.map +0 -1
- package/dist/MultichainNetworkController/MultichainNetworkController.d.cts.map +0 -1
- package/dist/MultichainNetworkController/MultichainNetworkController.d.mts.map +0 -1
- package/dist/MultichainNetworkController/MultichainNetworkController.mjs.map +0 -1
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.cjs +0 -3
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.cjs.map +0 -1
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.d.cts +0 -7
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.d.cts.map +0 -1
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.d.mts +0 -7
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.d.mts.map +0 -1
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.mjs +0 -2
- package/dist/MultichainNetworkService/AbstractMultichainNetworkService.mjs.map +0 -1
- package/dist/MultichainNetworkService/MultichainNetworkService.cjs +0 -63
- package/dist/MultichainNetworkService/MultichainNetworkService.cjs.map +0 -1
- package/dist/MultichainNetworkService/MultichainNetworkService.d.cts +0 -20
- package/dist/MultichainNetworkService/MultichainNetworkService.d.cts.map +0 -1
- package/dist/MultichainNetworkService/MultichainNetworkService.d.mts +0 -20
- package/dist/MultichainNetworkService/MultichainNetworkService.d.mts.map +0 -1
- package/dist/MultichainNetworkService/MultichainNetworkService.mjs +0 -59
- package/dist/MultichainNetworkService/MultichainNetworkService.mjs.map +0 -1
- package/dist/api/accounts-api.cjs +0 -82
- package/dist/api/accounts-api.cjs.map +0 -1
- package/dist/api/accounts-api.d.cts +0 -55
- package/dist/api/accounts-api.d.cts.map +0 -1
- package/dist/api/accounts-api.d.mts +0 -55
- package/dist/api/accounts-api.d.mts.map +0 -1
- package/dist/api/accounts-api.mjs +0 -76
- package/dist/api/accounts-api.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,16 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
### Added
|
|
11
|
-
|
|
12
|
-
- New method `getNetworksWithTransactionActivityByAccounts` to fetch active networks for multiple accounts in a single request ([#5551](https://github.com/MetaMask/core/pull/5551))
|
|
13
|
-
- New `MultichainNetworkService` for handling network activity fetching ([#5551](https://github.com/MetaMask/core/pull/5551))
|
|
14
|
-
- New types for network activity state and responses ([#5551](https://github.com/MetaMask/core/pull/5551))
|
|
15
|
-
|
|
16
|
-
### Changed
|
|
17
|
-
|
|
18
|
-
- Updated state management for network activity ([#5551](https://github.com/MetaMask/core/pull/5551))
|
|
19
|
-
|
|
20
10
|
## [0.4.0]
|
|
21
11
|
|
|
22
12
|
### Added
|
|
@@ -1,31 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
2
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
3
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
4
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
5
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
6
|
};
|
|
13
|
-
var _MultichainNetworkController_instances,
|
|
7
|
+
var _MultichainNetworkController_instances, _MultichainNetworkController_setActiveEvmNetwork, _MultichainNetworkController_setActiveNonEvmNetwork, _MultichainNetworkController_removeEvmNetwork, _MultichainNetworkController_removeNonEvmNetwork, _MultichainNetworkController_handleOnSelectedAccountChange, _MultichainNetworkController_subscribeToMessageEvents, _MultichainNetworkController_registerMessageHandlers;
|
|
14
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
9
|
exports.MultichainNetworkController = void 0;
|
|
16
10
|
const base_controller_1 = require("@metamask/base-controller");
|
|
17
11
|
const keyring_api_1 = require("@metamask/keyring-api");
|
|
18
12
|
const utils_1 = require("@metamask/utils");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const utils_2 = require("../utils.cjs");
|
|
13
|
+
const constants_1 = require("./constants.cjs");
|
|
14
|
+
const types_1 = require("./types.cjs");
|
|
15
|
+
const utils_2 = require("./utils.cjs");
|
|
23
16
|
/**
|
|
24
17
|
* The MultichainNetworkController is responsible for fetching and caching account
|
|
25
18
|
* balances.
|
|
26
19
|
*/
|
|
27
20
|
class MultichainNetworkController extends base_controller_1.BaseController {
|
|
28
|
-
constructor({ messenger, state,
|
|
21
|
+
constructor({ messenger, state, }) {
|
|
29
22
|
super({
|
|
30
23
|
messenger,
|
|
31
24
|
name: types_1.MULTICHAIN_NETWORK_CONTROLLER_NAME,
|
|
@@ -39,8 +32,6 @@ class MultichainNetworkController extends base_controller_1.BaseController {
|
|
|
39
32
|
},
|
|
40
33
|
});
|
|
41
34
|
_MultichainNetworkController_instances.add(this);
|
|
42
|
-
_MultichainNetworkController_networkService.set(this, void 0);
|
|
43
|
-
__classPrivateFieldSet(this, _MultichainNetworkController_networkService, networkService, "f");
|
|
44
35
|
__classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_subscribeToMessageEvents).call(this);
|
|
45
36
|
__classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_registerMessageHandlers).call(this);
|
|
46
37
|
}
|
|
@@ -60,27 +51,6 @@ class MultichainNetworkController extends base_controller_1.BaseController {
|
|
|
60
51
|
}
|
|
61
52
|
return await __classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_setActiveEvmNetwork).call(this, id);
|
|
62
53
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Returns the active networks for the available EVM addresses (non-EVM networks will be supported in the future).
|
|
65
|
-
* Fetches the data from the API and caches it in state.
|
|
66
|
-
*
|
|
67
|
-
* @returns A promise that resolves to the active networks for the available addresses
|
|
68
|
-
*/
|
|
69
|
-
async getNetworksWithTransactionActivityByAccounts() {
|
|
70
|
-
const accounts = this.messagingSystem.call('AccountsController:listMultichainAccounts');
|
|
71
|
-
if (!accounts || accounts.length === 0) {
|
|
72
|
-
return this.state.networksWithTransactionActivity;
|
|
73
|
-
}
|
|
74
|
-
const formattedAccounts = accounts
|
|
75
|
-
.map((account) => (0, accounts_api_1.toAllowedCaipAccountIds)(account))
|
|
76
|
-
.flat();
|
|
77
|
-
const activeNetworks = await __classPrivateFieldGet(this, _MultichainNetworkController_networkService, "f").fetchNetworkActivity(formattedAccounts);
|
|
78
|
-
const formattedNetworks = (0, accounts_api_1.toActiveNetworksByAddress)(activeNetworks);
|
|
79
|
-
this.update((state) => {
|
|
80
|
-
state.networksWithTransactionActivity = formattedNetworks;
|
|
81
|
-
});
|
|
82
|
-
return this.state.networksWithTransactionActivity;
|
|
83
|
-
}
|
|
84
54
|
/**
|
|
85
55
|
* Removes a network from the list of networks.
|
|
86
56
|
* It only supports EVM networks.
|
|
@@ -96,7 +66,7 @@ class MultichainNetworkController extends base_controller_1.BaseController {
|
|
|
96
66
|
}
|
|
97
67
|
}
|
|
98
68
|
exports.MultichainNetworkController = MultichainNetworkController;
|
|
99
|
-
|
|
69
|
+
_MultichainNetworkController_instances = new WeakSet(), _MultichainNetworkController_setActiveEvmNetwork =
|
|
100
70
|
/**
|
|
101
71
|
* Sets the active EVM network.
|
|
102
72
|
*
|
|
@@ -196,6 +166,5 @@ async function _MultichainNetworkController_removeEvmNetwork(chainId) {
|
|
|
196
166
|
this.messagingSystem.subscribe('AccountsController:selectedAccountChange', (account) => __classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_handleOnSelectedAccountChange).call(this, account));
|
|
197
167
|
}, _MultichainNetworkController_registerMessageHandlers = function _MultichainNetworkController_registerMessageHandlers() {
|
|
198
168
|
this.messagingSystem.registerActionHandler('MultichainNetworkController:setActiveNetwork', this.setActiveNetwork.bind(this));
|
|
199
|
-
this.messagingSystem.registerActionHandler('MultichainNetworkController:getNetworksWithTransactionActivityByAccounts', this.getNetworksWithTransactionActivityByAccounts.bind(this));
|
|
200
169
|
};
|
|
201
170
|
//# sourceMappingURL=MultichainNetworkController.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultichainNetworkController.cjs","sourceRoot":"","sources":["../src/MultichainNetworkController.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseController } from '@metamask/base-controller';\nimport { isEvmAccountType } from '@metamask/keyring-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { NetworkClientId } from '@metamask/network-controller';\nimport { type CaipChainId, isCaipChainId } from '@metamask/utils';\n\nimport {\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n MULTICHAIN_NETWORK_CONTROLLER_METADATA,\n getDefaultMultichainNetworkControllerState,\n} from './constants';\nimport {\n MULTICHAIN_NETWORK_CONTROLLER_NAME,\n type MultichainNetworkControllerState,\n type MultichainNetworkControllerMessenger,\n type SupportedCaipChainId,\n} from './types';\nimport {\n checkIfSupportedCaipChainId,\n getChainIdForNonEvmAddress,\n convertEvmCaipToHexChainId,\n isEvmCaipChainId,\n} from './utils';\n\n/**\n * The MultichainNetworkController is responsible for fetching and caching account\n * balances.\n */\nexport class MultichainNetworkController extends BaseController<\n typeof MULTICHAIN_NETWORK_CONTROLLER_NAME,\n MultichainNetworkControllerState,\n MultichainNetworkControllerMessenger\n> {\n constructor({\n messenger,\n state,\n }: {\n messenger: MultichainNetworkControllerMessenger;\n state?: Omit<\n Partial<MultichainNetworkControllerState>,\n 'multichainNetworkConfigurationsByChainId'\n >;\n }) {\n super({\n messenger,\n name: MULTICHAIN_NETWORK_CONTROLLER_NAME,\n metadata: MULTICHAIN_NETWORK_CONTROLLER_METADATA,\n state: {\n ...getDefaultMultichainNetworkControllerState(),\n ...state,\n // We can keep the current network as a hardcoded value\n // since it is not expected to add/remove networks yet.\n multichainNetworkConfigurationsByChainId:\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n },\n });\n\n this.#subscribeToMessageEvents();\n this.#registerMessageHandlers();\n }\n\n /**\n * Sets the active EVM network.\n *\n * @param id - The client ID of the EVM network to set active.\n */\n async #setActiveEvmNetwork(id: NetworkClientId): Promise<void> {\n const { selectedNetworkClientId } = this.messagingSystem.call(\n 'NetworkController:getState',\n );\n\n const shouldSetEvmActive = !this.state.isEvmSelected;\n const shouldNotifyNetworkChange = id !== selectedNetworkClientId;\n\n // No changes needed if EVM is active and network is already selected\n if (!shouldSetEvmActive && !shouldNotifyNetworkChange) {\n return;\n }\n\n // Update EVM selection state if needed\n if (shouldSetEvmActive) {\n this.update((state) => {\n state.isEvmSelected = true;\n });\n }\n\n // Only notify the network controller if the selected evm network is different\n if (shouldNotifyNetworkChange) {\n await this.messagingSystem.call('NetworkController:setActiveNetwork', id);\n }\n\n // Only publish the networkDidChange event if either the EVM network is different or we're switching between EVM and non-EVM networks\n if (shouldSetEvmActive || shouldNotifyNetworkChange) {\n this.messagingSystem.publish(\n 'MultichainNetworkController:networkDidChange',\n id,\n );\n }\n }\n\n /**\n * Sets the active non-EVM network.\n *\n * @param id - The chain ID of the non-EVM network to set active.\n */\n #setActiveNonEvmNetwork(id: SupportedCaipChainId): void {\n if (\n id === this.state.selectedMultichainNetworkChainId &&\n !this.state.isEvmSelected\n ) {\n // Same non-EVM network is already selected, no need to update\n return;\n }\n\n this.update((state) => {\n state.selectedMultichainNetworkChainId = id;\n state.isEvmSelected = false;\n });\n\n // Notify listeners that the network changed\n this.messagingSystem.publish(\n 'MultichainNetworkController:networkDidChange',\n id,\n );\n }\n\n /**\n * Sets the active network.\n *\n * @param id - The non-EVM Caip chain ID or EVM client ID of the network to set active.\n * @returns - A promise that resolves when the network is set active.\n */\n async setActiveNetwork(\n id: SupportedCaipChainId | NetworkClientId,\n ): Promise<void> {\n if (isCaipChainId(id)) {\n const isSupportedCaipChainId = checkIfSupportedCaipChainId(id);\n if (!isSupportedCaipChainId) {\n throw new Error(`Unsupported Caip chain ID: ${String(id)}`);\n }\n return this.#setActiveNonEvmNetwork(id);\n }\n\n return await this.#setActiveEvmNetwork(id);\n }\n\n /**\n * Removes an EVM network from the list of networks.\n * This method re-directs the request to the network-controller.\n *\n * @param chainId - The chain ID of the network to remove.\n * @returns - A promise that resolves when the network is removed.\n */\n async #removeEvmNetwork(chainId: CaipChainId): Promise<void> {\n const hexChainId = convertEvmCaipToHexChainId(chainId);\n const selectedChainId = this.messagingSystem.call(\n 'NetworkController:getSelectedChainId',\n );\n\n if (selectedChainId === hexChainId) {\n // We prevent removing the currently selected network.\n if (this.state.isEvmSelected) {\n throw new Error('Cannot remove the currently selected network');\n }\n\n // If a non-EVM network is selected, we can delete the currently EVM selected network, but\n // we automatically switch to EVM mainnet.\n const ethereumMainnetHexChainId = '0x1'; // TODO: Should probably be a constant.\n const clientId = this.messagingSystem.call(\n 'NetworkController:findNetworkClientIdByChainId',\n ethereumMainnetHexChainId,\n );\n\n await this.messagingSystem.call(\n 'NetworkController:setActiveNetwork',\n clientId,\n );\n }\n\n this.messagingSystem.call('NetworkController:removeNetwork', hexChainId);\n }\n\n /**\n * Removes a non-EVM network from the list of networks.\n * This method is not supported and throws an error.\n *\n * @param _chainId - The chain ID of the network to remove.\n * @throws - An error indicating that removal of non-EVM networks is not supported.\n */\n #removeNonEvmNetwork(_chainId: CaipChainId): void {\n throw new Error('Removal of non-EVM networks is not supported');\n }\n\n /**\n * Removes a network from the list of networks.\n * It only supports EVM networks.\n *\n * @param chainId - The chain ID of the network to remove.\n * @returns - A promise that resolves when the network is removed.\n */\n async removeNetwork(chainId: CaipChainId): Promise<void> {\n if (isEvmCaipChainId(chainId)) {\n return await this.#removeEvmNetwork(chainId);\n }\n\n return this.#removeNonEvmNetwork(chainId);\n }\n\n /**\n * Handles switching between EVM and non-EVM networks when an account is changed\n *\n * @param account - The account that was changed\n */\n #handleOnSelectedAccountChange(account: InternalAccount) {\n const { type: accountType, address: accountAddress, scopes } = account;\n const isEvmAccount = isEvmAccountType(accountType);\n\n // Handle switching to EVM network\n if (isEvmAccount) {\n if (this.state.isEvmSelected) {\n // No need to update if already on evm network\n return;\n }\n\n // Make EVM network active\n this.update((state) => {\n state.isEvmSelected = true;\n });\n\n return;\n }\n\n // Handle switching to non-EVM network\n if (scopes.includes(this.state.selectedMultichainNetworkChainId)) {\n // No need to update if the account's scope includes the active network\n this.update((state) => {\n state.isEvmSelected = false;\n });\n return;\n }\n\n const nonEvmChainId = getChainIdForNonEvmAddress(accountAddress);\n this.update((state) => {\n state.selectedMultichainNetworkChainId = nonEvmChainId;\n state.isEvmSelected = false;\n });\n\n // No need to publish NetworkController:setActiveNetwork because EVM accounts falls back to use the last selected EVM network\n // DO NOT publish MultichainNetworkController:networkDidChange to prevent circular listener loops\n }\n\n /**\n * Subscribes to message events.\n */\n #subscribeToMessageEvents() {\n // Handle network switch when account is changed\n this.messagingSystem.subscribe(\n 'AccountsController:selectedAccountChange',\n (account) => this.#handleOnSelectedAccountChange(account),\n );\n }\n\n /**\n * Registers message handlers.\n */\n #registerMessageHandlers() {\n this.messagingSystem.registerActionHandler(\n 'MultichainNetworkController:setActiveNetwork',\n this.setActiveNetwork.bind(this),\n );\n }\n}\n"]}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { BaseController } from "@metamask/base-controller";
|
|
2
2
|
import type { NetworkClientId } from "@metamask/network-controller";
|
|
3
3
|
import { type CaipChainId } from "@metamask/utils";
|
|
4
|
-
import { type
|
|
5
|
-
import type { AbstractMultichainNetworkService } from "../MultichainNetworkService/AbstractMultichainNetworkService.cjs";
|
|
6
|
-
import { MULTICHAIN_NETWORK_CONTROLLER_NAME, type MultichainNetworkControllerState, type MultichainNetworkControllerMessenger, type SupportedCaipChainId } from "../types.cjs";
|
|
4
|
+
import { MULTICHAIN_NETWORK_CONTROLLER_NAME, type MultichainNetworkControllerState, type MultichainNetworkControllerMessenger, type SupportedCaipChainId } from "./types.cjs";
|
|
7
5
|
/**
|
|
8
6
|
* The MultichainNetworkController is responsible for fetching and caching account
|
|
9
7
|
* balances.
|
|
10
8
|
*/
|
|
11
9
|
export declare class MultichainNetworkController extends BaseController<typeof MULTICHAIN_NETWORK_CONTROLLER_NAME, MultichainNetworkControllerState, MultichainNetworkControllerMessenger> {
|
|
12
10
|
#private;
|
|
13
|
-
constructor({ messenger, state,
|
|
11
|
+
constructor({ messenger, state, }: {
|
|
14
12
|
messenger: MultichainNetworkControllerMessenger;
|
|
15
13
|
state?: Omit<Partial<MultichainNetworkControllerState>, 'multichainNetworkConfigurationsByChainId'>;
|
|
16
|
-
networkService: AbstractMultichainNetworkService;
|
|
17
14
|
});
|
|
18
15
|
/**
|
|
19
16
|
* Sets the active network.
|
|
@@ -22,13 +19,6 @@ export declare class MultichainNetworkController extends BaseController<typeof M
|
|
|
22
19
|
* @returns - A promise that resolves when the network is set active.
|
|
23
20
|
*/
|
|
24
21
|
setActiveNetwork(id: SupportedCaipChainId | NetworkClientId): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Returns the active networks for the available EVM addresses (non-EVM networks will be supported in the future).
|
|
27
|
-
* Fetches the data from the API and caches it in state.
|
|
28
|
-
*
|
|
29
|
-
* @returns A promise that resolves to the active networks for the available addresses
|
|
30
|
-
*/
|
|
31
|
-
getNetworksWithTransactionActivityByAccounts(): Promise<ActiveNetworksByAddress>;
|
|
32
22
|
/**
|
|
33
23
|
* Removes a network from the list of networks.
|
|
34
24
|
* It only supports EVM networks.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultichainNetworkController.d.cts","sourceRoot":"","sources":["../src/MultichainNetworkController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;AACpE,OAAO,EAAE,KAAK,WAAW,EAAiB,wBAAwB;AAOlE,OAAO,EACL,kCAAkC,EAClC,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,oBAAoB,EAC1B,oBAAgB;AAQjB;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,cAAc,CAC7D,OAAO,kCAAkC,EACzC,gCAAgC,EAChC,oCAAoC,CACrC;;gBACa,EACV,SAAS,EACT,KAAK,GACN,EAAE;QACD,SAAS,EAAE,oCAAoC,CAAC;QAChD,KAAK,CAAC,EAAE,IAAI,CACV,OAAO,CAAC,gCAAgC,CAAC,EACzC,0CAA0C,CAC3C,CAAC;KACH;IAoFD;;;;;OAKG;IACG,gBAAgB,CACpB,EAAE,EAAE,oBAAoB,GAAG,eAAe,GACzC,OAAO,CAAC,IAAI,CAAC;IA2DhB;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAuEzD"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { BaseController } from "@metamask/base-controller";
|
|
2
2
|
import type { NetworkClientId } from "@metamask/network-controller";
|
|
3
3
|
import { type CaipChainId } from "@metamask/utils";
|
|
4
|
-
import { type
|
|
5
|
-
import type { AbstractMultichainNetworkService } from "../MultichainNetworkService/AbstractMultichainNetworkService.mjs";
|
|
6
|
-
import { MULTICHAIN_NETWORK_CONTROLLER_NAME, type MultichainNetworkControllerState, type MultichainNetworkControllerMessenger, type SupportedCaipChainId } from "../types.mjs";
|
|
4
|
+
import { MULTICHAIN_NETWORK_CONTROLLER_NAME, type MultichainNetworkControllerState, type MultichainNetworkControllerMessenger, type SupportedCaipChainId } from "./types.mjs";
|
|
7
5
|
/**
|
|
8
6
|
* The MultichainNetworkController is responsible for fetching and caching account
|
|
9
7
|
* balances.
|
|
10
8
|
*/
|
|
11
9
|
export declare class MultichainNetworkController extends BaseController<typeof MULTICHAIN_NETWORK_CONTROLLER_NAME, MultichainNetworkControllerState, MultichainNetworkControllerMessenger> {
|
|
12
10
|
#private;
|
|
13
|
-
constructor({ messenger, state,
|
|
11
|
+
constructor({ messenger, state, }: {
|
|
14
12
|
messenger: MultichainNetworkControllerMessenger;
|
|
15
13
|
state?: Omit<Partial<MultichainNetworkControllerState>, 'multichainNetworkConfigurationsByChainId'>;
|
|
16
|
-
networkService: AbstractMultichainNetworkService;
|
|
17
14
|
});
|
|
18
15
|
/**
|
|
19
16
|
* Sets the active network.
|
|
@@ -22,13 +19,6 @@ export declare class MultichainNetworkController extends BaseController<typeof M
|
|
|
22
19
|
* @returns - A promise that resolves when the network is set active.
|
|
23
20
|
*/
|
|
24
21
|
setActiveNetwork(id: SupportedCaipChainId | NetworkClientId): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Returns the active networks for the available EVM addresses (non-EVM networks will be supported in the future).
|
|
27
|
-
* Fetches the data from the API and caches it in state.
|
|
28
|
-
*
|
|
29
|
-
* @returns A promise that resolves to the active networks for the available addresses
|
|
30
|
-
*/
|
|
31
|
-
getNetworksWithTransactionActivityByAccounts(): Promise<ActiveNetworksByAddress>;
|
|
32
22
|
/**
|
|
33
23
|
* Removes a network from the list of networks.
|
|
34
24
|
* It only supports EVM networks.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultichainNetworkController.d.mts","sourceRoot":"","sources":["../src/MultichainNetworkController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,qCAAqC;AACpE,OAAO,EAAE,KAAK,WAAW,EAAiB,wBAAwB;AAOlE,OAAO,EACL,kCAAkC,EAClC,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,oBAAoB,EAC1B,oBAAgB;AAQjB;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,cAAc,CAC7D,OAAO,kCAAkC,EACzC,gCAAgC,EAChC,oCAAoC,CACrC;;gBACa,EACV,SAAS,EACT,KAAK,GACN,EAAE;QACD,SAAS,EAAE,oCAAoC,CAAC;QAChD,KAAK,CAAC,EAAE,IAAI,CACV,OAAO,CAAC,gCAAgC,CAAC,EACzC,0CAA0C,CAC3C,CAAC;KACH;IAoFD;;;;;OAKG;IACG,gBAAgB,CACpB,EAAE,EAAE,oBAAoB,GAAG,eAAe,GACzC,OAAO,CAAC,IAAI,CAAC;IA2DhB;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAuEzD"}
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
1
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
2
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
3
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
5
|
};
|
|
12
|
-
var _MultichainNetworkController_instances,
|
|
6
|
+
var _MultichainNetworkController_instances, _MultichainNetworkController_setActiveEvmNetwork, _MultichainNetworkController_setActiveNonEvmNetwork, _MultichainNetworkController_removeEvmNetwork, _MultichainNetworkController_removeNonEvmNetwork, _MultichainNetworkController_handleOnSelectedAccountChange, _MultichainNetworkController_subscribeToMessageEvents, _MultichainNetworkController_registerMessageHandlers;
|
|
13
7
|
import { BaseController } from "@metamask/base-controller";
|
|
14
8
|
import { isEvmAccountType } from "@metamask/keyring-api";
|
|
15
9
|
import { isCaipChainId } from "@metamask/utils";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { checkIfSupportedCaipChainId, getChainIdForNonEvmAddress, convertEvmCaipToHexChainId, isEvmCaipChainId } from "../utils.mjs";
|
|
10
|
+
import { AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS, MULTICHAIN_NETWORK_CONTROLLER_METADATA, getDefaultMultichainNetworkControllerState } from "./constants.mjs";
|
|
11
|
+
import { MULTICHAIN_NETWORK_CONTROLLER_NAME } from "./types.mjs";
|
|
12
|
+
import { checkIfSupportedCaipChainId, getChainIdForNonEvmAddress, convertEvmCaipToHexChainId, isEvmCaipChainId } from "./utils.mjs";
|
|
20
13
|
/**
|
|
21
14
|
* The MultichainNetworkController is responsible for fetching and caching account
|
|
22
15
|
* balances.
|
|
23
16
|
*/
|
|
24
17
|
export class MultichainNetworkController extends BaseController {
|
|
25
|
-
constructor({ messenger, state,
|
|
18
|
+
constructor({ messenger, state, }) {
|
|
26
19
|
super({
|
|
27
20
|
messenger,
|
|
28
21
|
name: MULTICHAIN_NETWORK_CONTROLLER_NAME,
|
|
@@ -36,8 +29,6 @@ export class MultichainNetworkController extends BaseController {
|
|
|
36
29
|
},
|
|
37
30
|
});
|
|
38
31
|
_MultichainNetworkController_instances.add(this);
|
|
39
|
-
_MultichainNetworkController_networkService.set(this, void 0);
|
|
40
|
-
__classPrivateFieldSet(this, _MultichainNetworkController_networkService, networkService, "f");
|
|
41
32
|
__classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_subscribeToMessageEvents).call(this);
|
|
42
33
|
__classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_registerMessageHandlers).call(this);
|
|
43
34
|
}
|
|
@@ -57,27 +48,6 @@ export class MultichainNetworkController extends BaseController {
|
|
|
57
48
|
}
|
|
58
49
|
return await __classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_setActiveEvmNetwork).call(this, id);
|
|
59
50
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Returns the active networks for the available EVM addresses (non-EVM networks will be supported in the future).
|
|
62
|
-
* Fetches the data from the API and caches it in state.
|
|
63
|
-
*
|
|
64
|
-
* @returns A promise that resolves to the active networks for the available addresses
|
|
65
|
-
*/
|
|
66
|
-
async getNetworksWithTransactionActivityByAccounts() {
|
|
67
|
-
const accounts = this.messagingSystem.call('AccountsController:listMultichainAccounts');
|
|
68
|
-
if (!accounts || accounts.length === 0) {
|
|
69
|
-
return this.state.networksWithTransactionActivity;
|
|
70
|
-
}
|
|
71
|
-
const formattedAccounts = accounts
|
|
72
|
-
.map((account) => toAllowedCaipAccountIds(account))
|
|
73
|
-
.flat();
|
|
74
|
-
const activeNetworks = await __classPrivateFieldGet(this, _MultichainNetworkController_networkService, "f").fetchNetworkActivity(formattedAccounts);
|
|
75
|
-
const formattedNetworks = toActiveNetworksByAddress(activeNetworks);
|
|
76
|
-
this.update((state) => {
|
|
77
|
-
state.networksWithTransactionActivity = formattedNetworks;
|
|
78
|
-
});
|
|
79
|
-
return this.state.networksWithTransactionActivity;
|
|
80
|
-
}
|
|
81
51
|
/**
|
|
82
52
|
* Removes a network from the list of networks.
|
|
83
53
|
* It only supports EVM networks.
|
|
@@ -92,7 +62,7 @@ export class MultichainNetworkController extends BaseController {
|
|
|
92
62
|
return __classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_removeNonEvmNetwork).call(this, chainId);
|
|
93
63
|
}
|
|
94
64
|
}
|
|
95
|
-
|
|
65
|
+
_MultichainNetworkController_instances = new WeakSet(), _MultichainNetworkController_setActiveEvmNetwork =
|
|
96
66
|
/**
|
|
97
67
|
* Sets the active EVM network.
|
|
98
68
|
*
|
|
@@ -192,6 +162,5 @@ async function _MultichainNetworkController_removeEvmNetwork(chainId) {
|
|
|
192
162
|
this.messagingSystem.subscribe('AccountsController:selectedAccountChange', (account) => __classPrivateFieldGet(this, _MultichainNetworkController_instances, "m", _MultichainNetworkController_handleOnSelectedAccountChange).call(this, account));
|
|
193
163
|
}, _MultichainNetworkController_registerMessageHandlers = function _MultichainNetworkController_registerMessageHandlers() {
|
|
194
164
|
this.messagingSystem.registerActionHandler('MultichainNetworkController:setActiveNetwork', this.setActiveNetwork.bind(this));
|
|
195
|
-
this.messagingSystem.registerActionHandler('MultichainNetworkController:getNetworksWithTransactionActivityByAccounts', this.getNetworksWithTransactionActivityByAccounts.bind(this));
|
|
196
165
|
};
|
|
197
166
|
//# sourceMappingURL=MultichainNetworkController.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultichainNetworkController.mjs","sourceRoot":"","sources":["../src/MultichainNetworkController.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseController } from '@metamask/base-controller';\nimport { isEvmAccountType } from '@metamask/keyring-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { NetworkClientId } from '@metamask/network-controller';\nimport { type CaipChainId, isCaipChainId } from '@metamask/utils';\n\nimport {\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n MULTICHAIN_NETWORK_CONTROLLER_METADATA,\n getDefaultMultichainNetworkControllerState,\n} from './constants';\nimport {\n MULTICHAIN_NETWORK_CONTROLLER_NAME,\n type MultichainNetworkControllerState,\n type MultichainNetworkControllerMessenger,\n type SupportedCaipChainId,\n} from './types';\nimport {\n checkIfSupportedCaipChainId,\n getChainIdForNonEvmAddress,\n convertEvmCaipToHexChainId,\n isEvmCaipChainId,\n} from './utils';\n\n/**\n * The MultichainNetworkController is responsible for fetching and caching account\n * balances.\n */\nexport class MultichainNetworkController extends BaseController<\n typeof MULTICHAIN_NETWORK_CONTROLLER_NAME,\n MultichainNetworkControllerState,\n MultichainNetworkControllerMessenger\n> {\n constructor({\n messenger,\n state,\n }: {\n messenger: MultichainNetworkControllerMessenger;\n state?: Omit<\n Partial<MultichainNetworkControllerState>,\n 'multichainNetworkConfigurationsByChainId'\n >;\n }) {\n super({\n messenger,\n name: MULTICHAIN_NETWORK_CONTROLLER_NAME,\n metadata: MULTICHAIN_NETWORK_CONTROLLER_METADATA,\n state: {\n ...getDefaultMultichainNetworkControllerState(),\n ...state,\n // We can keep the current network as a hardcoded value\n // since it is not expected to add/remove networks yet.\n multichainNetworkConfigurationsByChainId:\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n },\n });\n\n this.#subscribeToMessageEvents();\n this.#registerMessageHandlers();\n }\n\n /**\n * Sets the active EVM network.\n *\n * @param id - The client ID of the EVM network to set active.\n */\n async #setActiveEvmNetwork(id: NetworkClientId): Promise<void> {\n const { selectedNetworkClientId } = this.messagingSystem.call(\n 'NetworkController:getState',\n );\n\n const shouldSetEvmActive = !this.state.isEvmSelected;\n const shouldNotifyNetworkChange = id !== selectedNetworkClientId;\n\n // No changes needed if EVM is active and network is already selected\n if (!shouldSetEvmActive && !shouldNotifyNetworkChange) {\n return;\n }\n\n // Update EVM selection state if needed\n if (shouldSetEvmActive) {\n this.update((state) => {\n state.isEvmSelected = true;\n });\n }\n\n // Only notify the network controller if the selected evm network is different\n if (shouldNotifyNetworkChange) {\n await this.messagingSystem.call('NetworkController:setActiveNetwork', id);\n }\n\n // Only publish the networkDidChange event if either the EVM network is different or we're switching between EVM and non-EVM networks\n if (shouldSetEvmActive || shouldNotifyNetworkChange) {\n this.messagingSystem.publish(\n 'MultichainNetworkController:networkDidChange',\n id,\n );\n }\n }\n\n /**\n * Sets the active non-EVM network.\n *\n * @param id - The chain ID of the non-EVM network to set active.\n */\n #setActiveNonEvmNetwork(id: SupportedCaipChainId): void {\n if (\n id === this.state.selectedMultichainNetworkChainId &&\n !this.state.isEvmSelected\n ) {\n // Same non-EVM network is already selected, no need to update\n return;\n }\n\n this.update((state) => {\n state.selectedMultichainNetworkChainId = id;\n state.isEvmSelected = false;\n });\n\n // Notify listeners that the network changed\n this.messagingSystem.publish(\n 'MultichainNetworkController:networkDidChange',\n id,\n );\n }\n\n /**\n * Sets the active network.\n *\n * @param id - The non-EVM Caip chain ID or EVM client ID of the network to set active.\n * @returns - A promise that resolves when the network is set active.\n */\n async setActiveNetwork(\n id: SupportedCaipChainId | NetworkClientId,\n ): Promise<void> {\n if (isCaipChainId(id)) {\n const isSupportedCaipChainId = checkIfSupportedCaipChainId(id);\n if (!isSupportedCaipChainId) {\n throw new Error(`Unsupported Caip chain ID: ${String(id)}`);\n }\n return this.#setActiveNonEvmNetwork(id);\n }\n\n return await this.#setActiveEvmNetwork(id);\n }\n\n /**\n * Removes an EVM network from the list of networks.\n * This method re-directs the request to the network-controller.\n *\n * @param chainId - The chain ID of the network to remove.\n * @returns - A promise that resolves when the network is removed.\n */\n async #removeEvmNetwork(chainId: CaipChainId): Promise<void> {\n const hexChainId = convertEvmCaipToHexChainId(chainId);\n const selectedChainId = this.messagingSystem.call(\n 'NetworkController:getSelectedChainId',\n );\n\n if (selectedChainId === hexChainId) {\n // We prevent removing the currently selected network.\n if (this.state.isEvmSelected) {\n throw new Error('Cannot remove the currently selected network');\n }\n\n // If a non-EVM network is selected, we can delete the currently EVM selected network, but\n // we automatically switch to EVM mainnet.\n const ethereumMainnetHexChainId = '0x1'; // TODO: Should probably be a constant.\n const clientId = this.messagingSystem.call(\n 'NetworkController:findNetworkClientIdByChainId',\n ethereumMainnetHexChainId,\n );\n\n await this.messagingSystem.call(\n 'NetworkController:setActiveNetwork',\n clientId,\n );\n }\n\n this.messagingSystem.call('NetworkController:removeNetwork', hexChainId);\n }\n\n /**\n * Removes a non-EVM network from the list of networks.\n * This method is not supported and throws an error.\n *\n * @param _chainId - The chain ID of the network to remove.\n * @throws - An error indicating that removal of non-EVM networks is not supported.\n */\n #removeNonEvmNetwork(_chainId: CaipChainId): void {\n throw new Error('Removal of non-EVM networks is not supported');\n }\n\n /**\n * Removes a network from the list of networks.\n * It only supports EVM networks.\n *\n * @param chainId - The chain ID of the network to remove.\n * @returns - A promise that resolves when the network is removed.\n */\n async removeNetwork(chainId: CaipChainId): Promise<void> {\n if (isEvmCaipChainId(chainId)) {\n return await this.#removeEvmNetwork(chainId);\n }\n\n return this.#removeNonEvmNetwork(chainId);\n }\n\n /**\n * Handles switching between EVM and non-EVM networks when an account is changed\n *\n * @param account - The account that was changed\n */\n #handleOnSelectedAccountChange(account: InternalAccount) {\n const { type: accountType, address: accountAddress, scopes } = account;\n const isEvmAccount = isEvmAccountType(accountType);\n\n // Handle switching to EVM network\n if (isEvmAccount) {\n if (this.state.isEvmSelected) {\n // No need to update if already on evm network\n return;\n }\n\n // Make EVM network active\n this.update((state) => {\n state.isEvmSelected = true;\n });\n\n return;\n }\n\n // Handle switching to non-EVM network\n if (scopes.includes(this.state.selectedMultichainNetworkChainId)) {\n // No need to update if the account's scope includes the active network\n this.update((state) => {\n state.isEvmSelected = false;\n });\n return;\n }\n\n const nonEvmChainId = getChainIdForNonEvmAddress(accountAddress);\n this.update((state) => {\n state.selectedMultichainNetworkChainId = nonEvmChainId;\n state.isEvmSelected = false;\n });\n\n // No need to publish NetworkController:setActiveNetwork because EVM accounts falls back to use the last selected EVM network\n // DO NOT publish MultichainNetworkController:networkDidChange to prevent circular listener loops\n }\n\n /**\n * Subscribes to message events.\n */\n #subscribeToMessageEvents() {\n // Handle network switch when account is changed\n this.messagingSystem.subscribe(\n 'AccountsController:selectedAccountChange',\n (account) => this.#handleOnSelectedAccountChange(account),\n );\n }\n\n /**\n * Registers message handlers.\n */\n #registerMessageHandlers() {\n this.messagingSystem.registerActionHandler(\n 'MultichainNetworkController:setActiveNetwork',\n this.setActiveNetwork.bind(this),\n );\n }\n}\n"]}
|
package/dist/constants.cjs
CHANGED
|
@@ -83,7 +83,6 @@ const getDefaultMultichainNetworkControllerState = () => ({
|
|
|
83
83
|
multichainNetworkConfigurationsByChainId: exports.AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,
|
|
84
84
|
selectedMultichainNetworkChainId: keyring_api_1.SolScope.Mainnet,
|
|
85
85
|
isEvmSelected: true,
|
|
86
|
-
networksWithTransactionActivity: {},
|
|
87
86
|
});
|
|
88
87
|
exports.getDefaultMultichainNetworkControllerState = getDefaultMultichainNetworkControllerState;
|
|
89
88
|
/**
|
|
@@ -97,7 +96,6 @@ exports.MULTICHAIN_NETWORK_CONTROLLER_METADATA = {
|
|
|
97
96
|
multichainNetworkConfigurationsByChainId: { persist: true, anonymous: true },
|
|
98
97
|
selectedMultichainNetworkChainId: { persist: true, anonymous: true },
|
|
99
98
|
isEvmSelected: { persist: true, anonymous: true },
|
|
100
|
-
networksWithTransactionActivity: { persist: true, anonymous: true },
|
|
101
99
|
};
|
|
102
100
|
/**
|
|
103
101
|
* Multichain network ticker for the supported networks.
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AACA,uDAA6E;AAC7E,qEAA6D;AAShD,QAAA,gBAAgB,GAAG,GAAG,sBAAQ,CAAC,OAAO,WAAW,CAAC;AAClD,QAAA,wBAAwB,GAAG,GAAG,sBAAQ,CAAC,OAAO,WAAW,CAAC;AAC1D,QAAA,uBAAuB,GAAG,GAAG,sBAAQ,CAAC,MAAM,WAAW,CAAC;AACxD,QAAA,gBAAgB,GAAG,GAAG,sBAAQ,CAAC,OAAO,aAAa,CAAC;AACpD,QAAA,wBAAwB,GAAG,GAAG,sBAAQ,CAAC,OAAO,aAAa,CAAC;AAC5D,QAAA,uBAAuB,GAAG,GAAG,sBAAQ,CAAC,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACU,QAAA,2CAA2C,GAGpD;IACF,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,sBAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,wBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,sBAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,iBAAiB;QACvB,cAAc,EAAE,gCAAwB;QACxC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,sBAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,sBAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,+BAAuB;QACvC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,sBAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,wBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,sBAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,gCAAwB;QACxC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,sBAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,sBAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,+BAAuB;QACvC,KAAK,EAAE,KAAK;KACb;CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,mBAAmB,GAAkB;IAChD,sBAAQ,CAAC,OAAO;IAChB,sBAAQ,CAAC,MAAM;IACf,sBAAQ,CAAC,OAAO;IAChB,sBAAQ,CAAC,MAAM;CAChB,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAA8C;IAC1E,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,kCAAa,CAAC,SAAS;KAChC;IACD,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,kCAAa,CAAC,SAAS;KAChC;CACF,CAAC;AAEF;;;;GAIG;AACI,MAAM,0CAA0C,GACrD,GAAqC,EAAE,CAAC,CAAC;IACvC,wCAAwC,EACtC,mDAA2C;IAC7C,gCAAgC,EAAE,sBAAQ,CAAC,OAAO;IAClD,aAAa,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StateMetadata } from '@metamask/base-controller';\nimport { type CaipChainId, BtcScope, SolScope } from '@metamask/keyring-api';\nimport { NetworkStatus } from '@metamask/network-controller';\n\nimport type {\n MultichainNetworkConfiguration,\n MultichainNetworkControllerState,\n MultichainNetworkMetadata,\n SupportedCaipChainId,\n} from './types';\n\nexport const BTC_NATIVE_ASSET = `${BtcScope.Mainnet}/slip44:0`;\nexport const BTC_TESTNET_NATIVE_ASSET = `${BtcScope.Testnet}/slip44:0`;\nexport const BTC_SIGNET_NATIVE_ASSET = `${BtcScope.Signet}/slip44:0`;\nexport const SOL_NATIVE_ASSET = `${SolScope.Mainnet}/slip44:501`;\nexport const SOL_TESTNET_NATIVE_ASSET = `${SolScope.Testnet}/slip44:501`;\nexport const SOL_DEVNET_NATIVE_ASSET = `${SolScope.Devnet}/slip44:501`;\n\n/**\n * Supported networks by the MultichainNetworkController\n */\nexport const AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS: Record<\n SupportedCaipChainId,\n MultichainNetworkConfiguration\n> = {\n [BtcScope.Mainnet]: {\n chainId: BtcScope.Mainnet,\n name: 'Bitcoin',\n nativeCurrency: BTC_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Testnet]: {\n chainId: BtcScope.Testnet,\n name: 'Bitcoin Testnet',\n nativeCurrency: BTC_TESTNET_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Signet]: {\n chainId: BtcScope.Signet,\n name: 'Bitcoin Signet',\n nativeCurrency: BTC_SIGNET_NATIVE_ASSET,\n isEvm: false,\n },\n [SolScope.Mainnet]: {\n chainId: SolScope.Mainnet,\n name: 'Solana',\n nativeCurrency: SOL_NATIVE_ASSET,\n isEvm: false,\n },\n [SolScope.Testnet]: {\n chainId: SolScope.Testnet,\n name: 'Solana Testnet',\n nativeCurrency: SOL_TESTNET_NATIVE_ASSET,\n isEvm: false,\n },\n [SolScope.Devnet]: {\n chainId: SolScope.Devnet,\n name: 'Solana Devnet',\n nativeCurrency: SOL_DEVNET_NATIVE_ASSET,\n isEvm: false,\n },\n};\n\n/**\n * Array of all the Non-EVM chain IDs.\n * This is a temporary mention until we develop\n * a more robust solution to identify testnet networks.\n */\nexport const NON_EVM_TESTNET_IDS: CaipChainId[] = [\n BtcScope.Testnet,\n BtcScope.Signet,\n SolScope.Testnet,\n SolScope.Devnet,\n];\n\n/**\n * Metadata for the supported networks.\n */\nexport const NETWORKS_METADATA: Record<string, MultichainNetworkMetadata> = {\n [BtcScope.Mainnet]: {\n features: [],\n status: NetworkStatus.Available,\n },\n [SolScope.Mainnet]: {\n features: [],\n status: NetworkStatus.Available,\n },\n};\n\n/**\n * Default state of the {@link MultichainNetworkController}.\n *\n * @returns The default state of the {@link MultichainNetworkController}.\n */\nexport const getDefaultMultichainNetworkControllerState =\n (): MultichainNetworkControllerState => ({\n multichainNetworkConfigurationsByChainId:\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n selectedMultichainNetworkChainId: SolScope.Mainnet,\n isEvmSelected: true,\n });\n\n/**\n * {@link MultichainNetworkController}'s metadata.\n *\n * This allows us to choose if fields of the state should be persisted or not\n * using the `persist` flag; and if they can be sent to Sentry or not, using\n * the `anonymous` flag.\n */\nexport const MULTICHAIN_NETWORK_CONTROLLER_METADATA = {\n multichainNetworkConfigurationsByChainId: { persist: true, anonymous: true },\n selectedMultichainNetworkChainId: { persist: true, anonymous: true },\n isEvmSelected: { persist: true, anonymous: true },\n} satisfies StateMetadata<MultichainNetworkControllerState>;\n\n/**\n * Multichain network ticker for the supported networks.\n * TODO: This should be part of the assets-controllers or the snap itself.\n */\nexport const MULTICHAIN_NETWORK_TICKER: Record<CaipChainId, string> = {\n [BtcScope.Mainnet]: 'BTC',\n [BtcScope.Testnet]: 'tBTC',\n [BtcScope.Signet]: 'sBTC',\n [SolScope.Mainnet]: 'SOL',\n [SolScope.Testnet]: 'tSOL',\n [SolScope.Devnet]: 'dSOL',\n} as const;\n\n/**\n * Multichain network asset decimals for the supported networks.\n * TODO: This should be part of the assets-controllers or the snap itself.\n */\nexport const MULTICHAIN_NETWORK_DECIMAL_PLACES: Record<CaipChainId, number> = {\n [BtcScope.Mainnet]: 8,\n [BtcScope.Testnet]: 8,\n [BtcScope.Signet]: 8,\n [SolScope.Mainnet]: 5,\n [SolScope.Testnet]: 5,\n [SolScope.Devnet]: 5,\n} as const;\n"]}
|
package/dist/constants.d.cts
CHANGED
|
@@ -46,10 +46,6 @@ export declare const MULTICHAIN_NETWORK_CONTROLLER_METADATA: {
|
|
|
46
46
|
persist: true;
|
|
47
47
|
anonymous: true;
|
|
48
48
|
};
|
|
49
|
-
networksWithTransactionActivity: {
|
|
50
|
-
persist: true;
|
|
51
|
-
anonymous: true;
|
|
52
|
-
};
|
|
53
49
|
};
|
|
54
50
|
/**
|
|
55
51
|
* Multichain network ticker for the supported networks.
|
package/dist/constants.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAsB,8BAA8B;AAG7E,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACrB,oBAAgB;AAEjB,eAAO,MAAM,gBAAgB,qDAAiC,CAAC;AAC/D,eAAO,MAAM,wBAAwB,qDAAiC,CAAC;AACvE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAsC/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAK5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CASvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,
|
|
1
|
+
{"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAsB,8BAA8B;AAG7E,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACrB,oBAAgB;AAEjB,eAAO,MAAM,gBAAgB,qDAAiC,CAAC;AAC/D,eAAO,MAAM,wBAAwB,qDAAiC,CAAC;AACvE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAsC/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAK5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CASvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,gCAKF,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;CAIQ,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOxD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOhE,CAAC"}
|
package/dist/constants.d.mts
CHANGED
|
@@ -46,10 +46,6 @@ export declare const MULTICHAIN_NETWORK_CONTROLLER_METADATA: {
|
|
|
46
46
|
persist: true;
|
|
47
47
|
anonymous: true;
|
|
48
48
|
};
|
|
49
|
-
networksWithTransactionActivity: {
|
|
50
|
-
persist: true;
|
|
51
|
-
anonymous: true;
|
|
52
|
-
};
|
|
53
49
|
};
|
|
54
50
|
/**
|
|
55
51
|
* Multichain network ticker for the supported networks.
|
package/dist/constants.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAsB,8BAA8B;AAG7E,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACrB,oBAAgB;AAEjB,eAAO,MAAM,gBAAgB,qDAAiC,CAAC;AAC/D,eAAO,MAAM,wBAAwB,qDAAiC,CAAC;AACvE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAsC/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAK5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CASvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,
|
|
1
|
+
{"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAsB,8BAA8B;AAG7E,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACrB,oBAAgB;AAEjB,eAAO,MAAM,gBAAgB,qDAAiC,CAAC;AAC/D,eAAO,MAAM,wBAAwB,qDAAiC,CAAC;AACvE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAsC/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAK5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CASvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,gCAKF,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;CAIQ,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOxD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOhE,CAAC"}
|
package/dist/constants.mjs
CHANGED
|
@@ -80,7 +80,6 @@ export const getDefaultMultichainNetworkControllerState = () => ({
|
|
|
80
80
|
multichainNetworkConfigurationsByChainId: AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,
|
|
81
81
|
selectedMultichainNetworkChainId: SolScope.Mainnet,
|
|
82
82
|
isEvmSelected: true,
|
|
83
|
-
networksWithTransactionActivity: {},
|
|
84
83
|
});
|
|
85
84
|
/**
|
|
86
85
|
* {@link MultichainNetworkController}'s metadata.
|
|
@@ -93,7 +92,6 @@ export const MULTICHAIN_NETWORK_CONTROLLER_METADATA = {
|
|
|
93
92
|
multichainNetworkConfigurationsByChainId: { persist: true, anonymous: true },
|
|
94
93
|
selectedMultichainNetworkChainId: { persist: true, anonymous: true },
|
|
95
94
|
isEvmSelected: { persist: true, anonymous: true },
|
|
96
|
-
networksWithTransactionActivity: { persist: true, anonymous: true },
|
|
97
95
|
};
|
|
98
96
|
/**
|
|
99
97
|
* Multichain network ticker for the supported networks.
|
package/dist/constants.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAC7E,OAAO,EAAE,aAAa,EAAE,qCAAqC;AAS7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAGpD;IACF,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,iBAAiB;QACvB,cAAc,EAAE,wBAAwB;QACxC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,uBAAuB;QACvC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,wBAAwB;QACxC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,uBAAuB;QACvC,KAAK,EAAE,KAAK;KACb;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,MAAM;IACf,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,MAAM;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA8C;IAC1E,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,aAAa,CAAC,SAAS;KAChC;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,aAAa,CAAC,SAAS;KAChC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,GAAqC,EAAE,CAAC,CAAC;IACvC,wCAAwC,EACtC,2CAA2C;IAC7C,gCAAgC,EAAE,QAAQ,CAAC,OAAO;IAClD,aAAa,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAC7E,OAAO,EAAE,aAAa,EAAE,qCAAqC;AAS7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAGpD;IACF,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,iBAAiB;QACvB,cAAc,EAAE,wBAAwB;QACxC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,uBAAuB;QACvC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,wBAAwB;QACxC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,uBAAuB;QACvC,KAAK,EAAE,KAAK;KACb;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,MAAM;IACf,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,MAAM;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA8C;IAC1E,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,aAAa,CAAC,SAAS;KAChC;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,aAAa,CAAC,SAAS;KAChC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,GAAqC,EAAE,CAAC,CAAC;IACvC,wCAAwC,EACtC,2CAA2C;IAC7C,gCAAgC,EAAE,QAAQ,CAAC,OAAO;IAClD,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG;IACpD,wCAAwC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IAC5E,gCAAgC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACpE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;CACQ,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAgC;IACpE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK;IACzB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;IAC1B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACzB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK;IACzB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;IAC1B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;CACjB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAgC;IAC5E,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CACZ,CAAC","sourcesContent":["import { type StateMetadata } from '@metamask/base-controller';\nimport { type CaipChainId, BtcScope, SolScope } from '@metamask/keyring-api';\nimport { NetworkStatus } from '@metamask/network-controller';\n\nimport type {\n MultichainNetworkConfiguration,\n MultichainNetworkControllerState,\n MultichainNetworkMetadata,\n SupportedCaipChainId,\n} from './types';\n\nexport const BTC_NATIVE_ASSET = `${BtcScope.Mainnet}/slip44:0`;\nexport const BTC_TESTNET_NATIVE_ASSET = `${BtcScope.Testnet}/slip44:0`;\nexport const BTC_SIGNET_NATIVE_ASSET = `${BtcScope.Signet}/slip44:0`;\nexport const SOL_NATIVE_ASSET = `${SolScope.Mainnet}/slip44:501`;\nexport const SOL_TESTNET_NATIVE_ASSET = `${SolScope.Testnet}/slip44:501`;\nexport const SOL_DEVNET_NATIVE_ASSET = `${SolScope.Devnet}/slip44:501`;\n\n/**\n * Supported networks by the MultichainNetworkController\n */\nexport const AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS: Record<\n SupportedCaipChainId,\n MultichainNetworkConfiguration\n> = {\n [BtcScope.Mainnet]: {\n chainId: BtcScope.Mainnet,\n name: 'Bitcoin',\n nativeCurrency: BTC_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Testnet]: {\n chainId: BtcScope.Testnet,\n name: 'Bitcoin Testnet',\n nativeCurrency: BTC_TESTNET_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Signet]: {\n chainId: BtcScope.Signet,\n name: 'Bitcoin Signet',\n nativeCurrency: BTC_SIGNET_NATIVE_ASSET,\n isEvm: false,\n },\n [SolScope.Mainnet]: {\n chainId: SolScope.Mainnet,\n name: 'Solana',\n nativeCurrency: SOL_NATIVE_ASSET,\n isEvm: false,\n },\n [SolScope.Testnet]: {\n chainId: SolScope.Testnet,\n name: 'Solana Testnet',\n nativeCurrency: SOL_TESTNET_NATIVE_ASSET,\n isEvm: false,\n },\n [SolScope.Devnet]: {\n chainId: SolScope.Devnet,\n name: 'Solana Devnet',\n nativeCurrency: SOL_DEVNET_NATIVE_ASSET,\n isEvm: false,\n },\n};\n\n/**\n * Array of all the Non-EVM chain IDs.\n * This is a temporary mention until we develop\n * a more robust solution to identify testnet networks.\n */\nexport const NON_EVM_TESTNET_IDS: CaipChainId[] = [\n BtcScope.Testnet,\n BtcScope.Signet,\n SolScope.Testnet,\n SolScope.Devnet,\n];\n\n/**\n * Metadata for the supported networks.\n */\nexport const NETWORKS_METADATA: Record<string, MultichainNetworkMetadata> = {\n [BtcScope.Mainnet]: {\n features: [],\n status: NetworkStatus.Available,\n },\n [SolScope.Mainnet]: {\n features: [],\n status: NetworkStatus.Available,\n },\n};\n\n/**\n * Default state of the {@link MultichainNetworkController}.\n *\n * @returns The default state of the {@link MultichainNetworkController}.\n */\nexport const getDefaultMultichainNetworkControllerState =\n (): MultichainNetworkControllerState => ({\n multichainNetworkConfigurationsByChainId:\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n selectedMultichainNetworkChainId: SolScope.Mainnet,\n isEvmSelected: true,\n });\n\n/**\n * {@link MultichainNetworkController}'s metadata.\n *\n * This allows us to choose if fields of the state should be persisted or not\n * using the `persist` flag; and if they can be sent to Sentry or not, using\n * the `anonymous` flag.\n */\nexport const MULTICHAIN_NETWORK_CONTROLLER_METADATA = {\n multichainNetworkConfigurationsByChainId: { persist: true, anonymous: true },\n selectedMultichainNetworkChainId: { persist: true, anonymous: true },\n isEvmSelected: { persist: true, anonymous: true },\n} satisfies StateMetadata<MultichainNetworkControllerState>;\n\n/**\n * Multichain network ticker for the supported networks.\n * TODO: This should be part of the assets-controllers or the snap itself.\n */\nexport const MULTICHAIN_NETWORK_TICKER: Record<CaipChainId, string> = {\n [BtcScope.Mainnet]: 'BTC',\n [BtcScope.Testnet]: 'tBTC',\n [BtcScope.Signet]: 'sBTC',\n [SolScope.Mainnet]: 'SOL',\n [SolScope.Testnet]: 'tSOL',\n [SolScope.Devnet]: 'dSOL',\n} as const;\n\n/**\n * Multichain network asset decimals for the supported networks.\n * TODO: This should be part of the assets-controllers or the snap itself.\n */\nexport const MULTICHAIN_NETWORK_DECIMAL_PLACES: Record<CaipChainId, number> = {\n [BtcScope.Mainnet]: 8,\n [BtcScope.Testnet]: 8,\n [BtcScope.Signet]: 8,\n [SolScope.Mainnet]: 5,\n [SolScope.Testnet]: 5,\n [SolScope.Devnet]: 5,\n} as const;\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toEvmCaipChainId = exports.toMultichainNetworkConfigurationsByChainId = exports.toMultichainNetworkConfiguration = exports.checkIfSupportedCaipChainId = exports.AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS = exports.MULTICHAIN_NETWORK_DECIMAL_PLACES = exports.MULTICHAIN_NETWORK_TICKER = exports.NON_EVM_TESTNET_IDS = exports.getDefaultMultichainNetworkControllerState = exports.
|
|
4
|
-
var MultichainNetworkController_1 = require("./MultichainNetworkController
|
|
3
|
+
exports.toEvmCaipChainId = exports.toMultichainNetworkConfigurationsByChainId = exports.toMultichainNetworkConfiguration = exports.checkIfSupportedCaipChainId = exports.AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS = exports.MULTICHAIN_NETWORK_DECIMAL_PLACES = exports.MULTICHAIN_NETWORK_TICKER = exports.NON_EVM_TESTNET_IDS = exports.getDefaultMultichainNetworkControllerState = exports.MultichainNetworkController = void 0;
|
|
4
|
+
var MultichainNetworkController_1 = require("./MultichainNetworkController.cjs");
|
|
5
5
|
Object.defineProperty(exports, "MultichainNetworkController", { enumerable: true, get: function () { return MultichainNetworkController_1.MultichainNetworkController; } });
|
|
6
|
-
var MultichainNetworkService_1 = require("./MultichainNetworkService/MultichainNetworkService.cjs");
|
|
7
|
-
Object.defineProperty(exports, "MultichainNetworkService", { enumerable: true, get: function () { return MultichainNetworkService_1.MultichainNetworkService; } });
|
|
8
6
|
var constants_1 = require("./constants.cjs");
|
|
9
7
|
Object.defineProperty(exports, "getDefaultMultichainNetworkControllerState", { enumerable: true, get: function () { return constants_1.getDefaultMultichainNetworkControllerState; } });
|
|
10
8
|
Object.defineProperty(exports, "NON_EVM_TESTNET_IDS", { enumerable: true, get: function () { return constants_1.NON_EVM_TESTNET_IDS; } });
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,6CAMqB;AALnB,uIAAA,0CAA0C,OAAA;AAC1C,gHAAA,mBAAmB,OAAA;AACnB,sHAAA,yBAAyB,OAAA;AACzB,8HAAA,iCAAiC,OAAA;AACjC,wIAAA,2CAA2C,OAAA;AAkB7C,qCAKiB;AAJf,oHAAA,2BAA2B,OAAA;AAC3B,yHAAA,gCAAgC,OAAA;AAChC,mIAAA,0CAA0C,OAAA;AAC1C,yGAAA,gBAAgB,OAAA","sourcesContent":["export { MultichainNetworkController } from './MultichainNetworkController';\nexport {\n getDefaultMultichainNetworkControllerState,\n NON_EVM_TESTNET_IDS,\n MULTICHAIN_NETWORK_TICKER,\n MULTICHAIN_NETWORK_DECIMAL_PLACES,\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n} from './constants';\nexport type {\n MultichainNetworkMetadata,\n SupportedCaipChainId,\n CommonNetworkConfiguration,\n NonEvmNetworkConfiguration,\n EvmNetworkConfiguration,\n MultichainNetworkConfiguration,\n MultichainNetworkControllerState,\n MultichainNetworkControllerGetStateAction,\n MultichainNetworkControllerSetActiveNetworkAction,\n MultichainNetworkControllerStateChange,\n MultichainNetworkControllerNetworkDidChangeEvent,\n MultichainNetworkControllerActions,\n MultichainNetworkControllerEvents,\n MultichainNetworkControllerMessenger,\n} from './types';\nexport {\n checkIfSupportedCaipChainId,\n toMultichainNetworkConfiguration,\n toMultichainNetworkConfigurationsByChainId,\n toEvmCaipChainId,\n} from './utils';\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export { MultichainNetworkController } from "./MultichainNetworkController
|
|
2
|
-
export { MultichainNetworkService } from "./MultichainNetworkService/MultichainNetworkService.cjs";
|
|
1
|
+
export { MultichainNetworkController } from "./MultichainNetworkController.cjs";
|
|
3
2
|
export { getDefaultMultichainNetworkControllerState, NON_EVM_TESTNET_IDS, MULTICHAIN_NETWORK_TICKER, MULTICHAIN_NETWORK_DECIMAL_PLACES, AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS, } from "./constants.cjs";
|
|
4
3
|
export type { MultichainNetworkMetadata, SupportedCaipChainId, CommonNetworkConfiguration, NonEvmNetworkConfiguration, EvmNetworkConfiguration, MultichainNetworkConfiguration, MultichainNetworkControllerState, MultichainNetworkControllerGetStateAction, MultichainNetworkControllerSetActiveNetworkAction, MultichainNetworkControllerStateChange, MultichainNetworkControllerNetworkDidChangeEvent, MultichainNetworkControllerActions, MultichainNetworkControllerEvents, MultichainNetworkControllerMessenger, } from "./types.cjs";
|
|
5
4
|
export { checkIfSupportedCaipChainId, toMultichainNetworkConfiguration, toMultichainNetworkConfigurationsByChainId, toEvmCaipChainId, } from "./utils.cjs";
|
|
6
|
-
export type { ActiveNetworksByAddress } from "./api/accounts-api.cjs";
|
|
7
5
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,OAAO,EACL,0CAA0C,EAC1C,mBAAmB,EACnB,yBAAyB,EACzB,iCAAiC,EACjC,2CAA2C,GAC5C,wBAAoB;AACrB,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAChC,yCAAyC,EACzC,iDAAiD,EACjD,sCAAsC,EACtC,gDAAgD,EAChD,kCAAkC,EAClC,iCAAiC,EACjC,oCAAoC,GACrC,oBAAgB;AACjB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,0CAA0C,EAC1C,gBAAgB,GACjB,oBAAgB"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export { MultichainNetworkController } from "./MultichainNetworkController
|
|
2
|
-
export { MultichainNetworkService } from "./MultichainNetworkService/MultichainNetworkService.mjs";
|
|
1
|
+
export { MultichainNetworkController } from "./MultichainNetworkController.mjs";
|
|
3
2
|
export { getDefaultMultichainNetworkControllerState, NON_EVM_TESTNET_IDS, MULTICHAIN_NETWORK_TICKER, MULTICHAIN_NETWORK_DECIMAL_PLACES, AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS, } from "./constants.mjs";
|
|
4
3
|
export type { MultichainNetworkMetadata, SupportedCaipChainId, CommonNetworkConfiguration, NonEvmNetworkConfiguration, EvmNetworkConfiguration, MultichainNetworkConfiguration, MultichainNetworkControllerState, MultichainNetworkControllerGetStateAction, MultichainNetworkControllerSetActiveNetworkAction, MultichainNetworkControllerStateChange, MultichainNetworkControllerNetworkDidChangeEvent, MultichainNetworkControllerActions, MultichainNetworkControllerEvents, MultichainNetworkControllerMessenger, } from "./types.mjs";
|
|
5
4
|
export { checkIfSupportedCaipChainId, toMultichainNetworkConfiguration, toMultichainNetworkConfigurationsByChainId, toEvmCaipChainId, } from "./utils.mjs";
|
|
6
|
-
export type { ActiveNetworksByAddress } from "./api/accounts-api.mjs";
|
|
7
5
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,OAAO,EACL,0CAA0C,EAC1C,mBAAmB,EACnB,yBAAyB,EACzB,iCAAiC,EACjC,2CAA2C,GAC5C,wBAAoB;AACrB,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAChC,yCAAyC,EACzC,iDAAiD,EACjD,sCAAsC,EACtC,gDAAgD,EAChD,kCAAkC,EAClC,iCAAiC,EACjC,oCAAoC,GACrC,oBAAgB;AACjB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,0CAA0C,EAC1C,gBAAgB,GACjB,oBAAgB"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { MultichainNetworkController } from "./MultichainNetworkController
|
|
2
|
-
export { MultichainNetworkService } from "./MultichainNetworkService/MultichainNetworkService.mjs";
|
|
1
|
+
export { MultichainNetworkController } from "./MultichainNetworkController.mjs";
|
|
3
2
|
export { getDefaultMultichainNetworkControllerState, NON_EVM_TESTNET_IDS, MULTICHAIN_NETWORK_TICKER, MULTICHAIN_NETWORK_DECIMAL_PLACES, AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS } from "./constants.mjs";
|
|
4
3
|
export { checkIfSupportedCaipChainId, toMultichainNetworkConfiguration, toMultichainNetworkConfigurationsByChainId, toEvmCaipChainId } from "./utils.mjs";
|
|
5
4
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,0CAAsC;AAC5E,OAAO,EACL,0CAA0C,EAC1C,mBAAmB,EACnB,yBAAyB,EACzB,iCAAiC,EACjC,2CAA2C,EAC5C,wBAAoB;AAiBrB,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,0CAA0C,EAC1C,gBAAgB,EACjB,oBAAgB","sourcesContent":["export { MultichainNetworkController } from './MultichainNetworkController';\nexport {\n getDefaultMultichainNetworkControllerState,\n NON_EVM_TESTNET_IDS,\n MULTICHAIN_NETWORK_TICKER,\n MULTICHAIN_NETWORK_DECIMAL_PLACES,\n AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS,\n} from './constants';\nexport type {\n MultichainNetworkMetadata,\n SupportedCaipChainId,\n CommonNetworkConfiguration,\n NonEvmNetworkConfiguration,\n EvmNetworkConfiguration,\n MultichainNetworkConfiguration,\n MultichainNetworkControllerState,\n MultichainNetworkControllerGetStateAction,\n MultichainNetworkControllerSetActiveNetworkAction,\n MultichainNetworkControllerStateChange,\n MultichainNetworkControllerNetworkDidChangeEvent,\n MultichainNetworkControllerActions,\n MultichainNetworkControllerEvents,\n MultichainNetworkControllerMessenger,\n} from './types';\nexport {\n checkIfSupportedCaipChainId,\n toMultichainNetworkConfiguration,\n toMultichainNetworkConfigurationsByChainId,\n toEvmCaipChainId,\n} from './utils';\n"]}
|