/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.20.3
 * source: ibc/applications/transfer/v2/packet.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as pb_1 from "google-protobuf";
export namespace ibc.applications.transfer.v2 {
    export class FungibleTokenPacketData extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            denom?: string;
            amount?: string;
            sender?: string;
            receiver?: string;
            memo?: 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 ("denom" in data && data.denom != undefined) {
                    this.denom = data.denom;
                }
                if ("amount" in data && data.amount != undefined) {
                    this.amount = data.amount;
                }
                if ("sender" in data && data.sender != undefined) {
                    this.sender = data.sender;
                }
                if ("receiver" in data && data.receiver != undefined) {
                    this.receiver = data.receiver;
                }
                if ("memo" in data && data.memo != undefined) {
                    this.memo = data.memo;
                }
            }
        }
        get denom() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set denom(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get amount() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set amount(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get sender() {
            return pb_1.Message.getFieldWithDefault(this, 3, "") as string;
        }
        set sender(value: string) {
            pb_1.Message.setField(this, 3, value);
        }
        get receiver() {
            return pb_1.Message.getFieldWithDefault(this, 4, "") as string;
        }
        set receiver(value: string) {
            pb_1.Message.setField(this, 4, value);
        }
        get memo() {
            return pb_1.Message.getFieldWithDefault(this, 5, "") as string;
        }
        set memo(value: string) {
            pb_1.Message.setField(this, 5, value);
        }
        static fromObject(data: {
            denom?: string;
            amount?: string;
            sender?: string;
            receiver?: string;
            memo?: string;
        }): FungibleTokenPacketData {
            const message = new FungibleTokenPacketData({});
            if (data.denom != null) {
                message.denom = data.denom;
            }
            if (data.amount != null) {
                message.amount = data.amount;
            }
            if (data.sender != null) {
                message.sender = data.sender;
            }
            if (data.receiver != null) {
                message.receiver = data.receiver;
            }
            if (data.memo != null) {
                message.memo = data.memo;
            }
            return message;
        }
        toObject() {
            const data: {
                denom?: string;
                amount?: string;
                sender?: string;
                receiver?: string;
                memo?: string;
            } = {};
            if (this.denom != null) {
                data.denom = this.denom;
            }
            if (this.amount != null) {
                data.amount = this.amount;
            }
            if (this.sender != null) {
                data.sender = this.sender;
            }
            if (this.receiver != null) {
                data.receiver = this.receiver;
            }
            if (this.memo != null) {
                data.memo = this.memo;
            }
            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.denom.length)
                writer.writeString(1, this.denom);
            if (this.amount.length)
                writer.writeString(2, this.amount);
            if (this.sender.length)
                writer.writeString(3, this.sender);
            if (this.receiver.length)
                writer.writeString(4, this.receiver);
            if (this.memo.length)
                writer.writeString(5, this.memo);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): FungibleTokenPacketData {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new FungibleTokenPacketData();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.denom = reader.readString();
                        break;
                    case 2:
                        message.amount = reader.readString();
                        break;
                    case 3:
                        message.sender = reader.readString();
                        break;
                    case 4:
                        message.receiver = reader.readString();
                        break;
                    case 5:
                        message.memo = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): FungibleTokenPacketData {
            return FungibleTokenPacketData.deserialize(bytes);
        }
    }
}
