import { Server } from "../../../../server"; import { BlockchainContext } from "../../../lib/computation/BlockchainContext"; import { DBBlock } from "../../../lib/db/DBBlock"; import { CertificationDTO } from "../../../lib/dto/CertificationDTO"; import { MembershipDTO } from "../../../lib/dto/MembershipDTO"; import { BlockDTO } from "../../../lib/dto/BlockDTO"; import { ConfDTO } from "../../../lib/dto/ConfDTO"; import { FileDAL } from "../../../lib/dal/fileDAL"; import { DBCert } from "../../../lib/dal/sqliteDAL/CertDAL"; import { Map } from "../../../lib/common-libs/crypto/map"; export interface PreJoin { identity: { pubkey: string; uid: string; buid: string; sig: string; member: boolean; wasMember: boolean; revoked: boolean; }; key: null; idHash: string; certs: DBCert[]; ms: any; } export declare class BlockGenerator { private server; mainContext: BlockchainContext; selfPubkey: string; logger: any; constructor(server: Server); get conf(): ConfDTO; get dal(): FileDAL; nextBlock(manualValues?: any, simulationValues?: any): Promise; manualRoot(): Promise; /** * Generate next block, gathering both updates & newcomers */ private generateNextBlock; private findTransactions; private findLeavers; private findNewcomers; private checkWoTConstraints; private iteratedChecking; private getPreJoinData; private computeNewLinks; newCertsToLinks(newCerts: Map): Map; computeNewCerts(forBlock: number, theNewcomers: any, joinData: Map): Promise>; getSinglePreJoinData(current: DBBlock | null, idHash: string, joiners: string[]): Promise; private createBlock; } export declare class BlockGeneratorWhichProves extends BlockGenerator { private prover; constructor(server: Server, prover: any); makeNextBlock(block: DBBlock | null, trial?: number | null, manualValues?: any): Promise; } export interface ForcedBlockValues { time?: number; version?: number; medianTime?: number; excluded?: string[]; revoked?: string[]; certifications?: CertificationDTO[]; joiners?: MembershipDTO[]; }