UNPKG

@safeheron/master-key-derive

Version:
70 lines (69 loc) 2.26 kB
import * as BN from "bn.js"; export declare enum Purpose { MASTER_KEY_DERIVE = 0, AUTH_KEY_DERIVE = 1, POLICY_ENGINE = 2 } export declare enum SigAlg { ECDSA_SECP256K1 = 0, EDDSA_ED25519 = 1, BLS_BN12_381 = 2, SCHNORR_SECP256K1 = 3, ECDSA_P256 = 4, SCHNORR_P256 = 5 } export declare class MasterKeyPair { readonly xprv: string; readonly xpub: string; constructor(xprv: string, xpub: string); static _checkIsValidChainCode(masterKeyShares: MasterKeyShare[]): boolean; static _checkIsFullChainCode(masterKeyShares: MasterKeyShare[]): boolean; /** * Recover master key pair from all the MasterKeyShares * @param masterKeyShares * @param sigAlg */ static recoverFromMasterKeyShares(masterKeyShares: MasterKeyShare[], sigAlg: SigAlg): MasterKeyPair; private static _recoverFromMnemonics; /** * Recover master key pair from all the Mnemonics * @param mnemonics * @param sigAlg */ static recoverFromMnemonics(mnemonics: Mnemonics[], sigAlg: SigAlg): MasterKeyPair; } export declare class MasterKeyShare { readonly keyShare: BN; readonly chainCodeShare: BN; readonly isFullChainCode: boolean; constructor(keyShare: BN, chainCodeShare: BN, isFullChainCode: boolean); } export declare class Mnemonics { readonly mnemo: string; readonly extraMnemo: string; constructor(mnemo: string, extraMnemo: string); /*** * Create Mnemonics from key share and chain code. * * Warn: only invoked by the old user of mpc wallet * * @param keyShare * @param chainCode */ static createMnemonics(keyShare: BN, chainCode: BN): Mnemonics; /** * Create a new Mnemonic */ static generateMnemonic(): Mnemonics; private _derive; private _derive_old_secp256k1; /** * Derive function * @param purpose * @param sigAlg * @param alg */ derive(purpose: Purpose, sigAlg: SigAlg, alg: number): MasterKeyShare; } export declare function mnemonicToExtendedPub(sigAlg: SigAlg, alt: number, mnemo: string, chaincode?: string): string; export declare function extendedPubSharesAgg(sigAlg: SigAlg, extendedPubShares: string[], isFullChainCode: boolean): string;