lisk-framework
Version:
Lisk blockchain application platform
33 lines (32 loc) • 1.67 kB
TypeScript
/// <reference types="node" />
import { BlockHeader, StateStore } from '@liskhq/lisk-chain';
import { BFTParameters } from './schemas';
import { BFTHeights } from './types';
import { Validator } from '../../abi';
export interface BlockHeaderAsset {
maxHeightPrevoted: number;
maxHeightPreviouslyForged: number;
}
export declare class BFTMethod {
private _batchSize;
private _blockTime;
blockTime(): number;
init(batchSize: number, blockTime: number): void;
areHeadersContradicting(bftHeader1: BlockHeader, bftHeader2: BlockHeader): boolean;
isHeaderContradictingChain(stateStore: StateStore, header: BlockHeader): Promise<boolean>;
existBFTParameters(stateStore: StateStore, height: number): Promise<boolean>;
getBFTParameters(stateStore: StateStore, height: number): Promise<BFTParameters>;
getBFTParametersActiveValidators(stateStore: StateStore, height: number): Promise<BFTParameters>;
getBFTHeights(stateStore: StateStore): Promise<BFTHeights>;
impliesMaximalPrevotes(stateStore: StateStore, header: {
height: number;
generatorAddress: Buffer;
maxHeightGenerated: number;
}): Promise<boolean>;
getNextHeightBFTParameters(stateStore: StateStore, height: number): Promise<number>;
setBFTParameters(stateStore: StateStore, precommitThreshold: bigint, certificateThreshold: bigint, validators: Validator[]): Promise<void>;
getGeneratorAtTimestamp(stateStore: StateStore, height: number, timestamp: number): Promise<Validator>;
getSlotNumber(timestamp: number): number;
getSlotTime(slot: number): number;
isWithinTimeslot(slot: number, timestamp: number): boolean;
}