@metamask/account-api
Version:
MetaMask Account API
48 lines • 1.81 kB
text/typescript
import { type EntropySourceId, type KeyringAccount } from "@metamask/keyring-api";
import type { MultichainAccountGroup } from "./group.mjs";
import type { Bip44Account } from "../bip44.mjs";
import type { AccountWallet } from "../wallet.mjs";
import { AccountWalletType } from "../wallet.mjs";
/**
* Multichain account wallet ID.
*/
export type MultichainAccountWalletId = `${AccountWalletType.Entropy}:${EntropySourceId}`;
/**
* A multichain account wallet that holds multiple multichain accounts (one multichain account per
* group index).
*/
export type MultichainAccountWallet<Account extends Bip44Account<KeyringAccount>> = AccountWallet<Account> & {
/**
* Multichain account wallet ID.
*/
get id(): MultichainAccountWalletId;
/**
* Multichain account wallet type, which is always {@link AccountWalletType.Entropy}.
*/
get type(): AccountWalletType.Entropy;
/**
* Multichain account wallet entropy source.
*/
get entropySource(): EntropySourceId;
/**
* Gets multichain account for a given index.
*
* @param groupIndex - Multichain account index.
* @returns The multichain account associated with the given index.
*/
getMultichainAccountGroup(groupIndex: number): MultichainAccountGroup<Account> | undefined;
/**
* Gets all multichain accounts.
*
* @returns The multichain accounts.
*/
getMultichainAccountGroups(): MultichainAccountGroup<Account>[];
};
/**
* Gets the multichain account wallet ID from its entropy source.
*
* @param entropySource - Entropy source ID of that wallet.
* @returns The multichain account wallet ID.
*/
export declare function toMultichainAccountWalletId(entropySource: EntropySourceId): MultichainAccountWalletId;
//# sourceMappingURL=wallet.d.mts.map