lisk-framework
Version: 
Lisk blockchain application platform
46 lines (45 loc) • 1.85 kB
TypeScript
/// <reference types="node" />
import { Block, Chain, DataAccess, BlockHeader, Transaction, StateStore } from '@liskhq/lisk-chain';
import { Database } from '@liskhq/lisk-db';
import { BaseModule } from '../modules';
import { Keys } from './fixtures';
import { EventJSON, GenesisConfig } from '../types';
import { Consensus } from '../engine/consensus';
import { MethodContext } from '../state_machine';
import { Generator } from '../engine/generator';
type Options = {
    genesis?: GenesisConfig;
    modules?: Record<string, Record<string, unknown>>;
    databasePath?: string;
    passphrase?: string;
};
interface BlockProcessingParams {
    modules?: BaseModule[];
    options?: Options;
    initValidators?: Buffer[];
    logLevel?: string;
}
type DecodedEventJSON = EventJSON & {
    decodedData: Record<string, unknown>;
};
export interface BlockProcessingEnv {
    createBlock: (transactions?: Transaction[], timestamp?: number) => Promise<Block>;
    getConsensus: () => Consensus;
    getConsensusStore: () => StateStore;
    getGenerator: () => Generator;
    getGenesisBlock: () => Block;
    getChain: () => Chain;
    getMethodContext: () => MethodContext;
    getBlockchainDB: () => Database;
    process: (block: Block) => Promise<void>;
    processUntilHeight: (height: number) => Promise<void>;
    getLastBlock: () => Block;
    getNextValidatorKeys: (blockHeader: BlockHeader, distance?: number) => Promise<Keys>;
    getDataAccess: () => DataAccess;
    getEvents: (height: number, module?: string, name?: string) => Promise<DecodedEventJSON[]>;
    getChainID: () => Buffer;
    invoke: <T = void>(path: string, params?: Record<string, unknown>) => Promise<T>;
    cleanup: (config: Options) => void;
}
export declare const getBlockProcessingEnv: (params: BlockProcessingParams) => Promise<BlockProcessingEnv>;
export {};