@metamask/account-api
Version:
MetaMask Account API
52 lines • 1.96 kB
text/typescript
import { type KeyringAccount } from "@metamask/keyring-api";
import type { MultichainAccountWallet, MultichainAccountWalletId } from "./wallet.mjs";
import type { Bip44Account } from "../bip44.mjs";
import type { AccountGroup, AccountGroupType } from "../group.mjs";
/**
* Multichain account ID.
*/
export type MultichainAccountGroupId = `${MultichainAccountWalletId}/${number}`;
/**
* A multichain account that holds multiple accounts.
*/
export type MultichainAccountGroup<Account extends Bip44Account<KeyringAccount>> = AccountGroup<Account> & {
/**
* Multichain account group ID.
*/
get id(): MultichainAccountGroupId;
/**
* Multichain account type.
*/
get type(): AccountGroupType.MultichainAccount;
/**
* Multichain account's wallet reference (parent).
*/
get wallet(): MultichainAccountWallet<Account>;
/**
* Multichain account group index.
*/
get groupIndex(): number;
};
/**
* Gets the multichain account group ID from its multichain account wallet ID and its index.
*
* @param walletId - Multichain account wallet ID.
* @param groupIndex - Index of that multichain account.
* @returns The multichain account ID.
*/
export declare function toMultichainAccountGroupId(walletId: MultichainAccountWalletId, groupIndex: number): MultichainAccountGroupId;
/**
* Checks if the given value is {@link MultichainAccountGroupId}.
*
* @param value - The value to check.
* @returns Whether the value is a {@link MultichainAccountGroupId}.
*/
export declare function isMultichainAccountGroupId(value: string): value is MultichainAccountGroupId;
/**
* Gets the multichain account index from an account group ID.
*
* @param id - Multichain account ID.
* @returns The multichain account index if extractable, undefined otherwise.
*/
export declare function getGroupIndexFromMultichainAccountGroupId(id: MultichainAccountGroupId): number;
//# sourceMappingURL=group.d.mts.map