lisk-framework
Version:
Lisk blockchain application platform
230 lines (229 loc) • 5.83 kB
TypeScript
/// <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;
}