@metamask-previews/account-tree-controller 0.6.0-preview-9b5151c → 0.6.0-preview-b8fffa99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -12
- package/dist/AccountTreeController.cjs +25 -86
- package/dist/AccountTreeController.cjs.map +1 -1
- package/dist/AccountTreeController.d.cts +3 -5
- package/dist/AccountTreeController.d.cts.map +1 -1
- package/dist/AccountTreeController.d.mts +3 -5
- package/dist/AccountTreeController.d.mts.map +1 -1
- package/dist/AccountTreeController.mjs +26 -87
- package/dist/AccountTreeController.mjs.map +1 -1
- package/dist/AccountTreeGroup.cjs +35 -51
- package/dist/AccountTreeGroup.cjs.map +1 -1
- package/dist/AccountTreeGroup.d.cts +22 -15
- package/dist/AccountTreeGroup.d.cts.map +1 -1
- package/dist/AccountTreeGroup.d.mts +22 -15
- package/dist/AccountTreeGroup.d.mts.map +1 -1
- package/dist/AccountTreeGroup.mjs +33 -49
- package/dist/AccountTreeGroup.mjs.map +1 -1
- package/dist/AccountTreeWallet.cjs +27 -61
- package/dist/AccountTreeWallet.cjs.map +1 -1
- package/dist/AccountTreeWallet.d.cts +17 -24
- package/dist/AccountTreeWallet.d.cts.map +1 -1
- package/dist/AccountTreeWallet.d.mts +17 -24
- package/dist/AccountTreeWallet.d.mts.map +1 -1
- package/dist/AccountTreeWallet.mjs +26 -60
- package/dist/AccountTreeWallet.mjs.map +1 -1
- package/dist/rules/EntropySourceWalletRule.cjs +100 -0
- package/dist/rules/EntropySourceWalletRule.cjs.map +1 -0
- package/dist/rules/EntropySourceWalletRule.d.cts +19 -0
- package/dist/rules/EntropySourceWalletRule.d.cts.map +1 -0
- package/dist/rules/EntropySourceWalletRule.d.mts +19 -0
- package/dist/rules/EntropySourceWalletRule.d.mts.map +1 -0
- package/dist/rules/EntropySourceWalletRule.mjs +95 -0
- package/dist/rules/EntropySourceWalletRule.mjs.map +1 -0
- package/dist/rules/KeyringWalletRule.cjs +99 -0
- package/dist/rules/KeyringWalletRule.cjs.map +1 -0
- package/dist/rules/KeyringWalletRule.d.cts +18 -0
- package/dist/rules/KeyringWalletRule.d.cts.map +1 -0
- package/dist/rules/KeyringWalletRule.d.mts +18 -0
- package/dist/rules/KeyringWalletRule.d.mts.map +1 -0
- package/dist/rules/KeyringWalletRule.mjs +94 -0
- package/dist/rules/KeyringWalletRule.mjs.map +1 -0
- package/dist/rules/SnapWalletRule.cjs +70 -0
- package/dist/rules/SnapWalletRule.cjs.map +1 -0
- package/dist/rules/SnapWalletRule.d.cts +10 -0
- package/dist/rules/SnapWalletRule.d.cts.map +1 -0
- package/dist/rules/SnapWalletRule.d.mts +10 -0
- package/dist/rules/SnapWalletRule.d.mts.map +1 -0
- package/dist/rules/SnapWalletRule.mjs +66 -0
- package/dist/rules/SnapWalletRule.mjs.map +1 -0
- package/dist/rules/WalletRule.cjs +13 -0
- package/dist/rules/WalletRule.cjs.map +1 -0
- package/dist/rules/WalletRule.d.cts +37 -0
- package/dist/rules/WalletRule.d.cts.map +1 -0
- package/dist/rules/WalletRule.d.mts +37 -0
- package/dist/rules/WalletRule.d.mts.map +1 -0
- package/dist/rules/WalletRule.mjs +9 -0
- package/dist/rules/WalletRule.mjs.map +1 -0
- package/dist/rules/index.cjs +4 -4
- package/dist/rules/index.cjs.map +1 -1
- package/dist/rules/index.d.cts +4 -4
- package/dist/rules/index.d.cts.map +1 -1
- package/dist/rules/index.d.mts +4 -4
- package/dist/rules/index.d.mts.map +1 -1
- package/dist/rules/index.mjs +4 -4
- package/dist/rules/index.mjs.map +1 -1
- package/dist/rules/utils.cjs +15 -0
- package/dist/rules/utils.cjs.map +1 -0
- package/dist/rules/utils.d.cts +11 -0
- package/dist/rules/utils.d.cts.map +1 -0
- package/dist/rules/utils.d.mts +11 -0
- package/dist/rules/utils.d.mts.map +1 -0
- package/dist/rules/utils.mjs +11 -0
- package/dist/rules/utils.mjs.map +1 -0
- package/package.json +3 -3
- package/dist/rules/entropy.cjs +0 -83
- package/dist/rules/entropy.cjs.map +0 -1
- package/dist/rules/entropy.d.cts +0 -15
- package/dist/rules/entropy.d.cts.map +0 -1
- package/dist/rules/entropy.d.mts +0 -15
- package/dist/rules/entropy.d.mts.map +0 -1
- package/dist/rules/entropy.mjs +0 -79
- package/dist/rules/entropy.mjs.map +0 -1
- package/dist/rules/keyring.cjs +0 -80
- package/dist/rules/keyring.cjs.map +0 -1
- package/dist/rules/keyring.d.cts +0 -20
- package/dist/rules/keyring.d.cts.map +0 -1
- package/dist/rules/keyring.d.mts +0 -20
- package/dist/rules/keyring.d.mts.map +0 -1
- package/dist/rules/keyring.mjs +0 -75
- package/dist/rules/keyring.mjs.map +0 -1
- package/dist/rules/rule.cjs +0 -10
- package/dist/rules/rule.cjs.map +0 -1
- package/dist/rules/rule.d.cts +0 -42
- package/dist/rules/rule.d.cts.map +0 -1
- package/dist/rules/rule.d.mts +0 -42
- package/dist/rules/rule.d.mts.map +0 -1
- package/dist/rules/rule.mjs +0 -6
- package/dist/rules/rule.mjs.map +0 -1
- package/dist/rules/snap.cjs +0 -53
- package/dist/rules/snap.cjs.map +0 -1
- package/dist/rules/snap.d.cts +0 -23
- package/dist/rules/snap.d.cts.map +0 -1
- package/dist/rules/snap.d.mts +0 -23
- package/dist/rules/snap.d.mts.map +0 -1
- package/dist/rules/snap.mjs +0 -49
- package/dist/rules/snap.mjs.map +0 -1
- package/dist/types.cjs +0 -3
- package/dist/types.cjs.map +0 -1
- package/dist/types.d.cts +0 -15
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.mts +0 -15
- package/dist/types.d.mts.map +0 -1
- package/dist/types.mjs +0 -2
- package/dist/types.mjs.map +0 -1
package/dist/rules/entropy.cjs
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _EntropyRule_instances, _EntropyRule_entropySourcesToIndex, _EntropyRule_syncEntropySources;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.EntropyRule = void 0;
|
|
16
|
-
const account_api_1 = require("@metamask/account-api");
|
|
17
|
-
const keyring_api_1 = require("@metamask/keyring-api");
|
|
18
|
-
const rule_1 = require("./rule.cjs");
|
|
19
|
-
/**
|
|
20
|
-
* Select keyrings from keyring controller state.
|
|
21
|
-
*
|
|
22
|
-
* @param state - The keyring controller state.
|
|
23
|
-
* @returns The keyrings.
|
|
24
|
-
*/
|
|
25
|
-
function selectKeyringControllerKeyrings(state) {
|
|
26
|
-
return state.keyrings;
|
|
27
|
-
}
|
|
28
|
-
class EntropyRule extends rule_1.Rule {
|
|
29
|
-
constructor(messenger) {
|
|
30
|
-
super(messenger);
|
|
31
|
-
_EntropyRule_instances.add(this);
|
|
32
|
-
this.category = account_api_1.AccountWalletCategory.Entropy;
|
|
33
|
-
_EntropyRule_entropySourcesToIndex.set(this, void 0);
|
|
34
|
-
__classPrivateFieldSet(this, _EntropyRule_entropySourcesToIndex, new Map(), "f");
|
|
35
|
-
__classPrivateFieldGet(this, _EntropyRule_instances, "m", _EntropyRule_syncEntropySources).call(this);
|
|
36
|
-
}
|
|
37
|
-
match(account) {
|
|
38
|
-
if (!(0, account_api_1.isBip44Account)(account)) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
const entropySource = account.options.entropy.id;
|
|
42
|
-
const entropySourceIndex = __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").get(entropySource);
|
|
43
|
-
if (entropySourceIndex === undefined) {
|
|
44
|
-
console.warn(`! Found an unknown entropy ID: "${entropySource}", account "${account.id}" won't be grouped by entropy.`);
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
47
|
-
const walletId = (0, account_api_1.toMultichainAccountWalletId)(account.options.entropy.id);
|
|
48
|
-
const groupId = (0, account_api_1.toMultichainAccountId)(walletId, account.options.entropy.groupIndex);
|
|
49
|
-
return {
|
|
50
|
-
walletId,
|
|
51
|
-
groupId,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
getDefaultAccountWalletName(wallet) {
|
|
55
|
-
// Precondition: This method is invoked only if there was a match for
|
|
56
|
-
// a BIP-44 account, so we can type-cast here.
|
|
57
|
-
const account = wallet.getAnyAccount();
|
|
58
|
-
const entropySource = account.options.entropy.id;
|
|
59
|
-
const entropySourceIndex = __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").get(entropySource); // This has to be defined, we checked it during the `match` above.
|
|
60
|
-
return `Wallet ${entropySourceIndex + 1}`; // Use human indexing (starts at 1).
|
|
61
|
-
}
|
|
62
|
-
getDefaultAccountGroupName(group) {
|
|
63
|
-
// EVM account name has a highest priority.
|
|
64
|
-
const accounts = group.getAccounts();
|
|
65
|
-
const evmAccount = accounts.find((account) => (0, keyring_api_1.isEvmAccountType)(account.type));
|
|
66
|
-
if (evmAccount) {
|
|
67
|
-
return evmAccount.metadata.name;
|
|
68
|
-
}
|
|
69
|
-
// We should always have an account, since this function will be called only
|
|
70
|
-
// if an account got a match.
|
|
71
|
-
return accounts[0].metadata.name;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.EntropyRule = EntropyRule;
|
|
75
|
-
_EntropyRule_entropySourcesToIndex = new WeakMap(), _EntropyRule_instances = new WeakSet(), _EntropyRule_syncEntropySources = function _EntropyRule_syncEntropySources() {
|
|
76
|
-
__classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").clear();
|
|
77
|
-
const state = this.messenger.call('KeyringController:getState');
|
|
78
|
-
state.keyrings.forEach((keyring, index) => __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").set(keyring.metadata.id, index));
|
|
79
|
-
this.messenger.subscribe('KeyringController:stateChange', (keyrings) => {
|
|
80
|
-
keyrings.forEach((keyring, index) => __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").set(keyring.metadata.id, index));
|
|
81
|
-
}, selectKeyringControllerKeyrings);
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=entropy.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entropy.cjs","sourceRoot":"","sources":["../../src/rules/entropy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport {\n AccountWalletCategory,\n isBip44Account,\n toMultichainAccountId,\n toMultichainAccountWalletId,\n} from '@metamask/account-api';\nimport { isEvmAccountType, type EntropySourceId } from '@metamask/keyring-api';\nimport type { KeyringControllerState } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\n\nimport { Rule } from './rule';\nimport type { AccountTreeGroup, AccountTreeWallet } from '..';\nimport type { AccountTreeControllerMessenger } from '../AccountTreeController';\nimport type { AccountContext } from '../types';\n\n/**\n * Select keyrings from keyring controller state.\n *\n * @param state - The keyring controller state.\n * @returns The keyrings.\n */\nfunction selectKeyringControllerKeyrings(state: KeyringControllerState) {\n return state.keyrings;\n}\n\nexport class EntropyRule extends Rule {\n readonly category = AccountWalletCategory.Entropy;\n\n readonly #entropySourcesToIndex: Map<EntropySourceId, number>;\n\n constructor(messenger: AccountTreeControllerMessenger) {\n super(messenger);\n\n this.#entropySourcesToIndex = new Map();\n this.#syncEntropySources();\n }\n\n #syncEntropySources() {\n this.#entropySourcesToIndex.clear();\n\n const state = this.messenger.call('KeyringController:getState');\n state.keyrings.forEach((keyring, index) =>\n this.#entropySourcesToIndex.set(keyring.metadata.id, index),\n );\n\n this.messenger.subscribe(\n 'KeyringController:stateChange',\n (keyrings) => {\n keyrings.forEach((keyring, index) =>\n this.#entropySourcesToIndex.set(keyring.metadata.id, index),\n );\n },\n selectKeyringControllerKeyrings,\n );\n }\n\n match(account: InternalAccount): AccountContext | undefined {\n if (!isBip44Account(account)) {\n return undefined;\n }\n\n const entropySource = account.options.entropy.id;\n const entropySourceIndex = this.#entropySourcesToIndex.get(entropySource);\n if (entropySourceIndex === undefined) {\n console.warn(\n `! Found an unknown entropy ID: \"${entropySource}\", account \"${account.id}\" won't be grouped by entropy.`,\n );\n return undefined;\n }\n\n const walletId = toMultichainAccountWalletId(account.options.entropy.id);\n const groupId = toMultichainAccountId(\n walletId,\n account.options.entropy.groupIndex,\n );\n\n return {\n walletId,\n groupId,\n };\n }\n\n getDefaultAccountWalletName(wallet: AccountTreeWallet): string {\n // Precondition: This method is invoked only if there was a match for\n // a BIP-44 account, so we can type-cast here.\n const account = wallet.getAnyAccount() as Bip44Account<InternalAccount>;\n\n const entropySource = account.options.entropy.id;\n const entropySourceIndex = this.#entropySourcesToIndex.get(\n entropySource,\n ) as number; // This has to be defined, we checked it during the `match` above.\n\n return `Wallet ${entropySourceIndex + 1}`; // Use human indexing (starts at 1).\n }\n\n getDefaultAccountGroupName(group: AccountTreeGroup): string {\n // EVM account name has a highest priority.\n const accounts = group.getAccounts();\n const evmAccount = accounts.find((account) =>\n isEvmAccountType(account.type),\n );\n if (evmAccount) {\n return evmAccount.metadata.name;\n }\n\n // We should always have an account, since this function will be called only\n // if an account got a match.\n return accounts[0].metadata.name;\n }\n}\n"]}
|
package/dist/rules/entropy.d.cts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AccountWalletCategory } from "@metamask/account-api";
|
|
2
|
-
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
3
|
-
import { Rule } from "./rule.cjs";
|
|
4
|
-
import type { AccountTreeGroup, AccountTreeWallet } from "../index.cjs";
|
|
5
|
-
import type { AccountTreeControllerMessenger } from "../AccountTreeController.cjs";
|
|
6
|
-
import type { AccountContext } from "../types.cjs";
|
|
7
|
-
export declare class EntropyRule extends Rule {
|
|
8
|
-
#private;
|
|
9
|
-
readonly category = AccountWalletCategory.Entropy;
|
|
10
|
-
constructor(messenger: AccountTreeControllerMessenger);
|
|
11
|
-
match(account: InternalAccount): AccountContext | undefined;
|
|
12
|
-
getDefaultAccountWalletName(wallet: AccountTreeWallet): string;
|
|
13
|
-
getDefaultAccountGroupName(group: AccountTreeGroup): string;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=entropy.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entropy.d.cts","sourceRoot":"","sources":["../../src/rules/entropy.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAItB,8BAA8B;AAG/B,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AAEtE,OAAO,EAAE,IAAI,EAAE,mBAAe;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAW;AAC9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAiB;AAY/C,qBAAa,WAAY,SAAQ,IAAI;;IACnC,QAAQ,CAAC,QAAQ,iCAAiC;gBAItC,SAAS,EAAE,8BAA8B;IA0BrD,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IA0B3D,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAa9D,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CAc5D"}
|
package/dist/rules/entropy.d.mts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AccountWalletCategory } from "@metamask/account-api";
|
|
2
|
-
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
3
|
-
import { Rule } from "./rule.mjs";
|
|
4
|
-
import type { AccountTreeGroup, AccountTreeWallet } from "../index.mjs";
|
|
5
|
-
import type { AccountTreeControllerMessenger } from "../AccountTreeController.mjs";
|
|
6
|
-
import type { AccountContext } from "../types.mjs";
|
|
7
|
-
export declare class EntropyRule extends Rule {
|
|
8
|
-
#private;
|
|
9
|
-
readonly category = AccountWalletCategory.Entropy;
|
|
10
|
-
constructor(messenger: AccountTreeControllerMessenger);
|
|
11
|
-
match(account: InternalAccount): AccountContext | undefined;
|
|
12
|
-
getDefaultAccountWalletName(wallet: AccountTreeWallet): string;
|
|
13
|
-
getDefaultAccountGroupName(group: AccountTreeGroup): string;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=entropy.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entropy.d.mts","sourceRoot":"","sources":["../../src/rules/entropy.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAItB,8BAA8B;AAG/B,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AAEtE,OAAO,EAAE,IAAI,EAAE,mBAAe;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAW;AAC9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAiB;AAY/C,qBAAa,WAAY,SAAQ,IAAI;;IACnC,QAAQ,CAAC,QAAQ,iCAAiC;gBAItC,SAAS,EAAE,8BAA8B;IA0BrD,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IA0B3D,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAa9D,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CAc5D"}
|
package/dist/rules/entropy.mjs
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _EntropyRule_instances, _EntropyRule_entropySourcesToIndex, _EntropyRule_syncEntropySources;
|
|
13
|
-
import { AccountWalletCategory, isBip44Account, toMultichainAccountId, toMultichainAccountWalletId } from "@metamask/account-api";
|
|
14
|
-
import { isEvmAccountType } from "@metamask/keyring-api";
|
|
15
|
-
import { Rule } from "./rule.mjs";
|
|
16
|
-
/**
|
|
17
|
-
* Select keyrings from keyring controller state.
|
|
18
|
-
*
|
|
19
|
-
* @param state - The keyring controller state.
|
|
20
|
-
* @returns The keyrings.
|
|
21
|
-
*/
|
|
22
|
-
function selectKeyringControllerKeyrings(state) {
|
|
23
|
-
return state.keyrings;
|
|
24
|
-
}
|
|
25
|
-
export class EntropyRule extends Rule {
|
|
26
|
-
constructor(messenger) {
|
|
27
|
-
super(messenger);
|
|
28
|
-
_EntropyRule_instances.add(this);
|
|
29
|
-
this.category = AccountWalletCategory.Entropy;
|
|
30
|
-
_EntropyRule_entropySourcesToIndex.set(this, void 0);
|
|
31
|
-
__classPrivateFieldSet(this, _EntropyRule_entropySourcesToIndex, new Map(), "f");
|
|
32
|
-
__classPrivateFieldGet(this, _EntropyRule_instances, "m", _EntropyRule_syncEntropySources).call(this);
|
|
33
|
-
}
|
|
34
|
-
match(account) {
|
|
35
|
-
if (!isBip44Account(account)) {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
const entropySource = account.options.entropy.id;
|
|
39
|
-
const entropySourceIndex = __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").get(entropySource);
|
|
40
|
-
if (entropySourceIndex === undefined) {
|
|
41
|
-
console.warn(`! Found an unknown entropy ID: "${entropySource}", account "${account.id}" won't be grouped by entropy.`);
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
const walletId = toMultichainAccountWalletId(account.options.entropy.id);
|
|
45
|
-
const groupId = toMultichainAccountId(walletId, account.options.entropy.groupIndex);
|
|
46
|
-
return {
|
|
47
|
-
walletId,
|
|
48
|
-
groupId,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
getDefaultAccountWalletName(wallet) {
|
|
52
|
-
// Precondition: This method is invoked only if there was a match for
|
|
53
|
-
// a BIP-44 account, so we can type-cast here.
|
|
54
|
-
const account = wallet.getAnyAccount();
|
|
55
|
-
const entropySource = account.options.entropy.id;
|
|
56
|
-
const entropySourceIndex = __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").get(entropySource); // This has to be defined, we checked it during the `match` above.
|
|
57
|
-
return `Wallet ${entropySourceIndex + 1}`; // Use human indexing (starts at 1).
|
|
58
|
-
}
|
|
59
|
-
getDefaultAccountGroupName(group) {
|
|
60
|
-
// EVM account name has a highest priority.
|
|
61
|
-
const accounts = group.getAccounts();
|
|
62
|
-
const evmAccount = accounts.find((account) => isEvmAccountType(account.type));
|
|
63
|
-
if (evmAccount) {
|
|
64
|
-
return evmAccount.metadata.name;
|
|
65
|
-
}
|
|
66
|
-
// We should always have an account, since this function will be called only
|
|
67
|
-
// if an account got a match.
|
|
68
|
-
return accounts[0].metadata.name;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
_EntropyRule_entropySourcesToIndex = new WeakMap(), _EntropyRule_instances = new WeakSet(), _EntropyRule_syncEntropySources = function _EntropyRule_syncEntropySources() {
|
|
72
|
-
__classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").clear();
|
|
73
|
-
const state = this.messenger.call('KeyringController:getState');
|
|
74
|
-
state.keyrings.forEach((keyring, index) => __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").set(keyring.metadata.id, index));
|
|
75
|
-
this.messenger.subscribe('KeyringController:stateChange', (keyrings) => {
|
|
76
|
-
keyrings.forEach((keyring, index) => __classPrivateFieldGet(this, _EntropyRule_entropySourcesToIndex, "f").set(keyring.metadata.id, index));
|
|
77
|
-
}, selectKeyringControllerKeyrings);
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=entropy.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entropy.mjs","sourceRoot":"","sources":["../../src/rules/entropy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport {\n AccountWalletCategory,\n isBip44Account,\n toMultichainAccountId,\n toMultichainAccountWalletId,\n} from '@metamask/account-api';\nimport { isEvmAccountType, type EntropySourceId } from '@metamask/keyring-api';\nimport type { KeyringControllerState } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\n\nimport { Rule } from './rule';\nimport type { AccountTreeGroup, AccountTreeWallet } from '..';\nimport type { AccountTreeControllerMessenger } from '../AccountTreeController';\nimport type { AccountContext } from '../types';\n\n/**\n * Select keyrings from keyring controller state.\n *\n * @param state - The keyring controller state.\n * @returns The keyrings.\n */\nfunction selectKeyringControllerKeyrings(state: KeyringControllerState) {\n return state.keyrings;\n}\n\nexport class EntropyRule extends Rule {\n readonly category = AccountWalletCategory.Entropy;\n\n readonly #entropySourcesToIndex: Map<EntropySourceId, number>;\n\n constructor(messenger: AccountTreeControllerMessenger) {\n super(messenger);\n\n this.#entropySourcesToIndex = new Map();\n this.#syncEntropySources();\n }\n\n #syncEntropySources() {\n this.#entropySourcesToIndex.clear();\n\n const state = this.messenger.call('KeyringController:getState');\n state.keyrings.forEach((keyring, index) =>\n this.#entropySourcesToIndex.set(keyring.metadata.id, index),\n );\n\n this.messenger.subscribe(\n 'KeyringController:stateChange',\n (keyrings) => {\n keyrings.forEach((keyring, index) =>\n this.#entropySourcesToIndex.set(keyring.metadata.id, index),\n );\n },\n selectKeyringControllerKeyrings,\n );\n }\n\n match(account: InternalAccount): AccountContext | undefined {\n if (!isBip44Account(account)) {\n return undefined;\n }\n\n const entropySource = account.options.entropy.id;\n const entropySourceIndex = this.#entropySourcesToIndex.get(entropySource);\n if (entropySourceIndex === undefined) {\n console.warn(\n `! Found an unknown entropy ID: \"${entropySource}\", account \"${account.id}\" won't be grouped by entropy.`,\n );\n return undefined;\n }\n\n const walletId = toMultichainAccountWalletId(account.options.entropy.id);\n const groupId = toMultichainAccountId(\n walletId,\n account.options.entropy.groupIndex,\n );\n\n return {\n walletId,\n groupId,\n };\n }\n\n getDefaultAccountWalletName(wallet: AccountTreeWallet): string {\n // Precondition: This method is invoked only if there was a match for\n // a BIP-44 account, so we can type-cast here.\n const account = wallet.getAnyAccount() as Bip44Account<InternalAccount>;\n\n const entropySource = account.options.entropy.id;\n const entropySourceIndex = this.#entropySourcesToIndex.get(\n entropySource,\n ) as number; // This has to be defined, we checked it during the `match` above.\n\n return `Wallet ${entropySourceIndex + 1}`; // Use human indexing (starts at 1).\n }\n\n getDefaultAccountGroupName(group: AccountTreeGroup): string {\n // EVM account name has a highest priority.\n const accounts = group.getAccounts();\n const evmAccount = accounts.find((account) =>\n isEvmAccountType(account.type),\n );\n if (evmAccount) {\n return evmAccount.metadata.name;\n }\n\n // We should always have an account, since this function will be called only\n // if an account got a match.\n return accounts[0].metadata.name;\n }\n}\n"]}
|
package/dist/rules/keyring.cjs
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KeyringRule = exports.getAccountWalletNameFromKeyringType = void 0;
|
|
4
|
-
const account_api_1 = require("@metamask/account-api");
|
|
5
|
-
const keyring_controller_1 = require("@metamask/keyring-controller");
|
|
6
|
-
const rule_1 = require("./rule.cjs");
|
|
7
|
-
/**
|
|
8
|
-
* Get wallet name from a keyring type.
|
|
9
|
-
*
|
|
10
|
-
* @param type - Keyring's type.
|
|
11
|
-
* @returns Wallet name.
|
|
12
|
-
*/
|
|
13
|
-
function getAccountWalletNameFromKeyringType(type) {
|
|
14
|
-
switch (type) {
|
|
15
|
-
case keyring_controller_1.KeyringTypes.simple: {
|
|
16
|
-
return 'Imported accounts';
|
|
17
|
-
}
|
|
18
|
-
case keyring_controller_1.KeyringTypes.trezor: {
|
|
19
|
-
return 'Trezor';
|
|
20
|
-
}
|
|
21
|
-
case keyring_controller_1.KeyringTypes.oneKey: {
|
|
22
|
-
return 'OneKey';
|
|
23
|
-
}
|
|
24
|
-
case keyring_controller_1.KeyringTypes.ledger: {
|
|
25
|
-
return 'Ledger';
|
|
26
|
-
}
|
|
27
|
-
case keyring_controller_1.KeyringTypes.lattice: {
|
|
28
|
-
return 'Lattice';
|
|
29
|
-
}
|
|
30
|
-
case keyring_controller_1.KeyringTypes.qr: {
|
|
31
|
-
return 'QR';
|
|
32
|
-
}
|
|
33
|
-
// Those keyrings should never really be used in such context since they
|
|
34
|
-
// should be used by other grouping rules.
|
|
35
|
-
case keyring_controller_1.KeyringTypes.hd: {
|
|
36
|
-
return 'HD Wallet';
|
|
37
|
-
}
|
|
38
|
-
case keyring_controller_1.KeyringTypes.snap: {
|
|
39
|
-
return 'Snap Wallet';
|
|
40
|
-
}
|
|
41
|
-
// ------------------------------------------------------------------------
|
|
42
|
-
default: {
|
|
43
|
-
return 'Unknown';
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.getAccountWalletNameFromKeyringType = getAccountWalletNameFromKeyringType;
|
|
48
|
-
class KeyringRule extends rule_1.Rule {
|
|
49
|
-
constructor() {
|
|
50
|
-
super(...arguments);
|
|
51
|
-
this.category = account_api_1.AccountWalletCategory.Keyring;
|
|
52
|
-
}
|
|
53
|
-
match(account) {
|
|
54
|
-
// We assume that `type` is really a `KeyringTypes`.
|
|
55
|
-
const type = account.metadata.keyring.type;
|
|
56
|
-
const walletId = (0, account_api_1.toAccountWalletId)(this.category, type);
|
|
57
|
-
const groupId = (0, account_api_1.toAccountGroupId)(walletId, account.address);
|
|
58
|
-
// This rule cannot fail.
|
|
59
|
-
return {
|
|
60
|
-
walletId,
|
|
61
|
-
groupId,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
getDefaultAccountWalletName(wallet) {
|
|
65
|
-
// Precondition: This method is invoked only if there was a match for
|
|
66
|
-
// this rule.
|
|
67
|
-
const account = wallet.getAnyAccount();
|
|
68
|
-
return getAccountWalletNameFromKeyringType(account.metadata.keyring.type);
|
|
69
|
-
}
|
|
70
|
-
getDefaultAccountGroupName(group) {
|
|
71
|
-
// Precondition: This method is invoked only if there was a match for
|
|
72
|
-
// this rule. Also, each of those account groups should contain
|
|
73
|
-
// only 1 account.
|
|
74
|
-
const account = group.getOnlyAccount();
|
|
75
|
-
// We only have 1 account for this kind of rule.
|
|
76
|
-
return account.metadata.name;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.KeyringRule = KeyringRule;
|
|
80
|
-
//# sourceMappingURL=keyring.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.cjs","sourceRoot":"","sources":["../../src/rules/keyring.ts"],"names":[],"mappings":";;;AAAA,uDAI+B;AAC/B,qEAA4D;AAI5D,qCAA8B;AAG9B;;;;;GAKG;AACH,SAAgB,mCAAmC,CAAC,IAAkB;IACpE,QAAQ,IAAI,EAAE;QACZ,KAAK,iCAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,mBAAmB,CAAC;SAC5B;QACD,KAAK,iCAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,iCAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,iCAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,iCAAY,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;SAClB;QACD,KAAK,iCAAY,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;SACb;QACD,wEAAwE;QACxE,0CAA0C;QAC1C,KAAK,iCAAY,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,WAAW,CAAC;SACpB;QACD,KAAK,iCAAY,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,aAAa,CAAC;SACtB;QACD,2EAA2E;QAC3E,OAAO,CAAC,CAAC;YACP,OAAO,SAAS,CAAC;SAClB;KACF;AACH,CAAC;AAjCD,kFAiCC;AAED,MAAa,WAAY,SAAQ,WAAI;IAArC;;QACW,aAAQ,GAAG,mCAAqB,CAAC,OAAO,CAAC;IAmCpD,CAAC;IAjCC,KAAK,CAAC,OAAwB;QAC5B,oDAAoD;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAoB,CAAC;QAE3D,MAAM,QAAQ,GAAG,IAAA,+BAAiB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAA,8BAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,yBAAyB;QACzB,OAAO;YACL,QAAQ;YACR,OAAO;SACR,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,MAAyB;QACnD,qEAAqE;QACrE,aAAa;QACb,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEvC,OAAO,mCAAmC,CACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAoB,CAC9C,CAAC;IACJ,CAAC;IAED,0BAA0B,CAAC,KAAuB;QAChD,qEAAqE;QACrE,+DAA+D;QAC/D,kBAAkB;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvC,gDAAgD;QAChD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF;AApCD,kCAoCC","sourcesContent":["import {\n AccountWalletCategory,\n toAccountGroupId,\n toAccountWalletId,\n} from '@metamask/account-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { AccountContext } from 'src/types';\n\nimport { Rule } from './rule';\nimport type { AccountTreeGroup, AccountTreeWallet } from '..';\n\n/**\n * Get wallet name from a keyring type.\n *\n * @param type - Keyring's type.\n * @returns Wallet name.\n */\nexport function getAccountWalletNameFromKeyringType(type: KeyringTypes) {\n switch (type) {\n case KeyringTypes.simple: {\n return 'Imported accounts';\n }\n case KeyringTypes.trezor: {\n return 'Trezor';\n }\n case KeyringTypes.oneKey: {\n return 'OneKey';\n }\n case KeyringTypes.ledger: {\n return 'Ledger';\n }\n case KeyringTypes.lattice: {\n return 'Lattice';\n }\n case KeyringTypes.qr: {\n return 'QR';\n }\n // Those keyrings should never really be used in such context since they\n // should be used by other grouping rules.\n case KeyringTypes.hd: {\n return 'HD Wallet';\n }\n case KeyringTypes.snap: {\n return 'Snap Wallet';\n }\n // ------------------------------------------------------------------------\n default: {\n return 'Unknown';\n }\n }\n}\n\nexport class KeyringRule extends Rule {\n readonly category = AccountWalletCategory.Keyring;\n\n match(account: InternalAccount): AccountContext | undefined {\n // We assume that `type` is really a `KeyringTypes`.\n const type = account.metadata.keyring.type as KeyringTypes;\n\n const walletId = toAccountWalletId(this.category, type);\n const groupId = toAccountGroupId(walletId, account.address);\n\n // This rule cannot fail.\n return {\n walletId,\n groupId,\n };\n }\n\n getDefaultAccountWalletName(wallet: AccountTreeWallet): string {\n // Precondition: This method is invoked only if there was a match for\n // this rule.\n const account = wallet.getAnyAccount();\n\n return getAccountWalletNameFromKeyringType(\n account.metadata.keyring.type as KeyringTypes,\n );\n }\n\n getDefaultAccountGroupName(group: AccountTreeGroup): string {\n // Precondition: This method is invoked only if there was a match for\n // this rule. Also, each of those account groups should contain\n // only 1 account.\n const account = group.getOnlyAccount();\n\n // We only have 1 account for this kind of rule.\n return account.metadata.name;\n }\n}\n"]}
|
package/dist/rules/keyring.d.cts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { AccountWalletCategory } from "@metamask/account-api";
|
|
2
|
-
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
3
|
-
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
4
|
-
import type { AccountContext } from "src/types";
|
|
5
|
-
import { Rule } from "./rule.cjs";
|
|
6
|
-
import type { AccountTreeGroup, AccountTreeWallet } from "../index.cjs";
|
|
7
|
-
/**
|
|
8
|
-
* Get wallet name from a keyring type.
|
|
9
|
-
*
|
|
10
|
-
* @param type - Keyring's type.
|
|
11
|
-
* @returns Wallet name.
|
|
12
|
-
*/
|
|
13
|
-
export declare function getAccountWalletNameFromKeyringType(type: KeyringTypes): "Imported accounts" | "Trezor" | "OneKey" | "Ledger" | "Lattice" | "QR" | "HD Wallet" | "Snap Wallet" | "Unknown";
|
|
14
|
-
export declare class KeyringRule extends Rule {
|
|
15
|
-
readonly category = AccountWalletCategory.Keyring;
|
|
16
|
-
match(account: InternalAccount): AccountContext | undefined;
|
|
17
|
-
getDefaultAccountWalletName(wallet: AccountTreeWallet): string;
|
|
18
|
-
getDefaultAccountGroupName(group: AccountTreeGroup): string;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=keyring.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.d.cts","sourceRoot":"","sources":["../../src/rules/keyring.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGtB,8BAA8B;AAC/B,OAAO,EAAE,YAAY,EAAE,qCAAqC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB;AAEhD,OAAO,EAAE,IAAI,EAAE,mBAAe;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAW;AAE9D;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,YAAY,qHAiCrE;AAED,qBAAa,WAAY,SAAQ,IAAI;IACnC,QAAQ,CAAC,QAAQ,iCAAiC;IAElD,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IAc3D,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAU9D,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CAS5D"}
|
package/dist/rules/keyring.d.mts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { AccountWalletCategory } from "@metamask/account-api";
|
|
2
|
-
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
3
|
-
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
4
|
-
import type { AccountContext } from "src/types";
|
|
5
|
-
import { Rule } from "./rule.mjs";
|
|
6
|
-
import type { AccountTreeGroup, AccountTreeWallet } from "../index.mjs";
|
|
7
|
-
/**
|
|
8
|
-
* Get wallet name from a keyring type.
|
|
9
|
-
*
|
|
10
|
-
* @param type - Keyring's type.
|
|
11
|
-
* @returns Wallet name.
|
|
12
|
-
*/
|
|
13
|
-
export declare function getAccountWalletNameFromKeyringType(type: KeyringTypes): "Imported accounts" | "Trezor" | "OneKey" | "Ledger" | "Lattice" | "QR" | "HD Wallet" | "Snap Wallet" | "Unknown";
|
|
14
|
-
export declare class KeyringRule extends Rule {
|
|
15
|
-
readonly category = AccountWalletCategory.Keyring;
|
|
16
|
-
match(account: InternalAccount): AccountContext | undefined;
|
|
17
|
-
getDefaultAccountWalletName(wallet: AccountTreeWallet): string;
|
|
18
|
-
getDefaultAccountGroupName(group: AccountTreeGroup): string;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=keyring.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.d.mts","sourceRoot":"","sources":["../../src/rules/keyring.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGtB,8BAA8B;AAC/B,OAAO,EAAE,YAAY,EAAE,qCAAqC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB;AAEhD,OAAO,EAAE,IAAI,EAAE,mBAAe;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAW;AAE9D;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,YAAY,qHAiCrE;AAED,qBAAa,WAAY,SAAQ,IAAI;IACnC,QAAQ,CAAC,QAAQ,iCAAiC;IAElD,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IAc3D,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAU9D,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CAS5D"}
|
package/dist/rules/keyring.mjs
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { AccountWalletCategory, toAccountGroupId, toAccountWalletId } from "@metamask/account-api";
|
|
2
|
-
import { KeyringTypes } from "@metamask/keyring-controller";
|
|
3
|
-
import { Rule } from "./rule.mjs";
|
|
4
|
-
/**
|
|
5
|
-
* Get wallet name from a keyring type.
|
|
6
|
-
*
|
|
7
|
-
* @param type - Keyring's type.
|
|
8
|
-
* @returns Wallet name.
|
|
9
|
-
*/
|
|
10
|
-
export function getAccountWalletNameFromKeyringType(type) {
|
|
11
|
-
switch (type) {
|
|
12
|
-
case KeyringTypes.simple: {
|
|
13
|
-
return 'Imported accounts';
|
|
14
|
-
}
|
|
15
|
-
case KeyringTypes.trezor: {
|
|
16
|
-
return 'Trezor';
|
|
17
|
-
}
|
|
18
|
-
case KeyringTypes.oneKey: {
|
|
19
|
-
return 'OneKey';
|
|
20
|
-
}
|
|
21
|
-
case KeyringTypes.ledger: {
|
|
22
|
-
return 'Ledger';
|
|
23
|
-
}
|
|
24
|
-
case KeyringTypes.lattice: {
|
|
25
|
-
return 'Lattice';
|
|
26
|
-
}
|
|
27
|
-
case KeyringTypes.qr: {
|
|
28
|
-
return 'QR';
|
|
29
|
-
}
|
|
30
|
-
// Those keyrings should never really be used in such context since they
|
|
31
|
-
// should be used by other grouping rules.
|
|
32
|
-
case KeyringTypes.hd: {
|
|
33
|
-
return 'HD Wallet';
|
|
34
|
-
}
|
|
35
|
-
case KeyringTypes.snap: {
|
|
36
|
-
return 'Snap Wallet';
|
|
37
|
-
}
|
|
38
|
-
// ------------------------------------------------------------------------
|
|
39
|
-
default: {
|
|
40
|
-
return 'Unknown';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export class KeyringRule extends Rule {
|
|
45
|
-
constructor() {
|
|
46
|
-
super(...arguments);
|
|
47
|
-
this.category = AccountWalletCategory.Keyring;
|
|
48
|
-
}
|
|
49
|
-
match(account) {
|
|
50
|
-
// We assume that `type` is really a `KeyringTypes`.
|
|
51
|
-
const type = account.metadata.keyring.type;
|
|
52
|
-
const walletId = toAccountWalletId(this.category, type);
|
|
53
|
-
const groupId = toAccountGroupId(walletId, account.address);
|
|
54
|
-
// This rule cannot fail.
|
|
55
|
-
return {
|
|
56
|
-
walletId,
|
|
57
|
-
groupId,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
getDefaultAccountWalletName(wallet) {
|
|
61
|
-
// Precondition: This method is invoked only if there was a match for
|
|
62
|
-
// this rule.
|
|
63
|
-
const account = wallet.getAnyAccount();
|
|
64
|
-
return getAccountWalletNameFromKeyringType(account.metadata.keyring.type);
|
|
65
|
-
}
|
|
66
|
-
getDefaultAccountGroupName(group) {
|
|
67
|
-
// Precondition: This method is invoked only if there was a match for
|
|
68
|
-
// this rule. Also, each of those account groups should contain
|
|
69
|
-
// only 1 account.
|
|
70
|
-
const account = group.getOnlyAccount();
|
|
71
|
-
// We only have 1 account for this kind of rule.
|
|
72
|
-
return account.metadata.name;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=keyring.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.mjs","sourceRoot":"","sources":["../../src/rules/keyring.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,8BAA8B;AAC/B,OAAO,EAAE,YAAY,EAAE,qCAAqC;AAI5D,OAAO,EAAE,IAAI,EAAE,mBAAe;AAG9B;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC,CAAC,IAAkB;IACpE,QAAQ,IAAI,EAAE;QACZ,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,mBAAmB,CAAC;SAC5B;QACD,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;SAClB;QACD,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;SACb;QACD,wEAAwE;QACxE,0CAA0C;QAC1C,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,WAAW,CAAC;SACpB;QACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,aAAa,CAAC;SACtB;QACD,2EAA2E;QAC3E,OAAO,CAAC,CAAC;YACP,OAAO,SAAS,CAAC;SAClB;KACF;AACH,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,IAAI;IAArC;;QACW,aAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAmCpD,CAAC;IAjCC,KAAK,CAAC,OAAwB;QAC5B,oDAAoD;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAoB,CAAC;QAE3D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,yBAAyB;QACzB,OAAO;YACL,QAAQ;YACR,OAAO;SACR,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,MAAyB;QACnD,qEAAqE;QACrE,aAAa;QACb,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEvC,OAAO,mCAAmC,CACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAoB,CAC9C,CAAC;IACJ,CAAC;IAED,0BAA0B,CAAC,KAAuB;QAChD,qEAAqE;QACrE,+DAA+D;QAC/D,kBAAkB;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvC,gDAAgD;QAChD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF","sourcesContent":["import {\n AccountWalletCategory,\n toAccountGroupId,\n toAccountWalletId,\n} from '@metamask/account-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { AccountContext } from 'src/types';\n\nimport { Rule } from './rule';\nimport type { AccountTreeGroup, AccountTreeWallet } from '..';\n\n/**\n * Get wallet name from a keyring type.\n *\n * @param type - Keyring's type.\n * @returns Wallet name.\n */\nexport function getAccountWalletNameFromKeyringType(type: KeyringTypes) {\n switch (type) {\n case KeyringTypes.simple: {\n return 'Imported accounts';\n }\n case KeyringTypes.trezor: {\n return 'Trezor';\n }\n case KeyringTypes.oneKey: {\n return 'OneKey';\n }\n case KeyringTypes.ledger: {\n return 'Ledger';\n }\n case KeyringTypes.lattice: {\n return 'Lattice';\n }\n case KeyringTypes.qr: {\n return 'QR';\n }\n // Those keyrings should never really be used in such context since they\n // should be used by other grouping rules.\n case KeyringTypes.hd: {\n return 'HD Wallet';\n }\n case KeyringTypes.snap: {\n return 'Snap Wallet';\n }\n // ------------------------------------------------------------------------\n default: {\n return 'Unknown';\n }\n }\n}\n\nexport class KeyringRule extends Rule {\n readonly category = AccountWalletCategory.Keyring;\n\n match(account: InternalAccount): AccountContext | undefined {\n // We assume that `type` is really a `KeyringTypes`.\n const type = account.metadata.keyring.type as KeyringTypes;\n\n const walletId = toAccountWalletId(this.category, type);\n const groupId = toAccountGroupId(walletId, account.address);\n\n // This rule cannot fail.\n return {\n walletId,\n groupId,\n };\n }\n\n getDefaultAccountWalletName(wallet: AccountTreeWallet): string {\n // Precondition: This method is invoked only if there was a match for\n // this rule.\n const account = wallet.getAnyAccount();\n\n return getAccountWalletNameFromKeyringType(\n account.metadata.keyring.type as KeyringTypes,\n );\n }\n\n getDefaultAccountGroupName(group: AccountTreeGroup): string {\n // Precondition: This method is invoked only if there was a match for\n // this rule. Also, each of those account groups should contain\n // only 1 account.\n const account = group.getOnlyAccount();\n\n // We only have 1 account for this kind of rule.\n return account.metadata.name;\n }\n}\n"]}
|
package/dist/rules/rule.cjs
DELETED
package/dist/rules/rule.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.cjs","sourceRoot":"","sources":["../../src/rules/rule.ts"],"names":[],"mappings":";;;AAOA,MAAsB,IAAI;IAKxB,YAAY,SAAyC;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAmCF;AA1CD,oBA0CC","sourcesContent":["import type { AccountWalletCategory } from '@metamask/account-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\n\nimport type { AccountTreeGroup, AccountTreeWallet } from '..';\nimport type { AccountTreeControllerMessenger } from '../AccountTreeController';\nimport type { AccountContext } from '../types';\n\nexport abstract class Rule {\n abstract readonly category: AccountWalletCategory;\n\n protected readonly messenger: AccountTreeControllerMessenger;\n\n constructor(messenger: AccountTreeControllerMessenger) {\n this.messenger = messenger;\n }\n\n /**\n * Applies the rule and check if the account matches.\n *\n * If the account matches, then the rule will return a {@link RuleMatch} which means\n * this account needs to be grouped within a wallet associated with this rule.\n *\n * If a wallet already exists for this account (based on {@link RuleMatch}) then\n * the account will be added to that wallet instance into its proper group (different for\n * every wallets).\n *\n * @param account - The account to match.\n * @returns A {@link RuleMatch} if this account is part of that rule/wallet, returns\n * `undefined` otherwise.\n */\n abstract match(account: InternalAccount): AccountContext | undefined;\n\n /**\n * Gets default name for a wallet.\n *\n * @param wallet - Wallet associated to this rule.\n * @param context - Rule context.\n * @returns The default name for that wallet.\n */\n abstract getDefaultAccountWalletName(wallet: AccountTreeWallet): string;\n\n /**\n * Gets default name for a group.\n *\n * @param group - Group associated to this rule.\n * @param context - Rule context.\n * @returns The default name for that group.\n */\n abstract getDefaultAccountGroupName(group: AccountTreeGroup): string;\n}\n"]}
|
package/dist/rules/rule.d.cts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { AccountWalletCategory } from "@metamask/account-api";
|
|
2
|
-
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
3
|
-
import type { AccountTreeGroup, AccountTreeWallet } from "../index.cjs";
|
|
4
|
-
import type { AccountTreeControllerMessenger } from "../AccountTreeController.cjs";
|
|
5
|
-
import type { AccountContext } from "../types.cjs";
|
|
6
|
-
export declare abstract class Rule {
|
|
7
|
-
abstract readonly category: AccountWalletCategory;
|
|
8
|
-
protected readonly messenger: AccountTreeControllerMessenger;
|
|
9
|
-
constructor(messenger: AccountTreeControllerMessenger);
|
|
10
|
-
/**
|
|
11
|
-
* Applies the rule and check if the account matches.
|
|
12
|
-
*
|
|
13
|
-
* If the account matches, then the rule will return a {@link RuleMatch} which means
|
|
14
|
-
* this account needs to be grouped within a wallet associated with this rule.
|
|
15
|
-
*
|
|
16
|
-
* If a wallet already exists for this account (based on {@link RuleMatch}) then
|
|
17
|
-
* the account will be added to that wallet instance into its proper group (different for
|
|
18
|
-
* every wallets).
|
|
19
|
-
*
|
|
20
|
-
* @param account - The account to match.
|
|
21
|
-
* @returns A {@link RuleMatch} if this account is part of that rule/wallet, returns
|
|
22
|
-
* `undefined` otherwise.
|
|
23
|
-
*/
|
|
24
|
-
abstract match(account: InternalAccount): AccountContext | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* Gets default name for a wallet.
|
|
27
|
-
*
|
|
28
|
-
* @param wallet - Wallet associated to this rule.
|
|
29
|
-
* @param context - Rule context.
|
|
30
|
-
* @returns The default name for that wallet.
|
|
31
|
-
*/
|
|
32
|
-
abstract getDefaultAccountWalletName(wallet: AccountTreeWallet): string;
|
|
33
|
-
/**
|
|
34
|
-
* Gets default name for a group.
|
|
35
|
-
*
|
|
36
|
-
* @param group - Group associated to this rule.
|
|
37
|
-
* @param context - Rule context.
|
|
38
|
-
* @returns The default name for that group.
|
|
39
|
-
*/
|
|
40
|
-
abstract getDefaultAccountGroupName(group: AccountTreeGroup): string;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=rule.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.cts","sourceRoot":"","sources":["../../src/rules/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,8BAA8B;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAW;AAC9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAiB;AAE/C,8BAAsB,IAAI;IACxB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAElD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC;gBAEjD,SAAS,EAAE,8BAA8B;IAIrD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IAEpE;;;;;;OAMG;IACH,QAAQ,CAAC,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAEvE;;;;;;OAMG;IACH,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CACrE"}
|
package/dist/rules/rule.d.mts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { AccountWalletCategory } from "@metamask/account-api";
|
|
2
|
-
import type { InternalAccount } from "@metamask/keyring-internal-api";
|
|
3
|
-
import type { AccountTreeGroup, AccountTreeWallet } from "../index.mjs";
|
|
4
|
-
import type { AccountTreeControllerMessenger } from "../AccountTreeController.mjs";
|
|
5
|
-
import type { AccountContext } from "../types.mjs";
|
|
6
|
-
export declare abstract class Rule {
|
|
7
|
-
abstract readonly category: AccountWalletCategory;
|
|
8
|
-
protected readonly messenger: AccountTreeControllerMessenger;
|
|
9
|
-
constructor(messenger: AccountTreeControllerMessenger);
|
|
10
|
-
/**
|
|
11
|
-
* Applies the rule and check if the account matches.
|
|
12
|
-
*
|
|
13
|
-
* If the account matches, then the rule will return a {@link RuleMatch} which means
|
|
14
|
-
* this account needs to be grouped within a wallet associated with this rule.
|
|
15
|
-
*
|
|
16
|
-
* If a wallet already exists for this account (based on {@link RuleMatch}) then
|
|
17
|
-
* the account will be added to that wallet instance into its proper group (different for
|
|
18
|
-
* every wallets).
|
|
19
|
-
*
|
|
20
|
-
* @param account - The account to match.
|
|
21
|
-
* @returns A {@link RuleMatch} if this account is part of that rule/wallet, returns
|
|
22
|
-
* `undefined` otherwise.
|
|
23
|
-
*/
|
|
24
|
-
abstract match(account: InternalAccount): AccountContext | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* Gets default name for a wallet.
|
|
27
|
-
*
|
|
28
|
-
* @param wallet - Wallet associated to this rule.
|
|
29
|
-
* @param context - Rule context.
|
|
30
|
-
* @returns The default name for that wallet.
|
|
31
|
-
*/
|
|
32
|
-
abstract getDefaultAccountWalletName(wallet: AccountTreeWallet): string;
|
|
33
|
-
/**
|
|
34
|
-
* Gets default name for a group.
|
|
35
|
-
*
|
|
36
|
-
* @param group - Group associated to this rule.
|
|
37
|
-
* @param context - Rule context.
|
|
38
|
-
* @returns The default name for that group.
|
|
39
|
-
*/
|
|
40
|
-
abstract getDefaultAccountGroupName(group: AccountTreeGroup): string;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=rule.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.mts","sourceRoot":"","sources":["../../src/rules/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,8BAA8B;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAW;AAC9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,qCAAiC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAiB;AAE/C,8BAAsB,IAAI;IACxB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAElD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC;gBAEjD,SAAS,EAAE,8BAA8B;IAIrD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS;IAEpE;;;;;;OAMG;IACH,QAAQ,CAAC,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAEvE;;;;;;OAMG;IACH,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CACrE"}
|
package/dist/rules/rule.mjs
DELETED
package/dist/rules/rule.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.mjs","sourceRoot":"","sources":["../../src/rules/rule.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,IAAI;IAKxB,YAAY,SAAyC;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAmCF","sourcesContent":["import type { AccountWalletCategory } from '@metamask/account-api';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\n\nimport type { AccountTreeGroup, AccountTreeWallet } from '..';\nimport type { AccountTreeControllerMessenger } from '../AccountTreeController';\nimport type { AccountContext } from '../types';\n\nexport abstract class Rule {\n abstract readonly category: AccountWalletCategory;\n\n protected readonly messenger: AccountTreeControllerMessenger;\n\n constructor(messenger: AccountTreeControllerMessenger) {\n this.messenger = messenger;\n }\n\n /**\n * Applies the rule and check if the account matches.\n *\n * If the account matches, then the rule will return a {@link RuleMatch} which means\n * this account needs to be grouped within a wallet associated with this rule.\n *\n * If a wallet already exists for this account (based on {@link RuleMatch}) then\n * the account will be added to that wallet instance into its proper group (different for\n * every wallets).\n *\n * @param account - The account to match.\n * @returns A {@link RuleMatch} if this account is part of that rule/wallet, returns\n * `undefined` otherwise.\n */\n abstract match(account: InternalAccount): AccountContext | undefined;\n\n /**\n * Gets default name for a wallet.\n *\n * @param wallet - Wallet associated to this rule.\n * @param context - Rule context.\n * @returns The default name for that wallet.\n */\n abstract getDefaultAccountWalletName(wallet: AccountTreeWallet): string;\n\n /**\n * Gets default name for a group.\n *\n * @param group - Group associated to this rule.\n * @param context - Rule context.\n * @returns The default name for that group.\n */\n abstract getDefaultAccountGroupName(group: AccountTreeGroup): string;\n}\n"]}
|