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

import * as jspb from "google-protobuf";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";

export class FundDepositEventPacket extends jspb.Message {
  getSrcChainId(): string;
  setSrcChainId(value: string): void;

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

  getContract(): string;
  setContract(value: string): void;

  getDepositId(): number;
  setDepositId(value: number): void;

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

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

  getAmount(): string;
  setAmount(value: string): void;

  getDestAmount(): string;
  setDestAmount(value: string): void;

  getSrcToken(): string;
  setSrcToken(value: string): void;

  getRecipient(): Uint8Array | string;
  getRecipient_asU8(): Uint8Array;
  getRecipient_asB64(): string;
  setRecipient(value: Uint8Array | string): void;

  getDepositor(): string;
  setDepositor(value: string): void;

  getPartnerId(): number;
  setPartnerId(value: number): void;

  getMessage(): Uint8Array | string;
  getMessage_asU8(): Uint8Array;
  getMessage_asB64(): string;
  setMessage(value: Uint8Array | string): void;

  getDepositWithMessage(): boolean;
  setDepositWithMessage(value: boolean): void;

  getDestToken(): Uint8Array | string;
  getDestToken_asU8(): Uint8Array;
  getDestToken_asB64(): string;
  setDestToken(value: Uint8Array | string): void;

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

export namespace FundDepositEventPacket {
  export type AsObject = {
    srcChainId: string,
    srcTimestamp: number,
    contract: string,
    depositId: number,
    blockHeight: number,
    destChainId: string,
    amount: string,
    destAmount: string,
    srcToken: string,
    recipient: Uint8Array | string,
    depositor: string,
    partnerId: number,
    message: Uint8Array | string,
    depositWithMessage: boolean,
    destToken: Uint8Array | string,
  }
}

export class FundPaidEventPacket extends jspb.Message {
  getSrcChainId(): string;
  setSrcChainId(value: string): void;

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

  getContract(): string;
  setContract(value: string): void;

  getEventNonce(): number;
  setEventNonce(value: number): void;

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

  getMessageHash(): Uint8Array | string;
  getMessageHash_asU8(): Uint8Array;
  getMessageHash_asB64(): string;
  setMessageHash(value: Uint8Array | string): void;

  getForwarder(): string;
  setForwarder(value: string): void;

  getForwarderRouterAddress(): string;
  setForwarderRouterAddress(value: string): void;

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

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

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

export namespace FundPaidEventPacket {
  export type AsObject = {
    srcChainId: string,
    srcTimestamp: number,
    contract: string,
    eventNonce: number,
    blockHeight: number,
    messageHash: Uint8Array | string,
    forwarder: string,
    forwarderRouterAddress: string,
    execData: Uint8Array | string,
    execStatus: boolean,
  }
}

export class DepositInfoUpdateEventPacket extends jspb.Message {
  getDepositId(): number;
  setDepositId(value: number): void;

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

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

  getContract(): string;
  setContract(value: string): void;

  getEventNonce(): number;
  setEventNonce(value: number): void;

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

  getFeeAmount(): string;
  setFeeAmount(value: string): void;

  getInitiateWithdrawal(): boolean;
  setInitiateWithdrawal(value: boolean): void;

  getSrcToken(): string;
  setSrcToken(value: string): void;

  getDepositor(): string;
  setDepositor(value: string): void;

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

export namespace DepositInfoUpdateEventPacket {
  export type AsObject = {
    depositId: number,
    srcChainId: string,
    srcTimestamp: number,
    contract: string,
    eventNonce: number,
    blockHeight: number,
    feeAmount: string,
    initiateWithdrawal: boolean,
    srcToken: string,
    depositor: string,
  }
}

export class IBCReceivePayload extends jspb.Message {
  hasFundDepositEventPacket(): boolean;
  clearFundDepositEventPacket(): void;
  getFundDepositEventPacket(): FundDepositEventPacket | undefined;
  setFundDepositEventPacket(value?: FundDepositEventPacket): void;

  hasFundPaidEventPacket(): boolean;
  clearFundPaidEventPacket(): void;
  getFundPaidEventPacket(): FundPaidEventPacket | undefined;
  setFundPaidEventPacket(value?: FundPaidEventPacket): void;

  hasDepositInfoUpdateEventPacket(): boolean;
  clearDepositInfoUpdateEventPacket(): void;
  getDepositInfoUpdateEventPacket(): DepositInfoUpdateEventPacket | undefined;
  setDepositInfoUpdateEventPacket(value?: DepositInfoUpdateEventPacket): void;

  getRequestCase(): IBCReceivePayload.RequestCase;
  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 = {
    fundDepositEventPacket?: FundDepositEventPacket.AsObject,
    fundPaidEventPacket?: FundPaidEventPacket.AsObject,
    depositInfoUpdateEventPacket?: DepositInfoUpdateEventPacket.AsObject,
  }

  export enum RequestCase {
    REQUEST_NOT_SET = 0,
    FUND_DEPOSIT_EVENT_PACKET = 1,
    FUND_PAID_EVENT_PACKET = 2,
    DEPOSIT_INFO_UPDATE_EVENT_PACKET = 3,
  }
}

