@metamask-previews/account-tree-controller 5.0.1-preview-434bd0c → 5.0.1-preview-e9620906a

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.
@@ -34,7 +34,7 @@ export declare function getLocalGroupsForEntropyWallet(context: BackupAndSyncCon
34
34
  export type StateSnapshot = {
35
35
  accountGroupsMetadata: AccountTreeControllerState['accountGroupsMetadata'];
36
36
  accountWalletsMetadata: AccountTreeControllerState['accountWalletsMetadata'];
37
- selectedAccountGroup: AccountTreeControllerState['accountTree']['selectedAccountGroup'];
37
+ selectedAccountGroup: AccountTreeControllerState['selectedAccountGroup'];
38
38
  accountTreeWallets: AccountTreeControllerState['accountTree']['wallets'];
39
39
  };
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.cts","sourceRoot":"","sources":["../../../src/backup-and-sync/utils/controller.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B;AAE7D,OAAO,KAAK,EAAE,mCAAmC,EAAE,wBAAoB;AAEvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAoB;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAqB;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAiB;AAErD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,EAAE,CAI9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,YAC/B,oBAAoB,mBACZ,MAAM,cACX,MAAM,KACjB,mCAAmC,GAAG,SAcxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,eAAe,GACxB,mCAAmC,EAAE,CAUvC;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;IAC3E,sBAAsB,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;IAC7E,oBAAoB,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACxF,kBAAkB,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;CAC1E,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAcf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,aAAa,GACtB,IAAI,CAYN"}
1
+ {"version":3,"file":"controller.d.cts","sourceRoot":"","sources":["../../../src/backup-and-sync/utils/controller.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B;AAE7D,OAAO,KAAK,EAAE,mCAAmC,EAAE,wBAAoB;AAEvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAoB;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAqB;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAiB;AAErD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,EAAE,CAI9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,YAC/B,oBAAoB,mBACZ,MAAM,cACX,MAAM,KACjB,mCAAmC,GAAG,SAcxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,eAAe,GACxB,mCAAmC,EAAE,CAUvC;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;IAC3E,sBAAsB,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;IAC7E,oBAAoB,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;IACzE,kBAAkB,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;CAC1E,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAaf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,aAAa,GACtB,IAAI,CAYN"}
@@ -34,7 +34,7 @@ export declare function getLocalGroupsForEntropyWallet(context: BackupAndSyncCon
34
34
  export type StateSnapshot = {
35
35
  accountGroupsMetadata: AccountTreeControllerState['accountGroupsMetadata'];
36
36
  accountWalletsMetadata: AccountTreeControllerState['accountWalletsMetadata'];
37
- selectedAccountGroup: AccountTreeControllerState['accountTree']['selectedAccountGroup'];
37
+ selectedAccountGroup: AccountTreeControllerState['selectedAccountGroup'];
38
38
  accountTreeWallets: AccountTreeControllerState['accountTree']['wallets'];
39
39
  };
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.mts","sourceRoot":"","sources":["../../../src/backup-and-sync/utils/controller.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B;AAE7D,OAAO,KAAK,EAAE,mCAAmC,EAAE,wBAAoB;AAEvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAoB;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAqB;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAiB;AAErD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,EAAE,CAI9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,YAC/B,oBAAoB,mBACZ,MAAM,cACX,MAAM,KACjB,mCAAmC,GAAG,SAcxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,eAAe,GACxB,mCAAmC,EAAE,CAUvC;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;IAC3E,sBAAsB,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;IAC7E,oBAAoB,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACxF,kBAAkB,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;CAC1E,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAcf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,aAAa,GACtB,IAAI,CAYN"}
1
+ {"version":3,"file":"controller.d.mts","sourceRoot":"","sources":["../../../src/backup-and-sync/utils/controller.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B;AAE7D,OAAO,KAAK,EAAE,mCAAmC,EAAE,wBAAoB;AAEvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAoB;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAqB;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAiB;AAErD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,EAAE,CAI9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,YAC/B,oBAAoB,mBACZ,MAAM,cACX,MAAM,KACjB,mCAAmC,GAAG,SAcxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,eAAe,GACxB,mCAAmC,EAAE,CAUvC;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;IAC3E,sBAAsB,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;IAC7E,oBAAoB,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;IACzE,kBAAkB,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;CAC1E,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAaf;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,aAAa,GACtB,IAAI,CAYN"}
@@ -53,7 +53,7 @@ export function createStateSnapshot(context) {
53
53
  return {
54
54
  accountGroupsMetadata: JSON.parse(JSON.stringify(context.controller.state.accountGroupsMetadata)),
55
55
  accountWalletsMetadata: JSON.parse(JSON.stringify(context.controller.state.accountWalletsMetadata)),
56
- selectedAccountGroup: context.controller.state.accountTree.selectedAccountGroup,
56
+ selectedAccountGroup: context.controller.state.selectedAccountGroup,
57
57
  accountTreeWallets: JSON.parse(JSON.stringify(context.controller.state.accountTree.wallets)),
58
58
  };
59
59
  }
@@ -69,7 +69,7 @@ export function restoreStateFromSnapshot(context, snapshot) {
69
69
  context.controllerStateUpdateFn((state) => {
70
70
  state.accountGroupsMetadata = snapshot.accountGroupsMetadata;
71
71
  state.accountWalletsMetadata = snapshot.accountWalletsMetadata;
72
- state.accountTree.selectedAccountGroup = snapshot.selectedAccountGroup;
72
+ state.selectedAccountGroup = snapshot.selectedAccountGroup;
73
73
  state.accountTree.wallets = snapshot.accountTreeWallets;
74
74
  });
75
75
  // Use init() to rebuild the internal maps from the restored account tree state
@@ -1 +1 @@
1
- {"version":3,"file":"controller.mjs","sourceRoot":"","sources":["../../../src/backup-and-sync/utils/controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AccountWalletType,\n toMultichainAccountGroupId,\n toMultichainAccountWalletId,\n} from '@metamask/account-api';\nimport type { AccountWalletId } from '@metamask/account-api';\n\nimport type { AccountGroupMultichainAccountObject } from '../../group';\nimport { backupAndSyncLogger } from '../../logger';\nimport type { AccountTreeControllerState } from '../../types';\nimport type { AccountWalletEntropyObject } from '../../wallet';\nimport type { BackupAndSyncContext } from '../types';\n\n/**\n * Gets all local entropy wallets that can be synced.\n *\n * @param context - The backup and sync context.\n * @returns Array of entropy wallet objects.\n */\nexport function getLocalEntropyWallets(\n context: BackupAndSyncContext,\n): AccountWalletEntropyObject[] {\n return Object.values(context.controller.state.accountTree.wallets).filter(\n (wallet) => wallet.type === AccountWalletType.Entropy,\n ) as AccountWalletEntropyObject[];\n}\n\n/**\n * Gets the local group for a specific entropy wallet by its source ID and group index.\n *\n * @param context - The backup and sync context.\n * @param entropySourceId - The entropy source ID.\n * @param groupIndex - The group index.\n * @returns The local group object if it exists, undefined otherwise.\n */\nexport const getLocalGroupForEntropyWallet = (\n context: BackupAndSyncContext,\n entropySourceId: string,\n groupIndex: number,\n): AccountGroupMultichainAccountObject | undefined => {\n const walletId = toMultichainAccountWalletId(entropySourceId);\n const wallet = context.controller.state.accountTree.wallets[walletId];\n\n if (wallet?.type !== AccountWalletType.Entropy) {\n backupAndSyncLogger(\n `Wallet ${walletId} not found or is not an entropy wallet`,\n );\n return undefined;\n }\n\n const groupId = toMultichainAccountGroupId(walletId, groupIndex);\n\n return wallet.groups[groupId];\n};\n\n/**\n * Gets all groups for a specific entropy wallet.\n *\n * @param context - The backup and sync context.\n * @param walletId - The wallet ID to get groups for.\n * @returns Array of multichain account group objects.\n */\nexport function getLocalGroupsForEntropyWallet(\n context: BackupAndSyncContext,\n walletId: AccountWalletId,\n): AccountGroupMultichainAccountObject[] {\n const wallet = context.controller.state.accountTree.wallets[walletId];\n if (wallet?.type !== AccountWalletType.Entropy) {\n backupAndSyncLogger(\n `Wallet ${walletId} not found or is not an entropy wallet`,\n );\n return [];\n }\n\n return Object.values(wallet.groups);\n}\n\n/**\n * State snapshot type for rollback operations.\n * Captures all the state that needs to be restored in case of sync failures.\n */\nexport type StateSnapshot = {\n accountGroupsMetadata: AccountTreeControllerState['accountGroupsMetadata'];\n accountWalletsMetadata: AccountTreeControllerState['accountWalletsMetadata'];\n selectedAccountGroup: AccountTreeControllerState['accountTree']['selectedAccountGroup'];\n accountTreeWallets: AccountTreeControllerState['accountTree']['wallets'];\n};\n\n/**\n * Creates a snapshot of the current controller state for rollback purposes.\n * Captures all state including the account tree structure.\n *\n * @param context - The backup and sync context containing controller and messenger.\n * @returns A deep copy of relevant state that can be restored later.\n */\nexport function createStateSnapshot(\n context: BackupAndSyncContext,\n): StateSnapshot {\n return {\n accountGroupsMetadata: JSON.parse(\n JSON.stringify(context.controller.state.accountGroupsMetadata),\n ),\n accountWalletsMetadata: JSON.parse(\n JSON.stringify(context.controller.state.accountWalletsMetadata),\n ),\n selectedAccountGroup:\n context.controller.state.accountTree.selectedAccountGroup,\n accountTreeWallets: JSON.parse(\n JSON.stringify(context.controller.state.accountTree.wallets),\n ),\n };\n}\n\n/**\n * Restores state using an update callback.\n * Restores both persisted metadata and the complete account tree structure.\n * Uses the controller's init() method to rebuild internal maps correctly.\n *\n * @param context - The backup and sync context containing controller and messenger.\n * @param snapshot - The state snapshot to restore.\n */\nexport function restoreStateFromSnapshot(\n context: BackupAndSyncContext,\n snapshot: StateSnapshot,\n): void {\n context.controllerStateUpdateFn((state) => {\n state.accountGroupsMetadata = snapshot.accountGroupsMetadata;\n state.accountWalletsMetadata = snapshot.accountWalletsMetadata;\n state.accountTree.selectedAccountGroup = snapshot.selectedAccountGroup;\n state.accountTree.wallets = snapshot.accountTreeWallets;\n });\n\n // Use init() to rebuild the internal maps from the restored account tree state\n // This ensures that the internal maps (#accountIdToContext and #groupIdToWalletId)\n // are correctly synchronized with the restored account tree structure\n context.controller.init();\n}\n"]}
1
+ {"version":3,"file":"controller.mjs","sourceRoot":"","sources":["../../../src/backup-and-sync/utils/controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AccountWalletType,\n toMultichainAccountGroupId,\n toMultichainAccountWalletId,\n} from '@metamask/account-api';\nimport type { AccountWalletId } from '@metamask/account-api';\n\nimport type { AccountGroupMultichainAccountObject } from '../../group';\nimport { backupAndSyncLogger } from '../../logger';\nimport type { AccountTreeControllerState } from '../../types';\nimport type { AccountWalletEntropyObject } from '../../wallet';\nimport type { BackupAndSyncContext } from '../types';\n\n/**\n * Gets all local entropy wallets that can be synced.\n *\n * @param context - The backup and sync context.\n * @returns Array of entropy wallet objects.\n */\nexport function getLocalEntropyWallets(\n context: BackupAndSyncContext,\n): AccountWalletEntropyObject[] {\n return Object.values(context.controller.state.accountTree.wallets).filter(\n (wallet) => wallet.type === AccountWalletType.Entropy,\n ) as AccountWalletEntropyObject[];\n}\n\n/**\n * Gets the local group for a specific entropy wallet by its source ID and group index.\n *\n * @param context - The backup and sync context.\n * @param entropySourceId - The entropy source ID.\n * @param groupIndex - The group index.\n * @returns The local group object if it exists, undefined otherwise.\n */\nexport const getLocalGroupForEntropyWallet = (\n context: BackupAndSyncContext,\n entropySourceId: string,\n groupIndex: number,\n): AccountGroupMultichainAccountObject | undefined => {\n const walletId = toMultichainAccountWalletId(entropySourceId);\n const wallet = context.controller.state.accountTree.wallets[walletId];\n\n if (wallet?.type !== AccountWalletType.Entropy) {\n backupAndSyncLogger(\n `Wallet ${walletId} not found or is not an entropy wallet`,\n );\n return undefined;\n }\n\n const groupId = toMultichainAccountGroupId(walletId, groupIndex);\n\n return wallet.groups[groupId];\n};\n\n/**\n * Gets all groups for a specific entropy wallet.\n *\n * @param context - The backup and sync context.\n * @param walletId - The wallet ID to get groups for.\n * @returns Array of multichain account group objects.\n */\nexport function getLocalGroupsForEntropyWallet(\n context: BackupAndSyncContext,\n walletId: AccountWalletId,\n): AccountGroupMultichainAccountObject[] {\n const wallet = context.controller.state.accountTree.wallets[walletId];\n if (wallet?.type !== AccountWalletType.Entropy) {\n backupAndSyncLogger(\n `Wallet ${walletId} not found or is not an entropy wallet`,\n );\n return [];\n }\n\n return Object.values(wallet.groups);\n}\n\n/**\n * State snapshot type for rollback operations.\n * Captures all the state that needs to be restored in case of sync failures.\n */\nexport type StateSnapshot = {\n accountGroupsMetadata: AccountTreeControllerState['accountGroupsMetadata'];\n accountWalletsMetadata: AccountTreeControllerState['accountWalletsMetadata'];\n selectedAccountGroup: AccountTreeControllerState['selectedAccountGroup'];\n accountTreeWallets: AccountTreeControllerState['accountTree']['wallets'];\n};\n\n/**\n * Creates a snapshot of the current controller state for rollback purposes.\n * Captures all state including the account tree structure.\n *\n * @param context - The backup and sync context containing controller and messenger.\n * @returns A deep copy of relevant state that can be restored later.\n */\nexport function createStateSnapshot(\n context: BackupAndSyncContext,\n): StateSnapshot {\n return {\n accountGroupsMetadata: JSON.parse(\n JSON.stringify(context.controller.state.accountGroupsMetadata),\n ),\n accountWalletsMetadata: JSON.parse(\n JSON.stringify(context.controller.state.accountWalletsMetadata),\n ),\n selectedAccountGroup: context.controller.state.selectedAccountGroup,\n accountTreeWallets: JSON.parse(\n JSON.stringify(context.controller.state.accountTree.wallets),\n ),\n };\n}\n\n/**\n * Restores state using an update callback.\n * Restores both persisted metadata and the complete account tree structure.\n * Uses the controller's init() method to rebuild internal maps correctly.\n *\n * @param context - The backup and sync context containing controller and messenger.\n * @param snapshot - The state snapshot to restore.\n */\nexport function restoreStateFromSnapshot(\n context: BackupAndSyncContext,\n snapshot: StateSnapshot,\n): void {\n context.controllerStateUpdateFn((state) => {\n state.accountGroupsMetadata = snapshot.accountGroupsMetadata;\n state.accountWalletsMetadata = snapshot.accountWalletsMetadata;\n state.selectedAccountGroup = snapshot.selectedAccountGroup;\n state.accountTree.wallets = snapshot.accountTreeWallets;\n });\n\n // Use init() to rebuild the internal maps from the restored account tree state\n // This ensures that the internal maps (#accountIdToContext and #groupIdToWalletId)\n // are correctly synchronized with the restored account tree structure\n context.controller.init();\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AccountGroupId, AccountWalletId } from '@metamask/account-api';\nimport type {\n AccountId,\n AccountsControllerAccountsAddedEvent,\n AccountsControllerAccountsRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetSelectedMultichainAccountAction,\n AccountsControllerListMultichainAccountsAction,\n AccountsControllerSelectedAccountChangeEvent,\n AccountsControllerSetSelectedAccountAction,\n} from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringControllerGetStateAction } from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n MultichainAccountServiceCreateMultichainAccountGroupAction,\n MultichainAccountServiceCreateMultichainAccountGroupsAction,\n} from '@metamask/multichain-account-service';\nimport type { MultichainAccountServiceWalletStatusChangeEvent } from '@metamask/multichain-account-service';\nimport type {\n AuthenticationController,\n UserStorageController,\n} from '@metamask/profile-sync-controller';\nimport type { GetSnap as SnapControllerGetSnap } from '@metamask/snaps-controllers';\n\nimport type { controllerName } from './AccountTreeController';\nimport type { AccountTreeControllerMethodActions } from './AccountTreeController-method-action-types';\nimport type {\n BackupAndSyncAnalyticsEventPayload,\n BackupAndSyncEmitAnalyticsEventParams,\n} from './backup-and-sync/analytics';\nimport type {\n AccountGroupObject,\n AccountTreeGroupPersistedMetadata,\n} from './group';\nimport type {\n AccountWalletObject,\n AccountTreeWalletPersistedMetadata,\n} from './wallet';\n\n// Backward compatibility aliases using indexed access types\n/**\n * @deprecated Use AccountTreeGroupMetadata for tree objects or AccountTreeGroupPersistedMetadata for controller state\n */\nexport type AccountGroupMetadata = AccountGroupObject['metadata'];\n\n/**\n * @deprecated Use AccountTreeWalletMetadata for tree objects or AccountTreeWalletPersistedMetadata for controller state\n */\nexport type AccountWalletMetadata = AccountWalletObject['metadata'];\n\nexport type AccountTreeControllerState = {\n accountTree: {\n wallets: {\n // Wallets:\n [walletId: AccountWalletId]: AccountWalletObject;\n };\n selectedAccountGroup: AccountGroupId | '';\n };\n isAccountTreeSyncingInProgress: boolean;\n hasAccountTreeSyncingSyncedAtLeastOnce: boolean;\n /** Persistent metadata for account groups (names, pinning, hiding, sync timestamps) */\n accountGroupsMetadata: Record<\n AccountGroupId,\n AccountTreeGroupPersistedMetadata\n >;\n /** Persistent metadata for account wallets (names, sync timestamps) */\n accountWalletsMetadata: Record<\n AccountWalletId,\n AccountTreeWalletPersistedMetadata\n >;\n};\n\nexport type AccountTreeControllerGetStateAction = ControllerGetStateAction<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\nexport type AllowedActions =\n | AccountsControllerGetAccountAction\n | AccountsControllerGetSelectedMultichainAccountAction\n | AccountsControllerListMultichainAccountsAction\n | AccountsControllerSetSelectedAccountAction\n | KeyringControllerGetStateAction\n | SnapControllerGetSnap\n | UserStorageController.UserStorageControllerGetStateAction\n | UserStorageController.UserStorageControllerPerformGetStorageAction\n | UserStorageController.UserStorageControllerPerformGetStorageAllFeatureEntriesAction\n | UserStorageController.UserStorageControllerPerformSetStorageAction\n | UserStorageController.UserStorageControllerPerformBatchSetStorageAction\n | AuthenticationController.AuthenticationControllerGetSessionProfileAction\n | MultichainAccountServiceCreateMultichainAccountGroupAction\n | MultichainAccountServiceCreateMultichainAccountGroupsAction;\n\nexport type AccountTreeControllerActions =\n | AccountTreeControllerGetStateAction\n | AccountTreeControllerMethodActions;\n\nexport type AccountTreeControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\n/**\n * Represents the `AccountTreeController:accountTreeChange` event.\n * This event is emitted when nodes (wallets, groups, or accounts) are added or removed.\n */\nexport type AccountTreeControllerAccountTreeChangeEvent = {\n type: `${typeof controllerName}:accountTreeChange`;\n payload: [AccountTreeControllerState['accountTree']];\n};\n\n/**\n * Represents the `AccountTreeController:selectedAccountGroupChange` event.\n * This event is emitted when the selected account group changes.\n */\nexport type AccountTreeControllerSelectedAccountGroupChangeEvent = {\n type: `${typeof controllerName}:selectedAccountGroupChange`;\n payload: [AccountGroupId | '', AccountGroupId | ''];\n};\n\nexport type AllowedEvents =\n | AccountsControllerAccountsAddedEvent\n | AccountsControllerAccountsRemovedEvent\n | AccountsControllerSelectedAccountChangeEvent\n | UserStorageController.UserStorageControllerStateChangeEvent\n | MultichainAccountServiceWalletStatusChangeEvent;\n\nexport type AccountTreeControllerEvents =\n | AccountTreeControllerStateChangeEvent\n | AccountTreeControllerAccountTreeChangeEvent\n | AccountTreeControllerSelectedAccountGroupChangeEvent;\n\nexport type AccountTreeControllerMessenger = Messenger<\n typeof controllerName,\n AccountTreeControllerActions | AllowedActions,\n AccountTreeControllerEvents | AllowedEvents\n>;\n\nexport type AccountTreeControllerConfig = {\n trace?: TraceCallback;\n backupAndSync?: {\n onBackupAndSyncEvent?: (event: BackupAndSyncAnalyticsEventPayload) => void;\n };\n accountOrderCallbacks?: {\n isHiddenAccount?: (accountId: AccountId) => boolean;\n isPinnedAccount?: (accountId: AccountId) => boolean;\n };\n};\n\nexport type AccountTreeControllerInternalBackupAndSyncConfig = {\n emitAnalyticsEventFn: (event: BackupAndSyncEmitAnalyticsEventParams) => void;\n};\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AccountGroupId, AccountWalletId } from '@metamask/account-api';\nimport type {\n AccountId,\n AccountsControllerAccountsAddedEvent,\n AccountsControllerAccountsRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetSelectedMultichainAccountAction,\n AccountsControllerListMultichainAccountsAction,\n AccountsControllerSelectedAccountChangeEvent,\n AccountsControllerSetSelectedAccountAction,\n} from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringControllerGetStateAction } from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n MultichainAccountServiceCreateMultichainAccountGroupAction,\n MultichainAccountServiceCreateMultichainAccountGroupsAction,\n} from '@metamask/multichain-account-service';\nimport type { MultichainAccountServiceWalletStatusChangeEvent } from '@metamask/multichain-account-service';\nimport type {\n AuthenticationController,\n UserStorageController,\n} from '@metamask/profile-sync-controller';\nimport type { GetSnap as SnapControllerGetSnap } from '@metamask/snaps-controllers';\n\nimport type { controllerName } from './AccountTreeController';\nimport type { AccountTreeControllerMethodActions } from './AccountTreeController-method-action-types';\nimport type {\n BackupAndSyncAnalyticsEventPayload,\n BackupAndSyncEmitAnalyticsEventParams,\n} from './backup-and-sync/analytics';\nimport type {\n AccountGroupObject,\n AccountTreeGroupPersistedMetadata,\n} from './group';\nimport type {\n AccountWalletObject,\n AccountTreeWalletPersistedMetadata,\n} from './wallet';\n\n// Backward compatibility aliases using indexed access types\n/**\n * @deprecated Use AccountTreeGroupMetadata for tree objects or AccountTreeGroupPersistedMetadata for controller state\n */\nexport type AccountGroupMetadata = AccountGroupObject['metadata'];\n\n/**\n * @deprecated Use AccountTreeWalletMetadata for tree objects or AccountTreeWalletPersistedMetadata for controller state\n */\nexport type AccountWalletMetadata = AccountWalletObject['metadata'];\n\nexport type AccountTreeControllerState = {\n accountTree: {\n wallets: {\n // Wallets:\n [walletId: AccountWalletId]: AccountWalletObject;\n };\n };\n selectedAccountGroup: AccountGroupId | '';\n isAccountTreeSyncingInProgress: boolean;\n hasAccountTreeSyncingSyncedAtLeastOnce: boolean;\n /** Persistent metadata for account groups (names, pinning, hiding, sync timestamps) */\n accountGroupsMetadata: Record<\n AccountGroupId,\n AccountTreeGroupPersistedMetadata\n >;\n /** Persistent metadata for account wallets (names, sync timestamps) */\n accountWalletsMetadata: Record<\n AccountWalletId,\n AccountTreeWalletPersistedMetadata\n >;\n};\n\nexport type AccountTreeControllerGetStateAction = ControllerGetStateAction<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\nexport type AllowedActions =\n | AccountsControllerGetAccountAction\n | AccountsControllerGetSelectedMultichainAccountAction\n | AccountsControllerListMultichainAccountsAction\n | AccountsControllerSetSelectedAccountAction\n | KeyringControllerGetStateAction\n | SnapControllerGetSnap\n | UserStorageController.UserStorageControllerGetStateAction\n | UserStorageController.UserStorageControllerPerformGetStorageAction\n | UserStorageController.UserStorageControllerPerformGetStorageAllFeatureEntriesAction\n | UserStorageController.UserStorageControllerPerformSetStorageAction\n | UserStorageController.UserStorageControllerPerformBatchSetStorageAction\n | AuthenticationController.AuthenticationControllerGetSessionProfileAction\n | MultichainAccountServiceCreateMultichainAccountGroupAction\n | MultichainAccountServiceCreateMultichainAccountGroupsAction;\n\nexport type AccountTreeControllerActions =\n | AccountTreeControllerGetStateAction\n | AccountTreeControllerMethodActions;\n\nexport type AccountTreeControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\n/**\n * Represents the `AccountTreeController:accountTreeChange` event.\n * This event is emitted when nodes (wallets, groups, or accounts) are added or removed.\n */\nexport type AccountTreeControllerAccountTreeChangeEvent = {\n type: `${typeof controllerName}:accountTreeChange`;\n payload: [AccountTreeControllerState['accountTree']];\n};\n\n/**\n * Represents the `AccountTreeController:selectedAccountGroupChange` event.\n * This event is emitted when the selected account group changes.\n */\nexport type AccountTreeControllerSelectedAccountGroupChangeEvent = {\n type: `${typeof controllerName}:selectedAccountGroupChange`;\n payload: [AccountGroupId | '', AccountGroupId | ''];\n};\n\nexport type AllowedEvents =\n | AccountsControllerAccountsAddedEvent\n | AccountsControllerAccountsRemovedEvent\n | AccountsControllerSelectedAccountChangeEvent\n | UserStorageController.UserStorageControllerStateChangeEvent\n | MultichainAccountServiceWalletStatusChangeEvent;\n\nexport type AccountTreeControllerEvents =\n | AccountTreeControllerStateChangeEvent\n | AccountTreeControllerAccountTreeChangeEvent\n | AccountTreeControllerSelectedAccountGroupChangeEvent;\n\nexport type AccountTreeControllerMessenger = Messenger<\n typeof controllerName,\n AccountTreeControllerActions | AllowedActions,\n AccountTreeControllerEvents | AllowedEvents\n>;\n\nexport type AccountTreeControllerConfig = {\n trace?: TraceCallback;\n backupAndSync?: {\n onBackupAndSyncEvent?: (event: BackupAndSyncAnalyticsEventPayload) => void;\n };\n accountOrderCallbacks?: {\n isHiddenAccount?: (accountId: AccountId) => boolean;\n isPinnedAccount?: (accountId: AccountId) => boolean;\n };\n};\n\nexport type AccountTreeControllerInternalBackupAndSyncConfig = {\n emitAnalyticsEventFn: (event: BackupAndSyncEmitAnalyticsEventParams) => void;\n};\n"]}
package/dist/types.d.cts CHANGED
@@ -26,8 +26,8 @@ export type AccountTreeControllerState = {
26
26
  wallets: {
27
27
  [walletId: AccountWalletId]: AccountWalletObject;
28
28
  };
29
- selectedAccountGroup: AccountGroupId | '';
30
29
  };
30
+ selectedAccountGroup: AccountGroupId | '';
31
31
  isAccountTreeSyncingInProgress: boolean;
32
32
  hasAccountTreeSyncingSyncedAtLeastOnce: boolean;
33
33
  /** Persistent metadata for account groups (names, pinning, hiding, sync timestamps) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -26,8 +26,8 @@ export type AccountTreeControllerState = {
26
26
  wallets: {
27
27
  [walletId: AccountWalletId]: AccountWalletObject;
28
28
  };
29
- selectedAccountGroup: AccountGroupId | '';
30
29
  };
30
+ selectedAccountGroup: AccountGroupId | '';
31
31
  isAccountTreeSyncingInProgress: boolean;
32
32
  hasAccountTreeSyncingSyncedAtLeastOnce: boolean;
33
33
  /** Persistent metadata for account groups (names, pinning, hiding, sync timestamps) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EACV,SAAS,EACT,oCAAoC,EACpC,sCAAsC,EACtC,kCAAkC,EAClC,oDAAoD,EACpD,8CAA8C,EAC9C,4CAA4C,EAC5C,0CAA0C,EAC3C,sCAAsC;AACvC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,kCAAkC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,mCAAmC;AAChE,OAAO,KAAK,EAAE,+BAA+B,EAAE,qCAAqC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,0DAA0D,EAC1D,2DAA2D,EAC5D,6CAA6C;AAC9C,OAAO,KAAK,EAAE,+CAA+C,EAAE,6CAA6C;AAC5G,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACtB,0CAA0C;AAC3C,OAAO,KAAK,EAAE,OAAO,IAAI,qBAAqB,EAAE,oCAAoC;AAEpF,OAAO,KAAK,EAAE,cAAc,EAAE,oCAAgC;AAC9D,OAAO,KAAK,EAAE,kCAAkC,EAAE,wDAAoD;AACtG,OAAO,KAAK,EACV,kCAAkC,EAClC,qCAAqC,EACtC,8CAAoC;AACrC,OAAO,KAAK,EACV,kBAAkB,EAClB,iCAAiC,EAClC,oBAAgB;AACjB,OAAO,KAAK,EACV,mBAAmB,EACnB,kCAAkC,EACnC,qBAAiB;AAGlB;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAEpE,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE;QACX,OAAO,EAAE;YAEP,CAAC,QAAQ,EAAE,eAAe,GAAG,mBAAmB,CAAC;SAClD,CAAC;KACH,CAAC;IACF,oBAAoB,EAAE,cAAc,GAAG,EAAE,CAAC;IAC1C,8BAA8B,EAAE,OAAO,CAAC;IACxC,sCAAsC,EAAE,OAAO,CAAC;IAChD,uFAAuF;IACvF,qBAAqB,EAAE,MAAM,CAC3B,cAAc,EACd,iCAAiC,CAClC,CAAC;IACF,uEAAuE;IACvE,sBAAsB,EAAE,MAAM,CAC5B,eAAe,EACf,kCAAkC,CACnC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,wBAAwB,CACxE,OAAO,cAAc,EACrB,0BAA0B,CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,kCAAkC,GAClC,oDAAoD,GACpD,8CAA8C,GAC9C,0CAA0C,GAC1C,+BAA+B,GAC/B,qBAAqB,GACrB,qBAAqB,CAAC,mCAAmC,GACzD,qBAAqB,CAAC,4CAA4C,GAClE,qBAAqB,CAAC,6DAA6D,GACnF,qBAAqB,CAAC,4CAA4C,GAClE,qBAAqB,CAAC,iDAAiD,GACvE,wBAAwB,CAAC,+CAA+C,GACxE,0DAA0D,GAC1D,2DAA2D,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GACpC,mCAAmC,GACnC,kCAAkC,CAAC;AAEvC,MAAM,MAAM,qCAAqC,GAAG,0BAA0B,CAC5E,OAAO,cAAc,EACrB,0BAA0B,CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2CAA2C,GAAG;IACxD,IAAI,EAAE,GAAG,OAAO,cAAc,oBAAoB,CAAC;IACnD,OAAO,EAAE,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oDAAoD,GAAG;IACjE,IAAI,EAAE,GAAG,OAAO,cAAc,6BAA6B,CAAC;IAC5D,OAAO,EAAE,CAAC,cAAc,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,oCAAoC,GACpC,sCAAsC,GACtC,4CAA4C,GAC5C,qBAAqB,CAAC,qCAAqC,GAC3D,+CAA+C,CAAC;AAEpD,MAAM,MAAM,2BAA2B,GACnC,qCAAqC,GACrC,2CAA2C,GAC3C,oDAAoD,CAAC;AAEzD,MAAM,MAAM,8BAA8B,GAAG,SAAS,CACpD,OAAO,cAAc,EACrB,4BAA4B,GAAG,cAAc,EAC7C,2BAA2B,GAAG,aAAa,CAC5C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,kCAAkC,KAAK,IAAI,CAAC;KAC5E,CAAC;IACF,qBAAqB,CAAC,EAAE;QACtB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC;QACpD,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC;KACrD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gDAAgD,GAAG;IAC7D,oBAAoB,EAAE,CAAC,KAAK,EAAE,qCAAqC,KAAK,IAAI,CAAC;CAC9E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AccountGroupId, AccountWalletId } from '@metamask/account-api';\nimport type {\n AccountId,\n AccountsControllerAccountsAddedEvent,\n AccountsControllerAccountsRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetSelectedMultichainAccountAction,\n AccountsControllerListMultichainAccountsAction,\n AccountsControllerSelectedAccountChangeEvent,\n AccountsControllerSetSelectedAccountAction,\n} from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringControllerGetStateAction } from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n MultichainAccountServiceCreateMultichainAccountGroupAction,\n MultichainAccountServiceCreateMultichainAccountGroupsAction,\n} from '@metamask/multichain-account-service';\nimport type { MultichainAccountServiceWalletStatusChangeEvent } from '@metamask/multichain-account-service';\nimport type {\n AuthenticationController,\n UserStorageController,\n} from '@metamask/profile-sync-controller';\nimport type { GetSnap as SnapControllerGetSnap } from '@metamask/snaps-controllers';\n\nimport type { controllerName } from './AccountTreeController';\nimport type { AccountTreeControllerMethodActions } from './AccountTreeController-method-action-types';\nimport type {\n BackupAndSyncAnalyticsEventPayload,\n BackupAndSyncEmitAnalyticsEventParams,\n} from './backup-and-sync/analytics';\nimport type {\n AccountGroupObject,\n AccountTreeGroupPersistedMetadata,\n} from './group';\nimport type {\n AccountWalletObject,\n AccountTreeWalletPersistedMetadata,\n} from './wallet';\n\n// Backward compatibility aliases using indexed access types\n/**\n * @deprecated Use AccountTreeGroupMetadata for tree objects or AccountTreeGroupPersistedMetadata for controller state\n */\nexport type AccountGroupMetadata = AccountGroupObject['metadata'];\n\n/**\n * @deprecated Use AccountTreeWalletMetadata for tree objects or AccountTreeWalletPersistedMetadata for controller state\n */\nexport type AccountWalletMetadata = AccountWalletObject['metadata'];\n\nexport type AccountTreeControllerState = {\n accountTree: {\n wallets: {\n // Wallets:\n [walletId: AccountWalletId]: AccountWalletObject;\n };\n selectedAccountGroup: AccountGroupId | '';\n };\n isAccountTreeSyncingInProgress: boolean;\n hasAccountTreeSyncingSyncedAtLeastOnce: boolean;\n /** Persistent metadata for account groups (names, pinning, hiding, sync timestamps) */\n accountGroupsMetadata: Record<\n AccountGroupId,\n AccountTreeGroupPersistedMetadata\n >;\n /** Persistent metadata for account wallets (names, sync timestamps) */\n accountWalletsMetadata: Record<\n AccountWalletId,\n AccountTreeWalletPersistedMetadata\n >;\n};\n\nexport type AccountTreeControllerGetStateAction = ControllerGetStateAction<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\nexport type AllowedActions =\n | AccountsControllerGetAccountAction\n | AccountsControllerGetSelectedMultichainAccountAction\n | AccountsControllerListMultichainAccountsAction\n | AccountsControllerSetSelectedAccountAction\n | KeyringControllerGetStateAction\n | SnapControllerGetSnap\n | UserStorageController.UserStorageControllerGetStateAction\n | UserStorageController.UserStorageControllerPerformGetStorageAction\n | UserStorageController.UserStorageControllerPerformGetStorageAllFeatureEntriesAction\n | UserStorageController.UserStorageControllerPerformSetStorageAction\n | UserStorageController.UserStorageControllerPerformBatchSetStorageAction\n | AuthenticationController.AuthenticationControllerGetSessionProfileAction\n | MultichainAccountServiceCreateMultichainAccountGroupAction\n | MultichainAccountServiceCreateMultichainAccountGroupsAction;\n\nexport type AccountTreeControllerActions =\n | AccountTreeControllerGetStateAction\n | AccountTreeControllerMethodActions;\n\nexport type AccountTreeControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\n/**\n * Represents the `AccountTreeController:accountTreeChange` event.\n * This event is emitted when nodes (wallets, groups, or accounts) are added or removed.\n */\nexport type AccountTreeControllerAccountTreeChangeEvent = {\n type: `${typeof controllerName}:accountTreeChange`;\n payload: [AccountTreeControllerState['accountTree']];\n};\n\n/**\n * Represents the `AccountTreeController:selectedAccountGroupChange` event.\n * This event is emitted when the selected account group changes.\n */\nexport type AccountTreeControllerSelectedAccountGroupChangeEvent = {\n type: `${typeof controllerName}:selectedAccountGroupChange`;\n payload: [AccountGroupId | '', AccountGroupId | ''];\n};\n\nexport type AllowedEvents =\n | AccountsControllerAccountsAddedEvent\n | AccountsControllerAccountsRemovedEvent\n | AccountsControllerSelectedAccountChangeEvent\n | UserStorageController.UserStorageControllerStateChangeEvent\n | MultichainAccountServiceWalletStatusChangeEvent;\n\nexport type AccountTreeControllerEvents =\n | AccountTreeControllerStateChangeEvent\n | AccountTreeControllerAccountTreeChangeEvent\n | AccountTreeControllerSelectedAccountGroupChangeEvent;\n\nexport type AccountTreeControllerMessenger = Messenger<\n typeof controllerName,\n AccountTreeControllerActions | AllowedActions,\n AccountTreeControllerEvents | AllowedEvents\n>;\n\nexport type AccountTreeControllerConfig = {\n trace?: TraceCallback;\n backupAndSync?: {\n onBackupAndSyncEvent?: (event: BackupAndSyncAnalyticsEventPayload) => void;\n };\n accountOrderCallbacks?: {\n isHiddenAccount?: (accountId: AccountId) => boolean;\n isPinnedAccount?: (accountId: AccountId) => boolean;\n };\n};\n\nexport type AccountTreeControllerInternalBackupAndSyncConfig = {\n emitAnalyticsEventFn: (event: BackupAndSyncEmitAnalyticsEventParams) => void;\n};\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AccountGroupId, AccountWalletId } from '@metamask/account-api';\nimport type {\n AccountId,\n AccountsControllerAccountsAddedEvent,\n AccountsControllerAccountsRemovedEvent,\n AccountsControllerGetAccountAction,\n AccountsControllerGetSelectedMultichainAccountAction,\n AccountsControllerListMultichainAccountsAction,\n AccountsControllerSelectedAccountChangeEvent,\n AccountsControllerSetSelectedAccountAction,\n} from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringControllerGetStateAction } from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n MultichainAccountServiceCreateMultichainAccountGroupAction,\n MultichainAccountServiceCreateMultichainAccountGroupsAction,\n} from '@metamask/multichain-account-service';\nimport type { MultichainAccountServiceWalletStatusChangeEvent } from '@metamask/multichain-account-service';\nimport type {\n AuthenticationController,\n UserStorageController,\n} from '@metamask/profile-sync-controller';\nimport type { GetSnap as SnapControllerGetSnap } from '@metamask/snaps-controllers';\n\nimport type { controllerName } from './AccountTreeController';\nimport type { AccountTreeControllerMethodActions } from './AccountTreeController-method-action-types';\nimport type {\n BackupAndSyncAnalyticsEventPayload,\n BackupAndSyncEmitAnalyticsEventParams,\n} from './backup-and-sync/analytics';\nimport type {\n AccountGroupObject,\n AccountTreeGroupPersistedMetadata,\n} from './group';\nimport type {\n AccountWalletObject,\n AccountTreeWalletPersistedMetadata,\n} from './wallet';\n\n// Backward compatibility aliases using indexed access types\n/**\n * @deprecated Use AccountTreeGroupMetadata for tree objects or AccountTreeGroupPersistedMetadata for controller state\n */\nexport type AccountGroupMetadata = AccountGroupObject['metadata'];\n\n/**\n * @deprecated Use AccountTreeWalletMetadata for tree objects or AccountTreeWalletPersistedMetadata for controller state\n */\nexport type AccountWalletMetadata = AccountWalletObject['metadata'];\n\nexport type AccountTreeControllerState = {\n accountTree: {\n wallets: {\n // Wallets:\n [walletId: AccountWalletId]: AccountWalletObject;\n };\n };\n selectedAccountGroup: AccountGroupId | '';\n isAccountTreeSyncingInProgress: boolean;\n hasAccountTreeSyncingSyncedAtLeastOnce: boolean;\n /** Persistent metadata for account groups (names, pinning, hiding, sync timestamps) */\n accountGroupsMetadata: Record<\n AccountGroupId,\n AccountTreeGroupPersistedMetadata\n >;\n /** Persistent metadata for account wallets (names, sync timestamps) */\n accountWalletsMetadata: Record<\n AccountWalletId,\n AccountTreeWalletPersistedMetadata\n >;\n};\n\nexport type AccountTreeControllerGetStateAction = ControllerGetStateAction<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\nexport type AllowedActions =\n | AccountsControllerGetAccountAction\n | AccountsControllerGetSelectedMultichainAccountAction\n | AccountsControllerListMultichainAccountsAction\n | AccountsControllerSetSelectedAccountAction\n | KeyringControllerGetStateAction\n | SnapControllerGetSnap\n | UserStorageController.UserStorageControllerGetStateAction\n | UserStorageController.UserStorageControllerPerformGetStorageAction\n | UserStorageController.UserStorageControllerPerformGetStorageAllFeatureEntriesAction\n | UserStorageController.UserStorageControllerPerformSetStorageAction\n | UserStorageController.UserStorageControllerPerformBatchSetStorageAction\n | AuthenticationController.AuthenticationControllerGetSessionProfileAction\n | MultichainAccountServiceCreateMultichainAccountGroupAction\n | MultichainAccountServiceCreateMultichainAccountGroupsAction;\n\nexport type AccountTreeControllerActions =\n | AccountTreeControllerGetStateAction\n | AccountTreeControllerMethodActions;\n\nexport type AccountTreeControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof controllerName,\n AccountTreeControllerState\n>;\n\n/**\n * Represents the `AccountTreeController:accountTreeChange` event.\n * This event is emitted when nodes (wallets, groups, or accounts) are added or removed.\n */\nexport type AccountTreeControllerAccountTreeChangeEvent = {\n type: `${typeof controllerName}:accountTreeChange`;\n payload: [AccountTreeControllerState['accountTree']];\n};\n\n/**\n * Represents the `AccountTreeController:selectedAccountGroupChange` event.\n * This event is emitted when the selected account group changes.\n */\nexport type AccountTreeControllerSelectedAccountGroupChangeEvent = {\n type: `${typeof controllerName}:selectedAccountGroupChange`;\n payload: [AccountGroupId | '', AccountGroupId | ''];\n};\n\nexport type AllowedEvents =\n | AccountsControllerAccountsAddedEvent\n | AccountsControllerAccountsRemovedEvent\n | AccountsControllerSelectedAccountChangeEvent\n | UserStorageController.UserStorageControllerStateChangeEvent\n | MultichainAccountServiceWalletStatusChangeEvent;\n\nexport type AccountTreeControllerEvents =\n | AccountTreeControllerStateChangeEvent\n | AccountTreeControllerAccountTreeChangeEvent\n | AccountTreeControllerSelectedAccountGroupChangeEvent;\n\nexport type AccountTreeControllerMessenger = Messenger<\n typeof controllerName,\n AccountTreeControllerActions | AllowedActions,\n AccountTreeControllerEvents | AllowedEvents\n>;\n\nexport type AccountTreeControllerConfig = {\n trace?: TraceCallback;\n backupAndSync?: {\n onBackupAndSyncEvent?: (event: BackupAndSyncAnalyticsEventPayload) => void;\n };\n accountOrderCallbacks?: {\n isHiddenAccount?: (accountId: AccountId) => boolean;\n isPinnedAccount?: (accountId: AccountId) => boolean;\n };\n};\n\nexport type AccountTreeControllerInternalBackupAndSyncConfig = {\n emitAnalyticsEventFn: (event: BackupAndSyncEmitAnalyticsEventParams) => void;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/account-tree-controller",
3
- "version": "5.0.1-preview-434bd0c",
3
+ "version": "5.0.1-preview-e9620906a",
4
4
  "description": "Controller to group account together based on some pre-defined rules",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -50,6 +50,7 @@
50
50
  "dependencies": {
51
51
  "@metamask/accounts-controller": "^37.0.0",
52
52
  "@metamask/base-controller": "^9.0.0",
53
+ "@metamask/keyring-api": "^21.6.0",
53
54
  "@metamask/keyring-controller": "^25.1.0",
54
55
  "@metamask/messenger": "^0.3.0",
55
56
  "@metamask/multichain-account-service": "^7.1.0",
@@ -65,7 +66,6 @@
65
66
  "devDependencies": {
66
67
  "@metamask/account-api": "^1.0.0",
67
68
  "@metamask/auto-changelog": "^3.4.4",
68
- "@metamask/keyring-api": "^21.5.0",
69
69
  "@metamask/providers": "^22.1.0",
70
70
  "@ts-bridge/cli": "^0.6.4",
71
71
  "@types/jest": "^29.5.14",