lisk-framework
Version:
Lisk blockchain application platform
61 lines (60 loc) • 2.49 kB
TypeScript
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 {};