@runonflux/aa-schnorr-multisig-sdk
Version:
Account Abstraction Schnorr Multi-Signatures SDK
31 lines (30 loc) • 1.68 kB
TypeScript
import type { PublicNonces } from "../types";
import { Key, SchnorrSignature } from "../types";
import type { HashFunction } from "../core/types";
import type { SignatureOutput } from "../types/signature";
import { FinalPublicNonce } from "../types/signature";
export declare class Schnorrkel {
#private;
private markNonceAsUsed;
private isNonceUsed;
resetUsedNonces(): void;
private _setNonce;
private _restoreNonce;
private clearNonces;
private getMappedPublicNonces;
private getMappedNonces;
private getMultisigOutput;
static getCombinedPublicKey(publicKeys: Key[]): Key;
static getCombinedAddress(publicKeys: Key[]): string;
generatePublicNonces(privateKey: Key): PublicNonces;
restorePublicNonces(privateKey: Key, kPrivateKey: Key, kTwoPrivateKey: Key): PublicNonces;
getPublicNonces(privateKey: Key): PublicNonces;
hasNonce(privateKey: Key): boolean;
multiSigSign(privateKey: Key, msg: string, publicKeys: Key[], publicNonces: PublicNonces[], hashFn?: HashFunction): SignatureOutput;
multiSigSignHash(privateKey: Key, hash: string, publicKeys: Key[], publicNonces: PublicNonces[]): SignatureOutput;
static sign(privateKey: Key, msg: string, hashFn?: HashFunction): SignatureOutput;
static signHash(privateKey: Key, hash: string): SignatureOutput;
static sumSigs(signatures: SchnorrSignature[]): SchnorrSignature;
static verify(signature: SchnorrSignature, msg: string, finalPublicNonce: FinalPublicNonce, publicKey: Key, hashFn?: HashFunction): boolean;
static verifyHash(signature: SchnorrSignature, hash: string, finalPublicNonce: FinalPublicNonce, publicKey: Key): boolean;
}