UNPKG

lisk-framework

Version:

Lisk blockchain application platform

230 lines (229 loc) 5.83 kB
/// <reference types="node" /> export interface ABI { init(req: InitRequest): Promise<InitResponse>; initStateMachine(req: InitStateMachineRequest): Promise<InitStateMachineResponse>; initGenesisState(req: InitGenesisStateRequest): Promise<InitGenesisStateResponse>; insertAssets(req: InsertAssetsRequest): Promise<InsertAssetsResponse>; verifyAssets(req: VerifyAssetsRequest): Promise<VerifyAssetsResponse>; beforeTransactionsExecute(req: BeforeTransactionsExecuteRequest): Promise<BeforeTransactionsExecuteResponse>; afterTransactionsExecute(req: AfterTransactionsExecuteRequest): Promise<AfterTransactionsExecuteResponse>; verifyTransaction(req: VerifyTransactionRequest): Promise<VerifyTransactionResponse>; executeTransaction(req: ExecuteTransactionRequest): Promise<ExecuteTransactionResponse>; commit(req: CommitRequest): Promise<CommitResponse>; revert(req: RevertRequest): Promise<RevertResponse>; clear(req: ClearRequest): Promise<ClearResponse>; finalize(req: FinalizeRequest): Promise<FinalizeResponse>; getMetadata(req: MetadataRequest): Promise<MetadataResponse>; query(req: QueryRequest): Promise<QueryResponse>; prove(req: ProveRequest): Promise<ProveResponse>; } export interface AggregateCommit { height: number; aggregationBits: Buffer; certificateSignature: Buffer; } export interface BlockHeader { id: Buffer; version: number; timestamp: number; height: number; previousBlockID: Buffer; generatorAddress: Buffer; transactionRoot: Buffer; assetRoot: Buffer; eventRoot: Buffer; stateRoot: Buffer; maxHeightPrevoted: number; maxHeightGenerated: number; impliesMaxPrevotes: boolean; validatorsHash: Buffer; aggregateCommit: AggregateCommit; signature: Buffer; } export interface Transaction { module: string; command: string; nonce: bigint; fee: bigint; senderPublicKey: Buffer; params: Buffer; signatures: readonly Buffer[]; } export interface BlockAsset { module: string; data: Buffer; } export interface Block { header: BlockHeader; transactions: Transaction[]; assets: BlockAsset[]; } export interface Event { module: string; name: string; data: Buffer; topics: Buffer[]; index: number; height: number; } export interface Validator { address: Buffer; bftWeight: bigint; generatorKey: Buffer; blsKey: Buffer; } export interface InitRequest { chainID: Buffer; lastBlockHeight: number; lastStateRoot: Buffer; } export interface InitResponse { } export interface InitStateMachineRequest { header: BlockHeader; } export interface InitStateMachineResponse { contextID: Buffer; } export interface InitGenesisStateRequest { contextID: Buffer; stateRoot: Buffer; } export interface InitGenesisStateResponse { events: Event[]; preCommitThreshold: bigint; certificateThreshold: bigint; nextValidators: Validator[]; } export interface InsertAssetsRequest { contextID: Buffer; finalizedHeight: number; } export interface InsertAssetsResponse { assets: BlockAsset[]; } export interface VerifyAssetsRequest { contextID: Buffer; assets: BlockAsset[]; } export interface VerifyAssetsResponse { } export interface BeforeTransactionsExecuteRequest { contextID: Buffer; assets: BlockAsset[]; } export interface BeforeTransactionsExecuteResponse { events: Event[]; } export interface AfterTransactionsExecuteRequest { contextID: Buffer; assets: BlockAsset[]; transactions: Transaction[]; } export interface AfterTransactionsExecuteResponse { events: Event[]; preCommitThreshold: bigint; certificateThreshold: bigint; nextValidators: Validator[]; } export interface VerifyTransactionRequest { contextID: Buffer; header: BlockHeader; transaction: Transaction; onlyCommand: boolean; } export interface VerifyTransactionResponse { result: number; errorMessage: string; } export interface ExecuteTransactionRequest { contextID: Buffer; transaction: Transaction; assets: BlockAsset[]; dryRun: boolean; header: BlockHeader; } export interface ExecuteTransactionResponse { events: Event[]; result: number; } export interface CommitRequest { contextID: Buffer; stateRoot: Buffer; expectedStateRoot: Buffer; dryRun: boolean; } export interface CommitResponse { stateRoot: Buffer; } export interface RevertRequest { contextID: Buffer; stateRoot: Buffer; expectedStateRoot: Buffer; } export interface RevertResponse { stateRoot: Buffer; } export interface FinalizeRequest { finalizedHeight: number; } export interface FinalizeResponse { } export interface ClearRequest { } export interface ClearResponse { } export interface MetadataRequest { } export interface MetadataResponse { data: Buffer; } export interface QueryRequest { method: string; params: Buffer; header: BlockHeader; } export interface QueryResponse { data: Buffer; } export interface ProveRequest { stateRoot: Buffer; keys: Buffer[]; } export interface Proof { siblingHashes: Buffer[]; queries: QueryProof[]; } export interface ProofJSON { siblingHashes: string[]; queries: QueryProofJSON[]; } export interface QueryProof { key: Buffer; value: Buffer; bitmap: Buffer; } export interface QueryProofJSON { key: string; value: string; bitmap: string; } export interface ProveResponse { proof: Proof; } export interface ProveResponseJSON { proof: ProofJSON; } export interface IPCRequest { id: bigint; method: string; params: Buffer; } export interface IPCResponse { id: bigint; success: boolean; error: { message: string; }; result: Buffer; }