/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.20.3
 * source: ibc/core/channel/v1/tx.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./../../../../gogoproto/gogo";
import * as dependency_2 from "./../../../../cosmos/msg/v1/msg";
import * as dependency_3 from "./../../client/v1/client";
import * as dependency_4 from "./channel";
import * as dependency_5 from "./upgrade";
import * as pb_1 from "google-protobuf";
import * as grpc_1 from "@grpc/grpc-js";
export namespace ibc.core.channel.v1 {
    export enum ResponseResultType {
        RESPONSE_RESULT_TYPE_UNSPECIFIED = 0,
        RESPONSE_RESULT_TYPE_NOOP = 1,
        RESPONSE_RESULT_TYPE_SUCCESS = 2,
        RESPONSE_RESULT_TYPE_FAILURE = 3
    }
    export class MsgChannelOpenInit extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel?: dependency_4.ibc.core.channel.v1.Channel;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel" in data && data.channel != undefined) {
                    this.channel = data.channel;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Channel, 2) as dependency_4.ibc.core.channel.v1.Channel;
        }
        set channel(value: dependency_4.ibc.core.channel.v1.Channel) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_channel() {
            return pb_1.Message.getField(this, 2) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 3, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 3, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Channel.prototype.toObject>;
            signer?: string;
        }): MsgChannelOpenInit {
            const message = new MsgChannelOpenInit({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel != null) {
                message.channel = dependency_4.ibc.core.channel.v1.Channel.fromObject(data.channel);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Channel.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel != null) {
                data.channel = this.channel.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.has_channel)
                writer.writeMessage(2, this.channel, () => this.channel.serialize(writer));
            if (this.signer.length)
                writer.writeString(3, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenInit {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenInit();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        reader.readMessage(message.channel, () => message.channel = dependency_4.ibc.core.channel.v1.Channel.deserialize(reader));
                        break;
                    case 3:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenInit {
            return MsgChannelOpenInit.deserialize(bytes);
        }
    }
    export class MsgChannelOpenInitResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            channel_id?: string;
            version?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("version" in data && data.version != undefined) {
                    this.version = data.version;
                }
            }
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get version() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set version(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            channel_id?: string;
            version?: string;
        }): MsgChannelOpenInitResponse {
            const message = new MsgChannelOpenInitResponse({});
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.version != null) {
                message.version = data.version;
            }
            return message;
        }
        toObject() {
            const data: {
                channel_id?: string;
                version?: string;
            } = {};
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.version != null) {
                data.version = this.version;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.channel_id.length)
                writer.writeString(1, this.channel_id);
            if (this.version.length)
                writer.writeString(2, this.version);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenInitResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenInitResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.channel_id = reader.readString();
                        break;
                    case 2:
                        message.version = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenInitResponse {
            return MsgChannelOpenInitResponse.deserialize(bytes);
        }
    }
    export class MsgChannelOpenTry extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            /** @deprecated*/
            previous_channel_id?: string;
            channel?: dependency_4.ibc.core.channel.v1.Channel;
            counterparty_version?: string;
            proof_init?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("previous_channel_id" in data && data.previous_channel_id != undefined) {
                    this.previous_channel_id = data.previous_channel_id;
                }
                if ("channel" in data && data.channel != undefined) {
                    this.channel = data.channel;
                }
                if ("counterparty_version" in data && data.counterparty_version != undefined) {
                    this.counterparty_version = data.counterparty_version;
                }
                if ("proof_init" in data && data.proof_init != undefined) {
                    this.proof_init = data.proof_init;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        /** @deprecated*/
        get previous_channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        /** @deprecated*/
        set previous_channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get channel() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Channel, 3) as dependency_4.ibc.core.channel.v1.Channel;
        }
        set channel(value: dependency_4.ibc.core.channel.v1.Channel) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_channel() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get counterparty_version() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set counterparty_version(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        get proof_init() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set proof_init(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 6) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 6, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 6) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 7, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 7, value);
        }
        static fromObject(data: {
            port_id?: string;
            previous_channel_id?: string;
            channel?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Channel.prototype.toObject>;
            counterparty_version?: string;
            proof_init?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelOpenTry {
            const message = new MsgChannelOpenTry({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.previous_channel_id != null) {
                message.previous_channel_id = data.previous_channel_id;
            }
            if (data.channel != null) {
                message.channel = dependency_4.ibc.core.channel.v1.Channel.fromObject(data.channel);
            }
            if (data.counterparty_version != null) {
                message.counterparty_version = data.counterparty_version;
            }
            if (data.proof_init != null) {
                message.proof_init = data.proof_init;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                previous_channel_id?: string;
                channel?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Channel.prototype.toObject>;
                counterparty_version?: string;
                proof_init?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.previous_channel_id != null) {
                data.previous_channel_id = this.previous_channel_id;
            }
            if (this.channel != null) {
                data.channel = this.channel.toObject();
            }
            if (this.counterparty_version != null) {
                data.counterparty_version = this.counterparty_version;
            }
            if (this.proof_init != null) {
                data.proof_init = this.proof_init;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.previous_channel_id.length)
                writer.writeString(2, this.previous_channel_id);
            if (this.has_channel)
                writer.writeMessage(3, this.channel, () => this.channel.serialize(writer));
            if (this.counterparty_version.length)
                writer.writeString(4, this.counterparty_version);
            if (this.proof_init.length)
                writer.writeBytes(5, this.proof_init);
            if (this.has_proof_height)
                writer.writeMessage(6, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(7, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenTry {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenTry();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.previous_channel_id = reader.readString();
                        break;
                    case 3:
                        reader.readMessage(message.channel, () => message.channel = dependency_4.ibc.core.channel.v1.Channel.deserialize(reader));
                        break;
                    case 4:
                        message.counterparty_version = reader.readString();
                        break;
                    case 5:
                        message.proof_init = reader.readBytes();
                        break;
                    case 6:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 7:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenTry {
            return MsgChannelOpenTry.deserialize(bytes);
        }
    }
    export class MsgChannelOpenTryResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            version?: string;
            channel_id?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("version" in data && data.version != undefined) {
                    this.version = data.version;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
            }
        }
        get version() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set version(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            version?: string;
            channel_id?: string;
        }): MsgChannelOpenTryResponse {
            const message = new MsgChannelOpenTryResponse({});
            if (data.version != null) {
                message.version = data.version;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            return message;
        }
        toObject() {
            const data: {
                version?: string;
                channel_id?: string;
            } = {};
            if (this.version != null) {
                data.version = this.version;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.version.length)
                writer.writeString(1, this.version);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenTryResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenTryResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.version = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenTryResponse {
            return MsgChannelOpenTryResponse.deserialize(bytes);
        }
    }
    export class MsgChannelOpenAck extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            counterparty_channel_id?: string;
            counterparty_version?: string;
            proof_try?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("counterparty_channel_id" in data && data.counterparty_channel_id != undefined) {
                    this.counterparty_channel_id = data.counterparty_channel_id;
                }
                if ("counterparty_version" in data && data.counterparty_version != undefined) {
                    this.counterparty_version = data.counterparty_version;
                }
                if ("proof_try" in data && data.proof_try != undefined) {
                    this.proof_try = data.proof_try;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get counterparty_channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 3, "") as string;
        }
        set counterparty_channel_id(value: string) {
            pb_1.Message.setField(this, 3, value);
        }
        get counterparty_version() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set counterparty_version(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        get proof_try() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set proof_try(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 6) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 6, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 6) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 7, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 7, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            counterparty_channel_id?: string;
            counterparty_version?: string;
            proof_try?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelOpenAck {
            const message = new MsgChannelOpenAck({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.counterparty_channel_id != null) {
                message.counterparty_channel_id = data.counterparty_channel_id;
            }
            if (data.counterparty_version != null) {
                message.counterparty_version = data.counterparty_version;
            }
            if (data.proof_try != null) {
                message.proof_try = data.proof_try;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                counterparty_channel_id?: string;
                counterparty_version?: string;
                proof_try?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.counterparty_channel_id != null) {
                data.counterparty_channel_id = this.counterparty_channel_id;
            }
            if (this.counterparty_version != null) {
                data.counterparty_version = this.counterparty_version;
            }
            if (this.proof_try != null) {
                data.proof_try = this.proof_try;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.counterparty_channel_id.length)
                writer.writeString(3, this.counterparty_channel_id);
            if (this.counterparty_version.length)
                writer.writeString(4, this.counterparty_version);
            if (this.proof_try.length)
                writer.writeBytes(5, this.proof_try);
            if (this.has_proof_height)
                writer.writeMessage(6, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(7, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenAck {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenAck();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.counterparty_channel_id = reader.readString();
                        break;
                    case 4:
                        message.counterparty_version = reader.readString();
                        break;
                    case 5:
                        message.proof_try = reader.readBytes();
                        break;
                    case 6:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 7:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenAck {
            return MsgChannelOpenAck.deserialize(bytes);
        }
    }
    export class MsgChannelOpenAckResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelOpenAckResponse {
            const message = new MsgChannelOpenAckResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenAckResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenAckResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenAckResponse {
            return MsgChannelOpenAckResponse.deserialize(bytes);
        }
    }
    export class MsgChannelOpenConfirm extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            proof_ack?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("proof_ack" in data && data.proof_ack != undefined) {
                    this.proof_ack = data.proof_ack;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_ack() {
            return pb_1.Message.getFieldWithDefault(this, 3, new Uint8Array(0)) as Uint8Array;
        }
        set proof_ack(value: Uint8Array) {
            pb_1.Message.setField(this, 3, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 4) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 5, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 5, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            proof_ack?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelOpenConfirm {
            const message = new MsgChannelOpenConfirm({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.proof_ack != null) {
                message.proof_ack = data.proof_ack;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                proof_ack?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.proof_ack != null) {
                data.proof_ack = this.proof_ack;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.proof_ack.length)
                writer.writeBytes(3, this.proof_ack);
            if (this.has_proof_height)
                writer.writeMessage(4, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(5, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenConfirm {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenConfirm();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.proof_ack = reader.readBytes();
                        break;
                    case 4:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 5:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenConfirm {
            return MsgChannelOpenConfirm.deserialize(bytes);
        }
    }
    export class MsgChannelOpenConfirmResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelOpenConfirmResponse {
            const message = new MsgChannelOpenConfirmResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelOpenConfirmResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelOpenConfirmResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelOpenConfirmResponse {
            return MsgChannelOpenConfirmResponse.deserialize(bytes);
        }
    }
    export class MsgChannelCloseInit extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 3, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 3, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            signer?: string;
        }): MsgChannelCloseInit {
            const message = new MsgChannelCloseInit({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.signer.length)
                writer.writeString(3, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelCloseInit {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelCloseInit();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelCloseInit {
            return MsgChannelCloseInit.deserialize(bytes);
        }
    }
    export class MsgChannelCloseInitResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelCloseInitResponse {
            const message = new MsgChannelCloseInitResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelCloseInitResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelCloseInitResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelCloseInitResponse {
            return MsgChannelCloseInitResponse.deserialize(bytes);
        }
    }
    export class MsgChannelCloseConfirm extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            proof_init?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
            counterparty_upgrade_sequence?: number;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("proof_init" in data && data.proof_init != undefined) {
                    this.proof_init = data.proof_init;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
                if ("counterparty_upgrade_sequence" in data && data.counterparty_upgrade_sequence != undefined) {
                    this.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_init() {
            return pb_1.Message.getFieldWithDefault(this, 3, new Uint8Array(0)) as Uint8Array;
        }
        set proof_init(value: Uint8Array) {
            pb_1.Message.setField(this, 3, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 4) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 5, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 5, value);
        }
        get counterparty_upgrade_sequence() {
            return pb_1.Message.getFieldWithDefault(this, 6, 0) as number;
        }
        set counterparty_upgrade_sequence(value: number) {
            pb_1.Message.setField(this, 6, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            proof_init?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
            counterparty_upgrade_sequence?: number;
        }): MsgChannelCloseConfirm {
            const message = new MsgChannelCloseConfirm({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.proof_init != null) {
                message.proof_init = data.proof_init;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            if (data.counterparty_upgrade_sequence != null) {
                message.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                proof_init?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
                counterparty_upgrade_sequence?: number;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.proof_init != null) {
                data.proof_init = this.proof_init;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            if (this.counterparty_upgrade_sequence != null) {
                data.counterparty_upgrade_sequence = this.counterparty_upgrade_sequence;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.proof_init.length)
                writer.writeBytes(3, this.proof_init);
            if (this.has_proof_height)
                writer.writeMessage(4, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(5, this.signer);
            if (this.counterparty_upgrade_sequence != 0)
                writer.writeUint64(6, this.counterparty_upgrade_sequence);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelCloseConfirm {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelCloseConfirm();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.proof_init = reader.readBytes();
                        break;
                    case 4:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 5:
                        message.signer = reader.readString();
                        break;
                    case 6:
                        message.counterparty_upgrade_sequence = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelCloseConfirm {
            return MsgChannelCloseConfirm.deserialize(bytes);
        }
    }
    export class MsgChannelCloseConfirmResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelCloseConfirmResponse {
            const message = new MsgChannelCloseConfirmResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelCloseConfirmResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelCloseConfirmResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelCloseConfirmResponse {
            return MsgChannelCloseConfirmResponse.deserialize(bytes);
        }
    }
    export class MsgRecvPacket extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            packet?: dependency_4.ibc.core.channel.v1.Packet;
            proof_commitment?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("packet" in data && data.packet != undefined) {
                    this.packet = data.packet;
                }
                if ("proof_commitment" in data && data.proof_commitment != undefined) {
                    this.proof_commitment = data.proof_commitment;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get packet() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Packet, 1) as dependency_4.ibc.core.channel.v1.Packet;
        }
        set packet(value: dependency_4.ibc.core.channel.v1.Packet) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_packet() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get proof_commitment() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set proof_commitment(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 3) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
            proof_commitment?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgRecvPacket {
            const message = new MsgRecvPacket({});
            if (data.packet != null) {
                message.packet = dependency_4.ibc.core.channel.v1.Packet.fromObject(data.packet);
            }
            if (data.proof_commitment != null) {
                message.proof_commitment = data.proof_commitment;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
                proof_commitment?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.packet != null) {
                data.packet = this.packet.toObject();
            }
            if (this.proof_commitment != null) {
                data.proof_commitment = this.proof_commitment;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_packet)
                writer.writeMessage(1, this.packet, () => this.packet.serialize(writer));
            if (this.proof_commitment.length)
                writer.writeBytes(2, this.proof_commitment);
            if (this.has_proof_height)
                writer.writeMessage(3, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(4, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgRecvPacket {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgRecvPacket();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.packet, () => message.packet = dependency_4.ibc.core.channel.v1.Packet.deserialize(reader));
                        break;
                    case 2:
                        message.proof_commitment = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 4:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgRecvPacket {
            return MsgRecvPacket.deserialize(bytes);
        }
    }
    export class MsgRecvPacketResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 1, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            result?: ResponseResultType;
        }): MsgRecvPacketResponse {
            const message = new MsgRecvPacketResponse({});
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                result?: ResponseResultType;
            } = {};
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(1, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgRecvPacketResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgRecvPacketResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgRecvPacketResponse {
            return MsgRecvPacketResponse.deserialize(bytes);
        }
    }
    export class MsgTimeout extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            packet?: dependency_4.ibc.core.channel.v1.Packet;
            proof_unreceived?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            next_sequence_recv?: number;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("packet" in data && data.packet != undefined) {
                    this.packet = data.packet;
                }
                if ("proof_unreceived" in data && data.proof_unreceived != undefined) {
                    this.proof_unreceived = data.proof_unreceived;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("next_sequence_recv" in data && data.next_sequence_recv != undefined) {
                    this.next_sequence_recv = data.next_sequence_recv;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get packet() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Packet, 1) as dependency_4.ibc.core.channel.v1.Packet;
        }
        set packet(value: dependency_4.ibc.core.channel.v1.Packet) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_packet() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get proof_unreceived() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set proof_unreceived(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 3) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get next_sequence_recv() {
            return pb_1.Message.getFieldWithDefault(this, 4, 0) as number;
        }
        set next_sequence_recv(value: number) {
            pb_1.Message.setField(this, 4, value);
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 5, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 5, value);
        }
        static fromObject(data: {
            packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
            proof_unreceived?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            next_sequence_recv?: number;
            signer?: string;
        }): MsgTimeout {
            const message = new MsgTimeout({});
            if (data.packet != null) {
                message.packet = dependency_4.ibc.core.channel.v1.Packet.fromObject(data.packet);
            }
            if (data.proof_unreceived != null) {
                message.proof_unreceived = data.proof_unreceived;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.next_sequence_recv != null) {
                message.next_sequence_recv = data.next_sequence_recv;
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
                proof_unreceived?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                next_sequence_recv?: number;
                signer?: string;
            } = {};
            if (this.packet != null) {
                data.packet = this.packet.toObject();
            }
            if (this.proof_unreceived != null) {
                data.proof_unreceived = this.proof_unreceived;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.next_sequence_recv != null) {
                data.next_sequence_recv = this.next_sequence_recv;
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_packet)
                writer.writeMessage(1, this.packet, () => this.packet.serialize(writer));
            if (this.proof_unreceived.length)
                writer.writeBytes(2, this.proof_unreceived);
            if (this.has_proof_height)
                writer.writeMessage(3, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.next_sequence_recv != 0)
                writer.writeUint64(4, this.next_sequence_recv);
            if (this.signer.length)
                writer.writeString(5, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgTimeout {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgTimeout();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.packet, () => message.packet = dependency_4.ibc.core.channel.v1.Packet.deserialize(reader));
                        break;
                    case 2:
                        message.proof_unreceived = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 4:
                        message.next_sequence_recv = reader.readUint64();
                        break;
                    case 5:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgTimeout {
            return MsgTimeout.deserialize(bytes);
        }
    }
    export class MsgTimeoutResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 1, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            result?: ResponseResultType;
        }): MsgTimeoutResponse {
            const message = new MsgTimeoutResponse({});
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                result?: ResponseResultType;
            } = {};
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(1, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgTimeoutResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgTimeoutResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgTimeoutResponse {
            return MsgTimeoutResponse.deserialize(bytes);
        }
    }
    export class MsgTimeoutOnClose extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            packet?: dependency_4.ibc.core.channel.v1.Packet;
            proof_unreceived?: Uint8Array;
            proof_close?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            next_sequence_recv?: number;
            signer?: string;
            counterparty_upgrade_sequence?: number;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("packet" in data && data.packet != undefined) {
                    this.packet = data.packet;
                }
                if ("proof_unreceived" in data && data.proof_unreceived != undefined) {
                    this.proof_unreceived = data.proof_unreceived;
                }
                if ("proof_close" in data && data.proof_close != undefined) {
                    this.proof_close = data.proof_close;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("next_sequence_recv" in data && data.next_sequence_recv != undefined) {
                    this.next_sequence_recv = data.next_sequence_recv;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
                if ("counterparty_upgrade_sequence" in data && data.counterparty_upgrade_sequence != undefined) {
                    this.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
                }
            }
        }
        get packet() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Packet, 1) as dependency_4.ibc.core.channel.v1.Packet;
        }
        set packet(value: dependency_4.ibc.core.channel.v1.Packet) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_packet() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get proof_unreceived() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set proof_unreceived(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_close() {
            return pb_1.Message.getFieldWithDefault(this, 3, new Uint8Array(0)) as Uint8Array;
        }
        set proof_close(value: Uint8Array) {
            pb_1.Message.setField(this, 3, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 4) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get next_sequence_recv() {
            return pb_1.Message.getFieldWithDefault(this, 5, 0) as number;
        }
        set next_sequence_recv(value: number) {
            pb_1.Message.setField(this, 5, value);
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 6, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 6, value);
        }
        get counterparty_upgrade_sequence() {
            return pb_1.Message.getFieldWithDefault(this, 7, 0) as number;
        }
        set counterparty_upgrade_sequence(value: number) {
            pb_1.Message.setField(this, 7, value);
        }
        static fromObject(data: {
            packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
            proof_unreceived?: Uint8Array;
            proof_close?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            next_sequence_recv?: number;
            signer?: string;
            counterparty_upgrade_sequence?: number;
        }): MsgTimeoutOnClose {
            const message = new MsgTimeoutOnClose({});
            if (data.packet != null) {
                message.packet = dependency_4.ibc.core.channel.v1.Packet.fromObject(data.packet);
            }
            if (data.proof_unreceived != null) {
                message.proof_unreceived = data.proof_unreceived;
            }
            if (data.proof_close != null) {
                message.proof_close = data.proof_close;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.next_sequence_recv != null) {
                message.next_sequence_recv = data.next_sequence_recv;
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            if (data.counterparty_upgrade_sequence != null) {
                message.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
            }
            return message;
        }
        toObject() {
            const data: {
                packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
                proof_unreceived?: Uint8Array;
                proof_close?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                next_sequence_recv?: number;
                signer?: string;
                counterparty_upgrade_sequence?: number;
            } = {};
            if (this.packet != null) {
                data.packet = this.packet.toObject();
            }
            if (this.proof_unreceived != null) {
                data.proof_unreceived = this.proof_unreceived;
            }
            if (this.proof_close != null) {
                data.proof_close = this.proof_close;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.next_sequence_recv != null) {
                data.next_sequence_recv = this.next_sequence_recv;
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            if (this.counterparty_upgrade_sequence != null) {
                data.counterparty_upgrade_sequence = this.counterparty_upgrade_sequence;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_packet)
                writer.writeMessage(1, this.packet, () => this.packet.serialize(writer));
            if (this.proof_unreceived.length)
                writer.writeBytes(2, this.proof_unreceived);
            if (this.proof_close.length)
                writer.writeBytes(3, this.proof_close);
            if (this.has_proof_height)
                writer.writeMessage(4, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.next_sequence_recv != 0)
                writer.writeUint64(5, this.next_sequence_recv);
            if (this.signer.length)
                writer.writeString(6, this.signer);
            if (this.counterparty_upgrade_sequence != 0)
                writer.writeUint64(7, this.counterparty_upgrade_sequence);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgTimeoutOnClose {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgTimeoutOnClose();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.packet, () => message.packet = dependency_4.ibc.core.channel.v1.Packet.deserialize(reader));
                        break;
                    case 2:
                        message.proof_unreceived = reader.readBytes();
                        break;
                    case 3:
                        message.proof_close = reader.readBytes();
                        break;
                    case 4:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 5:
                        message.next_sequence_recv = reader.readUint64();
                        break;
                    case 6:
                        message.signer = reader.readString();
                        break;
                    case 7:
                        message.counterparty_upgrade_sequence = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgTimeoutOnClose {
            return MsgTimeoutOnClose.deserialize(bytes);
        }
    }
    export class MsgTimeoutOnCloseResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 1, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            result?: ResponseResultType;
        }): MsgTimeoutOnCloseResponse {
            const message = new MsgTimeoutOnCloseResponse({});
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                result?: ResponseResultType;
            } = {};
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(1, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgTimeoutOnCloseResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgTimeoutOnCloseResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgTimeoutOnCloseResponse {
            return MsgTimeoutOnCloseResponse.deserialize(bytes);
        }
    }
    export class MsgAcknowledgement extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            packet?: dependency_4.ibc.core.channel.v1.Packet;
            acknowledgement?: Uint8Array;
            proof_acked?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("packet" in data && data.packet != undefined) {
                    this.packet = data.packet;
                }
                if ("acknowledgement" in data && data.acknowledgement != undefined) {
                    this.acknowledgement = data.acknowledgement;
                }
                if ("proof_acked" in data && data.proof_acked != undefined) {
                    this.proof_acked = data.proof_acked;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get packet() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Packet, 1) as dependency_4.ibc.core.channel.v1.Packet;
        }
        set packet(value: dependency_4.ibc.core.channel.v1.Packet) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_packet() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get acknowledgement() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set acknowledgement(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_acked() {
            return pb_1.Message.getFieldWithDefault(this, 3, new Uint8Array(0)) as Uint8Array;
        }
        set proof_acked(value: Uint8Array) {
            pb_1.Message.setField(this, 3, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 4) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 5, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 5, value);
        }
        static fromObject(data: {
            packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
            acknowledgement?: Uint8Array;
            proof_acked?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgAcknowledgement {
            const message = new MsgAcknowledgement({});
            if (data.packet != null) {
                message.packet = dependency_4.ibc.core.channel.v1.Packet.fromObject(data.packet);
            }
            if (data.acknowledgement != null) {
                message.acknowledgement = data.acknowledgement;
            }
            if (data.proof_acked != null) {
                message.proof_acked = data.proof_acked;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                packet?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Packet.prototype.toObject>;
                acknowledgement?: Uint8Array;
                proof_acked?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.packet != null) {
                data.packet = this.packet.toObject();
            }
            if (this.acknowledgement != null) {
                data.acknowledgement = this.acknowledgement;
            }
            if (this.proof_acked != null) {
                data.proof_acked = this.proof_acked;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_packet)
                writer.writeMessage(1, this.packet, () => this.packet.serialize(writer));
            if (this.acknowledgement.length)
                writer.writeBytes(2, this.acknowledgement);
            if (this.proof_acked.length)
                writer.writeBytes(3, this.proof_acked);
            if (this.has_proof_height)
                writer.writeMessage(4, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(5, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgAcknowledgement {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgAcknowledgement();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.packet, () => message.packet = dependency_4.ibc.core.channel.v1.Packet.deserialize(reader));
                        break;
                    case 2:
                        message.acknowledgement = reader.readBytes();
                        break;
                    case 3:
                        message.proof_acked = reader.readBytes();
                        break;
                    case 4:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 5:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgAcknowledgement {
            return MsgAcknowledgement.deserialize(bytes);
        }
    }
    export class MsgAcknowledgementResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 1, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            result?: ResponseResultType;
        }): MsgAcknowledgementResponse {
            const message = new MsgAcknowledgementResponse({});
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                result?: ResponseResultType;
            } = {};
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(1, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgAcknowledgementResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgAcknowledgementResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgAcknowledgementResponse {
            return MsgAcknowledgementResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeInit extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            fields?: dependency_5.ibc.core.channel.v1.UpgradeFields;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("fields" in data && data.fields != undefined) {
                    this.fields = data.fields;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get fields() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.UpgradeFields, 3) as dependency_5.ibc.core.channel.v1.UpgradeFields;
        }
        set fields(value: dependency_5.ibc.core.channel.v1.UpgradeFields) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_fields() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            fields?: ReturnType<typeof dependency_5.ibc.core.channel.v1.UpgradeFields.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeInit {
            const message = new MsgChannelUpgradeInit({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.fields != null) {
                message.fields = dependency_5.ibc.core.channel.v1.UpgradeFields.fromObject(data.fields);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                fields?: ReturnType<typeof dependency_5.ibc.core.channel.v1.UpgradeFields.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.fields != null) {
                data.fields = this.fields.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.has_fields)
                writer.writeMessage(3, this.fields, () => this.fields.serialize(writer));
            if (this.signer.length)
                writer.writeString(4, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeInit {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeInit();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        reader.readMessage(message.fields, () => message.fields = dependency_5.ibc.core.channel.v1.UpgradeFields.deserialize(reader));
                        break;
                    case 4:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeInit {
            return MsgChannelUpgradeInit.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeInitResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            upgrade?: dependency_5.ibc.core.channel.v1.Upgrade;
            upgrade_sequence?: number;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("upgrade" in data && data.upgrade != undefined) {
                    this.upgrade = data.upgrade;
                }
                if ("upgrade_sequence" in data && data.upgrade_sequence != undefined) {
                    this.upgrade_sequence = data.upgrade_sequence;
                }
            }
        }
        get upgrade() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.Upgrade, 1) as dependency_5.ibc.core.channel.v1.Upgrade;
        }
        set upgrade(value: dependency_5.ibc.core.channel.v1.Upgrade) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_upgrade() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get upgrade_sequence() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
        }
        set upgrade_sequence(value: number) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
            upgrade_sequence?: number;
        }): MsgChannelUpgradeInitResponse {
            const message = new MsgChannelUpgradeInitResponse({});
            if (data.upgrade != null) {
                message.upgrade = dependency_5.ibc.core.channel.v1.Upgrade.fromObject(data.upgrade);
            }
            if (data.upgrade_sequence != null) {
                message.upgrade_sequence = data.upgrade_sequence;
            }
            return message;
        }
        toObject() {
            const data: {
                upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
                upgrade_sequence?: number;
            } = {};
            if (this.upgrade != null) {
                data.upgrade = this.upgrade.toObject();
            }
            if (this.upgrade_sequence != null) {
                data.upgrade_sequence = this.upgrade_sequence;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_upgrade)
                writer.writeMessage(1, this.upgrade, () => this.upgrade.serialize(writer));
            if (this.upgrade_sequence != 0)
                writer.writeUint64(2, this.upgrade_sequence);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeInitResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeInitResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.upgrade, () => message.upgrade = dependency_5.ibc.core.channel.v1.Upgrade.deserialize(reader));
                        break;
                    case 2:
                        message.upgrade_sequence = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeInitResponse {
            return MsgChannelUpgradeInitResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeTry extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            proposed_upgrade_connection_hops?: string[];
            counterparty_upgrade_fields?: dependency_5.ibc.core.channel.v1.UpgradeFields;
            counterparty_upgrade_sequence?: number;
            proof_channel?: Uint8Array;
            proof_upgrade?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("proposed_upgrade_connection_hops" in data && data.proposed_upgrade_connection_hops != undefined) {
                    this.proposed_upgrade_connection_hops = data.proposed_upgrade_connection_hops;
                }
                if ("counterparty_upgrade_fields" in data && data.counterparty_upgrade_fields != undefined) {
                    this.counterparty_upgrade_fields = data.counterparty_upgrade_fields;
                }
                if ("counterparty_upgrade_sequence" in data && data.counterparty_upgrade_sequence != undefined) {
                    this.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
                }
                if ("proof_channel" in data && data.proof_channel != undefined) {
                    this.proof_channel = data.proof_channel;
                }
                if ("proof_upgrade" in data && data.proof_upgrade != undefined) {
                    this.proof_upgrade = data.proof_upgrade;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get proposed_upgrade_connection_hops() {
            return pb_1.Message.getFieldWithDefault(this, 3, []) as string[];
        }
        set proposed_upgrade_connection_hops(value: string[]) {
            pb_1.Message.setField(this, 3, value);
        }
        get counterparty_upgrade_fields() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.UpgradeFields, 4) as dependency_5.ibc.core.channel.v1.UpgradeFields;
        }
        set counterparty_upgrade_fields(value: dependency_5.ibc.core.channel.v1.UpgradeFields) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_counterparty_upgrade_fields() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get counterparty_upgrade_sequence() {
            return pb_1.Message.getFieldWithDefault(this, 5, 0) as number;
        }
        set counterparty_upgrade_sequence(value: number) {
            pb_1.Message.setField(this, 5, value);
        }
        get proof_channel() {
            return pb_1.Message.getFieldWithDefault(this, 6, new Uint8Array(0)) as Uint8Array;
        }
        set proof_channel(value: Uint8Array) {
            pb_1.Message.setField(this, 6, value);
        }
        get proof_upgrade() {
            return pb_1.Message.getFieldWithDefault(this, 7, new Uint8Array(0)) as Uint8Array;
        }
        set proof_upgrade(value: Uint8Array) {
            pb_1.Message.setField(this, 7, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 8) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 8, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 8) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 9, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 9, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            proposed_upgrade_connection_hops?: string[];
            counterparty_upgrade_fields?: ReturnType<typeof dependency_5.ibc.core.channel.v1.UpgradeFields.prototype.toObject>;
            counterparty_upgrade_sequence?: number;
            proof_channel?: Uint8Array;
            proof_upgrade?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeTry {
            const message = new MsgChannelUpgradeTry({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.proposed_upgrade_connection_hops != null) {
                message.proposed_upgrade_connection_hops = data.proposed_upgrade_connection_hops;
            }
            if (data.counterparty_upgrade_fields != null) {
                message.counterparty_upgrade_fields = dependency_5.ibc.core.channel.v1.UpgradeFields.fromObject(data.counterparty_upgrade_fields);
            }
            if (data.counterparty_upgrade_sequence != null) {
                message.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
            }
            if (data.proof_channel != null) {
                message.proof_channel = data.proof_channel;
            }
            if (data.proof_upgrade != null) {
                message.proof_upgrade = data.proof_upgrade;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                proposed_upgrade_connection_hops?: string[];
                counterparty_upgrade_fields?: ReturnType<typeof dependency_5.ibc.core.channel.v1.UpgradeFields.prototype.toObject>;
                counterparty_upgrade_sequence?: number;
                proof_channel?: Uint8Array;
                proof_upgrade?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.proposed_upgrade_connection_hops != null) {
                data.proposed_upgrade_connection_hops = this.proposed_upgrade_connection_hops;
            }
            if (this.counterparty_upgrade_fields != null) {
                data.counterparty_upgrade_fields = this.counterparty_upgrade_fields.toObject();
            }
            if (this.counterparty_upgrade_sequence != null) {
                data.counterparty_upgrade_sequence = this.counterparty_upgrade_sequence;
            }
            if (this.proof_channel != null) {
                data.proof_channel = this.proof_channel;
            }
            if (this.proof_upgrade != null) {
                data.proof_upgrade = this.proof_upgrade;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.proposed_upgrade_connection_hops.length)
                writer.writeRepeatedString(3, this.proposed_upgrade_connection_hops);
            if (this.has_counterparty_upgrade_fields)
                writer.writeMessage(4, this.counterparty_upgrade_fields, () => this.counterparty_upgrade_fields.serialize(writer));
            if (this.counterparty_upgrade_sequence != 0)
                writer.writeUint64(5, this.counterparty_upgrade_sequence);
            if (this.proof_channel.length)
                writer.writeBytes(6, this.proof_channel);
            if (this.proof_upgrade.length)
                writer.writeBytes(7, this.proof_upgrade);
            if (this.has_proof_height)
                writer.writeMessage(8, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(9, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeTry {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeTry();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        pb_1.Message.addToRepeatedField(message, 3, reader.readString());
                        break;
                    case 4:
                        reader.readMessage(message.counterparty_upgrade_fields, () => message.counterparty_upgrade_fields = dependency_5.ibc.core.channel.v1.UpgradeFields.deserialize(reader));
                        break;
                    case 5:
                        message.counterparty_upgrade_sequence = reader.readUint64();
                        break;
                    case 6:
                        message.proof_channel = reader.readBytes();
                        break;
                    case 7:
                        message.proof_upgrade = reader.readBytes();
                        break;
                    case 8:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 9:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeTry {
            return MsgChannelUpgradeTry.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeTryResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            upgrade?: dependency_5.ibc.core.channel.v1.Upgrade;
            upgrade_sequence?: number;
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("upgrade" in data && data.upgrade != undefined) {
                    this.upgrade = data.upgrade;
                }
                if ("upgrade_sequence" in data && data.upgrade_sequence != undefined) {
                    this.upgrade_sequence = data.upgrade_sequence;
                }
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get upgrade() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.Upgrade, 1) as dependency_5.ibc.core.channel.v1.Upgrade;
        }
        set upgrade(value: dependency_5.ibc.core.channel.v1.Upgrade) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_upgrade() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get upgrade_sequence() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
        }
        set upgrade_sequence(value: number) {
            pb_1.Message.setField(this, 2, value);
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 3, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 3, value);
        }
        static fromObject(data: {
            upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
            upgrade_sequence?: number;
            result?: ResponseResultType;
        }): MsgChannelUpgradeTryResponse {
            const message = new MsgChannelUpgradeTryResponse({});
            if (data.upgrade != null) {
                message.upgrade = dependency_5.ibc.core.channel.v1.Upgrade.fromObject(data.upgrade);
            }
            if (data.upgrade_sequence != null) {
                message.upgrade_sequence = data.upgrade_sequence;
            }
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
                upgrade_sequence?: number;
                result?: ResponseResultType;
            } = {};
            if (this.upgrade != null) {
                data.upgrade = this.upgrade.toObject();
            }
            if (this.upgrade_sequence != null) {
                data.upgrade_sequence = this.upgrade_sequence;
            }
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_upgrade)
                writer.writeMessage(1, this.upgrade, () => this.upgrade.serialize(writer));
            if (this.upgrade_sequence != 0)
                writer.writeUint64(2, this.upgrade_sequence);
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(3, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeTryResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeTryResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.upgrade, () => message.upgrade = dependency_5.ibc.core.channel.v1.Upgrade.deserialize(reader));
                        break;
                    case 2:
                        message.upgrade_sequence = reader.readUint64();
                        break;
                    case 3:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeTryResponse {
            return MsgChannelUpgradeTryResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeAck extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            counterparty_upgrade?: dependency_5.ibc.core.channel.v1.Upgrade;
            proof_channel?: Uint8Array;
            proof_upgrade?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("counterparty_upgrade" in data && data.counterparty_upgrade != undefined) {
                    this.counterparty_upgrade = data.counterparty_upgrade;
                }
                if ("proof_channel" in data && data.proof_channel != undefined) {
                    this.proof_channel = data.proof_channel;
                }
                if ("proof_upgrade" in data && data.proof_upgrade != undefined) {
                    this.proof_upgrade = data.proof_upgrade;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get counterparty_upgrade() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.Upgrade, 3) as dependency_5.ibc.core.channel.v1.Upgrade;
        }
        set counterparty_upgrade(value: dependency_5.ibc.core.channel.v1.Upgrade) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_counterparty_upgrade() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get proof_channel() {
            return pb_1.Message.getFieldWithDefault(this, 4, new Uint8Array(0)) as Uint8Array;
        }
        set proof_channel(value: Uint8Array) {
            pb_1.Message.setField(this, 4, value);
        }
        get proof_upgrade() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set proof_upgrade(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 6) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 6, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 6) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 7, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 7, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            counterparty_upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
            proof_channel?: Uint8Array;
            proof_upgrade?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeAck {
            const message = new MsgChannelUpgradeAck({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.counterparty_upgrade != null) {
                message.counterparty_upgrade = dependency_5.ibc.core.channel.v1.Upgrade.fromObject(data.counterparty_upgrade);
            }
            if (data.proof_channel != null) {
                message.proof_channel = data.proof_channel;
            }
            if (data.proof_upgrade != null) {
                message.proof_upgrade = data.proof_upgrade;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                counterparty_upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
                proof_channel?: Uint8Array;
                proof_upgrade?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.counterparty_upgrade != null) {
                data.counterparty_upgrade = this.counterparty_upgrade.toObject();
            }
            if (this.proof_channel != null) {
                data.proof_channel = this.proof_channel;
            }
            if (this.proof_upgrade != null) {
                data.proof_upgrade = this.proof_upgrade;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.has_counterparty_upgrade)
                writer.writeMessage(3, this.counterparty_upgrade, () => this.counterparty_upgrade.serialize(writer));
            if (this.proof_channel.length)
                writer.writeBytes(4, this.proof_channel);
            if (this.proof_upgrade.length)
                writer.writeBytes(5, this.proof_upgrade);
            if (this.has_proof_height)
                writer.writeMessage(6, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(7, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeAck {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeAck();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        reader.readMessage(message.counterparty_upgrade, () => message.counterparty_upgrade = dependency_5.ibc.core.channel.v1.Upgrade.deserialize(reader));
                        break;
                    case 4:
                        message.proof_channel = reader.readBytes();
                        break;
                    case 5:
                        message.proof_upgrade = reader.readBytes();
                        break;
                    case 6:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 7:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeAck {
            return MsgChannelUpgradeAck.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeAckResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 1, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            result?: ResponseResultType;
        }): MsgChannelUpgradeAckResponse {
            const message = new MsgChannelUpgradeAckResponse({});
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                result?: ResponseResultType;
            } = {};
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(1, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeAckResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeAckResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeAckResponse {
            return MsgChannelUpgradeAckResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeConfirm extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            counterparty_channel_state?: dependency_4.ibc.core.channel.v1.State;
            counterparty_upgrade?: dependency_5.ibc.core.channel.v1.Upgrade;
            proof_channel?: Uint8Array;
            proof_upgrade?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("counterparty_channel_state" in data && data.counterparty_channel_state != undefined) {
                    this.counterparty_channel_state = data.counterparty_channel_state;
                }
                if ("counterparty_upgrade" in data && data.counterparty_upgrade != undefined) {
                    this.counterparty_upgrade = data.counterparty_upgrade;
                }
                if ("proof_channel" in data && data.proof_channel != undefined) {
                    this.proof_channel = data.proof_channel;
                }
                if ("proof_upgrade" in data && data.proof_upgrade != undefined) {
                    this.proof_upgrade = data.proof_upgrade;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get counterparty_channel_state() {
            return pb_1.Message.getFieldWithDefault(this, 3, dependency_4.ibc.core.channel.v1.State.STATE_UNINITIALIZED_UNSPECIFIED) as dependency_4.ibc.core.channel.v1.State;
        }
        set counterparty_channel_state(value: dependency_4.ibc.core.channel.v1.State) {
            pb_1.Message.setField(this, 3, value);
        }
        get counterparty_upgrade() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.Upgrade, 4) as dependency_5.ibc.core.channel.v1.Upgrade;
        }
        set counterparty_upgrade(value: dependency_5.ibc.core.channel.v1.Upgrade) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_counterparty_upgrade() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get proof_channel() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set proof_channel(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        get proof_upgrade() {
            return pb_1.Message.getFieldWithDefault(this, 6, new Uint8Array(0)) as Uint8Array;
        }
        set proof_upgrade(value: Uint8Array) {
            pb_1.Message.setField(this, 6, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 7) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 7, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 7) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 8, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 8, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            counterparty_channel_state?: dependency_4.ibc.core.channel.v1.State;
            counterparty_upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
            proof_channel?: Uint8Array;
            proof_upgrade?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeConfirm {
            const message = new MsgChannelUpgradeConfirm({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.counterparty_channel_state != null) {
                message.counterparty_channel_state = data.counterparty_channel_state;
            }
            if (data.counterparty_upgrade != null) {
                message.counterparty_upgrade = dependency_5.ibc.core.channel.v1.Upgrade.fromObject(data.counterparty_upgrade);
            }
            if (data.proof_channel != null) {
                message.proof_channel = data.proof_channel;
            }
            if (data.proof_upgrade != null) {
                message.proof_upgrade = data.proof_upgrade;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                counterparty_channel_state?: dependency_4.ibc.core.channel.v1.State;
                counterparty_upgrade?: ReturnType<typeof dependency_5.ibc.core.channel.v1.Upgrade.prototype.toObject>;
                proof_channel?: Uint8Array;
                proof_upgrade?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.counterparty_channel_state != null) {
                data.counterparty_channel_state = this.counterparty_channel_state;
            }
            if (this.counterparty_upgrade != null) {
                data.counterparty_upgrade = this.counterparty_upgrade.toObject();
            }
            if (this.proof_channel != null) {
                data.proof_channel = this.proof_channel;
            }
            if (this.proof_upgrade != null) {
                data.proof_upgrade = this.proof_upgrade;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.counterparty_channel_state != dependency_4.ibc.core.channel.v1.State.STATE_UNINITIALIZED_UNSPECIFIED)
                writer.writeEnum(3, this.counterparty_channel_state);
            if (this.has_counterparty_upgrade)
                writer.writeMessage(4, this.counterparty_upgrade, () => this.counterparty_upgrade.serialize(writer));
            if (this.proof_channel.length)
                writer.writeBytes(5, this.proof_channel);
            if (this.proof_upgrade.length)
                writer.writeBytes(6, this.proof_upgrade);
            if (this.has_proof_height)
                writer.writeMessage(7, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(8, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeConfirm {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeConfirm();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.counterparty_channel_state = reader.readEnum();
                        break;
                    case 4:
                        reader.readMessage(message.counterparty_upgrade, () => message.counterparty_upgrade = dependency_5.ibc.core.channel.v1.Upgrade.deserialize(reader));
                        break;
                    case 5:
                        message.proof_channel = reader.readBytes();
                        break;
                    case 6:
                        message.proof_upgrade = reader.readBytes();
                        break;
                    case 7:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 8:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeConfirm {
            return MsgChannelUpgradeConfirm.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeConfirmResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            result?: ResponseResultType;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("result" in data && data.result != undefined) {
                    this.result = data.result;
                }
            }
        }
        get result() {
            return pb_1.Message.getFieldWithDefault(this, 1, ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED) as ResponseResultType;
        }
        set result(value: ResponseResultType) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            result?: ResponseResultType;
        }): MsgChannelUpgradeConfirmResponse {
            const message = new MsgChannelUpgradeConfirmResponse({});
            if (data.result != null) {
                message.result = data.result;
            }
            return message;
        }
        toObject() {
            const data: {
                result?: ResponseResultType;
            } = {};
            if (this.result != null) {
                data.result = this.result;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.result != ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED)
                writer.writeEnum(1, this.result);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeConfirmResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeConfirmResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.result = reader.readEnum();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeConfirmResponse {
            return MsgChannelUpgradeConfirmResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeOpen extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            counterparty_channel_state?: dependency_4.ibc.core.channel.v1.State;
            counterparty_upgrade_sequence?: number;
            proof_channel?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("counterparty_channel_state" in data && data.counterparty_channel_state != undefined) {
                    this.counterparty_channel_state = data.counterparty_channel_state;
                }
                if ("counterparty_upgrade_sequence" in data && data.counterparty_upgrade_sequence != undefined) {
                    this.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
                }
                if ("proof_channel" in data && data.proof_channel != undefined) {
                    this.proof_channel = data.proof_channel;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get counterparty_channel_state() {
            return pb_1.Message.getFieldWithDefault(this, 3, dependency_4.ibc.core.channel.v1.State.STATE_UNINITIALIZED_UNSPECIFIED) as dependency_4.ibc.core.channel.v1.State;
        }
        set counterparty_channel_state(value: dependency_4.ibc.core.channel.v1.State) {
            pb_1.Message.setField(this, 3, value);
        }
        get counterparty_upgrade_sequence() {
            return pb_1.Message.getFieldWithDefault(this, 4, 0) as number;
        }
        set counterparty_upgrade_sequence(value: number) {
            pb_1.Message.setField(this, 4, value);
        }
        get proof_channel() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set proof_channel(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 6) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 6, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 6) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 7, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 7, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            counterparty_channel_state?: dependency_4.ibc.core.channel.v1.State;
            counterparty_upgrade_sequence?: number;
            proof_channel?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeOpen {
            const message = new MsgChannelUpgradeOpen({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.counterparty_channel_state != null) {
                message.counterparty_channel_state = data.counterparty_channel_state;
            }
            if (data.counterparty_upgrade_sequence != null) {
                message.counterparty_upgrade_sequence = data.counterparty_upgrade_sequence;
            }
            if (data.proof_channel != null) {
                message.proof_channel = data.proof_channel;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                counterparty_channel_state?: dependency_4.ibc.core.channel.v1.State;
                counterparty_upgrade_sequence?: number;
                proof_channel?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.counterparty_channel_state != null) {
                data.counterparty_channel_state = this.counterparty_channel_state;
            }
            if (this.counterparty_upgrade_sequence != null) {
                data.counterparty_upgrade_sequence = this.counterparty_upgrade_sequence;
            }
            if (this.proof_channel != null) {
                data.proof_channel = this.proof_channel;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.counterparty_channel_state != dependency_4.ibc.core.channel.v1.State.STATE_UNINITIALIZED_UNSPECIFIED)
                writer.writeEnum(3, this.counterparty_channel_state);
            if (this.counterparty_upgrade_sequence != 0)
                writer.writeUint64(4, this.counterparty_upgrade_sequence);
            if (this.proof_channel.length)
                writer.writeBytes(5, this.proof_channel);
            if (this.has_proof_height)
                writer.writeMessage(6, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(7, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeOpen {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeOpen();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.counterparty_channel_state = reader.readEnum();
                        break;
                    case 4:
                        message.counterparty_upgrade_sequence = reader.readUint64();
                        break;
                    case 5:
                        message.proof_channel = reader.readBytes();
                        break;
                    case 6:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 7:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeOpen {
            return MsgChannelUpgradeOpen.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeOpenResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelUpgradeOpenResponse {
            const message = new MsgChannelUpgradeOpenResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeOpenResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeOpenResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeOpenResponse {
            return MsgChannelUpgradeOpenResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeTimeout extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            counterparty_channel?: dependency_4.ibc.core.channel.v1.Channel;
            proof_channel?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("counterparty_channel" in data && data.counterparty_channel != undefined) {
                    this.counterparty_channel = data.counterparty_channel;
                }
                if ("proof_channel" in data && data.proof_channel != undefined) {
                    this.proof_channel = data.proof_channel;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get counterparty_channel() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Channel, 3) as dependency_4.ibc.core.channel.v1.Channel;
        }
        set counterparty_channel(value: dependency_4.ibc.core.channel.v1.Channel) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_counterparty_channel() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get proof_channel() {
            return pb_1.Message.getFieldWithDefault(this, 4, new Uint8Array(0)) as Uint8Array;
        }
        set proof_channel(value: Uint8Array) {
            pb_1.Message.setField(this, 4, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 5) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 5, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 5) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 6, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 6, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            counterparty_channel?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Channel.prototype.toObject>;
            proof_channel?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeTimeout {
            const message = new MsgChannelUpgradeTimeout({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.counterparty_channel != null) {
                message.counterparty_channel = dependency_4.ibc.core.channel.v1.Channel.fromObject(data.counterparty_channel);
            }
            if (data.proof_channel != null) {
                message.proof_channel = data.proof_channel;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                counterparty_channel?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Channel.prototype.toObject>;
                proof_channel?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.counterparty_channel != null) {
                data.counterparty_channel = this.counterparty_channel.toObject();
            }
            if (this.proof_channel != null) {
                data.proof_channel = this.proof_channel;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.has_counterparty_channel)
                writer.writeMessage(3, this.counterparty_channel, () => this.counterparty_channel.serialize(writer));
            if (this.proof_channel.length)
                writer.writeBytes(4, this.proof_channel);
            if (this.has_proof_height)
                writer.writeMessage(5, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(6, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeTimeout {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeTimeout();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        reader.readMessage(message.counterparty_channel, () => message.counterparty_channel = dependency_4.ibc.core.channel.v1.Channel.deserialize(reader));
                        break;
                    case 4:
                        message.proof_channel = reader.readBytes();
                        break;
                    case 5:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 6:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeTimeout {
            return MsgChannelUpgradeTimeout.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeTimeoutResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelUpgradeTimeoutResponse {
            const message = new MsgChannelUpgradeTimeoutResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeTimeoutResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeTimeoutResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeTimeoutResponse {
            return MsgChannelUpgradeTimeoutResponse.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeCancel extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            error_receipt?: dependency_5.ibc.core.channel.v1.ErrorReceipt;
            proof_error_receipt?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("error_receipt" in data && data.error_receipt != undefined) {
                    this.error_receipt = data.error_receipt;
                }
                if ("proof_error_receipt" in data && data.proof_error_receipt != undefined) {
                    this.proof_error_receipt = data.proof_error_receipt;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get error_receipt() {
            return pb_1.Message.getWrapperField(this, dependency_5.ibc.core.channel.v1.ErrorReceipt, 3) as dependency_5.ibc.core.channel.v1.ErrorReceipt;
        }
        set error_receipt(value: dependency_5.ibc.core.channel.v1.ErrorReceipt) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_error_receipt() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get proof_error_receipt() {
            return pb_1.Message.getFieldWithDefault(this, 4, new Uint8Array(0)) as Uint8Array;
        }
        set proof_error_receipt(value: Uint8Array) {
            pb_1.Message.setField(this, 4, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 5) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 5, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 5) != null;
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 6, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 6, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            error_receipt?: ReturnType<typeof dependency_5.ibc.core.channel.v1.ErrorReceipt.prototype.toObject>;
            proof_error_receipt?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            signer?: string;
        }): MsgChannelUpgradeCancel {
            const message = new MsgChannelUpgradeCancel({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.error_receipt != null) {
                message.error_receipt = dependency_5.ibc.core.channel.v1.ErrorReceipt.fromObject(data.error_receipt);
            }
            if (data.proof_error_receipt != null) {
                message.proof_error_receipt = data.proof_error_receipt;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                error_receipt?: ReturnType<typeof dependency_5.ibc.core.channel.v1.ErrorReceipt.prototype.toObject>;
                proof_error_receipt?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.error_receipt != null) {
                data.error_receipt = this.error_receipt.toObject();
            }
            if (this.proof_error_receipt != null) {
                data.proof_error_receipt = this.proof_error_receipt;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.has_error_receipt)
                writer.writeMessage(3, this.error_receipt, () => this.error_receipt.serialize(writer));
            if (this.proof_error_receipt.length)
                writer.writeBytes(4, this.proof_error_receipt);
            if (this.has_proof_height)
                writer.writeMessage(5, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.signer.length)
                writer.writeString(6, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeCancel {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeCancel();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        reader.readMessage(message.error_receipt, () => message.error_receipt = dependency_5.ibc.core.channel.v1.ErrorReceipt.deserialize(reader));
                        break;
                    case 4:
                        message.proof_error_receipt = reader.readBytes();
                        break;
                    case 5:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 6:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeCancel {
            return MsgChannelUpgradeCancel.deserialize(bytes);
        }
    }
    export class MsgChannelUpgradeCancelResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgChannelUpgradeCancelResponse {
            const message = new MsgChannelUpgradeCancelResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgChannelUpgradeCancelResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgChannelUpgradeCancelResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgChannelUpgradeCancelResponse {
            return MsgChannelUpgradeCancelResponse.deserialize(bytes);
        }
    }
    export class MsgUpdateParams extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            authority?: string;
            params?: dependency_4.ibc.core.channel.v1.Params;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("authority" in data && data.authority != undefined) {
                    this.authority = data.authority;
                }
                if ("params" in data && data.params != undefined) {
                    this.params = data.params;
                }
            }
        }
        get authority() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set authority(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get params() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.channel.v1.Params, 2) as dependency_4.ibc.core.channel.v1.Params;
        }
        set params(value: dependency_4.ibc.core.channel.v1.Params) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_params() {
            return pb_1.Message.getField(this, 2) != null;
        }
        static fromObject(data: {
            authority?: string;
            params?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Params.prototype.toObject>;
        }): MsgUpdateParams {
            const message = new MsgUpdateParams({});
            if (data.authority != null) {
                message.authority = data.authority;
            }
            if (data.params != null) {
                message.params = dependency_4.ibc.core.channel.v1.Params.fromObject(data.params);
            }
            return message;
        }
        toObject() {
            const data: {
                authority?: string;
                params?: ReturnType<typeof dependency_4.ibc.core.channel.v1.Params.prototype.toObject>;
            } = {};
            if (this.authority != null) {
                data.authority = this.authority;
            }
            if (this.params != null) {
                data.params = this.params.toObject();
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.authority.length)
                writer.writeString(1, this.authority);
            if (this.has_params)
                writer.writeMessage(2, this.params, () => this.params.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgUpdateParams {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgUpdateParams();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.authority = reader.readString();
                        break;
                    case 2:
                        reader.readMessage(message.params, () => message.params = dependency_4.ibc.core.channel.v1.Params.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgUpdateParams {
            return MsgUpdateParams.deserialize(bytes);
        }
    }
    export class MsgUpdateParamsResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgUpdateParamsResponse {
            const message = new MsgUpdateParamsResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgUpdateParamsResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgUpdateParamsResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgUpdateParamsResponse {
            return MsgUpdateParamsResponse.deserialize(bytes);
        }
    }
    export class MsgPruneAcknowledgements extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            port_id?: string;
            channel_id?: string;
            limit?: number;
            signer?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("port_id" in data && data.port_id != undefined) {
                    this.port_id = data.port_id;
                }
                if ("channel_id" in data && data.channel_id != undefined) {
                    this.channel_id = data.channel_id;
                }
                if ("limit" in data && data.limit != undefined) {
                    this.limit = data.limit;
                }
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
            }
        }
        get port_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set port_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get channel_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set channel_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get limit() {
            return pb_1.Message.getFieldWithDefault(this, 3, 0) as number;
        }
        set limit(value: number) {
            pb_1.Message.setField(this, 3, value);
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            port_id?: string;
            channel_id?: string;
            limit?: number;
            signer?: string;
        }): MsgPruneAcknowledgements {
            const message = new MsgPruneAcknowledgements({});
            if (data.port_id != null) {
                message.port_id = data.port_id;
            }
            if (data.channel_id != null) {
                message.channel_id = data.channel_id;
            }
            if (data.limit != null) {
                message.limit = data.limit;
            }
            if (data.signer != null) {
                message.signer = data.signer;
            }
            return message;
        }
        toObject() {
            const data: {
                port_id?: string;
                channel_id?: string;
                limit?: number;
                signer?: string;
            } = {};
            if (this.port_id != null) {
                data.port_id = this.port_id;
            }
            if (this.channel_id != null) {
                data.channel_id = this.channel_id;
            }
            if (this.limit != null) {
                data.limit = this.limit;
            }
            if (this.signer != null) {
                data.signer = this.signer;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.port_id.length)
                writer.writeString(1, this.port_id);
            if (this.channel_id.length)
                writer.writeString(2, this.channel_id);
            if (this.limit != 0)
                writer.writeUint64(3, this.limit);
            if (this.signer.length)
                writer.writeString(4, this.signer);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgPruneAcknowledgements {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgPruneAcknowledgements();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.port_id = reader.readString();
                        break;
                    case 2:
                        message.channel_id = reader.readString();
                        break;
                    case 3:
                        message.limit = reader.readUint64();
                        break;
                    case 4:
                        message.signer = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgPruneAcknowledgements {
            return MsgPruneAcknowledgements.deserialize(bytes);
        }
    }
    export class MsgPruneAcknowledgementsResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            total_pruned_sequences?: number;
            total_remaining_sequences?: number;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("total_pruned_sequences" in data && data.total_pruned_sequences != undefined) {
                    this.total_pruned_sequences = data.total_pruned_sequences;
                }
                if ("total_remaining_sequences" in data && data.total_remaining_sequences != undefined) {
                    this.total_remaining_sequences = data.total_remaining_sequences;
                }
            }
        }
        get total_pruned_sequences() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
        }
        set total_pruned_sequences(value: number) {
            pb_1.Message.setField(this, 1, value);
        }
        get total_remaining_sequences() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
        }
        set total_remaining_sequences(value: number) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            total_pruned_sequences?: number;
            total_remaining_sequences?: number;
        }): MsgPruneAcknowledgementsResponse {
            const message = new MsgPruneAcknowledgementsResponse({});
            if (data.total_pruned_sequences != null) {
                message.total_pruned_sequences = data.total_pruned_sequences;
            }
            if (data.total_remaining_sequences != null) {
                message.total_remaining_sequences = data.total_remaining_sequences;
            }
            return message;
        }
        toObject() {
            const data: {
                total_pruned_sequences?: number;
                total_remaining_sequences?: number;
            } = {};
            if (this.total_pruned_sequences != null) {
                data.total_pruned_sequences = this.total_pruned_sequences;
            }
            if (this.total_remaining_sequences != null) {
                data.total_remaining_sequences = this.total_remaining_sequences;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.total_pruned_sequences != 0)
                writer.writeUint64(1, this.total_pruned_sequences);
            if (this.total_remaining_sequences != 0)
                writer.writeUint64(2, this.total_remaining_sequences);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgPruneAcknowledgementsResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgPruneAcknowledgementsResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.total_pruned_sequences = reader.readUint64();
                        break;
                    case 2:
                        message.total_remaining_sequences = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgPruneAcknowledgementsResponse {
            return MsgPruneAcknowledgementsResponse.deserialize(bytes);
        }
    }
    interface GrpcUnaryServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
    }
    interface GrpcStreamServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
        (message: P, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
    }
    interface GrpWritableServiceInterface<P, R> {
        (metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
        (metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
        (options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
        (callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
    }
    interface GrpcChunkServiceInterface<P, R> {
        (metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream<P, R>;
        (options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream<P, R>;
    }
    interface GrpcPromiseServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): Promise<R>;
        (message: P, options?: grpc_1.CallOptions): Promise<R>;
    }
    export abstract class UnimplementedMsgService {
        static definition = {
            ChannelOpenInit: {
                path: "/ibc.core.channel.v1.Msg/ChannelOpenInit",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelOpenInit) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelOpenInit.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelOpenInitResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelOpenInitResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelOpenTry: {
                path: "/ibc.core.channel.v1.Msg/ChannelOpenTry",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelOpenTry) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelOpenTry.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelOpenTryResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelOpenTryResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelOpenAck: {
                path: "/ibc.core.channel.v1.Msg/ChannelOpenAck",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelOpenAck) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelOpenAck.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelOpenAckResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelOpenAckResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelOpenConfirm: {
                path: "/ibc.core.channel.v1.Msg/ChannelOpenConfirm",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelOpenConfirm) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelOpenConfirm.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelOpenConfirmResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelOpenConfirmResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelCloseInit: {
                path: "/ibc.core.channel.v1.Msg/ChannelCloseInit",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelCloseInit) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelCloseInit.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelCloseInitResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelCloseInitResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelCloseConfirm: {
                path: "/ibc.core.channel.v1.Msg/ChannelCloseConfirm",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelCloseConfirm) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelCloseConfirm.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelCloseConfirmResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelCloseConfirmResponse.deserialize(new Uint8Array(bytes))
            },
            RecvPacket: {
                path: "/ibc.core.channel.v1.Msg/RecvPacket",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgRecvPacket) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgRecvPacket.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgRecvPacketResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgRecvPacketResponse.deserialize(new Uint8Array(bytes))
            },
            Timeout: {
                path: "/ibc.core.channel.v1.Msg/Timeout",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgTimeout) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgTimeout.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgTimeoutResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgTimeoutResponse.deserialize(new Uint8Array(bytes))
            },
            TimeoutOnClose: {
                path: "/ibc.core.channel.v1.Msg/TimeoutOnClose",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgTimeoutOnClose) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgTimeoutOnClose.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgTimeoutOnCloseResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgTimeoutOnCloseResponse.deserialize(new Uint8Array(bytes))
            },
            Acknowledgement: {
                path: "/ibc.core.channel.v1.Msg/Acknowledgement",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgAcknowledgement) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgAcknowledgement.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgAcknowledgementResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgAcknowledgementResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeInit: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeInit",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeInit) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeInit.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeInitResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeInitResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeTry: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeTry",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeTry) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeTry.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeTryResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeTryResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeAck: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeAck",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeAck) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeAck.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeAckResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeAckResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeConfirm: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeConfirm",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeConfirm) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeConfirm.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeConfirmResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeConfirmResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeOpen: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeOpen",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeOpen) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeOpen.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeOpenResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeOpenResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeTimeout: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeTimeout",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeTimeout) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeTimeout.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeTimeoutResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeTimeoutResponse.deserialize(new Uint8Array(bytes))
            },
            ChannelUpgradeCancel: {
                path: "/ibc.core.channel.v1.Msg/ChannelUpgradeCancel",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgChannelUpgradeCancel) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgChannelUpgradeCancel.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgChannelUpgradeCancelResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgChannelUpgradeCancelResponse.deserialize(new Uint8Array(bytes))
            },
            UpdateChannelParams: {
                path: "/ibc.core.channel.v1.Msg/UpdateChannelParams",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgUpdateParams) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgUpdateParams.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgUpdateParamsResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgUpdateParamsResponse.deserialize(new Uint8Array(bytes))
            },
            PruneAcknowledgements: {
                path: "/ibc.core.channel.v1.Msg/PruneAcknowledgements",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgPruneAcknowledgements) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgPruneAcknowledgements.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgPruneAcknowledgementsResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgPruneAcknowledgementsResponse.deserialize(new Uint8Array(bytes))
            }
        };
        [method: string]: grpc_1.UntypedHandleCall;
        abstract ChannelOpenInit(call: grpc_1.ServerUnaryCall<MsgChannelOpenInit, MsgChannelOpenInitResponse>, callback: grpc_1.sendUnaryData<MsgChannelOpenInitResponse>): void;
        abstract ChannelOpenTry(call: grpc_1.ServerUnaryCall<MsgChannelOpenTry, MsgChannelOpenTryResponse>, callback: grpc_1.sendUnaryData<MsgChannelOpenTryResponse>): void;
        abstract ChannelOpenAck(call: grpc_1.ServerUnaryCall<MsgChannelOpenAck, MsgChannelOpenAckResponse>, callback: grpc_1.sendUnaryData<MsgChannelOpenAckResponse>): void;
        abstract ChannelOpenConfirm(call: grpc_1.ServerUnaryCall<MsgChannelOpenConfirm, MsgChannelOpenConfirmResponse>, callback: grpc_1.sendUnaryData<MsgChannelOpenConfirmResponse>): void;
        abstract ChannelCloseInit(call: grpc_1.ServerUnaryCall<MsgChannelCloseInit, MsgChannelCloseInitResponse>, callback: grpc_1.sendUnaryData<MsgChannelCloseInitResponse>): void;
        abstract ChannelCloseConfirm(call: grpc_1.ServerUnaryCall<MsgChannelCloseConfirm, MsgChannelCloseConfirmResponse>, callback: grpc_1.sendUnaryData<MsgChannelCloseConfirmResponse>): void;
        abstract RecvPacket(call: grpc_1.ServerUnaryCall<MsgRecvPacket, MsgRecvPacketResponse>, callback: grpc_1.sendUnaryData<MsgRecvPacketResponse>): void;
        abstract Timeout(call: grpc_1.ServerUnaryCall<MsgTimeout, MsgTimeoutResponse>, callback: grpc_1.sendUnaryData<MsgTimeoutResponse>): void;
        abstract TimeoutOnClose(call: grpc_1.ServerUnaryCall<MsgTimeoutOnClose, MsgTimeoutOnCloseResponse>, callback: grpc_1.sendUnaryData<MsgTimeoutOnCloseResponse>): void;
        abstract Acknowledgement(call: grpc_1.ServerUnaryCall<MsgAcknowledgement, MsgAcknowledgementResponse>, callback: grpc_1.sendUnaryData<MsgAcknowledgementResponse>): void;
        abstract ChannelUpgradeInit(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeInit, MsgChannelUpgradeInitResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeInitResponse>): void;
        abstract ChannelUpgradeTry(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeTry, MsgChannelUpgradeTryResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeTryResponse>): void;
        abstract ChannelUpgradeAck(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeAck, MsgChannelUpgradeAckResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeAckResponse>): void;
        abstract ChannelUpgradeConfirm(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeConfirm, MsgChannelUpgradeConfirmResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeConfirmResponse>): void;
        abstract ChannelUpgradeOpen(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeOpen, MsgChannelUpgradeOpenResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeOpenResponse>): void;
        abstract ChannelUpgradeTimeout(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeTimeout, MsgChannelUpgradeTimeoutResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeTimeoutResponse>): void;
        abstract ChannelUpgradeCancel(call: grpc_1.ServerUnaryCall<MsgChannelUpgradeCancel, MsgChannelUpgradeCancelResponse>, callback: grpc_1.sendUnaryData<MsgChannelUpgradeCancelResponse>): void;
        abstract UpdateChannelParams(call: grpc_1.ServerUnaryCall<MsgUpdateParams, MsgUpdateParamsResponse>, callback: grpc_1.sendUnaryData<MsgUpdateParamsResponse>): void;
        abstract PruneAcknowledgements(call: grpc_1.ServerUnaryCall<MsgPruneAcknowledgements, MsgPruneAcknowledgementsResponse>, callback: grpc_1.sendUnaryData<MsgPruneAcknowledgementsResponse>): void;
    }
    export class MsgClient extends grpc_1.makeGenericClientConstructor(UnimplementedMsgService.definition, "Msg", {}) {
        constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial<grpc_1.ChannelOptions>) {
            super(address, credentials, options);
        }
        ChannelOpenInit: GrpcUnaryServiceInterface<MsgChannelOpenInit, MsgChannelOpenInitResponse> = (message: MsgChannelOpenInit, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenInitResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenInitResponse>, callback?: grpc_1.requestCallback<MsgChannelOpenInitResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelOpenInit(message, metadata, options, callback);
        };
        ChannelOpenTry: GrpcUnaryServiceInterface<MsgChannelOpenTry, MsgChannelOpenTryResponse> = (message: MsgChannelOpenTry, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenTryResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenTryResponse>, callback?: grpc_1.requestCallback<MsgChannelOpenTryResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelOpenTry(message, metadata, options, callback);
        };
        ChannelOpenAck: GrpcUnaryServiceInterface<MsgChannelOpenAck, MsgChannelOpenAckResponse> = (message: MsgChannelOpenAck, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenAckResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenAckResponse>, callback?: grpc_1.requestCallback<MsgChannelOpenAckResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelOpenAck(message, metadata, options, callback);
        };
        ChannelOpenConfirm: GrpcUnaryServiceInterface<MsgChannelOpenConfirm, MsgChannelOpenConfirmResponse> = (message: MsgChannelOpenConfirm, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenConfirmResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelOpenConfirmResponse>, callback?: grpc_1.requestCallback<MsgChannelOpenConfirmResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelOpenConfirm(message, metadata, options, callback);
        };
        ChannelCloseInit: GrpcUnaryServiceInterface<MsgChannelCloseInit, MsgChannelCloseInitResponse> = (message: MsgChannelCloseInit, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelCloseInitResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelCloseInitResponse>, callback?: grpc_1.requestCallback<MsgChannelCloseInitResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelCloseInit(message, metadata, options, callback);
        };
        ChannelCloseConfirm: GrpcUnaryServiceInterface<MsgChannelCloseConfirm, MsgChannelCloseConfirmResponse> = (message: MsgChannelCloseConfirm, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelCloseConfirmResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelCloseConfirmResponse>, callback?: grpc_1.requestCallback<MsgChannelCloseConfirmResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelCloseConfirm(message, metadata, options, callback);
        };
        RecvPacket: GrpcUnaryServiceInterface<MsgRecvPacket, MsgRecvPacketResponse> = (message: MsgRecvPacket, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgRecvPacketResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgRecvPacketResponse>, callback?: grpc_1.requestCallback<MsgRecvPacketResponse>): grpc_1.ClientUnaryCall => {
            return super.RecvPacket(message, metadata, options, callback);
        };
        Timeout: GrpcUnaryServiceInterface<MsgTimeout, MsgTimeoutResponse> = (message: MsgTimeout, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgTimeoutResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgTimeoutResponse>, callback?: grpc_1.requestCallback<MsgTimeoutResponse>): grpc_1.ClientUnaryCall => {
            return super.Timeout(message, metadata, options, callback);
        };
        TimeoutOnClose: GrpcUnaryServiceInterface<MsgTimeoutOnClose, MsgTimeoutOnCloseResponse> = (message: MsgTimeoutOnClose, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgTimeoutOnCloseResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgTimeoutOnCloseResponse>, callback?: grpc_1.requestCallback<MsgTimeoutOnCloseResponse>): grpc_1.ClientUnaryCall => {
            return super.TimeoutOnClose(message, metadata, options, callback);
        };
        Acknowledgement: GrpcUnaryServiceInterface<MsgAcknowledgement, MsgAcknowledgementResponse> = (message: MsgAcknowledgement, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgAcknowledgementResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgAcknowledgementResponse>, callback?: grpc_1.requestCallback<MsgAcknowledgementResponse>): grpc_1.ClientUnaryCall => {
            return super.Acknowledgement(message, metadata, options, callback);
        };
        ChannelUpgradeInit: GrpcUnaryServiceInterface<MsgChannelUpgradeInit, MsgChannelUpgradeInitResponse> = (message: MsgChannelUpgradeInit, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeInitResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeInitResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeInitResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeInit(message, metadata, options, callback);
        };
        ChannelUpgradeTry: GrpcUnaryServiceInterface<MsgChannelUpgradeTry, MsgChannelUpgradeTryResponse> = (message: MsgChannelUpgradeTry, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeTryResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeTryResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeTryResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeTry(message, metadata, options, callback);
        };
        ChannelUpgradeAck: GrpcUnaryServiceInterface<MsgChannelUpgradeAck, MsgChannelUpgradeAckResponse> = (message: MsgChannelUpgradeAck, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeAckResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeAckResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeAckResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeAck(message, metadata, options, callback);
        };
        ChannelUpgradeConfirm: GrpcUnaryServiceInterface<MsgChannelUpgradeConfirm, MsgChannelUpgradeConfirmResponse> = (message: MsgChannelUpgradeConfirm, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeConfirmResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeConfirmResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeConfirmResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeConfirm(message, metadata, options, callback);
        };
        ChannelUpgradeOpen: GrpcUnaryServiceInterface<MsgChannelUpgradeOpen, MsgChannelUpgradeOpenResponse> = (message: MsgChannelUpgradeOpen, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeOpenResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeOpenResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeOpenResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeOpen(message, metadata, options, callback);
        };
        ChannelUpgradeTimeout: GrpcUnaryServiceInterface<MsgChannelUpgradeTimeout, MsgChannelUpgradeTimeoutResponse> = (message: MsgChannelUpgradeTimeout, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeTimeoutResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeTimeoutResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeTimeoutResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeTimeout(message, metadata, options, callback);
        };
        ChannelUpgradeCancel: GrpcUnaryServiceInterface<MsgChannelUpgradeCancel, MsgChannelUpgradeCancelResponse> = (message: MsgChannelUpgradeCancel, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeCancelResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgChannelUpgradeCancelResponse>, callback?: grpc_1.requestCallback<MsgChannelUpgradeCancelResponse>): grpc_1.ClientUnaryCall => {
            return super.ChannelUpgradeCancel(message, metadata, options, callback);
        };
        UpdateChannelParams: GrpcUnaryServiceInterface<MsgUpdateParams, MsgUpdateParamsResponse> = (message: MsgUpdateParams, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgUpdateParamsResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgUpdateParamsResponse>, callback?: grpc_1.requestCallback<MsgUpdateParamsResponse>): grpc_1.ClientUnaryCall => {
            return super.UpdateChannelParams(message, metadata, options, callback);
        };
        PruneAcknowledgements: GrpcUnaryServiceInterface<MsgPruneAcknowledgements, MsgPruneAcknowledgementsResponse> = (message: MsgPruneAcknowledgements, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgPruneAcknowledgementsResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgPruneAcknowledgementsResponse>, callback?: grpc_1.requestCallback<MsgPruneAcknowledgementsResponse>): grpc_1.ClientUnaryCall => {
            return super.PruneAcknowledgements(message, metadata, options, callback);
        };
    }
}
