UNPKG

lisk-framework

Version:

Lisk blockchain application platform

61 lines (60 loc) 2.49 kB
import { Block } from '@liskhq/lisk-chain'; import { ApplicationConfig, PluginConfig, PartialApplicationConfig } from './types'; import { BasePlugin } from './plugins/base_plugin'; import { InMemoryChannel } from './controller'; import { Logger } from './logger'; import { BaseModule, ModuleMetadataJSON } from './modules/base_module'; import { ValidatorsMethod } from './modules/validators'; import { TokenMethod } from './modules/token'; import { AuthMethod } from './modules/auth'; import { FeeMethod } from './modules/fee'; import { RandomMethod } from './modules/random'; import { PoSMethod } from './modules/pos'; import { GenesisBlockGenerateInput } from './genesis_block'; import { SidechainInteroperabilityMethod, MainchainInteroperabilityMethod, BaseInteroperableModule } from './modules/interoperability'; import { DynamicRewardMethod } from './modules/dynamic_reward'; interface DefaultApplication { app: Application; method: { validator: ValidatorsMethod; auth: AuthMethod; token: TokenMethod; fee: FeeMethod; random: RandomMethod; reward: DynamicRewardMethod; pos: PoSMethod; interoperability: SidechainInteroperabilityMethod | MainchainInteroperabilityMethod; }; } export declare class Application { config: ApplicationConfig; logger: Logger; private readonly _controller; private readonly _registeredModules; private readonly _stateMachine; private _stateDB; private _moduleDB; private _abiHandler; private _engineProcess; private readonly _mutex; constructor(config?: PartialApplicationConfig); get channel(): InMemoryChannel; static defaultApplication(config?: PartialApplicationConfig, mainchain?: boolean): DefaultApplication; registerPlugin(plugin: BasePlugin<any>, options?: PluginConfig): void; registerModule(Module: BaseModule): void; registerInteroperableModule(interoperableModule: BaseInteroperableModule): void; getRegisteredModules(): BaseModule[]; getMetadata(): ModuleMetadataJSON[]; run(): Promise<void>; shutdown(errorCode?: number, message?: string): Promise<void>; generateGenesisBlock(input: GenesisBlockGenerateInput): Promise<Block>; private _registerModule; private _initLogger; private _rootEndpoints; private _setupDirectories; private _emptySocketsDirectory; private _validatePidFile; private _clearControllerPidFile; private _stopEngine; } export {};