@metamask-previews/account-tree-controller 0.7.0-preview-0fca3de → 0.7.0-preview-af4e47c0
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 +9 -0
- package/dist/AccountTreeController.cjs +183 -36
- package/dist/AccountTreeController.cjs.map +1 -1
- package/dist/AccountTreeController.d.cts +32 -0
- package/dist/AccountTreeController.d.cts.map +1 -1
- package/dist/AccountTreeController.d.mts +32 -0
- package/dist/AccountTreeController.d.mts.map +1 -1
- package/dist/AccountTreeController.mjs +183 -36
- package/dist/AccountTreeController.mjs.map +1 -1
- package/dist/group.cjs.map +1 -1
- package/dist/group.d.cts +19 -8
- package/dist/group.d.cts.map +1 -1
- package/dist/group.d.mts +19 -8
- package/dist/group.d.mts.map +1 -1
- package/dist/group.mjs.map +1 -1
- package/dist/rules/entropy.cjs +2 -0
- package/dist/rules/entropy.cjs.map +1 -1
- package/dist/rules/entropy.d.cts.map +1 -1
- package/dist/rules/entropy.d.mts.map +1 -1
- package/dist/rules/entropy.mjs +2 -0
- package/dist/rules/entropy.mjs.map +1 -1
- package/dist/rules/keyring.cjs +4 -1
- package/dist/rules/keyring.cjs.map +1 -1
- package/dist/rules/keyring.d.cts.map +1 -1
- package/dist/rules/keyring.d.mts.map +1 -1
- package/dist/rules/keyring.mjs +4 -1
- package/dist/rules/keyring.mjs.map +1 -1
- package/dist/rules/snap.cjs +4 -1
- package/dist/rules/snap.cjs.map +1 -1
- package/dist/rules/snap.d.cts.map +1 -1
- package/dist/rules/snap.d.mts.map +1 -1
- package/dist/rules/snap.mjs +4 -1
- package/dist/rules/snap.mjs.map +1 -1
- package/dist/type-utils.cjs +3 -0
- package/dist/type-utils.cjs.map +1 -0
- package/dist/type-utils.d.cts +24 -0
- package/dist/type-utils.d.cts.map +1 -0
- package/dist/type-utils.d.mts +24 -0
- package/dist/type-utils.d.mts.map +1 -0
- package/dist/type-utils.mjs +2 -0
- package/dist/type-utils.mjs.map +1 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +14 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +14 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/wallet.cjs.map +1 -1
- package/dist/wallet.d.cts +16 -9
- package/dist/wallet.d.cts.map +1 -1
- package/dist/wallet.d.mts +16 -9
- package/dist/wallet.d.mts.map +1 -1
- package/dist/wallet.mjs.map +1 -1
- package/package.json +1 -1
package/dist/wallet.d.cts
CHANGED
|
@@ -6,7 +6,19 @@ import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
|
6
6
|
import type { SnapId } from "@metamask/snaps-sdk";
|
|
7
7
|
import type { AccountGroupMultichainAccountObject, AccountGroupObject, AccountGroupSingleAccountObject } from "./group.cjs";
|
|
8
8
|
import { AccountTreeGroup } from "./group.cjs";
|
|
9
|
+
import type { UpdatableField, ExtractRequiredFieldValues } from "./type-utils.cjs";
|
|
9
10
|
import { type AccountTreeControllerMessenger } from "./types.cjs";
|
|
11
|
+
/**
|
|
12
|
+
* Persisted metadata for account wallets (stored in controller state for persistence/sync).
|
|
13
|
+
*/
|
|
14
|
+
export type AccountWalletPersistedMetadata = {
|
|
15
|
+
/** Custom name set by user, overrides default naming logic */
|
|
16
|
+
name?: UpdatableField<string>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Tree metadata for account wallets (required plain values extracted from persisted metadata).
|
|
20
|
+
*/
|
|
21
|
+
export type AccountWalletTreeMetadata = ExtractRequiredFieldValues<AccountWalletPersistedMetadata>;
|
|
10
22
|
/**
|
|
11
23
|
* Type constraint for a {@link AccountGroupObject}. If one of its union-members
|
|
12
24
|
* does not match this contraint, {@link AccountGroupObject} will resolve
|
|
@@ -18,9 +30,7 @@ type IsAccountWalletObject<Type extends {
|
|
|
18
30
|
groups: {
|
|
19
31
|
[groupId: AccountGroupId]: AccountGroupObject;
|
|
20
32
|
};
|
|
21
|
-
metadata:
|
|
22
|
-
name: string;
|
|
23
|
-
};
|
|
33
|
+
metadata: AccountWalletTreeMetadata;
|
|
24
34
|
}> = Type;
|
|
25
35
|
/**
|
|
26
36
|
* Account wallet object for the "entropy" wallet category.
|
|
@@ -31,8 +41,7 @@ export type AccountWalletEntropyObject = {
|
|
|
31
41
|
groups: {
|
|
32
42
|
[groupId: AccountGroupId]: AccountGroupMultichainAccountObject;
|
|
33
43
|
};
|
|
34
|
-
metadata: {
|
|
35
|
-
name: string;
|
|
44
|
+
metadata: AccountWalletTreeMetadata & {
|
|
36
45
|
entropy: {
|
|
37
46
|
id: EntropySourceId;
|
|
38
47
|
index: number;
|
|
@@ -48,8 +57,7 @@ export type AccountWalletSnapObject = {
|
|
|
48
57
|
groups: {
|
|
49
58
|
[groupId: AccountGroupId]: AccountGroupSingleAccountObject;
|
|
50
59
|
};
|
|
51
|
-
metadata: {
|
|
52
|
-
name: string;
|
|
60
|
+
metadata: AccountWalletTreeMetadata & {
|
|
53
61
|
snap: {
|
|
54
62
|
id: SnapId;
|
|
55
63
|
};
|
|
@@ -64,8 +72,7 @@ export type AccountWalletKeyringObject = {
|
|
|
64
72
|
groups: {
|
|
65
73
|
[groupId: AccountGroupId]: AccountGroupSingleAccountObject;
|
|
66
74
|
};
|
|
67
|
-
metadata: {
|
|
68
|
-
name: string;
|
|
75
|
+
metadata: AccountWalletTreeMetadata & {
|
|
69
76
|
keyring: {
|
|
70
77
|
type: KeyringTypes;
|
|
71
78
|
};
|
package/dist/wallet.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EAC1B,8BAA8B;AAC/B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,qCAAqC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAElD,OAAO,KAAK,EACV,mCAAmC,EACnC,kBAAkB,EAClB,+BAA+B,EAChC,oBAAgB;AACjB,OAAO,EAAE,gBAAgB,EAAE,oBAAgB;AAC3C,OAAO,EAAE,KAAK,8BAA8B,EAAE,oBAAgB;AAE9D;;;;GAIG;AACH,KAAK,qBAAqB,CACxB,IAAI,SAAS;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE;QACN,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAC;KAC/C,CAAC;IACF,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet.d.mts
CHANGED
|
@@ -6,7 +6,19 @@ import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
|
6
6
|
import type { SnapId } from "@metamask/snaps-sdk";
|
|
7
7
|
import type { AccountGroupMultichainAccountObject, AccountGroupObject, AccountGroupSingleAccountObject } from "./group.mjs";
|
|
8
8
|
import { AccountTreeGroup } from "./group.mjs";
|
|
9
|
+
import type { UpdatableField, ExtractRequiredFieldValues } from "./type-utils.mjs";
|
|
9
10
|
import { type AccountTreeControllerMessenger } from "./types.mjs";
|
|
11
|
+
/**
|
|
12
|
+
* Persisted metadata for account wallets (stored in controller state for persistence/sync).
|
|
13
|
+
*/
|
|
14
|
+
export type AccountWalletPersistedMetadata = {
|
|
15
|
+
/** Custom name set by user, overrides default naming logic */
|
|
16
|
+
name?: UpdatableField<string>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Tree metadata for account wallets (required plain values extracted from persisted metadata).
|
|
20
|
+
*/
|
|
21
|
+
export type AccountWalletTreeMetadata = ExtractRequiredFieldValues<AccountWalletPersistedMetadata>;
|
|
10
22
|
/**
|
|
11
23
|
* Type constraint for a {@link AccountGroupObject}. If one of its union-members
|
|
12
24
|
* does not match this contraint, {@link AccountGroupObject} will resolve
|
|
@@ -18,9 +30,7 @@ type IsAccountWalletObject<Type extends {
|
|
|
18
30
|
groups: {
|
|
19
31
|
[groupId: AccountGroupId]: AccountGroupObject;
|
|
20
32
|
};
|
|
21
|
-
metadata:
|
|
22
|
-
name: string;
|
|
23
|
-
};
|
|
33
|
+
metadata: AccountWalletTreeMetadata;
|
|
24
34
|
}> = Type;
|
|
25
35
|
/**
|
|
26
36
|
* Account wallet object for the "entropy" wallet category.
|
|
@@ -31,8 +41,7 @@ export type AccountWalletEntropyObject = {
|
|
|
31
41
|
groups: {
|
|
32
42
|
[groupId: AccountGroupId]: AccountGroupMultichainAccountObject;
|
|
33
43
|
};
|
|
34
|
-
metadata: {
|
|
35
|
-
name: string;
|
|
44
|
+
metadata: AccountWalletTreeMetadata & {
|
|
36
45
|
entropy: {
|
|
37
46
|
id: EntropySourceId;
|
|
38
47
|
index: number;
|
|
@@ -48,8 +57,7 @@ export type AccountWalletSnapObject = {
|
|
|
48
57
|
groups: {
|
|
49
58
|
[groupId: AccountGroupId]: AccountGroupSingleAccountObject;
|
|
50
59
|
};
|
|
51
|
-
metadata: {
|
|
52
|
-
name: string;
|
|
60
|
+
metadata: AccountWalletTreeMetadata & {
|
|
53
61
|
snap: {
|
|
54
62
|
id: SnapId;
|
|
55
63
|
};
|
|
@@ -64,8 +72,7 @@ export type AccountWalletKeyringObject = {
|
|
|
64
72
|
groups: {
|
|
65
73
|
[groupId: AccountGroupId]: AccountGroupSingleAccountObject;
|
|
66
74
|
};
|
|
67
|
-
metadata: {
|
|
68
|
-
name: string;
|
|
75
|
+
metadata: AccountWalletTreeMetadata & {
|
|
69
76
|
keyring: {
|
|
70
77
|
type: KeyringTypes;
|
|
71
78
|
};
|
package/dist/wallet.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EAC1B,8BAA8B;AAC/B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA8B;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,qCAAqC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAElD,OAAO,KAAK,EACV,mCAAmC,EACnC,kBAAkB,EAClB,+BAA+B,EAChC,oBAAgB;AACjB,OAAO,EAAE,gBAAgB,EAAE,oBAAgB;AAC3C,OAAO,EAAE,KAAK,8BAA8B,EAAE,oBAAgB;AAE9D;;;;GAIG;AACH,KAAK,qBAAqB,CACxB,IAAI,SAAS;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE;QACN,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAC;KAC/C,CAAC;IACF,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.mjs","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgBA,OAAO,EAAE,gBAAgB,EAAE,oBAAgB;
|
|
1
|
+
{"version":3,"file":"wallet.mjs","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgBA,OAAO,EAAE,gBAAgB,EAAE,oBAAgB;AA2G3C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAO5B,YAAY,EACV,SAAS,EACT,MAAM,GAIP;QAZQ,4CAA6B;QAapC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,uBAAA,IAAI,6BAAW,MAAM,MAAA,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAA,IAAI,iCAAQ,CAAC,MAAM,CAAC,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,OAAyB,EACzB,IAAI,gBAAgB,CAAC;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI;gBACZ,KAAK;aACN,CAAC,CACH,CAAC;SACH;IACH,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,uBAAA,IAAI,iCAAQ,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,iCAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,iCAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,OAAuB;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAuB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import type {\n AccountWalletType,\n AccountWalletId,\n MultichainAccountWalletId,\n} from '@metamask/account-api';\nimport { type AccountGroupId, type AccountWallet } from '@metamask/account-api';\nimport type { EntropySourceId } from '@metamask/keyring-api';\nimport type { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { SnapId } from '@metamask/snaps-sdk';\n\nimport type {\n AccountGroupMultichainAccountObject,\n AccountGroupObject,\n AccountGroupSingleAccountObject,\n} from './group';\nimport { AccountTreeGroup } from './group';\nimport type {\n UpdatableField,\n ExtractRequiredFieldValues,\n} from './type-utils.js';\nimport { type AccountTreeControllerMessenger } from './types';\n\n/**\n * Persisted metadata for account wallets (stored in controller state for persistence/sync).\n */\nexport type AccountWalletPersistedMetadata = {\n /** Custom name set by user, overrides default naming logic */\n name?: UpdatableField<string>;\n};\n\n/**\n * Tree metadata for account wallets (required plain values extracted from persisted metadata).\n */\nexport type AccountWalletTreeMetadata =\n ExtractRequiredFieldValues<AccountWalletPersistedMetadata>;\n\n/**\n * Type constraint for a {@link AccountGroupObject}. If one of its union-members\n * does not match this contraint, {@link AccountGroupObject} will resolve\n * to `never`.\n */\ntype IsAccountWalletObject<\n Type extends {\n type: AccountWalletType;\n id: AccountWalletId;\n groups: {\n [groupId: AccountGroupId]: AccountGroupObject;\n };\n metadata: AccountWalletTreeMetadata;\n },\n> = Type;\n\n/**\n * Account wallet object for the \"entropy\" wallet category.\n */\nexport type AccountWalletEntropyObject = {\n type: AccountWalletType.Entropy;\n id: MultichainAccountWalletId;\n groups: {\n // NOTE: Using `MultichainAccountGroupId` instead of `AccountGroupId` would introduce\n // some type problems when using a group ID as an `AccountGroupId` directly. This\n // would require some up-cast to a `MultichainAccountGroupId` which could be considered\n // unsafe... So we keep it as a `AccountGroupId` for now.\n [groupId: AccountGroupId]: AccountGroupMultichainAccountObject;\n };\n metadata: AccountWalletTreeMetadata & {\n entropy: {\n id: EntropySourceId;\n index: number;\n };\n };\n};\n\n/**\n * Account wallet object for the \"snap\" wallet category.\n */\nexport type AccountWalletSnapObject = {\n type: AccountWalletType.Snap;\n id: AccountWalletId;\n groups: {\n [groupId: AccountGroupId]: AccountGroupSingleAccountObject;\n };\n metadata: AccountWalletTreeMetadata & {\n snap: {\n id: SnapId;\n };\n };\n};\n\n/**\n * Account wallet object for the \"keyring\" wallet category.\n */\nexport type AccountWalletKeyringObject = {\n type: AccountWalletType.Keyring;\n id: AccountWalletId;\n groups: {\n [groupId: AccountGroupId]: AccountGroupSingleAccountObject;\n };\n metadata: AccountWalletTreeMetadata & {\n keyring: {\n type: KeyringTypes;\n };\n };\n};\n\n/**\n * Account wallet metadata for the \"keyring\" wallet category.\n */\nexport type AccountWalletObject = IsAccountWalletObject<\n | AccountWalletEntropyObject\n | AccountWalletSnapObject\n | AccountWalletKeyringObject\n>;\n\nexport type AccountWalletObjectOf<WalletType extends AccountWalletType> =\n Extract<\n | { type: AccountWalletType.Entropy; object: AccountWalletEntropyObject }\n | { type: AccountWalletType.Keyring; object: AccountWalletKeyringObject }\n | { type: AccountWalletType.Snap; object: AccountWalletSnapObject },\n { type: WalletType }\n >['object'];\n\n/**\n * Account wallet coming from the {@link AccountTreeController}.\n */\nexport class AccountTreeWallet implements AccountWallet<InternalAccount> {\n readonly #wallet: AccountWalletObject;\n\n protected messenger: AccountTreeControllerMessenger;\n\n protected groups: Map<AccountGroupId, AccountTreeGroup>;\n\n constructor({\n messenger,\n wallet,\n }: {\n messenger: AccountTreeControllerMessenger;\n wallet: AccountWalletObject;\n }) {\n this.messenger = messenger;\n this.#wallet = wallet;\n this.groups = new Map();\n\n for (const [groupId, group] of Object.entries(this.#wallet.groups)) {\n this.groups.set(\n groupId as AccountGroupId,\n new AccountTreeGroup({\n messenger: this.messenger,\n wallet: this,\n group,\n }),\n );\n }\n }\n\n get id(): AccountWalletId {\n return this.#wallet.id;\n }\n\n get type(): AccountWalletType {\n return this.#wallet.type;\n }\n\n get name(): string {\n return this.#wallet.metadata.name;\n }\n\n /**\n * Gets account tree group for a given ID.\n *\n * @param groupId - Group ID.\n * @returns Account tree group, or undefined if not found.\n */\n getAccountGroup(groupId: AccountGroupId): AccountTreeGroup | undefined {\n return this.groups.get(groupId);\n }\n\n /**\n * Gets account tree group for a given ID.\n *\n * @param groupId - Group ID.\n * @throws If the account group is not found.\n * @returns Account tree group.\n */\n getAccountGroupOrThrow(groupId: AccountGroupId): AccountTreeGroup {\n const group = this.getAccountGroup(groupId);\n if (!group) {\n throw new Error('Unable to get account group');\n }\n\n return group;\n }\n\n /**\n * Gets all account tree groups.\n *\n * @returns Account tree groups.\n */\n getAccountGroups(): AccountTreeGroup[] {\n return Array.from(this.groups.values());\n }\n}\n"]}
|
package/package.json
CHANGED