UNPKG

lisk-framework

Version:

Lisk blockchain application platform

115 lines (114 loc) 5.18 kB
/// <reference types="node" /> import { CommandExecuteContext, CommandVerifyContext } from '../../state_machine'; import { BaseInteroperabilityCommand } from './base_interoperability_command'; import { BaseInteroperabilityInternalMethod } from './base_interoperability_internal_methods'; import { BaseInteroperabilityMethod } from './base_interoperability_method'; import { CCMStatusCode } from './constants'; import { CCMProcessedCode } from './events/ccm_processed'; import { CCMsg, CrossChainMessageContext, CrossChainUpdateTransactionParams, TokenMethod } from './types'; export declare abstract class BaseCrossChainUpdateCommand<T extends BaseInteroperabilityInternalMethod> extends BaseInteroperabilityCommand<T> { schema: { $id: string; type: string; required: string[]; properties: { sendingChainID: { dataType: string; fieldNumber: number; minLength: number; maxLength: number; }; certificate: { dataType: string; fieldNumber: number; }; activeValidatorsUpdate: { type: string; fieldNumber: number; required: string[]; properties: { blsKeysUpdate: { type: string; fieldNumber: number; items: { dataType: string; minLength: number; maxLength: number; }; }; bftWeightsUpdate: { type: string; fieldNumber: number; items: { dataType: string; }; }; bftWeightsUpdateBitmap: { dataType: string; fieldNumber: number; }; }; }; certificateThreshold: { dataType: string; fieldNumber: number; }; inboxUpdate: { type: string; fieldNumber: number; required: string[]; properties: { crossChainMessages: { type: string; fieldNumber: number; items: { dataType: string; }; }; messageWitnessHashes: { type: string; fieldNumber: number; items: { dataType: string; minLength: number; maxLength: number; }; }; outboxRootWitness: { type: string; fieldNumber: number; required: string[]; properties: { bitmap: { dataType: string; fieldNumber: number; }; siblingHashes: { type: string; fieldNumber: number; items: { dataType: string; minLength: number; maxLength: number; }; }; }; }; }; }; }; }; protected _tokenMethod: TokenMethod; protected _interopsMethod: BaseInteroperabilityMethod<T>; init(interopsMethod: BaseInteroperabilityMethod<T>, tokenMethod: TokenMethod): void; protected verifyCommon(context: CommandVerifyContext<CrossChainUpdateTransactionParams>, isMainchain: boolean): Promise<void>; protected beforeCrossChainMessagesExecution(context: CommandExecuteContext<CrossChainUpdateTransactionParams>, isMainchain: boolean): Promise<[CCMsg[], boolean]>; protected verifyRoutingRules(ccm: CCMsg, ccuParams: CrossChainUpdateTransactionParams, ownChainID: Buffer, isMainchain: boolean): void; protected afterCrossChainMessagesExecute(context: CommandExecuteContext<CrossChainUpdateTransactionParams>): Promise<void>; private _beforeCrossChainCommandExecute; private _afterCrossChainCommandExecute; protected apply(context: CrossChainMessageContext): Promise<void>; protected bounce(context: CrossChainMessageContext, ccmSize: number, ccmStatusCode: CCMStatusCode, ccmProcessedCode: CCMProcessedCode): Promise<void>; protected verifyCCM(context: CrossChainMessageContext, ccmID: Buffer): Promise<boolean>; protected verifyCertificateSignatureAndPartnerChainOutboxRoot(context: CommandExecuteContext<CrossChainUpdateTransactionParams>): Promise<void>; }