lisk-framework
Version:
Lisk blockchain application platform
71 lines (70 loc) • 2.27 kB
TypeScript
/// <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 {};