interchainjs
Version:
InterchainJS is a JavaScript library for interacting with Cosmos SDK based blockchains.
733 lines (732 loc) • 26.9 kB
JavaScript
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { GlobalDecoderRegistry } from "../../../../registry";
import { bytesFromBase64, base64FromBytes } from "../../../../helpers";
function createBaseSnapshot() {
return {
height: BigInt(0),
format: 0,
chunks: 0,
hash: new Uint8Array(),
metadata: Metadata.fromPartial({})
};
}
/**
* Snapshot contains Tendermint state sync snapshot info.
* @name Snapshot
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.Snapshot
*/
export const Snapshot = {
typeUrl: "/cosmos.store.snapshots.v2.Snapshot",
aminoType: "cosmos-sdk/Snapshot",
is(o) {
return o && (o.$typeUrl === Snapshot.typeUrl || typeof o.height === "bigint" && typeof o.format === "number" && typeof o.chunks === "number" && (o.hash instanceof Uint8Array || typeof o.hash === "string") && Metadata.is(o.metadata));
},
isAmino(o) {
return o && (o.$typeUrl === Snapshot.typeUrl || typeof o.height === "bigint" && typeof o.format === "number" && typeof o.chunks === "number" && (o.hash instanceof Uint8Array || typeof o.hash === "string") && Metadata.isAmino(o.metadata));
},
encode(message, writer = BinaryWriter.create()) {
if (message.height !== BigInt(0)) {
writer.uint32(8).uint64(message.height);
}
if (message.format !== 0) {
writer.uint32(16).uint32(message.format);
}
if (message.chunks !== 0) {
writer.uint32(24).uint32(message.chunks);
}
if (message.hash.length !== 0) {
writer.uint32(34).bytes(message.hash);
}
if (message.metadata !== undefined) {
Metadata.encode(message.metadata, writer.uint32(42).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 = createBaseSnapshot();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.height = reader.uint64();
break;
case 2:
message.format = reader.uint32();
break;
case 3:
message.chunks = reader.uint32();
break;
case 4:
message.hash = reader.bytes();
break;
case 5:
message.metadata = Metadata.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSnapshot();
message.height = object.height !== undefined && object.height !== null ? BigInt(object.height.toString()) : BigInt(0);
message.format = object.format ?? 0;
message.chunks = object.chunks ?? 0;
message.hash = object.hash ?? new Uint8Array();
message.metadata = object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined;
return message;
},
fromAmino(object) {
const message = createBaseSnapshot();
if (object.height !== undefined && object.height !== null) {
message.height = BigInt(object.height);
}
if (object.format !== undefined && object.format !== null) {
message.format = object.format;
}
if (object.chunks !== undefined && object.chunks !== null) {
message.chunks = object.chunks;
}
if (object.hash !== undefined && object.hash !== null) {
message.hash = bytesFromBase64(object.hash);
}
if (object.metadata !== undefined && object.metadata !== null) {
message.metadata = Metadata.fromAmino(object.metadata);
}
return message;
},
toAmino(message) {
const obj = {};
obj.height = message.height !== BigInt(0) ? message.height?.toString() : undefined;
obj.format = message.format === 0 ? undefined : message.format;
obj.chunks = message.chunks === 0 ? undefined : message.chunks;
obj.hash = message.hash ? base64FromBytes(message.hash) : undefined;
obj.metadata = message.metadata ? Metadata.toAmino(message.metadata) : undefined;
return obj;
},
fromAminoMsg(object) {
return Snapshot.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/Snapshot",
value: Snapshot.toAmino(message)
};
},
fromProtoMsg(message) {
return Snapshot.decode(message.value);
},
toProto(message) {
return Snapshot.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.Snapshot",
value: Snapshot.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(Snapshot.typeUrl)) {
return;
}
Metadata.registerTypeUrl();
}
};
function createBaseMetadata() {
return {
chunkHashes: []
};
}
/**
* Metadata contains SDK-specific snapshot metadata.
* @name Metadata
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.Metadata
*/
export const Metadata = {
typeUrl: "/cosmos.store.snapshots.v2.Metadata",
aminoType: "cosmos-sdk/Metadata",
is(o) {
return o && (o.$typeUrl === Metadata.typeUrl || Array.isArray(o.chunkHashes) && (!o.chunkHashes.length || o.chunkHashes[0] instanceof Uint8Array || typeof o.chunkHashes[0] === "string"));
},
isAmino(o) {
return o && (o.$typeUrl === Metadata.typeUrl || Array.isArray(o.chunk_hashes) && (!o.chunk_hashes.length || o.chunk_hashes[0] instanceof Uint8Array || typeof o.chunk_hashes[0] === "string"));
},
encode(message, writer = BinaryWriter.create()) {
for (const v of message.chunkHashes) {
writer.uint32(10).bytes(v);
}
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 = createBaseMetadata();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.chunkHashes.push(reader.bytes());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseMetadata();
message.chunkHashes = object.chunkHashes?.map(e => e) || [];
return message;
},
fromAmino(object) {
const message = createBaseMetadata();
message.chunkHashes = object.chunk_hashes?.map(e => bytesFromBase64(e)) || [];
return message;
},
toAmino(message) {
const obj = {};
if (message.chunkHashes) {
obj.chunk_hashes = message.chunkHashes.map(e => base64FromBytes(e));
}
else {
obj.chunk_hashes = message.chunkHashes;
}
return obj;
},
fromAminoMsg(object) {
return Metadata.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/Metadata",
value: Metadata.toAmino(message)
};
},
fromProtoMsg(message) {
return Metadata.decode(message.value);
},
toProto(message) {
return Metadata.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.Metadata",
value: Metadata.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseSnapshotItem() {
return {
store: undefined,
iavl: undefined,
extension: undefined,
extensionPayload: undefined
};
}
/**
* SnapshotItem is an item contained in a rootmulti.Store snapshot.
* @name SnapshotItem
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.SnapshotItem
*/
export const SnapshotItem = {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotItem",
aminoType: "cosmos-sdk/SnapshotItem",
is(o) {
return o && o.$typeUrl === SnapshotItem.typeUrl;
},
isAmino(o) {
return o && o.$typeUrl === SnapshotItem.typeUrl;
},
encode(message, writer = BinaryWriter.create()) {
if (message.store !== undefined) {
SnapshotStoreItem.encode(message.store, writer.uint32(10).fork()).ldelim();
}
if (message.iavl !== undefined) {
SnapshotIAVLItem.encode(message.iavl, writer.uint32(18).fork()).ldelim();
}
if (message.extension !== undefined) {
SnapshotExtensionMeta.encode(message.extension, writer.uint32(26).fork()).ldelim();
}
if (message.extensionPayload !== undefined) {
SnapshotExtensionPayload.encode(message.extensionPayload, 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 = createBaseSnapshotItem();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.store = SnapshotStoreItem.decode(reader, reader.uint32());
break;
case 2:
message.iavl = SnapshotIAVLItem.decode(reader, reader.uint32());
break;
case 3:
message.extension = SnapshotExtensionMeta.decode(reader, reader.uint32());
break;
case 4:
message.extensionPayload = SnapshotExtensionPayload.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSnapshotItem();
message.store = object.store !== undefined && object.store !== null ? SnapshotStoreItem.fromPartial(object.store) : undefined;
message.iavl = object.iavl !== undefined && object.iavl !== null ? SnapshotIAVLItem.fromPartial(object.iavl) : undefined;
message.extension = object.extension !== undefined && object.extension !== null ? SnapshotExtensionMeta.fromPartial(object.extension) : undefined;
message.extensionPayload = object.extensionPayload !== undefined && object.extensionPayload !== null ? SnapshotExtensionPayload.fromPartial(object.extensionPayload) : undefined;
return message;
},
fromAmino(object) {
const message = createBaseSnapshotItem();
if (object.store !== undefined && object.store !== null) {
message.store = SnapshotStoreItem.fromAmino(object.store);
}
if (object.iavl !== undefined && object.iavl !== null) {
message.iavl = SnapshotIAVLItem.fromAmino(object.iavl);
}
if (object.extension !== undefined && object.extension !== null) {
message.extension = SnapshotExtensionMeta.fromAmino(object.extension);
}
if (object.extension_payload !== undefined && object.extension_payload !== null) {
message.extensionPayload = SnapshotExtensionPayload.fromAmino(object.extension_payload);
}
return message;
},
toAmino(message) {
const obj = {};
obj.store = message.store ? SnapshotStoreItem.toAmino(message.store) : undefined;
obj.iavl = message.iavl ? SnapshotIAVLItem.toAmino(message.iavl) : undefined;
obj.extension = message.extension ? SnapshotExtensionMeta.toAmino(message.extension) : undefined;
obj.extension_payload = message.extensionPayload ? SnapshotExtensionPayload.toAmino(message.extensionPayload) : undefined;
return obj;
},
fromAminoMsg(object) {
return SnapshotItem.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SnapshotItem",
value: SnapshotItem.toAmino(message)
};
},
fromProtoMsg(message) {
return SnapshotItem.decode(message.value);
},
toProto(message) {
return SnapshotItem.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotItem",
value: SnapshotItem.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(SnapshotItem.typeUrl)) {
return;
}
SnapshotStoreItem.registerTypeUrl();
SnapshotIAVLItem.registerTypeUrl();
SnapshotExtensionMeta.registerTypeUrl();
SnapshotExtensionPayload.registerTypeUrl();
}
};
function createBaseSnapshotStoreItem() {
return {
name: ""
};
}
/**
* SnapshotStoreItem contains metadata about a snapshotted store.
* @name SnapshotStoreItem
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.SnapshotStoreItem
*/
export const SnapshotStoreItem = {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotStoreItem",
aminoType: "cosmos-sdk/SnapshotStoreItem",
is(o) {
return o && (o.$typeUrl === SnapshotStoreItem.typeUrl || typeof o.name === "string");
},
isAmino(o) {
return o && (o.$typeUrl === SnapshotStoreItem.typeUrl || typeof o.name === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
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 = createBaseSnapshotStoreItem();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.name = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSnapshotStoreItem();
message.name = object.name ?? "";
return message;
},
fromAmino(object) {
const message = createBaseSnapshotStoreItem();
if (object.name !== undefined && object.name !== null) {
message.name = object.name;
}
return message;
},
toAmino(message) {
const obj = {};
obj.name = message.name === "" ? undefined : message.name;
return obj;
},
fromAminoMsg(object) {
return SnapshotStoreItem.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SnapshotStoreItem",
value: SnapshotStoreItem.toAmino(message)
};
},
fromProtoMsg(message) {
return SnapshotStoreItem.decode(message.value);
},
toProto(message) {
return SnapshotStoreItem.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotStoreItem",
value: SnapshotStoreItem.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseSnapshotIAVLItem() {
return {
key: new Uint8Array(),
value: new Uint8Array(),
version: BigInt(0),
height: 0
};
}
/**
* SnapshotIAVLItem is an exported IAVL node.
* @name SnapshotIAVLItem
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.SnapshotIAVLItem
*/
export const SnapshotIAVLItem = {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotIAVLItem",
aminoType: "cosmos-sdk/SnapshotIAVLItem",
is(o) {
return o && (o.$typeUrl === SnapshotIAVLItem.typeUrl || (o.key instanceof Uint8Array || typeof o.key === "string") && (o.value instanceof Uint8Array || typeof o.value === "string") && typeof o.version === "bigint" && typeof o.height === "number");
},
isAmino(o) {
return o && (o.$typeUrl === SnapshotIAVLItem.typeUrl || (o.key instanceof Uint8Array || typeof o.key === "string") && (o.value instanceof Uint8Array || typeof o.value === "string") && typeof o.version === "bigint" && typeof o.height === "number");
},
encode(message, writer = BinaryWriter.create()) {
if (message.key.length !== 0) {
writer.uint32(10).bytes(message.key);
}
if (message.value.length !== 0) {
writer.uint32(18).bytes(message.value);
}
if (message.version !== BigInt(0)) {
writer.uint32(24).int64(message.version);
}
if (message.height !== 0) {
writer.uint32(32).int32(message.height);
}
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 = createBaseSnapshotIAVLItem();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.key = reader.bytes();
break;
case 2:
message.value = reader.bytes();
break;
case 3:
message.version = reader.int64();
break;
case 4:
message.height = reader.int32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSnapshotIAVLItem();
message.key = object.key ?? new Uint8Array();
message.value = object.value ?? new Uint8Array();
message.version = object.version !== undefined && object.version !== null ? BigInt(object.version.toString()) : BigInt(0);
message.height = object.height ?? 0;
return message;
},
fromAmino(object) {
const message = createBaseSnapshotIAVLItem();
if (object.key !== undefined && object.key !== null) {
message.key = bytesFromBase64(object.key);
}
if (object.value !== undefined && object.value !== null) {
message.value = bytesFromBase64(object.value);
}
if (object.version !== undefined && object.version !== null) {
message.version = BigInt(object.version);
}
if (object.height !== undefined && object.height !== null) {
message.height = object.height;
}
return message;
},
toAmino(message) {
const obj = {};
obj.key = message.key ? base64FromBytes(message.key) : undefined;
obj.value = message.value ? base64FromBytes(message.value) : undefined;
obj.version = message.version !== BigInt(0) ? message.version?.toString() : undefined;
obj.height = message.height === 0 ? undefined : message.height;
return obj;
},
fromAminoMsg(object) {
return SnapshotIAVLItem.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SnapshotIAVLItem",
value: SnapshotIAVLItem.toAmino(message)
};
},
fromProtoMsg(message) {
return SnapshotIAVLItem.decode(message.value);
},
toProto(message) {
return SnapshotIAVLItem.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotIAVLItem",
value: SnapshotIAVLItem.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseSnapshotExtensionMeta() {
return {
name: "",
format: 0
};
}
/**
* SnapshotExtensionMeta contains metadata about an external snapshotter.
* @name SnapshotExtensionMeta
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionMeta
*/
export const SnapshotExtensionMeta = {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotExtensionMeta",
aminoType: "cosmos-sdk/SnapshotExtensionMeta",
is(o) {
return o && (o.$typeUrl === SnapshotExtensionMeta.typeUrl || typeof o.name === "string" && typeof o.format === "number");
},
isAmino(o) {
return o && (o.$typeUrl === SnapshotExtensionMeta.typeUrl || typeof o.name === "string" && typeof o.format === "number");
},
encode(message, writer = BinaryWriter.create()) {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.format !== 0) {
writer.uint32(16).uint32(message.format);
}
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 = createBaseSnapshotExtensionMeta();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.name = reader.string();
break;
case 2:
message.format = reader.uint32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSnapshotExtensionMeta();
message.name = object.name ?? "";
message.format = object.format ?? 0;
return message;
},
fromAmino(object) {
const message = createBaseSnapshotExtensionMeta();
if (object.name !== undefined && object.name !== null) {
message.name = object.name;
}
if (object.format !== undefined && object.format !== null) {
message.format = object.format;
}
return message;
},
toAmino(message) {
const obj = {};
obj.name = message.name === "" ? undefined : message.name;
obj.format = message.format === 0 ? undefined : message.format;
return obj;
},
fromAminoMsg(object) {
return SnapshotExtensionMeta.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SnapshotExtensionMeta",
value: SnapshotExtensionMeta.toAmino(message)
};
},
fromProtoMsg(message) {
return SnapshotExtensionMeta.decode(message.value);
},
toProto(message) {
return SnapshotExtensionMeta.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotExtensionMeta",
value: SnapshotExtensionMeta.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseSnapshotExtensionPayload() {
return {
payload: new Uint8Array()
};
}
/**
* SnapshotExtensionPayload contains payloads of an external snapshotter.
* @name SnapshotExtensionPayload
* @package cosmos.store.snapshots.v2
* @see proto type: cosmos.store.snapshots.v2.SnapshotExtensionPayload
*/
export const SnapshotExtensionPayload = {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotExtensionPayload",
aminoType: "cosmos-sdk/SnapshotExtensionPayload",
is(o) {
return o && (o.$typeUrl === SnapshotExtensionPayload.typeUrl || o.payload instanceof Uint8Array || typeof o.payload === "string");
},
isAmino(o) {
return o && (o.$typeUrl === SnapshotExtensionPayload.typeUrl || o.payload instanceof Uint8Array || typeof o.payload === "string");
},
encode(message, writer = BinaryWriter.create()) {
if (message.payload.length !== 0) {
writer.uint32(10).bytes(message.payload);
}
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 = createBaseSnapshotExtensionPayload();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.payload = reader.bytes();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseSnapshotExtensionPayload();
message.payload = object.payload ?? new Uint8Array();
return message;
},
fromAmino(object) {
const message = createBaseSnapshotExtensionPayload();
if (object.payload !== undefined && object.payload !== null) {
message.payload = bytesFromBase64(object.payload);
}
return message;
},
toAmino(message) {
const obj = {};
obj.payload = message.payload ? base64FromBytes(message.payload) : undefined;
return obj;
},
fromAminoMsg(object) {
return SnapshotExtensionPayload.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/SnapshotExtensionPayload",
value: SnapshotExtensionPayload.toAmino(message)
};
},
fromProtoMsg(message) {
return SnapshotExtensionPayload.decode(message.value);
},
toProto(message) {
return SnapshotExtensionPayload.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.store.snapshots.v2.SnapshotExtensionPayload",
value: SnapshotExtensionPayload.encode(message).finish()
};
},
registerTypeUrl() { }
};