UNPKG

@arklabs/wallet-sdk

Version:

Bitcoin wallet SDK with Taproot and Ark integration

33 lines (32 loc) 1.3 kB
import * as musig2 from "../musig2"; import { TxTree } from "./vtxoTree"; export declare const ErrMissingVtxoTree: Error; export declare const ErrMissingAggregateKey: Error; export type TreeNonces = (Pick<musig2.Nonces, "pubNonce"> | null)[][]; export type TreePartialSigs = (musig2.PartialSig | null)[][]; export interface SignerSession { getPublicKey(): Uint8Array; init(tree: TxTree, scriptRoot: Uint8Array, rootInputAmount: bigint): void; getNonces(): TreeNonces; setAggregatedNonces(nonces: TreeNonces): void; sign(): TreePartialSigs; } export declare class TreeSignerSession implements SignerSession { private secretKey; static NOT_INITIALIZED: Error; private myNonces; private aggregateNonces; private tree; private scriptRoot; private rootSharedOutputAmount; constructor(secretKey: Uint8Array); static random(): TreeSignerSession; init(tree: TxTree, scriptRoot: Uint8Array, rootInputAmount: bigint): void; getPublicKey(): Uint8Array; getNonces(): TreeNonces; setAggregatedNonces(nonces: TreeNonces): void; sign(): TreePartialSigs; private generateNonces; private signPartial; } export declare function validateTreeSigs(finalAggregatedKey: Uint8Array, sharedOutputAmount: bigint, vtxoTree: TxTree): Promise<void>;