/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.20.3
 * source: ibc/lightclients/solomachine/v3/solomachine.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./../../../../gogoproto/gogo";
import * as dependency_2 from "./../../../../google/protobuf/any";
import * as pb_1 from "google-protobuf";
export namespace ibc.lightclients.solomachine.v3 {
    export class ClientState extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            sequence?: number;
            is_frozen?: boolean;
            consensus_state?: ConsensusState;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("sequence" in data && data.sequence != undefined) {
                    this.sequence = data.sequence;
                }
                if ("is_frozen" in data && data.is_frozen != undefined) {
                    this.is_frozen = data.is_frozen;
                }
                if ("consensus_state" in data && data.consensus_state != undefined) {
                    this.consensus_state = data.consensus_state;
                }
            }
        }
        get sequence() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
        }
        set sequence(value: number) {
            pb_1.Message.setField(this, 1, value);
        }
        get is_frozen() {
            return pb_1.Message.getFieldWithDefault(this, 2, false) as boolean;
        }
        set is_frozen(value: boolean) {
            pb_1.Message.setField(this, 2, value);
        }
        get consensus_state() {
            return pb_1.Message.getWrapperField(this, ConsensusState, 3) as ConsensusState;
        }
        set consensus_state(value: ConsensusState) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_consensus_state() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data: {
            sequence?: number;
            is_frozen?: boolean;
            consensus_state?: ReturnType<typeof ConsensusState.prototype.toObject>;
        }): ClientState {
            const message = new ClientState({});
            if (data.sequence != null) {
                message.sequence = data.sequence;
            }
            if (data.is_frozen != null) {
                message.is_frozen = data.is_frozen;
            }
            if (data.consensus_state != null) {
                message.consensus_state = ConsensusState.fromObject(data.consensus_state);
            }
            return message;
        }
        toObject() {
            const data: {
                sequence?: number;
                is_frozen?: boolean;
                consensus_state?: ReturnType<typeof ConsensusState.prototype.toObject>;
            } = {};
            if (this.sequence != null) {
                data.sequence = this.sequence;
            }
            if (this.is_frozen != null) {
                data.is_frozen = this.is_frozen;
            }
            if (this.consensus_state != null) {
                data.consensus_state = this.consensus_state.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.sequence != 0)
                writer.writeUint64(1, this.sequence);
            if (this.is_frozen != false)
                writer.writeBool(2, this.is_frozen);
            if (this.has_consensus_state)
                writer.writeMessage(3, this.consensus_state, () => this.consensus_state.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ClientState {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new ClientState();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.sequence = reader.readUint64();
                        break;
                    case 2:
                        message.is_frozen = reader.readBool();
                        break;
                    case 3:
                        reader.readMessage(message.consensus_state, () => message.consensus_state = ConsensusState.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): ClientState {
            return ClientState.deserialize(bytes);
        }
    }
    export class ConsensusState extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            public_key?: dependency_2.google.protobuf.Any;
            diversifier?: string;
            timestamp?: 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 ("public_key" in data && data.public_key != undefined) {
                    this.public_key = data.public_key;
                }
                if ("diversifier" in data && data.diversifier != undefined) {
                    this.diversifier = data.diversifier;
                }
                if ("timestamp" in data && data.timestamp != undefined) {
                    this.timestamp = data.timestamp;
                }
            }
        }
        get public_key() {
            return pb_1.Message.getWrapperField(this, dependency_2.google.protobuf.Any, 1) as dependency_2.google.protobuf.Any;
        }
        set public_key(value: dependency_2.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_public_key() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get diversifier() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set diversifier(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get timestamp() {
            return pb_1.Message.getFieldWithDefault(this, 3, 0) as number;
        }
        set timestamp(value: number) {
            pb_1.Message.setField(this, 3, value);
        }
        static fromObject(data: {
            public_key?: ReturnType<typeof dependency_2.google.protobuf.Any.prototype.toObject>;
            diversifier?: string;
            timestamp?: number;
        }): ConsensusState {
            const message = new ConsensusState({});
            if (data.public_key != null) {
                message.public_key = dependency_2.google.protobuf.Any.fromObject(data.public_key);
            }
            if (data.diversifier != null) {
                message.diversifier = data.diversifier;
            }
            if (data.timestamp != null) {
                message.timestamp = data.timestamp;
            }
            return message;
        }
        toObject() {
            const data: {
                public_key?: ReturnType<typeof dependency_2.google.protobuf.Any.prototype.toObject>;
                diversifier?: string;
                timestamp?: number;
            } = {};
            if (this.public_key != null) {
                data.public_key = this.public_key.toObject();
            }
            if (this.diversifier != null) {
                data.diversifier = this.diversifier;
            }
            if (this.timestamp != null) {
                data.timestamp = this.timestamp;
            }
            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_public_key)
                writer.writeMessage(1, this.public_key, () => this.public_key.serialize(writer));
            if (this.diversifier.length)
                writer.writeString(2, this.diversifier);
            if (this.timestamp != 0)
                writer.writeUint64(3, this.timestamp);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ConsensusState {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new ConsensusState();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.public_key, () => message.public_key = dependency_2.google.protobuf.Any.deserialize(reader));
                        break;
                    case 2:
                        message.diversifier = reader.readString();
                        break;
                    case 3:
                        message.timestamp = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): ConsensusState {
            return ConsensusState.deserialize(bytes);
        }
    }
    export class Header extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            timestamp?: number;
            signature?: Uint8Array;
            new_public_key?: dependency_2.google.protobuf.Any;
            new_diversifier?: 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 ("timestamp" in data && data.timestamp != undefined) {
                    this.timestamp = data.timestamp;
                }
                if ("signature" in data && data.signature != undefined) {
                    this.signature = data.signature;
                }
                if ("new_public_key" in data && data.new_public_key != undefined) {
                    this.new_public_key = data.new_public_key;
                }
                if ("new_diversifier" in data && data.new_diversifier != undefined) {
                    this.new_diversifier = data.new_diversifier;
                }
            }
        }
        get timestamp() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
        }
        set timestamp(value: number) {
            pb_1.Message.setField(this, 1, value);
        }
        get signature() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set signature(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get new_public_key() {
            return pb_1.Message.getWrapperField(this, dependency_2.google.protobuf.Any, 3) as dependency_2.google.protobuf.Any;
        }
        set new_public_key(value: dependency_2.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_new_public_key() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get new_diversifier() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set new_diversifier(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            timestamp?: number;
            signature?: Uint8Array;
            new_public_key?: ReturnType<typeof dependency_2.google.protobuf.Any.prototype.toObject>;
            new_diversifier?: string;
        }): Header {
            const message = new Header({});
            if (data.timestamp != null) {
                message.timestamp = data.timestamp;
            }
            if (data.signature != null) {
                message.signature = data.signature;
            }
            if (data.new_public_key != null) {
                message.new_public_key = dependency_2.google.protobuf.Any.fromObject(data.new_public_key);
            }
            if (data.new_diversifier != null) {
                message.new_diversifier = data.new_diversifier;
            }
            return message;
        }
        toObject() {
            const data: {
                timestamp?: number;
                signature?: Uint8Array;
                new_public_key?: ReturnType<typeof dependency_2.google.protobuf.Any.prototype.toObject>;
                new_diversifier?: string;
            } = {};
            if (this.timestamp != null) {
                data.timestamp = this.timestamp;
            }
            if (this.signature != null) {
                data.signature = this.signature;
            }
            if (this.new_public_key != null) {
                data.new_public_key = this.new_public_key.toObject();
            }
            if (this.new_diversifier != null) {
                data.new_diversifier = this.new_diversifier;
            }
            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.timestamp != 0)
                writer.writeUint64(1, this.timestamp);
            if (this.signature.length)
                writer.writeBytes(2, this.signature);
            if (this.has_new_public_key)
                writer.writeMessage(3, this.new_public_key, () => this.new_public_key.serialize(writer));
            if (this.new_diversifier.length)
                writer.writeString(4, this.new_diversifier);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Header {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Header();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.timestamp = reader.readUint64();
                        break;
                    case 2:
                        message.signature = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.new_public_key, () => message.new_public_key = dependency_2.google.protobuf.Any.deserialize(reader));
                        break;
                    case 4:
                        message.new_diversifier = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): Header {
            return Header.deserialize(bytes);
        }
    }
    export class Misbehaviour extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            sequence?: number;
            signature_one?: SignatureAndData;
            signature_two?: SignatureAndData;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("sequence" in data && data.sequence != undefined) {
                    this.sequence = data.sequence;
                }
                if ("signature_one" in data && data.signature_one != undefined) {
                    this.signature_one = data.signature_one;
                }
                if ("signature_two" in data && data.signature_two != undefined) {
                    this.signature_two = data.signature_two;
                }
            }
        }
        get sequence() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
        }
        set sequence(value: number) {
            pb_1.Message.setField(this, 1, value);
        }
        get signature_one() {
            return pb_1.Message.getWrapperField(this, SignatureAndData, 2) as SignatureAndData;
        }
        set signature_one(value: SignatureAndData) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_signature_one() {
            return pb_1.Message.getField(this, 2) != null;
        }
        get signature_two() {
            return pb_1.Message.getWrapperField(this, SignatureAndData, 3) as SignatureAndData;
        }
        set signature_two(value: SignatureAndData) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_signature_two() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data: {
            sequence?: number;
            signature_one?: ReturnType<typeof SignatureAndData.prototype.toObject>;
            signature_two?: ReturnType<typeof SignatureAndData.prototype.toObject>;
        }): Misbehaviour {
            const message = new Misbehaviour({});
            if (data.sequence != null) {
                message.sequence = data.sequence;
            }
            if (data.signature_one != null) {
                message.signature_one = SignatureAndData.fromObject(data.signature_one);
            }
            if (data.signature_two != null) {
                message.signature_two = SignatureAndData.fromObject(data.signature_two);
            }
            return message;
        }
        toObject() {
            const data: {
                sequence?: number;
                signature_one?: ReturnType<typeof SignatureAndData.prototype.toObject>;
                signature_two?: ReturnType<typeof SignatureAndData.prototype.toObject>;
            } = {};
            if (this.sequence != null) {
                data.sequence = this.sequence;
            }
            if (this.signature_one != null) {
                data.signature_one = this.signature_one.toObject();
            }
            if (this.signature_two != null) {
                data.signature_two = this.signature_two.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.sequence != 0)
                writer.writeUint64(1, this.sequence);
            if (this.has_signature_one)
                writer.writeMessage(2, this.signature_one, () => this.signature_one.serialize(writer));
            if (this.has_signature_two)
                writer.writeMessage(3, this.signature_two, () => this.signature_two.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Misbehaviour {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Misbehaviour();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.sequence = reader.readUint64();
                        break;
                    case 2:
                        reader.readMessage(message.signature_one, () => message.signature_one = SignatureAndData.deserialize(reader));
                        break;
                    case 3:
                        reader.readMessage(message.signature_two, () => message.signature_two = SignatureAndData.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): Misbehaviour {
            return Misbehaviour.deserialize(bytes);
        }
    }
    export class SignatureAndData extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            signature?: Uint8Array;
            path?: Uint8Array;
            data?: Uint8Array;
            timestamp?: 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 ("signature" in data && data.signature != undefined) {
                    this.signature = data.signature;
                }
                if ("path" in data && data.path != undefined) {
                    this.path = data.path;
                }
                if ("data" in data && data.data != undefined) {
                    this.data = data.data;
                }
                if ("timestamp" in data && data.timestamp != undefined) {
                    this.timestamp = data.timestamp;
                }
            }
        }
        get signature() {
            return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;
        }
        set signature(value: Uint8Array) {
            pb_1.Message.setField(this, 1, value);
        }
        get path() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set path(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get data() {
            return pb_1.Message.getFieldWithDefault(this, 3, new Uint8Array(0)) as Uint8Array;
        }
        set data(value: Uint8Array) {
            pb_1.Message.setField(this, 3, value);
        }
        get timestamp() {
            return pb_1.Message.getFieldWithDefault(this, 4, 0) as number;
        }
        set timestamp(value: number) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            signature?: Uint8Array;
            path?: Uint8Array;
            data?: Uint8Array;
            timestamp?: number;
        }): SignatureAndData {
            const message = new SignatureAndData({});
            if (data.signature != null) {
                message.signature = data.signature;
            }
            if (data.path != null) {
                message.path = data.path;
            }
            if (data.data != null) {
                message.data = data.data;
            }
            if (data.timestamp != null) {
                message.timestamp = data.timestamp;
            }
            return message;
        }
        toObject() {
            const data: {
                signature?: Uint8Array;
                path?: Uint8Array;
                data?: Uint8Array;
                timestamp?: number;
            } = {};
            if (this.signature != null) {
                data.signature = this.signature;
            }
            if (this.path != null) {
                data.path = this.path;
            }
            if (this.data != null) {
                data.data = this.data;
            }
            if (this.timestamp != null) {
                data.timestamp = this.timestamp;
            }
            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.signature.length)
                writer.writeBytes(1, this.signature);
            if (this.path.length)
                writer.writeBytes(2, this.path);
            if (this.data.length)
                writer.writeBytes(3, this.data);
            if (this.timestamp != 0)
                writer.writeUint64(4, this.timestamp);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): SignatureAndData {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new SignatureAndData();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.signature = reader.readBytes();
                        break;
                    case 2:
                        message.path = reader.readBytes();
                        break;
                    case 3:
                        message.data = reader.readBytes();
                        break;
                    case 4:
                        message.timestamp = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): SignatureAndData {
            return SignatureAndData.deserialize(bytes);
        }
    }
    export class TimestampedSignatureData extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            signature_data?: Uint8Array;
            timestamp?: 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 ("signature_data" in data && data.signature_data != undefined) {
                    this.signature_data = data.signature_data;
                }
                if ("timestamp" in data && data.timestamp != undefined) {
                    this.timestamp = data.timestamp;
                }
            }
        }
        get signature_data() {
            return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;
        }
        set signature_data(value: Uint8Array) {
            pb_1.Message.setField(this, 1, value);
        }
        get timestamp() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
        }
        set timestamp(value: number) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            signature_data?: Uint8Array;
            timestamp?: number;
        }): TimestampedSignatureData {
            const message = new TimestampedSignatureData({});
            if (data.signature_data != null) {
                message.signature_data = data.signature_data;
            }
            if (data.timestamp != null) {
                message.timestamp = data.timestamp;
            }
            return message;
        }
        toObject() {
            const data: {
                signature_data?: Uint8Array;
                timestamp?: number;
            } = {};
            if (this.signature_data != null) {
                data.signature_data = this.signature_data;
            }
            if (this.timestamp != null) {
                data.timestamp = this.timestamp;
            }
            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.signature_data.length)
                writer.writeBytes(1, this.signature_data);
            if (this.timestamp != 0)
                writer.writeUint64(2, this.timestamp);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): TimestampedSignatureData {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new TimestampedSignatureData();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.signature_data = reader.readBytes();
                        break;
                    case 2:
                        message.timestamp = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): TimestampedSignatureData {
            return TimestampedSignatureData.deserialize(bytes);
        }
    }
    export class SignBytes extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            sequence?: number;
            timestamp?: number;
            diversifier?: string;
            path?: Uint8Array;
            data?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("sequence" in data && data.sequence != undefined) {
                    this.sequence = data.sequence;
                }
                if ("timestamp" in data && data.timestamp != undefined) {
                    this.timestamp = data.timestamp;
                }
                if ("diversifier" in data && data.diversifier != undefined) {
                    this.diversifier = data.diversifier;
                }
                if ("path" in data && data.path != undefined) {
                    this.path = data.path;
                }
                if ("data" in data && data.data != undefined) {
                    this.data = data.data;
                }
            }
        }
        get sequence() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0) as number;
        }
        set sequence(value: number) {
            pb_1.Message.setField(this, 1, value);
        }
        get timestamp() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
        }
        set timestamp(value: number) {
            pb_1.Message.setField(this, 2, value);
        }
        get diversifier() {
            return pb_1.Message.getFieldWithDefault(this, 3, "") as string;
        }
        set diversifier(value: string) {
            pb_1.Message.setField(this, 3, value);
        }
        get path() {
            return pb_1.Message.getFieldWithDefault(this, 4, new Uint8Array(0)) as Uint8Array;
        }
        set path(value: Uint8Array) {
            pb_1.Message.setField(this, 4, value);
        }
        get data() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set data(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        static fromObject(data: {
            sequence?: number;
            timestamp?: number;
            diversifier?: string;
            path?: Uint8Array;
            data?: Uint8Array;
        }): SignBytes {
            const message = new SignBytes({});
            if (data.sequence != null) {
                message.sequence = data.sequence;
            }
            if (data.timestamp != null) {
                message.timestamp = data.timestamp;
            }
            if (data.diversifier != null) {
                message.diversifier = data.diversifier;
            }
            if (data.path != null) {
                message.path = data.path;
            }
            if (data.data != null) {
                message.data = data.data;
            }
            return message;
        }
        toObject() {
            const data: {
                sequence?: number;
                timestamp?: number;
                diversifier?: string;
                path?: Uint8Array;
                data?: Uint8Array;
            } = {};
            if (this.sequence != null) {
                data.sequence = this.sequence;
            }
            if (this.timestamp != null) {
                data.timestamp = this.timestamp;
            }
            if (this.diversifier != null) {
                data.diversifier = this.diversifier;
            }
            if (this.path != null) {
                data.path = this.path;
            }
            if (this.data != null) {
                data.data = this.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 (this.sequence != 0)
                writer.writeUint64(1, this.sequence);
            if (this.timestamp != 0)
                writer.writeUint64(2, this.timestamp);
            if (this.diversifier.length)
                writer.writeString(3, this.diversifier);
            if (this.path.length)
                writer.writeBytes(4, this.path);
            if (this.data.length)
                writer.writeBytes(5, this.data);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): SignBytes {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new SignBytes();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.sequence = reader.readUint64();
                        break;
                    case 2:
                        message.timestamp = reader.readUint64();
                        break;
                    case 3:
                        message.diversifier = reader.readString();
                        break;
                    case 4:
                        message.path = reader.readBytes();
                        break;
                    case 5:
                        message.data = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): SignBytes {
            return SignBytes.deserialize(bytes);
        }
    }
    export class HeaderData extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            new_pub_key?: dependency_2.google.protobuf.Any;
            new_diversifier?: 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 ("new_pub_key" in data && data.new_pub_key != undefined) {
                    this.new_pub_key = data.new_pub_key;
                }
                if ("new_diversifier" in data && data.new_diversifier != undefined) {
                    this.new_diversifier = data.new_diversifier;
                }
            }
        }
        get new_pub_key() {
            return pb_1.Message.getWrapperField(this, dependency_2.google.protobuf.Any, 1) as dependency_2.google.protobuf.Any;
        }
        set new_pub_key(value: dependency_2.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_new_pub_key() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get new_diversifier() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set new_diversifier(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            new_pub_key?: ReturnType<typeof dependency_2.google.protobuf.Any.prototype.toObject>;
            new_diversifier?: string;
        }): HeaderData {
            const message = new HeaderData({});
            if (data.new_pub_key != null) {
                message.new_pub_key = dependency_2.google.protobuf.Any.fromObject(data.new_pub_key);
            }
            if (data.new_diversifier != null) {
                message.new_diversifier = data.new_diversifier;
            }
            return message;
        }
        toObject() {
            const data: {
                new_pub_key?: ReturnType<typeof dependency_2.google.protobuf.Any.prototype.toObject>;
                new_diversifier?: string;
            } = {};
            if (this.new_pub_key != null) {
                data.new_pub_key = this.new_pub_key.toObject();
            }
            if (this.new_diversifier != null) {
                data.new_diversifier = this.new_diversifier;
            }
            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_new_pub_key)
                writer.writeMessage(1, this.new_pub_key, () => this.new_pub_key.serialize(writer));
            if (this.new_diversifier.length)
                writer.writeString(2, this.new_diversifier);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): HeaderData {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new HeaderData();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.new_pub_key, () => message.new_pub_key = dependency_2.google.protobuf.Any.deserialize(reader));
                        break;
                    case 2:
                        message.new_diversifier = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): HeaderData {
            return HeaderData.deserialize(bytes);
        }
    }
}
