UNPKG

lisk-framework

Version:

Lisk blockchain application platform

71 lines (70 loc) 2.27 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { Chain, Block, Transaction } from '@liskhq/lisk-chain'; import { Database } from '@liskhq/lisk-db'; import { TransactionPool } from '@liskhq/lisk-transaction-pool'; import { Logger } from '../../logger'; import { EngineConfig } from '../../types'; import { Network } from '../network'; import { Broadcaster } from './broadcaster'; import { Endpoint } from './endpoint'; import { Consensus, BlockGenerateInput } from './types'; import { ABI } from '../../abi'; import { BFTModule } from '../bft'; interface GeneratorArgs { config: EngineConfig; chain: Chain; consensus: Consensus; bft: BFTModule; abi: ABI; network: Network; } interface GeneratorInitArgs { generatorDB: Database; blockchainDB: Database; logger: Logger; genesisHeight: number; } export declare class Generator { readonly events: EventEmitter; private readonly _pool; private readonly _config; private readonly _chain; private readonly _consensus; private readonly _bft; private readonly _abi; private readonly _network; private readonly _endpoint; private readonly _networkEndpoint; private readonly _generationJob; private readonly _keypairs; private readonly _broadcaster; private readonly _forgingStrategy; private readonly _blockTime; private readonly _metrics; private _logger; private _generatorDB; private _blockchainDB; private _genesisHeight; private _singleCommitHandler; constructor(args: GeneratorArgs); init(args: GeneratorInitArgs): Promise<void>; get endpoint(): Endpoint; get txpool(): TransactionPool; get broadcaster(): Broadcaster; start(): Promise<void>; stop(): Promise<void>; onNewBlock(block: Block): void; getPooledTransactions(): Transaction[]; onDeleteBlock(block: Block): void; generateBlock(input: BlockGenerateInput): Promise<Block>; _loadTransactionsFromNetwork(): Promise<void>; private _verifyTransaction; private _saveKeysFromFile; private _loadGenerators; private _getUnconfirmedTransactionsFromNetwork; private _generateLoop; private _generateBlock; private _executeTransactions; } export {};