UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

61 lines 2.9 kB
import { PrivateKey } from '../privatekey.js'; import { PublicKey } from '../publickey.js'; import { Signature } from '../crypto/signature.js'; import { Point } from '../crypto/point.js'; import { Script } from '../script.js'; import { Address } from '../address.js'; import { type MuSigKeyAggContext } from '../crypto/musig2.js'; import { MuSigSessionManager, type MuSigSession } from './session.js'; import { type MuSigTaprootKeyResult } from '../taproot/musig2.js'; import { Transaction } from '../transaction/transaction.js'; import { BN } from '../crypto/bn.js'; export interface MuSig2SignerConfig { signers: PublicKey[]; myPrivateKey: PrivateKey; extraInput?: Buffer; } export interface MuSig2PrepareResult { keyAggContext: MuSigKeyAggContext; myPublicNonces: [Point, Point]; mySecretNonces: [BN, BN]; myIndex: number; sessionId?: string; } export interface MuSig2SignResult { signature: Signature; aggregatedPubKey: PublicKey; isAggregator: boolean; } export interface MuSig2TaprootSignResult extends MuSig2SignResult { commitment: PublicKey; script: Script; address: Address; } export declare class MuSig2Signer { private config; private sessionManager?; constructor(config: MuSig2SignerConfig); prepare(message: Buffer | string, useSession?: boolean): MuSig2PrepareResult; createPartialSignature(prepare: MuSig2PrepareResult, allPublicNonces: Array<[Point, Point]>, message: Buffer | string): BN; verifyPartialSignature(partialSig: BN, publicNonce: [Point, Point], publicKey: PublicKey, signerIndex: number, prepare: MuSig2PrepareResult, allPublicNonces: Array<[Point, Point]>, message: Buffer | string): boolean; sign(prepare: MuSig2PrepareResult, allPublicNonces: Array<[Point, Point]>, message: Buffer | string, allPartialSigs: BN[]): MuSig2SignResult; prepareTaproot(state?: Buffer): MuSigTaprootKeyResult & { keyAggContext: MuSigKeyAggContext; }; signTaprootInput(prepare: MuSigTaprootKeyResult & { keyAggContext: MuSigKeyAggContext; }, allPublicNonces: Array<[Point, Point]>, transaction: Transaction, inputIndex: number, amount: number, sighashType?: number): BN; completeTaprootSigning(prepare: MuSigTaprootKeyResult & { keyAggContext: MuSigKeyAggContext; }, allPublicNonces: Array<[Point, Point]>, allPartialSigs: BN[], transaction: Transaction, inputIndex: number, amount: number, sighashType?: number): Signature; createSession(message: Buffer | string, metadata?: Record<string, unknown>): { manager: MuSigSessionManager; session: MuSigSession; }; get myPublicKey(): PublicKey; get allSigners(): PublicKey[]; get myIndex(): number; private _normalizeMessage; } export declare function createMuSig2Signer(signers: PublicKey[], myPrivateKey: PrivateKey): MuSig2Signer; //# sourceMappingURL=signer.d.ts.map