interchainjs
Version:
InterchainJS is a JavaScript library for interacting with Cosmos SDK based blockchains.
1,252 lines (1,251 loc) • 70.1 kB
JavaScript
import { Any } from "../../../../google/protobuf/any";
import { ConnectionEnd } from "../../../core/connection/v1/connection";
import { Channel } from "../../../core/channel/v1/channel";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { GlobalDecoderRegistry } from "../../../../registry";
import { bytesFromBase64, base64FromBytes, isSet } from "../../../../helpers";
/**
* DataType defines the type of solo machine proof being created. This is done
* to preserve uniqueness of different data sign byte encodings.
*/
export var DataType;
(function (DataType) {
/** DATA_TYPE_UNINITIALIZED_UNSPECIFIED - Default State */
DataType[DataType["DATA_TYPE_UNINITIALIZED_UNSPECIFIED"] = 0] = "DATA_TYPE_UNINITIALIZED_UNSPECIFIED";
/** DATA_TYPE_CLIENT_STATE - Data type for client state verification */
DataType[DataType["DATA_TYPE_CLIENT_STATE"] = 1] = "DATA_TYPE_CLIENT_STATE";
/** DATA_TYPE_CONSENSUS_STATE - Data type for consensus state verification */
DataType[DataType["DATA_TYPE_CONSENSUS_STATE"] = 2] = "DATA_TYPE_CONSENSUS_STATE";
/** DATA_TYPE_CONNECTION_STATE - Data type for connection state verification */
DataType[DataType["DATA_TYPE_CONNECTION_STATE"] = 3] = "DATA_TYPE_CONNECTION_STATE";
/** DATA_TYPE_CHANNEL_STATE - Data type for channel state verification */
DataType[DataType["DATA_TYPE_CHANNEL_STATE"] = 4] = "DATA_TYPE_CHANNEL_STATE";
/** DATA_TYPE_PACKET_COMMITMENT - Data type for packet commitment verification */
DataType[DataType["DATA_TYPE_PACKET_COMMITMENT"] = 5] = "DATA_TYPE_PACKET_COMMITMENT";
/** DATA_TYPE_PACKET_ACKNOWLEDGEMENT - Data type for packet acknowledgement verification */
DataType[DataType["DATA_TYPE_PACKET_ACKNOWLEDGEMENT"] = 6] = "DATA_TYPE_PACKET_ACKNOWLEDGEMENT";
/** DATA_TYPE_PACKET_RECEIPT_ABSENCE - Data type for packet receipt absence verification */
DataType[DataType["DATA_TYPE_PACKET_RECEIPT_ABSENCE"] = 7] = "DATA_TYPE_PACKET_RECEIPT_ABSENCE";
/** DATA_TYPE_NEXT_SEQUENCE_RECV - Data type for next sequence recv verification */
DataType[DataType["DATA_TYPE_NEXT_SEQUENCE_RECV"] = 8] = "DATA_TYPE_NEXT_SEQUENCE_RECV";
/** DATA_TYPE_HEADER - Data type for header verification */
DataType[DataType["DATA_TYPE_HEADER"] = 9] = "DATA_TYPE_HEADER";
DataType[DataType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(DataType || (DataType = {}));
export const DataTypeAmino = DataType;
export function dataTypeFromJSON(object) {
switch (object) {
case 0:
case "DATA_TYPE_UNINITIALIZED_UNSPECIFIED":
return DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED;
case 1:
case "DATA_TYPE_CLIENT_STATE":
return DataType.DATA_TYPE_CLIENT_STATE;
case 2:
case "DATA_TYPE_CONSENSUS_STATE":
return DataType.DATA_TYPE_CONSENSUS_STATE;
case 3:
case "DATA_TYPE_CONNECTION_STATE":
return DataType.DATA_TYPE_CONNECTION_STATE;
case 4:
case "DATA_TYPE_CHANNEL_STATE":
return DataType.DATA_TYPE_CHANNEL_STATE;
case 5:
case "DATA_TYPE_PACKET_COMMITMENT":
return DataType.DATA_TYPE_PACKET_COMMITMENT;
case 6:
case "DATA_TYPE_PACKET_ACKNOWLEDGEMENT":
return DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT;
case 7:
case "DATA_TYPE_PACKET_RECEIPT_ABSENCE":
return DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE;
case 8:
case "DATA_TYPE_NEXT_SEQUENCE_RECV":
return DataType.DATA_TYPE_NEXT_SEQUENCE_RECV;
case 9:
case "DATA_TYPE_HEADER":
return DataType.DATA_TYPE_HEADER;
case -1:
case "UNRECOGNIZED":
default:
return DataType.UNRECOGNIZED;
}
}
export function dataTypeToJSON(object) {
switch (object) {
case DataType.DATA_TYPE_UNINITIALIZED_UNSPECIFIED:
return "DATA_TYPE_UNINITIALIZED_UNSPECIFIED";
case DataType.DATA_TYPE_CLIENT_STATE:
return "DATA_TYPE_CLIENT_STATE";
case DataType.DATA_TYPE_CONSENSUS_STATE:
return "DATA_TYPE_CONSENSUS_STATE";
case DataType.DATA_TYPE_CONNECTION_STATE:
return "DATA_TYPE_CONNECTION_STATE";
case DataType.DATA_TYPE_CHANNEL_STATE:
return "DATA_TYPE_CHANNEL_STATE";
case DataType.DATA_TYPE_PACKET_COMMITMENT:
return "DATA_TYPE_PACKET_COMMITMENT";
case DataType.DATA_TYPE_PACKET_ACKNOWLEDGEMENT:
return "DATA_TYPE_PACKET_ACKNOWLEDGEMENT";
case DataType.DATA_TYPE_PACKET_RECEIPT_ABSENCE:
return "DATA_TYPE_PACKET_RECEIPT_ABSENCE";
case DataType.DATA_TYPE_NEXT_SEQUENCE_RECV:
return "DATA_TYPE_NEXT_SEQUENCE_RECV";
case DataType.DATA_TYPE_HEADER:
return "DATA_TYPE_HEADER";
case DataType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
function createBaseClientState() {
return {
sequence: BigInt(0),
isFrozen: false,
consensusState: undefined,
allowUpdateAfterProposal: false
};
}
/**
* ClientState defines a solo machine client that tracks the current consensus
* state and if the client is frozen.
* @name ClientState
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.ClientState
*/
export const ClientState = {
typeUrl: "/ibc.lightclients.solomachine.v2.ClientState",
aminoType: "cosmos-sdk/ClientState",
is(o) {
return o && (o.$typeUrl === ClientState.typeUrl || typeof o.sequence === "bigint" && typeof o.isFrozen === "boolean" && typeof o.allowUpdateAfterProposal === "boolean");
},
isAmino(o) {
return o && (o.$typeUrl === ClientState.typeUrl || typeof o.sequence === "bigint" && typeof o.is_frozen === "boolean" && typeof o.allow_update_after_proposal === "boolean");
},
encode(message, writer = BinaryWriter.create()) {
if (message.sequence !== BigInt(0)) {
writer.uint32(8).uint64(message.sequence);
}
if (message.isFrozen === true) {
writer.uint32(16).bool(message.isFrozen);
}
if (message.consensusState !== undefined) {
ConsensusState.encode(message.consensusState, writer.uint32(26).fork()).ldelim();
}
if (message.allowUpdateAfterProposal === true) {
writer.uint32(32).bool(message.allowUpdateAfterProposal);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseClientState();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.sequence = reader.uint64();
break;
case 2:
message.isFrozen = reader.bool();
break;
case 3:
message.consensusState = ConsensusState.decode(reader, reader.uint32());
break;
case 4:
message.allowUpdateAfterProposal = reader.bool();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseClientState();
message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
message.isFrozen = object.isFrozen ?? false;
message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? ConsensusState.fromPartial(object.consensusState) : undefined;
message.allowUpdateAfterProposal = object.allowUpdateAfterProposal ?? false;
return message;
},
fromAmino(object) {
const message = createBaseClientState();
if (object.sequence !== undefined && object.sequence !== null) {
message.sequence = BigInt(object.sequence);
}
if (object.is_frozen !== undefined && object.is_frozen !== null) {
message.isFrozen = object.is_frozen;
}
if (object.consensus_state !== undefined && object.consensus_state !== null) {
message.consensusState = ConsensusState.fromAmino(object.consensus_state);
}
if (object.allow_update_after_proposal !== undefined && object.allow_update_after_proposal !== null) {
message.allowUpdateAfterProposal = object.allow_update_after_proposal;
}
return message;
},
toAmino(message) {
const obj = {};
obj.sequence = message.sequence !== BigInt(0) ? message.sequence?.toString() : undefined;
obj.is_frozen = message.isFrozen === false ? undefined : message.isFrozen;
obj.consensus_state = message.consensusState ? ConsensusState.toAmino(message.consensusState) : undefined;
obj.allow_update_after_proposal = message.allowUpdateAfterProposal === false ? undefined : message.allowUpdateAfterProposal;
return obj;
},
fromAminoMsg(object) {
return ClientState.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/ClientState",
value: ClientState.toAmino(message)
};
},
fromProtoMsg(message) {
return ClientState.decode(message.value);
},
toProto(message) {
return ClientState.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.ClientState",
value: ClientState.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(ClientState.typeUrl)) {
return;
}
ConsensusState.registerTypeUrl();
}
};
function createBaseConsensusState() {
return {
publicKey: undefined,
diversifier: "",
timestamp: BigInt(0)
};
}
/**
* ConsensusState defines a solo machine consensus state. The sequence of a
* consensus state is contained in the "height" key used in storing the
* consensus state.
* @name ConsensusState
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.ConsensusState
*/
export const ConsensusState = {
typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusState",
aminoType: "cosmos-sdk/ConsensusState",
is(o) {
return o && (o.$typeUrl === ConsensusState.typeUrl || typeof o.diversifier === "string" && typeof o.timestamp === "bigint");
},
isAmino(o) {
return o && (o.$typeUrl === ConsensusState.typeUrl || typeof o.diversifier === "string" && typeof o.timestamp === "bigint");
},
encode(message, writer = BinaryWriter.create()) {
if (message.publicKey !== undefined) {
Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();
}
if (message.diversifier !== "") {
writer.uint32(18).string(message.diversifier);
}
if (message.timestamp !== BigInt(0)) {
writer.uint32(24).uint64(message.timestamp);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseConsensusState();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.publicKey = Any.decode(reader, reader.uint32());
break;
case 2:
message.diversifier = reader.string();
break;
case 3:
message.timestamp = reader.uint64();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseConsensusState();
message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined;
message.diversifier = object.diversifier ?? "";
message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
return message;
},
fromAmino(object) {
const message = createBaseConsensusState();
if (object.public_key !== undefined && object.public_key !== null) {
message.publicKey = Any.fromAmino(object.public_key);
}
if (object.diversifier !== undefined && object.diversifier !== null) {
message.diversifier = object.diversifier;
}
if (object.timestamp !== undefined && object.timestamp !== null) {
message.timestamp = BigInt(object.timestamp);
}
return message;
},
toAmino(message) {
const obj = {};
obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined;
obj.diversifier = message.diversifier === "" ? undefined : message.diversifier;
obj.timestamp = message.timestamp !== BigInt(0) ? message.timestamp?.toString() : undefined;
return obj;
},
fromAminoMsg(object) {
return ConsensusState.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/ConsensusState",
value: ConsensusState.toAmino(message)
};
},
fromProtoMsg(message) {
return ConsensusState.decode(message.value);
},
toProto(message) {
return ConsensusState.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusState",
value: ConsensusState.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseHeader() {
return {
sequence: BigInt(0),
timestamp: BigInt(0),
signature: new Uint8Array(),
newPublicKey: undefined,
newDiversifier: ""
};
}
/**
* Header defines a solo machine consensus header
* @name Header
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.Header
*/
export const Header = {
typeUrl: "/ibc.lightclients.solomachine.v2.Header",
aminoType: "cosmos-sdk/Header",
is(o) {
return o && (o.$typeUrl === Header.typeUrl || typeof o.sequence === "bigint" && typeof o.timestamp === "bigint" && (o.signature instanceof Uint8Array || typeof o.signature === "string") && typeof o.newDiversifier === "string");
},
isAmino(o) {
return o && (o.$typeUrl === Header.typeUrl || typeof o.sequence === "bigint" && typeof o.timestamp === "bigint" && (o.signature instanceof Uint8Array || typeof o.signature === "string") && typeof o.new_diversifier === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.sequence !== BigInt(0)) {
writer.uint32(8).uint64(message.sequence);
}
if (message.timestamp !== BigInt(0)) {
writer.uint32(16).uint64(message.timestamp);
}
if (message.signature.length !== 0) {
writer.uint32(26).bytes(message.signature);
}
if (message.newPublicKey !== undefined) {
Any.encode(message.newPublicKey, writer.uint32(34).fork()).ldelim();
}
if (message.newDiversifier !== "") {
writer.uint32(42).string(message.newDiversifier);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseHeader();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.sequence = reader.uint64();
break;
case 2:
message.timestamp = reader.uint64();
break;
case 3:
message.signature = reader.bytes();
break;
case 4:
message.newPublicKey = Any.decode(reader, reader.uint32());
break;
case 5:
message.newDiversifier = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseHeader();
message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
message.signature = object.signature ?? new Uint8Array();
message.newPublicKey = object.newPublicKey !== undefined && object.newPublicKey !== null ? Any.fromPartial(object.newPublicKey) : undefined;
message.newDiversifier = object.newDiversifier ?? "";
return message;
},
fromAmino(object) {
const message = createBaseHeader();
if (object.sequence !== undefined && object.sequence !== null) {
message.sequence = BigInt(object.sequence);
}
if (object.timestamp !== undefined && object.timestamp !== null) {
message.timestamp = BigInt(object.timestamp);
}
if (object.signature !== undefined && object.signature !== null) {
message.signature = bytesFromBase64(object.signature);
}
if (object.new_public_key !== undefined && object.new_public_key !== null) {
message.newPublicKey = Any.fromAmino(object.new_public_key);
}
if (object.new_diversifier !== undefined && object.new_diversifier !== null) {
message.newDiversifier = object.new_diversifier;
}
return message;
},
toAmino(message) {
const obj = {};
obj.sequence = message.sequence !== BigInt(0) ? message.sequence?.toString() : undefined;
obj.timestamp = message.timestamp !== BigInt(0) ? message.timestamp?.toString() : undefined;
obj.signature = message.signature ? base64FromBytes(message.signature) : undefined;
obj.new_public_key = message.newPublicKey ? Any.toAmino(message.newPublicKey) : undefined;
obj.new_diversifier = message.newDiversifier === "" ? undefined : message.newDiversifier;
return obj;
},
fromAminoMsg(object) {
return Header.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/Header",
value: Header.toAmino(message)
};
},
fromProtoMsg(message) {
return Header.decode(message.value);
},
toProto(message) {
return Header.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.Header",
value: Header.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseMisbehaviour() {
return {
clientId: "",
sequence: BigInt(0),
signatureOne: undefined,
signatureTwo: undefined
};
}
/**
* Misbehaviour defines misbehaviour for a solo machine which consists
* of a sequence and two signatures over different messages at that sequence.
* @name Misbehaviour
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.Misbehaviour
*/
export const Misbehaviour = {
typeUrl: "/ibc.lightclients.solomachine.v2.Misbehaviour",
aminoType: "cosmos-sdk/Misbehaviour",
is(o) {
return o && (o.$typeUrl === Misbehaviour.typeUrl || typeof o.clientId === "string" && typeof o.sequence === "bigint");
},
isAmino(o) {
return o && (o.$typeUrl === Misbehaviour.typeUrl || typeof o.client_id === "string" && typeof o.sequence === "bigint");
},
encode(message, writer = BinaryWriter.create()) {
if (message.clientId !== "") {
writer.uint32(10).string(message.clientId);
}
if (message.sequence !== BigInt(0)) {
writer.uint32(16).uint64(message.sequence);
}
if (message.signatureOne !== undefined) {
SignatureAndData.encode(message.signatureOne, writer.uint32(26).fork()).ldelim();
}
if (message.signatureTwo !== undefined) {
SignatureAndData.encode(message.signatureTwo, writer.uint32(34).fork()).ldelim();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseMisbehaviour();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.clientId = reader.string();
break;
case 2:
message.sequence = reader.uint64();
break;
case 3:
message.signatureOne = SignatureAndData.decode(reader, reader.uint32());
break;
case 4:
message.signatureTwo = SignatureAndData.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseMisbehaviour();
message.clientId = object.clientId ?? "";
message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
message.signatureOne = object.signatureOne !== undefined && object.signatureOne !== null ? SignatureAndData.fromPartial(object.signatureOne) : undefined;
message.signatureTwo = object.signatureTwo !== undefined && object.signatureTwo !== null ? SignatureAndData.fromPartial(object.signatureTwo) : undefined;
return message;
},
fromAmino(object) {
const message = createBaseMisbehaviour();
if (object.client_id !== undefined && object.client_id !== null) {
message.clientId = object.client_id;
}
if (object.sequence !== undefined && object.sequence !== null) {
message.sequence = BigInt(object.sequence);
}
if (object.signature_one !== undefined && object.signature_one !== null) {
message.signatureOne = SignatureAndData.fromAmino(object.signature_one);
}
if (object.signature_two !== undefined && object.signature_two !== null) {
message.signatureTwo = SignatureAndData.fromAmino(object.signature_two);
}
return message;
},
toAmino(message) {
const obj = {};
obj.client_id = message.clientId === "" ? undefined : message.clientId;
obj.sequence = message.sequence !== BigInt(0) ? message.sequence?.toString() : undefined;
obj.signature_one = message.signatureOne ? SignatureAndData.toAmino(message.signatureOne) : undefined;
obj.signature_two = message.signatureTwo ? SignatureAndData.toAmino(message.signatureTwo) : undefined;
return obj;
},
fromAminoMsg(object) {
return Misbehaviour.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/Misbehaviour",
value: Misbehaviour.toAmino(message)
};
},
fromProtoMsg(message) {
return Misbehaviour.decode(message.value);
},
toProto(message) {
return Misbehaviour.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.Misbehaviour",
value: Misbehaviour.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(Misbehaviour.typeUrl)) {
return;
}
SignatureAndData.registerTypeUrl();
}
};
function createBaseSignatureAndData() {
return {
signature: new Uint8Array(),
dataType: 0,
data: new Uint8Array(),
timestamp: BigInt(0)
};
}
/**
* SignatureAndData contains a signature and the data signed over to create that
* signature.
* @name SignatureAndData
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.SignatureAndData
*/
export const SignatureAndData = {
typeUrl: "/ibc.lightclients.solomachine.v2.SignatureAndData",
aminoType: "cosmos-sdk/SignatureAndData",
is(o) {
return o && (o.$typeUrl === SignatureAndData.typeUrl || (o.signature instanceof Uint8Array || typeof o.signature === "string") && isSet(o.dataType) && (o.data instanceof Uint8Array || typeof o.data === "string") && typeof o.timestamp === "bigint");
},
isAmino(o) {
return o && (o.$typeUrl === SignatureAndData.typeUrl || (o.signature instanceof Uint8Array || typeof o.signature === "string") && isSet(o.data_type) && (o.data instanceof Uint8Array || typeof o.data === "string") && typeof o.timestamp === "bigint");
},
encode(message, writer = BinaryWriter.create()) {
if (message.signature.length !== 0) {
writer.uint32(10).bytes(message.signature);
}
if (message.dataType !== 0) {
writer.uint32(16).int32(message.dataType);
}
if (message.data.length !== 0) {
writer.uint32(26).bytes(message.data);
}
if (message.timestamp !== BigInt(0)) {
writer.uint32(32).uint64(message.timestamp);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSignatureAndData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.signature = reader.bytes();
break;
case 2:
message.dataType = reader.int32();
break;
case 3:
message.data = reader.bytes();
break;
case 4:
message.timestamp = reader.uint64();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSignatureAndData();
message.signature = object.signature ?? new Uint8Array();
message.dataType = object.dataType ?? 0;
message.data = object.data ?? new Uint8Array();
message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
return message;
},
fromAmino(object) {
const message = createBaseSignatureAndData();
if (object.signature !== undefined && object.signature !== null) {
message.signature = bytesFromBase64(object.signature);
}
if (object.data_type !== undefined && object.data_type !== null) {
message.dataType = object.data_type;
}
if (object.data !== undefined && object.data !== null) {
message.data = bytesFromBase64(object.data);
}
if (object.timestamp !== undefined && object.timestamp !== null) {
message.timestamp = BigInt(object.timestamp);
}
return message;
},
toAmino(message) {
const obj = {};
obj.signature = message.signature ? base64FromBytes(message.signature) : undefined;
obj.data_type = message.dataType === 0 ? undefined : message.dataType;
obj.data = message.data ? base64FromBytes(message.data) : undefined;
obj.timestamp = message.timestamp !== BigInt(0) ? message.timestamp?.toString() : undefined;
return obj;
},
fromAminoMsg(object) {
return SignatureAndData.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SignatureAndData",
value: SignatureAndData.toAmino(message)
};
},
fromProtoMsg(message) {
return SignatureAndData.decode(message.value);
},
toProto(message) {
return SignatureAndData.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.SignatureAndData",
value: SignatureAndData.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseTimestampedSignatureData() {
return {
signatureData: new Uint8Array(),
timestamp: BigInt(0)
};
}
/**
* TimestampedSignatureData contains the signature data and the timestamp of the
* signature.
* @name TimestampedSignatureData
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.TimestampedSignatureData
*/
export const TimestampedSignatureData = {
typeUrl: "/ibc.lightclients.solomachine.v2.TimestampedSignatureData",
aminoType: "cosmos-sdk/TimestampedSignatureData",
is(o) {
return o && (o.$typeUrl === TimestampedSignatureData.typeUrl || (o.signatureData instanceof Uint8Array || typeof o.signatureData === "string") && typeof o.timestamp === "bigint");
},
isAmino(o) {
return o && (o.$typeUrl === TimestampedSignatureData.typeUrl || (o.signature_data instanceof Uint8Array || typeof o.signature_data === "string") && typeof o.timestamp === "bigint");
},
encode(message, writer = BinaryWriter.create()) {
if (message.signatureData.length !== 0) {
writer.uint32(10).bytes(message.signatureData);
}
if (message.timestamp !== BigInt(0)) {
writer.uint32(16).uint64(message.timestamp);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTimestampedSignatureData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.signatureData = reader.bytes();
break;
case 2:
message.timestamp = reader.uint64();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseTimestampedSignatureData();
message.signatureData = object.signatureData ?? new Uint8Array();
message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
return message;
},
fromAmino(object) {
const message = createBaseTimestampedSignatureData();
if (object.signature_data !== undefined && object.signature_data !== null) {
message.signatureData = bytesFromBase64(object.signature_data);
}
if (object.timestamp !== undefined && object.timestamp !== null) {
message.timestamp = BigInt(object.timestamp);
}
return message;
},
toAmino(message) {
const obj = {};
obj.signature_data = message.signatureData ? base64FromBytes(message.signatureData) : undefined;
obj.timestamp = message.timestamp !== BigInt(0) ? message.timestamp?.toString() : undefined;
return obj;
},
fromAminoMsg(object) {
return TimestampedSignatureData.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/TimestampedSignatureData",
value: TimestampedSignatureData.toAmino(message)
};
},
fromProtoMsg(message) {
return TimestampedSignatureData.decode(message.value);
},
toProto(message) {
return TimestampedSignatureData.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.TimestampedSignatureData",
value: TimestampedSignatureData.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseSignBytes() {
return {
sequence: BigInt(0),
timestamp: BigInt(0),
diversifier: "",
dataType: 0,
data: new Uint8Array()
};
}
/**
* SignBytes defines the signed bytes used for signature verification.
* @name SignBytes
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.SignBytes
*/
export const SignBytes = {
typeUrl: "/ibc.lightclients.solomachine.v2.SignBytes",
aminoType: "cosmos-sdk/SignBytes",
is(o) {
return o && (o.$typeUrl === SignBytes.typeUrl || typeof o.sequence === "bigint" && typeof o.timestamp === "bigint" && typeof o.diversifier === "string" && isSet(o.dataType) && (o.data instanceof Uint8Array || typeof o.data === "string"));
},
isAmino(o) {
return o && (o.$typeUrl === SignBytes.typeUrl || typeof o.sequence === "bigint" && typeof o.timestamp === "bigint" && typeof o.diversifier === "string" && isSet(o.data_type) && (o.data instanceof Uint8Array || typeof o.data === "string"));
},
encode(message, writer = BinaryWriter.create()) {
if (message.sequence !== BigInt(0)) {
writer.uint32(8).uint64(message.sequence);
}
if (message.timestamp !== BigInt(0)) {
writer.uint32(16).uint64(message.timestamp);
}
if (message.diversifier !== "") {
writer.uint32(26).string(message.diversifier);
}
if (message.dataType !== 0) {
writer.uint32(32).int32(message.dataType);
}
if (message.data.length !== 0) {
writer.uint32(42).bytes(message.data);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSignBytes();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.sequence = reader.uint64();
break;
case 2:
message.timestamp = reader.uint64();
break;
case 3:
message.diversifier = reader.string();
break;
case 4:
message.dataType = reader.int32();
break;
case 5:
message.data = reader.bytes();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSignBytes();
message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0);
message.timestamp = object.timestamp !== undefined && object.timestamp !== null ? BigInt(object.timestamp.toString()) : BigInt(0);
message.diversifier = object.diversifier ?? "";
message.dataType = object.dataType ?? 0;
message.data = object.data ?? new Uint8Array();
return message;
},
fromAmino(object) {
const message = createBaseSignBytes();
if (object.sequence !== undefined && object.sequence !== null) {
message.sequence = BigInt(object.sequence);
}
if (object.timestamp !== undefined && object.timestamp !== null) {
message.timestamp = BigInt(object.timestamp);
}
if (object.diversifier !== undefined && object.diversifier !== null) {
message.diversifier = object.diversifier;
}
if (object.data_type !== undefined && object.data_type !== null) {
message.dataType = object.data_type;
}
if (object.data !== undefined && object.data !== null) {
message.data = bytesFromBase64(object.data);
}
return message;
},
toAmino(message) {
const obj = {};
obj.sequence = message.sequence !== BigInt(0) ? message.sequence?.toString() : undefined;
obj.timestamp = message.timestamp !== BigInt(0) ? message.timestamp?.toString() : undefined;
obj.diversifier = message.diversifier === "" ? undefined : message.diversifier;
obj.data_type = message.dataType === 0 ? undefined : message.dataType;
obj.data = message.data ? base64FromBytes(message.data) : undefined;
return obj;
},
fromAminoMsg(object) {
return SignBytes.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SignBytes",
value: SignBytes.toAmino(message)
};
},
fromProtoMsg(message) {
return SignBytes.decode(message.value);
},
toProto(message) {
return SignBytes.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.SignBytes",
value: SignBytes.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseHeaderData() {
return {
newPubKey: undefined,
newDiversifier: ""
};
}
/**
* HeaderData returns the SignBytes data for update verification.
* @name HeaderData
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.HeaderData
*/
export const HeaderData = {
typeUrl: "/ibc.lightclients.solomachine.v2.HeaderData",
aminoType: "cosmos-sdk/HeaderData",
is(o) {
return o && (o.$typeUrl === HeaderData.typeUrl || typeof o.newDiversifier === "string");
},
isAmino(o) {
return o && (o.$typeUrl === HeaderData.typeUrl || typeof o.new_diversifier === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.newPubKey !== undefined) {
Any.encode(message.newPubKey, writer.uint32(10).fork()).ldelim();
}
if (message.newDiversifier !== "") {
writer.uint32(18).string(message.newDiversifier);
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseHeaderData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.newPubKey = Any.decode(reader, reader.uint32());
break;
case 2:
message.newDiversifier = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseHeaderData();
message.newPubKey = object.newPubKey !== undefined && object.newPubKey !== null ? Any.fromPartial(object.newPubKey) : undefined;
message.newDiversifier = object.newDiversifier ?? "";
return message;
},
fromAmino(object) {
const message = createBaseHeaderData();
if (object.new_pub_key !== undefined && object.new_pub_key !== null) {
message.newPubKey = Any.fromAmino(object.new_pub_key);
}
if (object.new_diversifier !== undefined && object.new_diversifier !== null) {
message.newDiversifier = object.new_diversifier;
}
return message;
},
toAmino(message) {
const obj = {};
obj.new_pub_key = message.newPubKey ? Any.toAmino(message.newPubKey) : undefined;
obj.new_diversifier = message.newDiversifier === "" ? undefined : message.newDiversifier;
return obj;
},
fromAminoMsg(object) {
return HeaderData.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/HeaderData",
value: HeaderData.toAmino(message)
};
},
fromProtoMsg(message) {
return HeaderData.decode(message.value);
},
toProto(message) {
return HeaderData.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.HeaderData",
value: HeaderData.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseClientStateData() {
return {
path: new Uint8Array(),
clientState: undefined
};
}
/**
* ClientStateData returns the SignBytes data for client state verification.
* @name ClientStateData
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.ClientStateData
*/
export const ClientStateData = {
typeUrl: "/ibc.lightclients.solomachine.v2.ClientStateData",
aminoType: "cosmos-sdk/ClientStateData",
is(o) {
return o && (o.$typeUrl === ClientStateData.typeUrl || o.path instanceof Uint8Array || typeof o.path === "string");
},
isAmino(o) {
return o && (o.$typeUrl === ClientStateData.typeUrl || o.path instanceof Uint8Array || typeof o.path === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.path.length !== 0) {
writer.uint32(10).bytes(message.path);
}
if (message.clientState !== undefined) {
Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseClientStateData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.path = reader.bytes();
break;
case 2:
message.clientState = Any.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseClientStateData();
message.path = object.path ?? new Uint8Array();
message.clientState = object.clientState !== undefined && object.clientState !== null ? Any.fromPartial(object.clientState) : undefined;
return message;
},
fromAmino(object) {
const message = createBaseClientStateData();
if (object.path !== undefined && object.path !== null) {
message.path = bytesFromBase64(object.path);
}
if (object.client_state !== undefined && object.client_state !== null) {
message.clientState = Any.fromAmino(object.client_state);
}
return message;
},
toAmino(message) {
const obj = {};
obj.path = message.path ? base64FromBytes(message.path) : undefined;
obj.client_state = message.clientState ? Any.toAmino(message.clientState) : undefined;
return obj;
},
fromAminoMsg(object) {
return ClientStateData.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/ClientStateData",
value: ClientStateData.toAmino(message)
};
},
fromProtoMsg(message) {
return ClientStateData.decode(message.value);
},
toProto(message) {
return ClientStateData.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.ClientStateData",
value: ClientStateData.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseConsensusStateData() {
return {
path: new Uint8Array(),
consensusState: undefined
};
}
/**
* ConsensusStateData returns the SignBytes data for consensus state
* verification.
* @name ConsensusStateData
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.ConsensusStateData
*/
export const ConsensusStateData = {
typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusStateData",
aminoType: "cosmos-sdk/ConsensusStateData",
is(o) {
return o && (o.$typeUrl === ConsensusStateData.typeUrl || o.path instanceof Uint8Array || typeof o.path === "string");
},
isAmino(o) {
return o && (o.$typeUrl === ConsensusStateData.typeUrl || o.path instanceof Uint8Array || typeof o.path === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.path.length !== 0) {
writer.uint32(10).bytes(message.path);
}
if (message.consensusState !== undefined) {
Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input, length) {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseConsensusStateData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.path = reader.bytes();
break;
case 2:
message.consensusState = Any.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseConsensusStateData();
message.path = object.path ?? new Uint8Array();
message.consensusState = object.consensusState !== undefined && object.consensusState !== null ? Any.fromPartial(object.consensusState) : undefined;
return message;
},
fromAmino(object) {
const message = createBaseConsensusStateData();
if (object.path !== undefined && object.path !== null) {
message.path = bytesFromBase64(object.path);
}
if (object.consensus_state !== undefined && object.consensus_state !== null) {
message.consensusState = Any.fromAmino(object.consensus_state);
}
return message;
},
toAmino(message) {
const obj = {};
obj.path = message.path ? base64FromBytes(message.path) : undefined;
obj.consensus_state = message.consensusState ? Any.toAmino(message.consensusState) : undefined;
return obj;
},
fromAminoMsg(object) {
return ConsensusStateData.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/ConsensusStateData",
value: ConsensusStateData.toAmino(message)
};
},
fromProtoMsg(message) {
return ConsensusStateData.decode(message.value);
},
toProto(message) {
return ConsensusStateData.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.lightclients.solomachine.v2.ConsensusStateData",
value: ConsensusStateData.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseConnectionStateData() {
return {
path: new Uint8Array(),
connection: undefined
};
}
/**
* ConnectionStateData returns the SignBytes data for connection state
* verification.
* @name ConnectionStateData
* @package ibc.lightclients.solomachine.v2
* @see proto type: ibc.lightclients.solomachine.v2.ConnectionStateData
*/
export const ConnectionStateData = {
typeUrl: "/ibc.lightclients.solomachine.v2.ConnectionStateData",
aminoType: "cosmos-sdk/ConnectionStateData",
is(o) {
return o && (o.$typeUrl === ConnectionStateData.typeUrl || o.path instanceof Uint8Array || typeof o.path === "string");
},
isAmino(o) {
return o && (o.$typeUrl === ConnectionStateData.typeUrl || o.path instanceof Uint8Array || typeof o.path === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.path.length !== 0) {
writer.uint32(10).bytes(message.path);
}
if (message.connection !== undefined) {
ConnectionEnd.encode(message.connection, writer.uint32(18).fork()).ldelim();