@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
31 lines • 1.49 kB
TypeScript
import { BeaconConfig } from "@lodestar/config";
import { IBeaconStateView } from "@lodestar/state-transition";
import { IndexedAttestation, SignedBeaconBlock } from "@lodestar/types";
import { Logger } from "@lodestar/utils";
import { Metrics } from "../../metrics/metrics.js";
import { IBlsVerifier } from "../bls/index.js";
import { ImportBlockOpts } from "./types.js";
/**
* Verifies 1 or more block's signatures from a group of blocks in the same epoch.
* getBlockSignatureSets() guarantees to return the correct signingRoots as long as all blocks belong in the same
* epoch as `preState0`. Otherwise the shufflings won't be correct.
*
* Since all data is known in advance all signatures are verified at once in parallel.
*/
export declare function verifyBlocksSignatures(config: BeaconConfig, bls: IBlsVerifier, logger: Logger, metrics: Metrics | null, preState0: IBeaconStateView, blocks: SignedBeaconBlock[], indexedAttestationsByBlock: IndexedAttestation[][], opts: ImportBlockOpts): Promise<{
verifySignaturesTime: number;
}>;
type AllValidRes = {
allValid: true;
} | {
allValid: false;
index: number;
};
/**
* From an array of promises that resolve a boolean isValid
* - if all valid, await all and return
* - if one invalid, abort immediately and return index of invalid
*/
export declare function rejectFirstInvalidResolveAllValid(isValidPromises: Promise<boolean>[]): Promise<AllValidRes>;
export {};
//# sourceMappingURL=verifyBlocksSignatures.d.ts.map