UNPKG

interchainjs

Version:

InterchainJS is a JavaScript library for interacting with Cosmos SDK based blockchains.

103 lines (102 loc) 3.71 kB
import { Any } from "../../../google/protobuf/any"; import { BinaryReader, BinaryWriter } from "../../../binary"; function createBaseLegacyAminoPubKey() { return { threshold: 0, publicKeys: [] }; } /** * LegacyAminoPubKey specifies a public key type * which nests multiple public keys and a threshold, * it uses legacy amino address rules. * @name LegacyAminoPubKey * @package cosmos.crypto.multisig * @see proto type: cosmos.crypto.multisig.LegacyAminoPubKey */ export const LegacyAminoPubKey = { typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey", aminoType: "tendermint/PubKeyMultisigThreshold", is(o) { return o && (o.$typeUrl === LegacyAminoPubKey.typeUrl || typeof o.threshold === "number" && Array.isArray(o.publicKeys) && (!o.publicKeys.length || Any.is(o.publicKeys[0]))); }, isAmino(o) { return o && (o.$typeUrl === LegacyAminoPubKey.typeUrl || typeof o.threshold === "number" && Array.isArray(o.public_keys) && (!o.public_keys.length || Any.isAmino(o.public_keys[0]))); }, encode(message, writer = BinaryWriter.create()) { if (message.threshold !== 0) { writer.uint32(8).uint32(message.threshold); } for (const v of message.publicKeys) { Any.encode(v, 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 = createBaseLegacyAminoPubKey(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.threshold = reader.uint32(); break; case 2: message.publicKeys.push(Any.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseLegacyAminoPubKey(); message.threshold = object.threshold ?? 0; message.publicKeys = object.publicKeys?.map(e => Any.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseLegacyAminoPubKey(); if (object.threshold !== undefined && object.threshold !== null) { message.threshold = object.threshold; } message.publicKeys = object.public_keys?.map(e => Any.fromAmino(e)) || []; return message; }, toAmino(message) { const obj = {}; obj.threshold = message.threshold === 0 ? undefined : message.threshold; if (message.publicKeys) { obj.public_keys = message.publicKeys.map(e => e ? Any.toAmino(e) : undefined); } else { obj.public_keys = message.publicKeys; } return obj; }, fromAminoMsg(object) { return LegacyAminoPubKey.fromAmino(object.value); }, toAminoMsg(message) { return { type: "tendermint/PubKeyMultisigThreshold", value: LegacyAminoPubKey.toAmino(message) }; }, fromProtoMsg(message) { return LegacyAminoPubKey.decode(message.value); }, toProto(message) { return LegacyAminoPubKey.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey", value: LegacyAminoPubKey.encode(message).finish() }; }, registerTypeUrl() { } };