interchainjs
Version:
InterchainJS is a JavaScript library for interacting with Cosmos SDK based blockchains.
189 lines (188 loc) • 6.81 kB
JavaScript
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { bytesFromBase64, base64FromBytes } from "../../../../helpers";
function createBaseMultiSignature() {
return {
signatures: []
};
}
/**
* MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey.
* See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers
* signed and with which modes.
* @name MultiSignature
* @package cosmos.crypto.multisig.v1beta1
* @see proto type: cosmos.crypto.multisig.v1beta1.MultiSignature
*/
export const MultiSignature = {
typeUrl: "/cosmos.crypto.multisig.v1beta1.MultiSignature",
aminoType: "cosmos-sdk/MultiSignature",
is(o) {
return o && (o.$typeUrl === MultiSignature.typeUrl || Array.isArray(o.signatures) && (!o.signatures.length || o.signatures[0] instanceof Uint8Array || typeof o.signatures[0] === "string"));
},
isAmino(o) {
return o && (o.$typeUrl === MultiSignature.typeUrl || Array.isArray(o.signatures) && (!o.signatures.length || o.signatures[0] instanceof Uint8Array || typeof o.signatures[0] === "string"));
},
encode(message, writer = BinaryWriter.create()) {
for (const v of message.signatures) {
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 = createBaseMultiSignature();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.signatures.push(reader.bytes());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseMultiSignature();
message.signatures = object.signatures?.map(e => e) || [];
return message;
},
fromAmino(object) {
const message = createBaseMultiSignature();
message.signatures = object.signatures?.map(e => bytesFromBase64(e)) || [];
return message;
},
toAmino(message) {
const obj = {};
if (message.signatures) {
obj.signatures = message.signatures.map(e => base64FromBytes(e));
}
else {
obj.signatures = message.signatures;
}
return obj;
},
fromAminoMsg(object) {
return MultiSignature.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/MultiSignature",
value: MultiSignature.toAmino(message)
};
},
fromProtoMsg(message) {
return MultiSignature.decode(message.value);
},
toProto(message) {
return MultiSignature.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.crypto.multisig.v1beta1.MultiSignature",
value: MultiSignature.encode(message).finish()
};
},
registerTypeUrl() { }
};
function createBaseCompactBitArray() {
return {
extraBitsStored: 0,
elems: new Uint8Array()
};
}
/**
* CompactBitArray is an implementation of a space efficient bit array.
* This is used to ensure that the encoded data takes up a minimal amount of
* space after proto encoding.
* This is not thread safe, and is not intended for concurrent usage.
* @name CompactBitArray
* @package cosmos.crypto.multisig.v1beta1
* @see proto type: cosmos.crypto.multisig.v1beta1.CompactBitArray
*/
export const CompactBitArray = {
typeUrl: "/cosmos.crypto.multisig.v1beta1.CompactBitArray",
aminoType: "cosmos-sdk/CompactBitArray",
is(o) {
return o && (o.$typeUrl === CompactBitArray.typeUrl || typeof o.extraBitsStored === "number" && (o.elems instanceof Uint8Array || typeof o.elems === "string"));
},
isAmino(o) {
return o && (o.$typeUrl === CompactBitArray.typeUrl || typeof o.extra_bits_stored === "number" && (o.elems instanceof Uint8Array || typeof o.elems === "string"));
},
encode(message, writer = BinaryWriter.create()) {
if (message.extraBitsStored !== 0) {
writer.uint32(8).uint32(message.extraBitsStored);
}
if (message.elems.length !== 0) {
writer.uint32(18).bytes(message.elems);
}
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 = createBaseCompactBitArray();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.extraBitsStored = reader.uint32();
break;
case 2:
message.elems = reader.bytes();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseCompactBitArray();
message.extraBitsStored = object.extraBitsStored ?? 0;
message.elems = object.elems ?? new Uint8Array();
return message;
},
fromAmino(object) {
const message = createBaseCompactBitArray();
if (object.extra_bits_stored !== undefined && object.extra_bits_stored !== null) {
message.extraBitsStored = object.extra_bits_stored;
}
if (object.elems !== undefined && object.elems !== null) {
message.elems = bytesFromBase64(object.elems);
}
return message;
},
toAmino(message) {
const obj = {};
obj.extra_bits_stored = message.extraBitsStored === 0 ? undefined : message.extraBitsStored;
obj.elems = message.elems ? base64FromBytes(message.elems) : undefined;
return obj;
},
fromAminoMsg(object) {
return CompactBitArray.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/CompactBitArray",
value: CompactBitArray.toAmino(message)
};
},
fromProtoMsg(message) {
return CompactBitArray.decode(message.value);
},
toProto(message) {
return CompactBitArray.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/cosmos.crypto.multisig.v1beta1.CompactBitArray",
value: CompactBitArray.encode(message).finish()
};
},
registerTypeUrl() { }
};