// package: routerprotocol.routerchain.crosschain
// file: routerprotocol/routerchain/crosschain/ibc_receive_payload.proto

import * as jspb from "google-protobuf";

export class ReceivePayload extends jspb.Message {
  getVersion(): number;
  setVersion(value: number): void;

  getRouteAmount(): string;
  setRouteAmount(value: string): void;

  getRequestIdentifier(): number;
  setRequestIdentifier(value: number): void;

  getRequestSender(): string;
  setRequestSender(value: string): void;

  getSrcChainId(): string;
  setSrcChainId(value: string): void;

  getDestChainId(): string;
  setDestChainId(value: string): void;

  getRouteRecipient(): string;
  setRouteRecipient(value: string): void;

  getGatewayContractAddress(): string;
  setGatewayContractAddress(value: string): void;

  getRequestMetadata(): Uint8Array | string;
  getRequestMetadata_asU8(): Uint8Array;
  getRequestMetadata_asB64(): string;
  setRequestMetadata(value: Uint8Array | string): void;

  getRequestPacket(): Uint8Array | string;
  getRequestPacket_asU8(): Uint8Array;
  getRequestPacket_asB64(): string;
  setRequestPacket(value: Uint8Array | string): void;

  getBlockHeight(): number;
  setBlockHeight(value: number): void;

  getSrcTimestamp(): number;
  setSrcTimestamp(value: number): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): ReceivePayload.AsObject;
  static toObject(includeInstance: boolean, msg: ReceivePayload): ReceivePayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: ReceivePayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): ReceivePayload;
  static deserializeBinaryFromReader(message: ReceivePayload, reader: jspb.BinaryReader): ReceivePayload;
}

export namespace ReceivePayload {
  export type AsObject = {
    version: number,
    routeAmount: string,
    requestIdentifier: number,
    requestSender: string,
    srcChainId: string,
    destChainId: string,
    routeRecipient: string,
    gatewayContractAddress: string,
    requestMetadata: Uint8Array | string,
    requestPacket: Uint8Array | string,
    blockHeight: number,
    srcTimestamp: number,
  }
}

export class ReceiveMetadata extends jspb.Message {
  getFeePayerAddress(): string;
  setFeePayerAddress(value: string): void;

  getChainId(): string;
  setChainId(value: string): void;

  getGatewayContractAddress(): string;
  setGatewayContractAddress(value: string): void;

  getDappAddress(): string;
  setDappAddress(value: string): void;

  getRequestIdentifier(): number;
  setRequestIdentifier(value: number): void;

  getBlockHeight(): number;
  setBlockHeight(value: number): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): ReceiveMetadata.AsObject;
  static toObject(includeInstance: boolean, msg: ReceiveMetadata): ReceiveMetadata.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: ReceiveMetadata, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): ReceiveMetadata;
  static deserializeBinaryFromReader(message: ReceiveMetadata, reader: jspb.BinaryReader): ReceiveMetadata;
}

export namespace ReceiveMetadata {
  export type AsObject = {
    feePayerAddress: string,
    chainId: string,
    gatewayContractAddress: string,
    dappAddress: string,
    requestIdentifier: number,
    blockHeight: number,
  }
}

export class AckReceivePayload extends jspb.Message {
  getRequestIdentifier(): number;
  setRequestIdentifier(value: number): void;

  getAckRequestIdentifier(): number;
  setAckRequestIdentifier(value: number): void;

  getSrcChainId(): string;
  setSrcChainId(value: string): void;

  getDestChainId(): string;
  setDestChainId(value: string): void;

  getRequestSender(): string;
  setRequestSender(value: string): void;

  getExecData(): Uint8Array | string;
  getExecData_asU8(): Uint8Array;
  getExecData_asB64(): string;
  setExecData(value: Uint8Array | string): void;

  getExecStatus(): boolean;
  setExecStatus(value: boolean): void;

  getBlockHeight(): number;
  setBlockHeight(value: number): void;

  getGatewayContractAddress(): string;
  setGatewayContractAddress(value: string): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): AckReceivePayload.AsObject;
  static toObject(includeInstance: boolean, msg: AckReceivePayload): AckReceivePayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: AckReceivePayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): AckReceivePayload;
  static deserializeBinaryFromReader(message: AckReceivePayload, reader: jspb.BinaryReader): AckReceivePayload;
}

export namespace AckReceivePayload {
  export type AsObject = {
    requestIdentifier: number,
    ackRequestIdentifier: number,
    srcChainId: string,
    destChainId: string,
    requestSender: string,
    execData: Uint8Array | string,
    execStatus: boolean,
    blockHeight: number,
    gatewayContractAddress: string,
  }
}

export class AckReceiptPayload extends jspb.Message {
  getAckReceiptIdentifier(): number;
  setAckReceiptIdentifier(value: number): void;

  getAckRequestIdentifier(): number;
  setAckRequestIdentifier(value: number): void;

  getRequestIdentifier(): number;
  setRequestIdentifier(value: number): void;

  getAckReceiptSrcChainId(): string;
  setAckReceiptSrcChainId(value: string): void;

  getAckSrcChainId(): string;
  setAckSrcChainId(value: string): void;

  getAckExecData(): Uint8Array | string;
  getAckExecData_asU8(): Uint8Array;
  getAckExecData_asB64(): string;
  setAckExecData(value: Uint8Array | string): void;

  getAckExecStatus(): boolean;
  setAckExecStatus(value: boolean): void;

  getBlockHeight(): number;
  setBlockHeight(value: number): void;

  getGatewayContractAddress(): string;
  setGatewayContractAddress(value: string): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): AckReceiptPayload.AsObject;
  static toObject(includeInstance: boolean, msg: AckReceiptPayload): AckReceiptPayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: AckReceiptPayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): AckReceiptPayload;
  static deserializeBinaryFromReader(message: AckReceiptPayload, reader: jspb.BinaryReader): AckReceiptPayload;
}

export namespace AckReceiptPayload {
  export type AsObject = {
    ackReceiptIdentifier: number,
    ackRequestIdentifier: number,
    requestIdentifier: number,
    ackReceiptSrcChainId: string,
    ackSrcChainId: string,
    ackExecData: Uint8Array | string,
    ackExecStatus: boolean,
    blockHeight: number,
    gatewayContractAddress: string,
  }
}

export class IBCAckReceivePayload extends jspb.Message {
  hasAckReceivePayload(): boolean;
  clearAckReceivePayload(): void;
  getAckReceivePayload(): AckReceivePayload | undefined;
  setAckReceivePayload(value?: AckReceivePayload): void;

  hasAckReceiptPayload(): boolean;
  clearAckReceiptPayload(): void;
  getAckReceiptPayload(): AckReceiptPayload | undefined;
  setAckReceiptPayload(value?: AckReceiptPayload): void;

  getReceiveCase(): IBCAckReceivePayload.ReceiveCase;
  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): IBCAckReceivePayload.AsObject;
  static toObject(includeInstance: boolean, msg: IBCAckReceivePayload): IBCAckReceivePayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: IBCAckReceivePayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): IBCAckReceivePayload;
  static deserializeBinaryFromReader(message: IBCAckReceivePayload, reader: jspb.BinaryReader): IBCAckReceivePayload;
}

export namespace IBCAckReceivePayload {
  export type AsObject = {
    ackReceivePayload?: AckReceivePayload.AsObject,
    ackReceiptPayload?: AckReceiptPayload.AsObject,
  }

  export enum ReceiveCase {
    RECEIVE_NOT_SET = 0,
    ACK_RECEIVE_PAYLOAD = 1,
    ACK_RECEIPT_PAYLOAD = 2,
  }
}

export class IBCReceivePayload extends jspb.Message {
  hasReceivePayload(): boolean;
  clearReceivePayload(): void;
  getReceivePayload(): ReceivePayload | undefined;
  setReceivePayload(value?: ReceivePayload): void;

  hasReceiveMetadata(): boolean;
  clearReceiveMetadata(): void;
  getReceiveMetadata(): ReceiveMetadata | undefined;
  setReceiveMetadata(value?: ReceiveMetadata): void;

  getReceiveCase(): IBCReceivePayload.ReceiveCase;
  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): IBCReceivePayload.AsObject;
  static toObject(includeInstance: boolean, msg: IBCReceivePayload): IBCReceivePayload.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: IBCReceivePayload, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): IBCReceivePayload;
  static deserializeBinaryFromReader(message: IBCReceivePayload, reader: jspb.BinaryReader): IBCReceivePayload;
}

export namespace IBCReceivePayload {
  export type AsObject = {
    receivePayload?: ReceivePayload.AsObject,
    receiveMetadata?: ReceiveMetadata.AsObject,
  }

  export enum ReceiveCase {
    RECEIVE_NOT_SET = 0,
    RECEIVE_PAYLOAD = 1,
    RECEIVE_METADATA = 2,
  }
}

