import { PublicKey } from "@chainsafe/blst"; import { Root } from "@lodestar/types"; import { Index2PubkeyCache } from "../cache/pubkeyCache.js"; export declare enum SignatureSetType { single = "single", aggregate = "aggregate", /** * Single signature with validator index instead of pubkey. * Pubkey lookup is deferred to verification time. */ indexed = "indexed" } /** * Single signature with pubkey directly. * Used when pubkey comes from the message itself (e.g. BLS to execution change). */ export type SingleSignatureSet = { type: SignatureSetType.single; pubkey: PublicKey; signingRoot: Root; signature: Uint8Array; }; /** * Single signature with validator index. * Pubkey is looked up at verification time. */ export type IndexedSignatureSet = { type: SignatureSetType.indexed; index: number; signingRoot: Root; signature: Uint8Array; }; /** * Aggregate signature with validator indices. * Pubkeys are looked up and aggregated at verification time. */ export type AggregatedSignatureSet = { type: SignatureSetType.aggregate; indices: number[]; signingRoot: Root; signature: Uint8Array; }; export type ISignatureSet = SingleSignatureSet | IndexedSignatureSet | AggregatedSignatureSet; /** * Get the pubkey for a signature set, performing aggregation if necessary. * Requires index2pubkey cache for indexed and aggregate sets. */ export declare function getSignatureSetPubkey(signatureSet: ISignatureSet, index2pubkey: Index2PubkeyCache): PublicKey; export declare function verifySignatureSet(signatureSet: SingleSignatureSet, index2pubkey?: Index2PubkeyCache): boolean; export declare function verifySignatureSet(signatureSet: IndexedSignatureSet, index2pubkey: Index2PubkeyCache): boolean; export declare function verifySignatureSet(signatureSet: AggregatedSignatureSet, index2pubkey: Index2PubkeyCache): boolean; export declare function verifySignatureSet(signatureSet: ISignatureSet, index2pubkey: Index2PubkeyCache): boolean; export declare function createSingleSignatureSetFromComponents(pubkey: PublicKey, signingRoot: Root, signature: Uint8Array): SingleSignatureSet; export declare function createIndexedSignatureSetFromComponents(index: number, signingRoot: Root, signature: Uint8Array): IndexedSignatureSet; export declare function createAggregateSignatureSetFromComponents(indices: number[], signingRoot: Root, signature: Uint8Array): AggregatedSignatureSet; //# sourceMappingURL=signatureSets.d.ts.map