import { Timestamp, TimestampAmino, TimestampSDKType } from "../../../google/protobuf/timestamp"; import { Any, AnyAmino, AnySDKType } from "../../../google/protobuf/any"; import { Long, isSet, fromJsonTimestamp, fromTimestamp } from "../../../helpers"; import * as _m0 from "protobufjs/minimal"; /** Plan specifies information about a planned upgrade and when it should occur. */ export interface Plan { /** * Sets the name for the upgrade. This name will be used by the upgraded * version of the software to apply any special "on-upgrade" commands during * the first BeginBlock method after the upgrade is applied. It is also used * to detect whether a software version can handle a given upgrade. If no * upgrade handler with this name has been set in the software, it will be * assumed that the software is out-of-date when the upgrade Time or Height is * reached and the software will exit. */ name: string; /** * Deprecated: Time based upgrades have been deprecated. Time based upgrade logic * has been removed from the SDK. * If this field is not empty, an error will be thrown. */ /** @deprecated */ time?: Timestamp; /** * The height at which the upgrade must be performed. * Only used if Time is not set. */ height: Long; /** * Any application specific upgrade info to be included on-chain * such as a git commit that validators could automatically upgrade to */ info: string; /** * Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been * moved to the IBC module in the sub module 02-client. * If this field is not empty, an error will be thrown. */ /** @deprecated */ upgradedClientState?: Any; } export interface PlanProtoMsg { typeUrl: "/cosmos.upgrade.v1beta1.Plan"; value: Uint8Array; } /** Plan specifies information about a planned upgrade and when it should occur. */ export interface PlanAmino { /** * Sets the name for the upgrade. This name will be used by the upgraded * version of the software to apply any special "on-upgrade" commands during * the first BeginBlock method after the upgrade is applied. It is also used * to detect whether a software version can handle a given upgrade. If no * upgrade handler with this name has been set in the software, it will be * assumed that the software is out-of-date when the upgrade Time or Height is * reached and the software will exit. */ name: string; /** * Deprecated: Time based upgrades have been deprecated. Time based upgrade logic * has been removed from the SDK. * If this field is not empty, an error will be thrown. */ /** @deprecated */ time?: TimestampAmino; /** * The height at which the upgrade must be performed. * Only used if Time is not set. */ height: string; /** * Any application specific upgrade info to be included on-chain * such as a git commit that validators could automatically upgrade to */ info: string; /** * Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been * moved to the IBC module in the sub module 02-client. * If this field is not empty, an error will be thrown. */ /** @deprecated */ upgraded_client_state?: AnyAmino; } export interface PlanAminoMsg { type: "cosmos-sdk/Plan"; value: PlanAmino; } /** Plan specifies information about a planned upgrade and when it should occur. */ export interface PlanSDKType { name: string; /** @deprecated */ time?: TimestampSDKType; height: Long; info: string; /** @deprecated */ upgraded_client_state?: AnySDKType; } /** * SoftwareUpgradeProposal is a gov Content type for initiating a software * upgrade. * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov * proposals, see MsgSoftwareUpgrade. */ /** @deprecated */ export interface SoftwareUpgradeProposal { title: string; description: string; plan?: Plan; } export interface SoftwareUpgradeProposalProtoMsg { typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal"; value: Uint8Array; } /** * SoftwareUpgradeProposal is a gov Content type for initiating a software * upgrade. * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov * proposals, see MsgSoftwareUpgrade. */ /** @deprecated */ export interface SoftwareUpgradeProposalAmino { title: string; description: string; plan?: PlanAmino; } export interface SoftwareUpgradeProposalAminoMsg { type: "cosmos-sdk/SoftwareUpgradeProposal"; value: SoftwareUpgradeProposalAmino; } /** * SoftwareUpgradeProposal is a gov Content type for initiating a software * upgrade. * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov * proposals, see MsgSoftwareUpgrade. */ /** @deprecated */ export interface SoftwareUpgradeProposalSDKType { title: string; description: string; plan?: PlanSDKType; } /** * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software * upgrade. * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov * proposals, see MsgCancelUpgrade. */ /** @deprecated */ export interface CancelSoftwareUpgradeProposal { title: string; description: string; } export interface CancelSoftwareUpgradeProposalProtoMsg { typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal"; value: Uint8Array; } /** * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software * upgrade. * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov * proposals, see MsgCancelUpgrade. */ /** @deprecated */ export interface CancelSoftwareUpgradeProposalAmino { title: string; description: string; } export interface CancelSoftwareUpgradeProposalAminoMsg { type: "cosmos-sdk/CancelSoftwareUpgradeProposal"; value: CancelSoftwareUpgradeProposalAmino; } /** * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software * upgrade. * Deprecated: This legacy proposal is deprecated in favor of Msg-based gov * proposals, see MsgCancelUpgrade. */ /** @deprecated */ export interface CancelSoftwareUpgradeProposalSDKType { title: string; description: string; } /** * ModuleVersion specifies a module and its consensus version. * * Since: cosmos-sdk 0.43 */ export interface ModuleVersion { /** name of the app module */ name: string; /** consensus version of the app module */ version: Long; } export interface ModuleVersionProtoMsg { typeUrl: "/cosmos.upgrade.v1beta1.ModuleVersion"; value: Uint8Array; } /** * ModuleVersion specifies a module and its consensus version. * * Since: cosmos-sdk 0.43 */ export interface ModuleVersionAmino { /** name of the app module */ name: string; /** consensus version of the app module */ version: string; } export interface ModuleVersionAminoMsg { type: "cosmos-sdk/ModuleVersion"; value: ModuleVersionAmino; } /** * ModuleVersion specifies a module and its consensus version. * * Since: cosmos-sdk 0.43 */ export interface ModuleVersionSDKType { name: string; version: Long; } function createBasePlan(): Plan { return { name: "", time: undefined, height: Long.ZERO, info: "", upgradedClientState: undefined }; } export const Plan = { encode(message: Plan, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.time !== undefined) { Timestamp.encode(message.time, writer.uint32(18).fork()).ldelim(); } if (!message.height.isZero()) { writer.uint32(24).int64(message.height); } if (message.info !== "") { writer.uint32(34).string(message.info); } if (message.upgradedClientState !== undefined) { Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): Plan { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePlan(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.time = Timestamp.decode(reader, reader.uint32()); break; case 3: message.height = (reader.int64() as Long); break; case 4: message.info = reader.string(); break; case 5: message.upgradedClientState = Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): Plan { return { name: isSet(object.name) ? String(object.name) : "", time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined, height: isSet(object.height) ? Long.fromValue(object.height) : Long.ZERO, info: isSet(object.info) ? String(object.info) : "", upgradedClientState: isSet(object.upgradedClientState) ? Any.fromJSON(object.upgradedClientState) : undefined }; }, toJSON(message: Plan): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString()); message.height !== undefined && (obj.height = (message.height || Long.ZERO).toString()); message.info !== undefined && (obj.info = message.info); message.upgradedClientState !== undefined && (obj.upgradedClientState = message.upgradedClientState ? Any.toJSON(message.upgradedClientState) : undefined); return obj; }, fromPartial(object: Partial): Plan { const message = createBasePlan(); message.name = object.name ?? ""; message.time = object.time !== undefined && object.time !== null ? Timestamp.fromPartial(object.time) : undefined; message.height = object.height !== undefined && object.height !== null ? Long.fromValue(object.height) : Long.ZERO; message.info = object.info ?? ""; message.upgradedClientState = object.upgradedClientState !== undefined && object.upgradedClientState !== null ? Any.fromPartial(object.upgradedClientState) : undefined; return message; }, fromAmino(object: PlanAmino): Plan { return { name: object.name, time: object?.time ? Timestamp.fromAmino(object.time) : undefined, height: Long.fromString(object.height), info: object.info, upgradedClientState: object?.upgraded_client_state ? Any.fromAmino(object.upgraded_client_state) : undefined }; }, toAmino(message: Plan): PlanAmino { const obj: any = {}; obj.name = message.name; obj.time = message.time ? Timestamp.toAmino(message.time) : undefined; obj.height = message.height ? message.height.toString() : undefined; obj.info = message.info; obj.upgraded_client_state = message.upgradedClientState ? Any.toAmino(message.upgradedClientState) : undefined; return obj; }, fromAminoMsg(object: PlanAminoMsg): Plan { return Plan.fromAmino(object.value); }, toAminoMsg(message: Plan): PlanAminoMsg { return { type: "cosmos-sdk/Plan", value: Plan.toAmino(message) }; }, fromProtoMsg(message: PlanProtoMsg): Plan { return Plan.decode(message.value); }, toProto(message: Plan): Uint8Array { return Plan.encode(message).finish(); }, toProtoMsg(message: Plan): PlanProtoMsg { return { typeUrl: "/cosmos.upgrade.v1beta1.Plan", value: Plan.encode(message).finish() }; } }; function createBaseSoftwareUpgradeProposal(): SoftwareUpgradeProposal { return { title: "", description: "", plan: undefined }; } export const SoftwareUpgradeProposal = { encode(message: SoftwareUpgradeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.title !== "") { writer.uint32(10).string(message.title); } if (message.description !== "") { writer.uint32(18).string(message.description); } if (message.plan !== undefined) { Plan.encode(message.plan, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SoftwareUpgradeProposal { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSoftwareUpgradeProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.title = reader.string(); break; case 2: message.description = reader.string(); break; case 3: message.plan = Plan.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): SoftwareUpgradeProposal { return { title: isSet(object.title) ? String(object.title) : "", description: isSet(object.description) ? String(object.description) : "", plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined }; }, toJSON(message: SoftwareUpgradeProposal): unknown { const obj: any = {}; message.title !== undefined && (obj.title = message.title); message.description !== undefined && (obj.description = message.description); message.plan !== undefined && (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined); return obj; }, fromPartial(object: Partial): SoftwareUpgradeProposal { const message = createBaseSoftwareUpgradeProposal(); message.title = object.title ?? ""; message.description = object.description ?? ""; message.plan = object.plan !== undefined && object.plan !== null ? Plan.fromPartial(object.plan) : undefined; return message; }, fromAmino(object: SoftwareUpgradeProposalAmino): SoftwareUpgradeProposal { return { title: object.title, description: object.description, plan: object?.plan ? Plan.fromAmino(object.plan) : undefined }; }, toAmino(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalAmino { const obj: any = {}; obj.title = message.title; obj.description = message.description; obj.plan = message.plan ? Plan.toAmino(message.plan) : undefined; return obj; }, fromAminoMsg(object: SoftwareUpgradeProposalAminoMsg): SoftwareUpgradeProposal { return SoftwareUpgradeProposal.fromAmino(object.value); }, toAminoMsg(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalAminoMsg { return { type: "cosmos-sdk/SoftwareUpgradeProposal", value: SoftwareUpgradeProposal.toAmino(message) }; }, fromProtoMsg(message: SoftwareUpgradeProposalProtoMsg): SoftwareUpgradeProposal { return SoftwareUpgradeProposal.decode(message.value); }, toProto(message: SoftwareUpgradeProposal): Uint8Array { return SoftwareUpgradeProposal.encode(message).finish(); }, toProtoMsg(message: SoftwareUpgradeProposal): SoftwareUpgradeProposalProtoMsg { return { typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal", value: SoftwareUpgradeProposal.encode(message).finish() }; } }; function createBaseCancelSoftwareUpgradeProposal(): CancelSoftwareUpgradeProposal { return { title: "", description: "" }; } export const CancelSoftwareUpgradeProposal = { encode(message: CancelSoftwareUpgradeProposal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.title !== "") { writer.uint32(10).string(message.title); } if (message.description !== "") { writer.uint32(18).string(message.description); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): CancelSoftwareUpgradeProposal { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCancelSoftwareUpgradeProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.title = reader.string(); break; case 2: message.description = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): CancelSoftwareUpgradeProposal { return { title: isSet(object.title) ? String(object.title) : "", description: isSet(object.description) ? String(object.description) : "" }; }, toJSON(message: CancelSoftwareUpgradeProposal): unknown { const obj: any = {}; message.title !== undefined && (obj.title = message.title); message.description !== undefined && (obj.description = message.description); return obj; }, fromPartial(object: Partial): CancelSoftwareUpgradeProposal { const message = createBaseCancelSoftwareUpgradeProposal(); message.title = object.title ?? ""; message.description = object.description ?? ""; return message; }, fromAmino(object: CancelSoftwareUpgradeProposalAmino): CancelSoftwareUpgradeProposal { return { title: object.title, description: object.description }; }, toAmino(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalAmino { const obj: any = {}; obj.title = message.title; obj.description = message.description; return obj; }, fromAminoMsg(object: CancelSoftwareUpgradeProposalAminoMsg): CancelSoftwareUpgradeProposal { return CancelSoftwareUpgradeProposal.fromAmino(object.value); }, toAminoMsg(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalAminoMsg { return { type: "cosmos-sdk/CancelSoftwareUpgradeProposal", value: CancelSoftwareUpgradeProposal.toAmino(message) }; }, fromProtoMsg(message: CancelSoftwareUpgradeProposalProtoMsg): CancelSoftwareUpgradeProposal { return CancelSoftwareUpgradeProposal.decode(message.value); }, toProto(message: CancelSoftwareUpgradeProposal): Uint8Array { return CancelSoftwareUpgradeProposal.encode(message).finish(); }, toProtoMsg(message: CancelSoftwareUpgradeProposal): CancelSoftwareUpgradeProposalProtoMsg { return { typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal", value: CancelSoftwareUpgradeProposal.encode(message).finish() }; } }; function createBaseModuleVersion(): ModuleVersion { return { name: "", version: Long.UZERO }; } export const ModuleVersion = { encode(message: ModuleVersion, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (!message.version.isZero()) { writer.uint32(16).uint64(message.version); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): ModuleVersion { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseModuleVersion(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 2: message.version = (reader.uint64() as Long); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ModuleVersion { return { name: isSet(object.name) ? String(object.name) : "", version: isSet(object.version) ? Long.fromValue(object.version) : Long.UZERO }; }, toJSON(message: ModuleVersion): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.version !== undefined && (obj.version = (message.version || Long.UZERO).toString()); return obj; }, fromPartial(object: Partial): ModuleVersion { const message = createBaseModuleVersion(); message.name = object.name ?? ""; message.version = object.version !== undefined && object.version !== null ? Long.fromValue(object.version) : Long.UZERO; return message; }, fromAmino(object: ModuleVersionAmino): ModuleVersion { return { name: object.name, version: Long.fromString(object.version) }; }, toAmino(message: ModuleVersion): ModuleVersionAmino { const obj: any = {}; obj.name = message.name; obj.version = message.version ? message.version.toString() : undefined; return obj; }, fromAminoMsg(object: ModuleVersionAminoMsg): ModuleVersion { return ModuleVersion.fromAmino(object.value); }, toAminoMsg(message: ModuleVersion): ModuleVersionAminoMsg { return { type: "cosmos-sdk/ModuleVersion", value: ModuleVersion.toAmino(message) }; }, fromProtoMsg(message: ModuleVersionProtoMsg): ModuleVersion { return ModuleVersion.decode(message.value); }, toProto(message: ModuleVersion): Uint8Array { return ModuleVersion.encode(message).finish(); }, toProtoMsg(message: ModuleVersion): ModuleVersionProtoMsg { return { typeUrl: "/cosmos.upgrade.v1beta1.ModuleVersion", value: ModuleVersion.encode(message).finish() }; } };