@arkade-os/sdk
Version:
Bitcoin wallet SDK with Taproot and Ark integration
38 lines (37 loc) • 1.55 kB
TypeScript
import * as musig2 from "../musig2";
import { TxTree } from "./txTree";
export declare const ErrMissingVtxoGraph: Error;
export declare const ErrMissingAggregateKey: Error;
export type Musig2PublicNonce = Pick<musig2.Nonces, "pubNonce">;
export type TreeNonces = Map<string, Musig2PublicNonce>;
export type TreePartialSigs = Map<string, musig2.PartialSig>;
export interface SignerSession {
getPublicKey(): Promise<Uint8Array>;
init(tree: TxTree, scriptRoot: Uint8Array, rootInputAmount: bigint): Promise<void>;
getNonces(): Promise<TreeNonces>;
aggregatedNonces(txid: string, noncesByPubkey: TreeNonces): Promise<{
hasAllNonces: boolean;
}>;
sign(): Promise<TreePartialSigs>;
}
export declare class TreeSignerSession implements SignerSession {
private secretKey;
static NOT_INITIALIZED: Error;
private myNonces;
private aggregateNonces;
private graph;
private scriptRoot;
private rootSharedOutputAmount;
constructor(secretKey: Uint8Array);
static random(): TreeSignerSession;
init(tree: TxTree, scriptRoot: Uint8Array, rootInputAmount: bigint): Promise<void>;
getPublicKey(): Promise<Uint8Array>;
getNonces(): Promise<TreeNonces>;
aggregatedNonces(txid: string, noncesByPubkey: TreeNonces): Promise<{
hasAllNonces: boolean;
}>;
sign(): Promise<TreePartialSigs>;
private generateNonces;
private signPartial;
}
export declare function validateTreeSigs(finalAggregatedKey: Uint8Array, sharedOutputAmount: bigint, vtxoTree: TxTree): Promise<void>;