@metamask/multichain-network-controller 0.12.0 → 1.0.0

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 CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.0]
11
+
12
+ ### Added
13
+
14
+ - Add two new controller state metadata properties: `includeInStateLogs` and `usedInUi` ([#6525](https://github.com/MetaMask/core/pull/6525))
15
+ - Add Solana Devnet support to multichain network controller ([#6670](https://github.com/MetaMask/core/pull/6670))
16
+
17
+ ### Changed
18
+
19
+ - Bump package version to v1.0 to mark stabilization ([#6676](https://github.com/MetaMask/core/pull/6676))
20
+ - Bump `@metamask/controller-utils` from `^11.12.0` to `^11.14.0` ([#6620](https://github.com/MetaMask/core/pull/6620), [#6629](https://github.com/MetaMask/core/pull/6629))
21
+ - Bump `@metamask/base-controller` from `^8.1.0` to `^8.4.0` ([#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632))
22
+ - Bump `@metamask/keyring-api` from `^20.1.0` to `^21.0.0` ([#6560](https://github.com/MetaMask/core/pull/6560))
23
+ - Bump `@metamask/keyring-internal-api` from `^8.1.0` to `^9.0.0` ([#6560](https://github.com/MetaMask/core/pull/6560))
24
+ - Bump `@metamask/utils` from `^11.4.2` to `^11.8.0` ([#6588](https://github.com/MetaMask/core/pull/6588))
25
+
10
26
  ## [0.12.0]
11
27
 
12
28
  ### Changed
@@ -146,7 +162,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
146
162
  - Handle both EVM and non-EVM network and account switching for the associated network.
147
163
  - Act as a proxy for the `NetworkController` (for EVM network changes).
148
164
 
149
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/multichain-network-controller@0.12.0...HEAD
165
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/multichain-network-controller@1.0.0...HEAD
166
+ [1.0.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-network-controller@0.12.0...@metamask/multichain-network-controller@1.0.0
150
167
  [0.12.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-network-controller@0.11.1...@metamask/multichain-network-controller@0.12.0
151
168
  [0.11.1]: https://github.com/MetaMask/core/compare/@metamask/multichain-network-controller@0.11.0...@metamask/multichain-network-controller@0.11.1
152
169
  [0.11.0]: https://github.com/MetaMask/core/compare/@metamask/multichain-network-controller@0.10.0...@metamask/multichain-network-controller@0.11.0
@@ -29,6 +29,7 @@ exports.MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES = [
29
29
  String(keyring_api_1.BtcScope.Signet),
30
30
  String(keyring_api_1.BtcScope.Regtest),
31
31
  String(keyring_api_1.SolScope.Mainnet),
32
+ String(keyring_api_1.SolScope.Devnet),
32
33
  String(keyring_api_1.EthScope.Mainnet),
33
34
  String(keyring_api_1.EthScope.Testnet),
34
35
  String(keyring_api_1.EthScope.Eoa),
@@ -1 +1 @@
1
- {"version":3,"file":"accounts-api.cjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAE/E,uDAAkE;AAClE,2CAA0E;AAQ7D,QAAA,4BAA4B,GAAG,IAAA,oBAAM,EAAC;IACjD,cAAc,EAAE,IAAA,mBAAK,EAAC,2BAAmB,CAAC;CAC3C,CAAC,CAAC;AAiBH;;GAEG;AACU,QAAA,4BAA4B,GACvC,qCAAqC,CAAC;AAExC;;GAEG;AACU,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAE5E;;GAEG;AACU,QAAA,6BAA6B,GACxC,wCAAwC,CAAC;AAE3C;;GAEG;AACU,QAAA,wCAAwC,GAAG;IACtD,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,sBAAQ,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,GAAG,CAAC;IACpB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,IAAI,CAAC;IACrB,MAAM,CAAC,sBAAQ,CAAC,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,OAAwB;IAExB,MAAM,iBAAiB,GAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;QAClC,IAAI,gDAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC5D,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACvD;KACF;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAXD,0DAWC;AAED;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,QAAgC;IAEhC,MAAM,iBAAiB,GAA4B,EAAE,CAAC;IAEtD,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1C,MAAM,EACJ,OAAO,EACP,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAChC,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC/B,iBAAiB,CAAC,OAAO,CAAC,GAAG;gBAC3B,SAAS;gBACT,YAAY,EAAE,EAAE;aACjB,CAAC;SACH;QACD,iBAAiB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AArBD,8DAqBC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,UAA2B;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,oCAA4B,oBAAoB,CAAC,CAAC;IACzE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC;AAJD,wDAIC","sourcesContent":["import { BtcScope, SolScope, EthScope, TrxScope } from '@metamask/keyring-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport { type Infer, array, object } from '@metamask/superstruct';\nimport { CaipAccountIdStruct, parseCaipAccountId } from '@metamask/utils';\nimport type {\n CaipAccountAddress,\n CaipAccountId,\n CaipNamespace,\n CaipReference,\n} from '@metamask/utils';\n\nexport const ActiveNetworksResponseStruct = object({\n activeNetworks: array(CaipAccountIdStruct),\n});\n\nexport type ActiveNetworksResponse = Infer<typeof ActiveNetworksResponseStruct>;\n\n/**\n * The active networks for the currently selected account.\n */\nexport type ActiveNetworksByAddress = Record<\n CaipAccountAddress,\n {\n // CAIP-2 namespace of the network.\n namespace: CaipNamespace;\n // Active chain IDs (CAIP-2 references) on that network (primarily used for EVM networks).\n activeChains: CaipReference[];\n }\n>;\n\n/**\n * The domain for multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_BASE_URL =\n 'https://accounts.api.cx.metamask.io';\n\n/**\n * The client header for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_HEADER = 'x-metamask-clientproduct';\n\n/**\n * The client ID for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_ID =\n 'metamask-multichain-network-controller';\n\n/**\n * The allowed active network scopes for the multichain network controller.\n */\nexport const MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES = [\n String(BtcScope.Mainnet),\n String(BtcScope.Testnet),\n String(BtcScope.Testnet4),\n String(BtcScope.Signet),\n String(BtcScope.Regtest),\n String(SolScope.Mainnet),\n String(EthScope.Mainnet),\n String(EthScope.Testnet),\n String(EthScope.Eoa),\n String(TrxScope.Mainnet),\n String(TrxScope.Nile),\n String(TrxScope.Shasta),\n];\n\n/**\n * Converts an internal account to an array of CAIP-10 account IDs.\n *\n * @param account - The internal account to convert\n * @returns The CAIP-10 account IDs\n */\nexport function toAllowedCaipAccountIds(\n account: InternalAccount,\n): CaipAccountId[] {\n const formattedAccounts: CaipAccountId[] = [];\n for (const scope of account.scopes) {\n if (MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES.includes(scope)) {\n formattedAccounts.push(`${scope}:${account.address}`);\n }\n }\n\n return formattedAccounts;\n}\n\n/**\n * Formats the API response into our state structure.\n * Example input: [\"eip155:1:0x123...\", \"eip155:137:0x123...\", \"solana:1:0xabc...\"]\n *\n * @param response - The raw API response\n * @returns Formatted networks by address\n */\nexport function toActiveNetworksByAddress(\n response: ActiveNetworksResponse,\n): ActiveNetworksByAddress {\n const networksByAddress: ActiveNetworksByAddress = {};\n\n response.activeNetworks.forEach((network) => {\n const {\n address,\n chain: { namespace, reference },\n } = parseCaipAccountId(network);\n\n if (!networksByAddress[address]) {\n networksByAddress[address] = {\n namespace,\n activeChains: [],\n };\n }\n networksByAddress[address].activeChains.push(reference);\n });\n\n return networksByAddress;\n}\n\n/**\n * Constructs the URL for the active networks API endpoint.\n *\n * @param accountIds - Array of account IDs\n * @returns URL object for the API endpoint\n */\nexport function buildActiveNetworksUrl(accountIds: CaipAccountId[]): URL {\n const url = new URL(`${MULTICHAIN_ACCOUNTS_BASE_URL}/v2/activeNetworks`);\n url.searchParams.append('accountIds', accountIds.join(','));\n return url;\n}\n"]}
1
+ {"version":3,"file":"accounts-api.cjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAE/E,uDAAkE;AAClE,2CAA0E;AAQ7D,QAAA,4BAA4B,GAAG,IAAA,oBAAM,EAAC;IACjD,cAAc,EAAE,IAAA,mBAAK,EAAC,2BAAmB,CAAC;CAC3C,CAAC,CAAC;AAiBH;;GAEG;AACU,QAAA,4BAA4B,GACvC,qCAAqC,CAAC;AAExC;;GAEG;AACU,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAE5E;;GAEG;AACU,QAAA,6BAA6B,GACxC,wCAAwC,CAAC;AAE3C;;GAEG;AACU,QAAA,wCAAwC,GAAG;IACtD,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,sBAAQ,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,GAAG,CAAC;IACpB,MAAM,CAAC,sBAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,sBAAQ,CAAC,IAAI,CAAC;IACrB,MAAM,CAAC,sBAAQ,CAAC,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,OAAwB;IAExB,MAAM,iBAAiB,GAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;QAClC,IAAI,gDAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC5D,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACvD;KACF;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAXD,0DAWC;AAED;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,QAAgC;IAEhC,MAAM,iBAAiB,GAA4B,EAAE,CAAC;IAEtD,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1C,MAAM,EACJ,OAAO,EACP,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAChC,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC/B,iBAAiB,CAAC,OAAO,CAAC,GAAG;gBAC3B,SAAS;gBACT,YAAY,EAAE,EAAE;aACjB,CAAC;SACH;QACD,iBAAiB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AArBD,8DAqBC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,UAA2B;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,oCAA4B,oBAAoB,CAAC,CAAC;IACzE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC;AAJD,wDAIC","sourcesContent":["import { BtcScope, SolScope, EthScope, TrxScope } from '@metamask/keyring-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport { type Infer, array, object } from '@metamask/superstruct';\nimport { CaipAccountIdStruct, parseCaipAccountId } from '@metamask/utils';\nimport type {\n CaipAccountAddress,\n CaipAccountId,\n CaipNamespace,\n CaipReference,\n} from '@metamask/utils';\n\nexport const ActiveNetworksResponseStruct = object({\n activeNetworks: array(CaipAccountIdStruct),\n});\n\nexport type ActiveNetworksResponse = Infer<typeof ActiveNetworksResponseStruct>;\n\n/**\n * The active networks for the currently selected account.\n */\nexport type ActiveNetworksByAddress = Record<\n CaipAccountAddress,\n {\n // CAIP-2 namespace of the network.\n namespace: CaipNamespace;\n // Active chain IDs (CAIP-2 references) on that network (primarily used for EVM networks).\n activeChains: CaipReference[];\n }\n>;\n\n/**\n * The domain for multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_BASE_URL =\n 'https://accounts.api.cx.metamask.io';\n\n/**\n * The client header for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_HEADER = 'x-metamask-clientproduct';\n\n/**\n * The client ID for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_ID =\n 'metamask-multichain-network-controller';\n\n/**\n * The allowed active network scopes for the multichain network controller.\n */\nexport const MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES = [\n String(BtcScope.Mainnet),\n String(BtcScope.Testnet),\n String(BtcScope.Testnet4),\n String(BtcScope.Signet),\n String(BtcScope.Regtest),\n String(SolScope.Mainnet),\n String(SolScope.Devnet),\n String(EthScope.Mainnet),\n String(EthScope.Testnet),\n String(EthScope.Eoa),\n String(TrxScope.Mainnet),\n String(TrxScope.Nile),\n String(TrxScope.Shasta),\n];\n\n/**\n * Converts an internal account to an array of CAIP-10 account IDs.\n *\n * @param account - The internal account to convert\n * @returns The CAIP-10 account IDs\n */\nexport function toAllowedCaipAccountIds(\n account: InternalAccount,\n): CaipAccountId[] {\n const formattedAccounts: CaipAccountId[] = [];\n for (const scope of account.scopes) {\n if (MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES.includes(scope)) {\n formattedAccounts.push(`${scope}:${account.address}`);\n }\n }\n\n return formattedAccounts;\n}\n\n/**\n * Formats the API response into our state structure.\n * Example input: [\"eip155:1:0x123...\", \"eip155:137:0x123...\", \"solana:1:0xabc...\"]\n *\n * @param response - The raw API response\n * @returns Formatted networks by address\n */\nexport function toActiveNetworksByAddress(\n response: ActiveNetworksResponse,\n): ActiveNetworksByAddress {\n const networksByAddress: ActiveNetworksByAddress = {};\n\n response.activeNetworks.forEach((network) => {\n const {\n address,\n chain: { namespace, reference },\n } = parseCaipAccountId(network);\n\n if (!networksByAddress[address]) {\n networksByAddress[address] = {\n namespace,\n activeChains: [],\n };\n }\n networksByAddress[address].activeChains.push(reference);\n });\n\n return networksByAddress;\n}\n\n/**\n * Constructs the URL for the active networks API endpoint.\n *\n * @param accountIds - Array of account IDs\n * @returns URL object for the API endpoint\n */\nexport function buildActiveNetworksUrl(accountIds: CaipAccountId[]): URL {\n const url = new URL(`${MULTICHAIN_ACCOUNTS_BASE_URL}/v2/activeNetworks`);\n url.searchParams.append('accountIds', accountIds.join(','));\n return url;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts-api.d.cts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,EAAE,KAAK,KAAK,EAAiB,8BAA8B;AAElE,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACd,wBAAwB;AAEzB,eAAO,MAAM,4BAA4B;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,kBAAkB,EAClB;IAEE,SAAS,EAAE,aAAa,CAAC;IAEzB,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B,CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,wCACF,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,6BAA6B,2CACA,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,wCAAwC,UAapD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,GACvB,aAAa,EAAE,CASjB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,sBAAsB,GAC/B,uBAAuB,CAmBzB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,GAAG,CAIvE"}
1
+ {"version":3,"file":"accounts-api.d.cts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,EAAE,KAAK,KAAK,EAAiB,8BAA8B;AAElE,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACd,wBAAwB;AAEzB,eAAO,MAAM,4BAA4B;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,kBAAkB,EAClB;IAEE,SAAS,EAAE,aAAa,CAAC;IAEzB,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B,CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,wCACF,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,6BAA6B,2CACA,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,wCAAwC,UAcpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,GACvB,aAAa,EAAE,CASjB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,sBAAsB,GAC/B,uBAAuB,CAmBzB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,GAAG,CAIvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts-api.d.mts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,EAAE,KAAK,KAAK,EAAiB,8BAA8B;AAElE,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACd,wBAAwB;AAEzB,eAAO,MAAM,4BAA4B;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,kBAAkB,EAClB;IAEE,SAAS,EAAE,aAAa,CAAC;IAEzB,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B,CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,wCACF,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,6BAA6B,2CACA,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,wCAAwC,UAapD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,GACvB,aAAa,EAAE,CASjB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,sBAAsB,GAC/B,uBAAuB,CAmBzB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,GAAG,CAIvE"}
1
+ {"version":3,"file":"accounts-api.d.mts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,EAAE,KAAK,KAAK,EAAiB,8BAA8B;AAElE,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACd,wBAAwB;AAEzB,eAAO,MAAM,4BAA4B;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,kBAAkB,EAClB;IAEE,SAAS,EAAE,aAAa,CAAC;IAEzB,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B,CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,wCACF,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,6BAA6B,2CACA,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,wCAAwC,UAcpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,GACvB,aAAa,EAAE,CASjB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,sBAAsB,GAC/B,uBAAuB,CAmBzB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,GAAG,CAIvE"}
@@ -26,6 +26,7 @@ export const MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES = [
26
26
  String(BtcScope.Signet),
27
27
  String(BtcScope.Regtest),
28
28
  String(SolScope.Mainnet),
29
+ String(SolScope.Devnet),
29
30
  String(EthScope.Mainnet),
30
31
  String(EthScope.Testnet),
31
32
  String(EthScope.Eoa),
@@ -1 +1 @@
1
- {"version":3,"file":"accounts-api.mjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAE/E,OAAO,EAAc,KAAK,EAAE,MAAM,EAAE,8BAA8B;AAClE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,wBAAwB;AAQ1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;IACjD,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;CAC3C,CAAC,CAAC;AAiBH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,qCAAqC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,0BAA0B,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,wCAAwC,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAwB;IAExB,MAAM,iBAAiB,GAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;QAClC,IAAI,wCAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC5D,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACvD;KACF;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgC;IAEhC,MAAM,iBAAiB,GAA4B,EAAE,CAAC;IAEtD,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1C,MAAM,EACJ,OAAO,EACP,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAChC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC/B,iBAAiB,CAAC,OAAO,CAAC,GAAG;gBAC3B,SAAS;gBACT,YAAY,EAAE,EAAE;aACjB,CAAC;SACH;QACD,iBAAiB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA2B;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,4BAA4B,oBAAoB,CAAC,CAAC;IACzE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import { BtcScope, SolScope, EthScope, TrxScope } from '@metamask/keyring-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport { type Infer, array, object } from '@metamask/superstruct';\nimport { CaipAccountIdStruct, parseCaipAccountId } from '@metamask/utils';\nimport type {\n CaipAccountAddress,\n CaipAccountId,\n CaipNamespace,\n CaipReference,\n} from '@metamask/utils';\n\nexport const ActiveNetworksResponseStruct = object({\n activeNetworks: array(CaipAccountIdStruct),\n});\n\nexport type ActiveNetworksResponse = Infer<typeof ActiveNetworksResponseStruct>;\n\n/**\n * The active networks for the currently selected account.\n */\nexport type ActiveNetworksByAddress = Record<\n CaipAccountAddress,\n {\n // CAIP-2 namespace of the network.\n namespace: CaipNamespace;\n // Active chain IDs (CAIP-2 references) on that network (primarily used for EVM networks).\n activeChains: CaipReference[];\n }\n>;\n\n/**\n * The domain for multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_BASE_URL =\n 'https://accounts.api.cx.metamask.io';\n\n/**\n * The client header for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_HEADER = 'x-metamask-clientproduct';\n\n/**\n * The client ID for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_ID =\n 'metamask-multichain-network-controller';\n\n/**\n * The allowed active network scopes for the multichain network controller.\n */\nexport const MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES = [\n String(BtcScope.Mainnet),\n String(BtcScope.Testnet),\n String(BtcScope.Testnet4),\n String(BtcScope.Signet),\n String(BtcScope.Regtest),\n String(SolScope.Mainnet),\n String(EthScope.Mainnet),\n String(EthScope.Testnet),\n String(EthScope.Eoa),\n String(TrxScope.Mainnet),\n String(TrxScope.Nile),\n String(TrxScope.Shasta),\n];\n\n/**\n * Converts an internal account to an array of CAIP-10 account IDs.\n *\n * @param account - The internal account to convert\n * @returns The CAIP-10 account IDs\n */\nexport function toAllowedCaipAccountIds(\n account: InternalAccount,\n): CaipAccountId[] {\n const formattedAccounts: CaipAccountId[] = [];\n for (const scope of account.scopes) {\n if (MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES.includes(scope)) {\n formattedAccounts.push(`${scope}:${account.address}`);\n }\n }\n\n return formattedAccounts;\n}\n\n/**\n * Formats the API response into our state structure.\n * Example input: [\"eip155:1:0x123...\", \"eip155:137:0x123...\", \"solana:1:0xabc...\"]\n *\n * @param response - The raw API response\n * @returns Formatted networks by address\n */\nexport function toActiveNetworksByAddress(\n response: ActiveNetworksResponse,\n): ActiveNetworksByAddress {\n const networksByAddress: ActiveNetworksByAddress = {};\n\n response.activeNetworks.forEach((network) => {\n const {\n address,\n chain: { namespace, reference },\n } = parseCaipAccountId(network);\n\n if (!networksByAddress[address]) {\n networksByAddress[address] = {\n namespace,\n activeChains: [],\n };\n }\n networksByAddress[address].activeChains.push(reference);\n });\n\n return networksByAddress;\n}\n\n/**\n * Constructs the URL for the active networks API endpoint.\n *\n * @param accountIds - Array of account IDs\n * @returns URL object for the API endpoint\n */\nexport function buildActiveNetworksUrl(accountIds: CaipAccountId[]): URL {\n const url = new URL(`${MULTICHAIN_ACCOUNTS_BASE_URL}/v2/activeNetworks`);\n url.searchParams.append('accountIds', accountIds.join(','));\n return url;\n}\n"]}
1
+ {"version":3,"file":"accounts-api.mjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAE/E,OAAO,EAAc,KAAK,EAAE,MAAM,EAAE,8BAA8B;AAClE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,wBAAwB;AAQ1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;IACjD,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;CAC3C,CAAC,CAAC;AAiBH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,qCAAqC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,0BAA0B,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,wCAAwC,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAwB;IAExB,MAAM,iBAAiB,GAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;QAClC,IAAI,wCAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC5D,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACvD;KACF;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgC;IAEhC,MAAM,iBAAiB,GAA4B,EAAE,CAAC;IAEtD,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1C,MAAM,EACJ,OAAO,EACP,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAChC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC/B,iBAAiB,CAAC,OAAO,CAAC,GAAG;gBAC3B,SAAS;gBACT,YAAY,EAAE,EAAE;aACjB,CAAC;SACH;QACD,iBAAiB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA2B;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,4BAA4B,oBAAoB,CAAC,CAAC;IACzE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import { BtcScope, SolScope, EthScope, TrxScope } from '@metamask/keyring-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport { type Infer, array, object } from '@metamask/superstruct';\nimport { CaipAccountIdStruct, parseCaipAccountId } from '@metamask/utils';\nimport type {\n CaipAccountAddress,\n CaipAccountId,\n CaipNamespace,\n CaipReference,\n} from '@metamask/utils';\n\nexport const ActiveNetworksResponseStruct = object({\n activeNetworks: array(CaipAccountIdStruct),\n});\n\nexport type ActiveNetworksResponse = Infer<typeof ActiveNetworksResponseStruct>;\n\n/**\n * The active networks for the currently selected account.\n */\nexport type ActiveNetworksByAddress = Record<\n CaipAccountAddress,\n {\n // CAIP-2 namespace of the network.\n namespace: CaipNamespace;\n // Active chain IDs (CAIP-2 references) on that network (primarily used for EVM networks).\n activeChains: CaipReference[];\n }\n>;\n\n/**\n * The domain for multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_BASE_URL =\n 'https://accounts.api.cx.metamask.io';\n\n/**\n * The client header for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_HEADER = 'x-metamask-clientproduct';\n\n/**\n * The client ID for the multichain accounts API.\n */\nexport const MULTICHAIN_ACCOUNTS_CLIENT_ID =\n 'metamask-multichain-network-controller';\n\n/**\n * The allowed active network scopes for the multichain network controller.\n */\nexport const MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES = [\n String(BtcScope.Mainnet),\n String(BtcScope.Testnet),\n String(BtcScope.Testnet4),\n String(BtcScope.Signet),\n String(BtcScope.Regtest),\n String(SolScope.Mainnet),\n String(SolScope.Devnet),\n String(EthScope.Mainnet),\n String(EthScope.Testnet),\n String(EthScope.Eoa),\n String(TrxScope.Mainnet),\n String(TrxScope.Nile),\n String(TrxScope.Shasta),\n];\n\n/**\n * Converts an internal account to an array of CAIP-10 account IDs.\n *\n * @param account - The internal account to convert\n * @returns The CAIP-10 account IDs\n */\nexport function toAllowedCaipAccountIds(\n account: InternalAccount,\n): CaipAccountId[] {\n const formattedAccounts: CaipAccountId[] = [];\n for (const scope of account.scopes) {\n if (MULTICHAIN_ALLOWED_ACTIVE_NETWORK_SCOPES.includes(scope)) {\n formattedAccounts.push(`${scope}:${account.address}`);\n }\n }\n\n return formattedAccounts;\n}\n\n/**\n * Formats the API response into our state structure.\n * Example input: [\"eip155:1:0x123...\", \"eip155:137:0x123...\", \"solana:1:0xabc...\"]\n *\n * @param response - The raw API response\n * @returns Formatted networks by address\n */\nexport function toActiveNetworksByAddress(\n response: ActiveNetworksResponse,\n): ActiveNetworksByAddress {\n const networksByAddress: ActiveNetworksByAddress = {};\n\n response.activeNetworks.forEach((network) => {\n const {\n address,\n chain: { namespace, reference },\n } = parseCaipAccountId(network);\n\n if (!networksByAddress[address]) {\n networksByAddress[address] = {\n namespace,\n activeChains: [],\n };\n }\n networksByAddress[address].activeChains.push(reference);\n });\n\n return networksByAddress;\n}\n\n/**\n * Constructs the URL for the active networks API endpoint.\n *\n * @param accountIds - Array of account IDs\n * @returns URL object for the API endpoint\n */\nexport function buildActiveNetworksUrl(accountIds: CaipAccountId[]): URL {\n const url = new URL(`${MULTICHAIN_ACCOUNTS_BASE_URL}/v2/activeNetworks`);\n url.searchParams.append('accountIds', accountIds.join(','));\n return url;\n}\n"]}
@@ -137,10 +137,30 @@ exports.getDefaultMultichainNetworkControllerState = getDefaultMultichainNetwork
137
137
  * the `anonymous` flag.
138
138
  */
139
139
  exports.MULTICHAIN_NETWORK_CONTROLLER_METADATA = {
140
- multichainNetworkConfigurationsByChainId: { persist: true, anonymous: true },
141
- selectedMultichainNetworkChainId: { persist: true, anonymous: true },
142
- isEvmSelected: { persist: true, anonymous: true },
143
- networksWithTransactionActivity: { persist: true, anonymous: true },
140
+ multichainNetworkConfigurationsByChainId: {
141
+ includeInStateLogs: true,
142
+ persist: true,
143
+ anonymous: true,
144
+ usedInUi: true,
145
+ },
146
+ selectedMultichainNetworkChainId: {
147
+ includeInStateLogs: true,
148
+ persist: true,
149
+ anonymous: true,
150
+ usedInUi: true,
151
+ },
152
+ isEvmSelected: {
153
+ includeInStateLogs: true,
154
+ persist: true,
155
+ anonymous: true,
156
+ usedInUi: true,
157
+ },
158
+ networksWithTransactionActivity: {
159
+ includeInStateLogs: true,
160
+ persist: true,
161
+ anonymous: true,
162
+ usedInUi: true,
163
+ },
144
164
  };
145
165
  /**
146
166
  * Multichain network ticker for the supported networks.
@@ -1 +1 @@
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 {\n type CaipChainId,\n BtcScope,\n SolScope,\n TrxScope,\n} 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_TESTNET4_NATIVE_ASSET = `${BtcScope.Testnet4}/slip44:0`;\nexport const BTC_SIGNET_NATIVE_ASSET = `${BtcScope.Signet}/slip44:0`;\nexport const BTC_REGTEST_NATIVE_ASSET = `${BtcScope.Regtest}/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`;\nexport const TRX_NATIVE_ASSET = `${TrxScope.Mainnet}/slip44:195`;\nexport const TRX_NILE_NATIVE_ASSET = `${TrxScope.Nile}/slip44:195`;\nexport const TRX_SHASTA_NATIVE_ASSET = `${TrxScope.Shasta}/slip44:195`;\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.Testnet4]: {\n chainId: BtcScope.Testnet4,\n name: 'Bitcoin Testnet4',\n nativeCurrency: BTC_TESTNET4_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Signet]: {\n chainId: BtcScope.Signet,\n name: 'Bitcoin Mutinynet',\n nativeCurrency: BTC_SIGNET_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Regtest]: {\n chainId: BtcScope.Regtest,\n name: 'Bitcoin Regtest',\n nativeCurrency: BTC_REGTEST_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 [TrxScope.Mainnet]: {\n chainId: TrxScope.Mainnet,\n name: 'Tron',\n nativeCurrency: TRX_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Nile]: {\n chainId: TrxScope.Nile,\n name: 'Tron Nile',\n nativeCurrency: TRX_NILE_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Shasta]: {\n chainId: TrxScope.Shasta,\n name: 'Tron Shasta',\n nativeCurrency: TRX_SHASTA_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.Testnet4,\n BtcScope.Signet,\n BtcScope.Regtest,\n SolScope.Testnet,\n SolScope.Devnet,\n TrxScope.Nile,\n TrxScope.Shasta,\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 [TrxScope.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 networksWithTransactionActivity: {},\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 networksWithTransactionActivity: { 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.Testnet4]: 'tBTC',\n [BtcScope.Signet]: 'sBTC',\n [BtcScope.Regtest]: 'rBTC',\n [SolScope.Mainnet]: 'SOL',\n [SolScope.Testnet]: 'tSOL',\n [SolScope.Devnet]: 'dSOL',\n [TrxScope.Mainnet]: 'TRX',\n [TrxScope.Nile]: 'tTRX',\n [TrxScope.Shasta]: 'sTRX',\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.Testnet4]: 8,\n [BtcScope.Signet]: 8,\n [BtcScope.Regtest]: 8,\n [SolScope.Mainnet]: 5,\n [SolScope.Testnet]: 5,\n [SolScope.Devnet]: 5,\n [TrxScope.Mainnet]: 6,\n [TrxScope.Nile]: 6,\n [TrxScope.Shasta]: 6,\n} as const;\n"]}
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 {\n type CaipChainId,\n BtcScope,\n SolScope,\n TrxScope,\n} 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_TESTNET4_NATIVE_ASSET = `${BtcScope.Testnet4}/slip44:0`;\nexport const BTC_SIGNET_NATIVE_ASSET = `${BtcScope.Signet}/slip44:0`;\nexport const BTC_REGTEST_NATIVE_ASSET = `${BtcScope.Regtest}/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`;\nexport const TRX_NATIVE_ASSET = `${TrxScope.Mainnet}/slip44:195`;\nexport const TRX_NILE_NATIVE_ASSET = `${TrxScope.Nile}/slip44:195`;\nexport const TRX_SHASTA_NATIVE_ASSET = `${TrxScope.Shasta}/slip44:195`;\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.Testnet4]: {\n chainId: BtcScope.Testnet4,\n name: 'Bitcoin Testnet4',\n nativeCurrency: BTC_TESTNET4_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Signet]: {\n chainId: BtcScope.Signet,\n name: 'Bitcoin Mutinynet',\n nativeCurrency: BTC_SIGNET_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Regtest]: {\n chainId: BtcScope.Regtest,\n name: 'Bitcoin Regtest',\n nativeCurrency: BTC_REGTEST_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 [TrxScope.Mainnet]: {\n chainId: TrxScope.Mainnet,\n name: 'Tron',\n nativeCurrency: TRX_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Nile]: {\n chainId: TrxScope.Nile,\n name: 'Tron Nile',\n nativeCurrency: TRX_NILE_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Shasta]: {\n chainId: TrxScope.Shasta,\n name: 'Tron Shasta',\n nativeCurrency: TRX_SHASTA_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.Testnet4,\n BtcScope.Signet,\n BtcScope.Regtest,\n SolScope.Testnet,\n SolScope.Devnet,\n TrxScope.Nile,\n TrxScope.Shasta,\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 [TrxScope.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 networksWithTransactionActivity: {},\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: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\n selectedMultichainNetworkChainId: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\n isEvmSelected: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\n networksWithTransactionActivity: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\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.Testnet4]: 'tBTC',\n [BtcScope.Signet]: 'sBTC',\n [BtcScope.Regtest]: 'rBTC',\n [SolScope.Mainnet]: 'SOL',\n [SolScope.Testnet]: 'tSOL',\n [SolScope.Devnet]: 'dSOL',\n [TrxScope.Mainnet]: 'TRX',\n [TrxScope.Nile]: 'tTRX',\n [TrxScope.Shasta]: 'sTRX',\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.Testnet4]: 8,\n [BtcScope.Signet]: 8,\n [BtcScope.Regtest]: 8,\n [SolScope.Mainnet]: 5,\n [SolScope.Testnet]: 5,\n [SolScope.Devnet]: 5,\n [TrxScope.Mainnet]: 6,\n [TrxScope.Nile]: 6,\n [TrxScope.Shasta]: 6,\n} as const;\n"]}
@@ -40,20 +40,28 @@ export declare const getDefaultMultichainNetworkControllerState: () => Multichai
40
40
  */
41
41
  export declare const MULTICHAIN_NETWORK_CONTROLLER_METADATA: {
42
42
  multichainNetworkConfigurationsByChainId: {
43
+ includeInStateLogs: true;
43
44
  persist: true;
44
45
  anonymous: true;
46
+ usedInUi: true;
45
47
  };
46
48
  selectedMultichainNetworkChainId: {
49
+ includeInStateLogs: true;
47
50
  persist: true;
48
51
  anonymous: true;
52
+ usedInUi: true;
49
53
  };
50
54
  isEvmSelected: {
55
+ includeInStateLogs: true;
51
56
  persist: true;
52
57
  anonymous: true;
58
+ usedInUi: true;
53
59
  };
54
60
  networksWithTransactionActivity: {
61
+ includeInStateLogs: true;
55
62
  persist: true;
56
63
  anonymous: true;
64
+ usedInUi: true;
57
65
  };
58
66
  };
59
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAIjB,8BAA8B;AAG/B,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,yBAAyB,qDAAkC,CAAC;AACzE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,wBAAwB,4BAAiC,CAAC;AACvE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AACvE,eAAO,MAAM,gBAAgB,8BAAmC,CAAC;AACjE,eAAO,MAAM,qBAAqB,+BAAgC,CAAC;AACnE,eAAO,MAAM,uBAAuB,+BAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAoE/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAS5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAavE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,gCAMF,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;CAKQ,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYxD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYhE,CAAC"}
1
+ {"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAIjB,8BAA8B;AAG/B,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,yBAAyB,qDAAkC,CAAC;AACzE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,wBAAwB,4BAAiC,CAAC;AACvE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AACvE,eAAO,MAAM,gBAAgB,8BAAmC,CAAC;AACjE,eAAO,MAAM,qBAAqB,+BAAgC,CAAC;AACnE,eAAO,MAAM,uBAAuB,+BAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAoE/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAS5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAavE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,gCAMF,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBQ,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYxD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYhE,CAAC"}
@@ -40,20 +40,28 @@ export declare const getDefaultMultichainNetworkControllerState: () => Multichai
40
40
  */
41
41
  export declare const MULTICHAIN_NETWORK_CONTROLLER_METADATA: {
42
42
  multichainNetworkConfigurationsByChainId: {
43
+ includeInStateLogs: true;
43
44
  persist: true;
44
45
  anonymous: true;
46
+ usedInUi: true;
45
47
  };
46
48
  selectedMultichainNetworkChainId: {
49
+ includeInStateLogs: true;
47
50
  persist: true;
48
51
  anonymous: true;
52
+ usedInUi: true;
49
53
  };
50
54
  isEvmSelected: {
55
+ includeInStateLogs: true;
51
56
  persist: true;
52
57
  anonymous: true;
58
+ usedInUi: true;
53
59
  };
54
60
  networksWithTransactionActivity: {
61
+ includeInStateLogs: true;
55
62
  persist: true;
56
63
  anonymous: true;
64
+ usedInUi: true;
57
65
  };
58
66
  };
59
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAIjB,8BAA8B;AAG/B,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,yBAAyB,qDAAkC,CAAC;AACzE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,wBAAwB,4BAAiC,CAAC;AACvE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AACvE,eAAO,MAAM,gBAAgB,8BAAmC,CAAC;AACjE,eAAO,MAAM,qBAAqB,+BAAgC,CAAC;AACnE,eAAO,MAAM,uBAAuB,+BAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAoE/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAS5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAavE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,gCAMF,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;CAKQ,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYxD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYhE,CAAC"}
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAIjB,8BAA8B;AAG/B,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,yBAAyB,qDAAkC,CAAC;AACzE,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,eAAO,MAAM,wBAAwB,4BAAiC,CAAC;AACvE,eAAO,MAAM,gBAAgB,uDAAmC,CAAC;AACjE,eAAO,MAAM,wBAAwB,uDAAmC,CAAC;AACzE,eAAO,MAAM,uBAAuB,uDAAkC,CAAC;AACvE,eAAO,MAAM,gBAAgB,8BAAmC,CAAC;AACjE,eAAO,MAAM,qBAAqB,+BAAgC,CAAC;AACnE,eAAO,MAAM,uBAAuB,+BAAkC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,oBAAoB,EACpB,8BAA8B,CAoE/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAS5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAavE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,QACjD,gCAMF,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBQ,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYxD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYhE,CAAC"}
@@ -133,10 +133,30 @@ export const getDefaultMultichainNetworkControllerState = () => ({
133
133
  * the `anonymous` flag.
134
134
  */
135
135
  export const MULTICHAIN_NETWORK_CONTROLLER_METADATA = {
136
- multichainNetworkConfigurationsByChainId: { persist: true, anonymous: true },
137
- selectedMultichainNetworkChainId: { persist: true, anonymous: true },
138
- isEvmSelected: { persist: true, anonymous: true },
139
- networksWithTransactionActivity: { persist: true, anonymous: true },
136
+ multichainNetworkConfigurationsByChainId: {
137
+ includeInStateLogs: true,
138
+ persist: true,
139
+ anonymous: true,
140
+ usedInUi: true,
141
+ },
142
+ selectedMultichainNetworkChainId: {
143
+ includeInStateLogs: true,
144
+ persist: true,
145
+ anonymous: true,
146
+ usedInUi: true,
147
+ },
148
+ isEvmSelected: {
149
+ includeInStateLogs: true,
150
+ persist: true,
151
+ anonymous: true,
152
+ usedInUi: true,
153
+ },
154
+ networksWithTransactionActivity: {
155
+ includeInStateLogs: true,
156
+ persist: true,
157
+ anonymous: true,
158
+ usedInUi: true,
159
+ },
140
160
  };
141
161
  /**
142
162
  * Multichain network ticker for the supported networks.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StateMetadata } from '@metamask/base-controller';\nimport {\n type CaipChainId,\n BtcScope,\n SolScope,\n TrxScope,\n} 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_TESTNET4_NATIVE_ASSET = `${BtcScope.Testnet4}/slip44:0`;\nexport const BTC_SIGNET_NATIVE_ASSET = `${BtcScope.Signet}/slip44:0`;\nexport const BTC_REGTEST_NATIVE_ASSET = `${BtcScope.Regtest}/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`;\nexport const TRX_NATIVE_ASSET = `${TrxScope.Mainnet}/slip44:195`;\nexport const TRX_NILE_NATIVE_ASSET = `${TrxScope.Nile}/slip44:195`;\nexport const TRX_SHASTA_NATIVE_ASSET = `${TrxScope.Shasta}/slip44:195`;\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.Testnet4]: {\n chainId: BtcScope.Testnet4,\n name: 'Bitcoin Testnet4',\n nativeCurrency: BTC_TESTNET4_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Signet]: {\n chainId: BtcScope.Signet,\n name: 'Bitcoin Mutinynet',\n nativeCurrency: BTC_SIGNET_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Regtest]: {\n chainId: BtcScope.Regtest,\n name: 'Bitcoin Regtest',\n nativeCurrency: BTC_REGTEST_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 [TrxScope.Mainnet]: {\n chainId: TrxScope.Mainnet,\n name: 'Tron',\n nativeCurrency: TRX_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Nile]: {\n chainId: TrxScope.Nile,\n name: 'Tron Nile',\n nativeCurrency: TRX_NILE_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Shasta]: {\n chainId: TrxScope.Shasta,\n name: 'Tron Shasta',\n nativeCurrency: TRX_SHASTA_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.Testnet4,\n BtcScope.Signet,\n BtcScope.Regtest,\n SolScope.Testnet,\n SolScope.Devnet,\n TrxScope.Nile,\n TrxScope.Shasta,\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 [TrxScope.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 networksWithTransactionActivity: {},\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 networksWithTransactionActivity: { 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.Testnet4]: 'tBTC',\n [BtcScope.Signet]: 'sBTC',\n [BtcScope.Regtest]: 'rBTC',\n [SolScope.Mainnet]: 'SOL',\n [SolScope.Testnet]: 'tSOL',\n [SolScope.Devnet]: 'dSOL',\n [TrxScope.Mainnet]: 'TRX',\n [TrxScope.Nile]: 'tTRX',\n [TrxScope.Shasta]: 'sTRX',\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.Testnet4]: 8,\n [BtcScope.Signet]: 8,\n [BtcScope.Regtest]: 8,\n [SolScope.Mainnet]: 5,\n [SolScope.Testnet]: 5,\n [SolScope.Devnet]: 5,\n [TrxScope.Mainnet]: 6,\n [TrxScope.Nile]: 6,\n [TrxScope.Shasta]: 6,\n} as const;\n"]}
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,8BAA8B;AAC/B,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,yBAAyB,GAAG,GAAG,QAAQ,CAAC,QAAQ,WAAW,CAAC;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC;AACvE,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;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,QAAQ,CAAC,IAAI,aAAa,CAAC;AACnE,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,QAAQ,CAAC,EAAE;QACnB,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,IAAI,EAAE,kBAAkB;QACxB,cAAc,EAAE,yBAAyB;QACzC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,uBAAuB;QACvC,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,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;IACD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,MAAM;QACZ,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACf,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,qBAAqB;QACrC,KAAK,EAAE,KAAK;KACb;IACD,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,IAAI,EAAE,aAAa;QACnB,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,QAAQ;IACjB,QAAQ,CAAC,MAAM;IACf,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,MAAM;IACf,QAAQ,CAAC,IAAI;IACb,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;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;IACnB,+BAA+B,EAAE,EAAE;CACpC,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG;IACpD,wCAAwC,EAAE;QACxC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;KACf;IACD,gCAAgC,EAAE;QAChC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;KACf;IACD,+BAA+B,EAAE;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;KACf;CACwD,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,QAAQ,CAAC,EAAE,MAAM;IAC3B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACzB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM;IAC1B,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,IAAI,CAAC,EAAE,MAAM;IACvB,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,QAAQ,CAAC,EAAE,CAAC;IACtB,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,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CACZ,CAAC","sourcesContent":["import { type StateMetadata } from '@metamask/base-controller';\nimport {\n type CaipChainId,\n BtcScope,\n SolScope,\n TrxScope,\n} 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_TESTNET4_NATIVE_ASSET = `${BtcScope.Testnet4}/slip44:0`;\nexport const BTC_SIGNET_NATIVE_ASSET = `${BtcScope.Signet}/slip44:0`;\nexport const BTC_REGTEST_NATIVE_ASSET = `${BtcScope.Regtest}/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`;\nexport const TRX_NATIVE_ASSET = `${TrxScope.Mainnet}/slip44:195`;\nexport const TRX_NILE_NATIVE_ASSET = `${TrxScope.Nile}/slip44:195`;\nexport const TRX_SHASTA_NATIVE_ASSET = `${TrxScope.Shasta}/slip44:195`;\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.Testnet4]: {\n chainId: BtcScope.Testnet4,\n name: 'Bitcoin Testnet4',\n nativeCurrency: BTC_TESTNET4_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Signet]: {\n chainId: BtcScope.Signet,\n name: 'Bitcoin Mutinynet',\n nativeCurrency: BTC_SIGNET_NATIVE_ASSET,\n isEvm: false,\n },\n [BtcScope.Regtest]: {\n chainId: BtcScope.Regtest,\n name: 'Bitcoin Regtest',\n nativeCurrency: BTC_REGTEST_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 [TrxScope.Mainnet]: {\n chainId: TrxScope.Mainnet,\n name: 'Tron',\n nativeCurrency: TRX_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Nile]: {\n chainId: TrxScope.Nile,\n name: 'Tron Nile',\n nativeCurrency: TRX_NILE_NATIVE_ASSET,\n isEvm: false,\n },\n [TrxScope.Shasta]: {\n chainId: TrxScope.Shasta,\n name: 'Tron Shasta',\n nativeCurrency: TRX_SHASTA_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.Testnet4,\n BtcScope.Signet,\n BtcScope.Regtest,\n SolScope.Testnet,\n SolScope.Devnet,\n TrxScope.Nile,\n TrxScope.Shasta,\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 [TrxScope.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 networksWithTransactionActivity: {},\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: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\n selectedMultichainNetworkChainId: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\n isEvmSelected: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\n networksWithTransactionActivity: {\n includeInStateLogs: true,\n persist: true,\n anonymous: true,\n usedInUi: true,\n },\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.Testnet4]: 'tBTC',\n [BtcScope.Signet]: 'sBTC',\n [BtcScope.Regtest]: 'rBTC',\n [SolScope.Mainnet]: 'SOL',\n [SolScope.Testnet]: 'tSOL',\n [SolScope.Devnet]: 'dSOL',\n [TrxScope.Mainnet]: 'TRX',\n [TrxScope.Nile]: 'tTRX',\n [TrxScope.Shasta]: 'sTRX',\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.Testnet4]: 8,\n [BtcScope.Signet]: 8,\n [BtcScope.Regtest]: 8,\n [SolScope.Mainnet]: 5,\n [SolScope.Testnet]: 5,\n [SolScope.Devnet]: 5,\n [TrxScope.Mainnet]: 6,\n [TrxScope.Nile]: 6,\n [TrxScope.Shasta]: 6,\n} as const;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/multichain-network-controller",
3
- "version": "0.12.0",
3
+ "version": "1.0.0",
4
4
  "description": "Multichain network controller",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -47,19 +47,19 @@
47
47
  "publish:preview": "yarn npm publish --tag preview"
48
48
  },
49
49
  "dependencies": {
50
- "@metamask/base-controller": "^8.1.0",
51
- "@metamask/controller-utils": "^11.12.0",
52
- "@metamask/keyring-api": "^20.1.0",
53
- "@metamask/keyring-internal-api": "^8.1.0",
50
+ "@metamask/base-controller": "^8.4.0",
51
+ "@metamask/controller-utils": "^11.14.0",
52
+ "@metamask/keyring-api": "^21.0.0",
53
+ "@metamask/keyring-internal-api": "^9.0.0",
54
54
  "@metamask/superstruct": "^3.1.0",
55
- "@metamask/utils": "^11.4.2",
55
+ "@metamask/utils": "^11.8.0",
56
56
  "@solana/addresses": "^2.0.0",
57
57
  "lodash": "^4.17.21"
58
58
  },
59
59
  "devDependencies": {
60
- "@metamask/accounts-controller": "^33.0.0",
60
+ "@metamask/accounts-controller": "^33.1.0",
61
61
  "@metamask/auto-changelog": "^3.4.4",
62
- "@metamask/keyring-controller": "^23.0.0",
62
+ "@metamask/keyring-controller": "^23.1.0",
63
63
  "@metamask/network-controller": "^24.1.0",
64
64
  "@types/jest": "^27.4.1",
65
65
  "@types/lodash": "^4.14.191",