UNPKG

interchainjs

Version:

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

1,305 lines (1,304 loc) 58.4 kB
import { Any } from "../../../google/protobuf/any"; import { Timestamp } from "../../../google/protobuf/timestamp"; import { CompactBitArray } from "../../crypto/multisig/v1beta1/multisig"; import { Coin } from "../../base/v1beta1/coin"; import { BinaryReader, BinaryWriter } from "../../../binary"; import { GlobalDecoderRegistry } from "../../../registry"; import { bytesFromBase64, base64FromBytes, toTimestamp, fromTimestamp, isSet } from "../../../helpers"; function createBaseTx() { return { body: undefined, authInfo: undefined, signatures: [] }; } /** * Tx is the standard type used for broadcasting transactions. * @name Tx * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.Tx */ export const Tx = { typeUrl: "/cosmos.tx.v1beta1.Tx", aminoType: "cosmos-sdk/Tx", is(o) { return o && (o.$typeUrl === Tx.typeUrl || Array.isArray(o.signatures) && (!o.signatures.length || o.signatures[0] instanceof Uint8Array || typeof o.signatures[0] === "string")); }, isAmino(o) { return o && (o.$typeUrl === Tx.typeUrl || Array.isArray(o.signatures) && (!o.signatures.length || o.signatures[0] instanceof Uint8Array || typeof o.signatures[0] === "string")); }, encode(message, writer = BinaryWriter.create()) { if (message.body !== undefined) { TxBody.encode(message.body, writer.uint32(10).fork()).ldelim(); } if (message.authInfo !== undefined) { AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim(); } for (const v of message.signatures) { writer.uint32(26).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 = createBaseTx(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.body = TxBody.decode(reader, reader.uint32()); break; case 2: message.authInfo = AuthInfo.decode(reader, reader.uint32()); break; case 3: message.signatures.push(reader.bytes()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseTx(); message.body = object.body !== undefined && object.body !== null ? TxBody.fromPartial(object.body) : undefined; message.authInfo = object.authInfo !== undefined && object.authInfo !== null ? AuthInfo.fromPartial(object.authInfo) : undefined; message.signatures = object.signatures?.map(e => e) || []; return message; }, fromAmino(object) { const message = createBaseTx(); if (object.body !== undefined && object.body !== null) { message.body = TxBody.fromAmino(object.body); } if (object.auth_info !== undefined && object.auth_info !== null) { message.authInfo = AuthInfo.fromAmino(object.auth_info); } message.signatures = object.signatures?.map(e => bytesFromBase64(e)) || []; return message; }, toAmino(message) { const obj = {}; obj.body = message.body ? TxBody.toAmino(message.body) : undefined; obj.auth_info = message.authInfo ? AuthInfo.toAmino(message.authInfo) : undefined; if (message.signatures) { obj.signatures = message.signatures.map(e => base64FromBytes(e)); } else { obj.signatures = message.signatures; } return obj; }, fromAminoMsg(object) { return Tx.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/Tx", value: Tx.toAmino(message) }; }, fromProtoMsg(message) { return Tx.decode(message.value); }, toProto(message) { return Tx.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.Tx", value: Tx.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(Tx.typeUrl)) { return; } TxBody.registerTypeUrl(); AuthInfo.registerTypeUrl(); } }; function createBaseTxRaw() { return { bodyBytes: new Uint8Array(), authInfoBytes: new Uint8Array(), signatures: [] }; } /** * TxRaw is a variant of Tx that pins the signer's exact binary representation * of body and auth_info. This is used for signing, broadcasting and * verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and * the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used * as the transaction ID. * @name TxRaw * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.TxRaw */ export const TxRaw = { typeUrl: "/cosmos.tx.v1beta1.TxRaw", aminoType: "cosmos-sdk/TxRaw", is(o) { return o && (o.$typeUrl === TxRaw.typeUrl || (o.bodyBytes instanceof Uint8Array || typeof o.bodyBytes === "string") && (o.authInfoBytes instanceof Uint8Array || typeof o.authInfoBytes === "string") && Array.isArray(o.signatures) && (!o.signatures.length || o.signatures[0] instanceof Uint8Array || typeof o.signatures[0] === "string")); }, isAmino(o) { return o && (o.$typeUrl === TxRaw.typeUrl || (o.body_bytes instanceof Uint8Array || typeof o.body_bytes === "string") && (o.auth_info_bytes instanceof Uint8Array || typeof o.auth_info_bytes === "string") && Array.isArray(o.signatures) && (!o.signatures.length || o.signatures[0] instanceof Uint8Array || typeof o.signatures[0] === "string")); }, encode(message, writer = BinaryWriter.create()) { if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } if (message.authInfoBytes.length !== 0) { writer.uint32(18).bytes(message.authInfoBytes); } for (const v of message.signatures) { writer.uint32(26).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 = createBaseTxRaw(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.bodyBytes = reader.bytes(); break; case 2: message.authInfoBytes = reader.bytes(); break; case 3: message.signatures.push(reader.bytes()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseTxRaw(); message.bodyBytes = object.bodyBytes ?? new Uint8Array(); message.authInfoBytes = object.authInfoBytes ?? new Uint8Array(); message.signatures = object.signatures?.map(e => e) || []; return message; }, fromAmino(object) { const message = createBaseTxRaw(); if (object.body_bytes !== undefined && object.body_bytes !== null) { message.bodyBytes = bytesFromBase64(object.body_bytes); } if (object.auth_info_bytes !== undefined && object.auth_info_bytes !== null) { message.authInfoBytes = bytesFromBase64(object.auth_info_bytes); } message.signatures = object.signatures?.map(e => bytesFromBase64(e)) || []; return message; }, toAmino(message) { const obj = {}; obj.body_bytes = message.bodyBytes ? base64FromBytes(message.bodyBytes) : undefined; obj.auth_info_bytes = message.authInfoBytes ? base64FromBytes(message.authInfoBytes) : undefined; if (message.signatures) { obj.signatures = message.signatures.map(e => base64FromBytes(e)); } else { obj.signatures = message.signatures; } return obj; }, fromAminoMsg(object) { return TxRaw.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/TxRaw", value: TxRaw.toAmino(message) }; }, fromProtoMsg(message) { return TxRaw.decode(message.value); }, toProto(message) { return TxRaw.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.TxRaw", value: TxRaw.encode(message).finish() }; }, registerTypeUrl() { } }; function createBaseSignDoc() { return { bodyBytes: new Uint8Array(), authInfoBytes: new Uint8Array(), chainId: "", accountNumber: BigInt(0) }; } /** * SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. * @name SignDoc * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.SignDoc */ export const SignDoc = { typeUrl: "/cosmos.tx.v1beta1.SignDoc", aminoType: "cosmos-sdk/SignDoc", is(o) { return o && (o.$typeUrl === SignDoc.typeUrl || (o.bodyBytes instanceof Uint8Array || typeof o.bodyBytes === "string") && (o.authInfoBytes instanceof Uint8Array || typeof o.authInfoBytes === "string") && typeof o.chainId === "string" && typeof o.accountNumber === "bigint"); }, isAmino(o) { return o && (o.$typeUrl === SignDoc.typeUrl || (o.body_bytes instanceof Uint8Array || typeof o.body_bytes === "string") && (o.auth_info_bytes instanceof Uint8Array || typeof o.auth_info_bytes === "string") && typeof o.chain_id === "string" && typeof o.account_number === "bigint"); }, encode(message, writer = BinaryWriter.create()) { if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } if (message.authInfoBytes.length !== 0) { writer.uint32(18).bytes(message.authInfoBytes); } if (message.chainId !== "") { writer.uint32(26).string(message.chainId); } if (message.accountNumber !== BigInt(0)) { writer.uint32(32).uint64(message.accountNumber); } 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 = createBaseSignDoc(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.bodyBytes = reader.bytes(); break; case 2: message.authInfoBytes = reader.bytes(); break; case 3: message.chainId = reader.string(); break; case 4: message.accountNumber = reader.uint64(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseSignDoc(); message.bodyBytes = object.bodyBytes ?? new Uint8Array(); message.authInfoBytes = object.authInfoBytes ?? new Uint8Array(); message.chainId = object.chainId ?? ""; message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? BigInt(object.accountNumber.toString()) : BigInt(0); return message; }, fromAmino(object) { const message = createBaseSignDoc(); if (object.body_bytes !== undefined && object.body_bytes !== null) { message.bodyBytes = bytesFromBase64(object.body_bytes); } if (object.auth_info_bytes !== undefined && object.auth_info_bytes !== null) { message.authInfoBytes = bytesFromBase64(object.auth_info_bytes); } if (object.chain_id !== undefined && object.chain_id !== null) { message.chainId = object.chain_id; } if (object.account_number !== undefined && object.account_number !== null) { message.accountNumber = BigInt(object.account_number); } return message; }, toAmino(message) { const obj = {}; obj.body_bytes = message.bodyBytes ? base64FromBytes(message.bodyBytes) : undefined; obj.auth_info_bytes = message.authInfoBytes ? base64FromBytes(message.authInfoBytes) : undefined; obj.chain_id = message.chainId === "" ? undefined : message.chainId; obj.account_number = message.accountNumber !== BigInt(0) ? message.accountNumber?.toString() : undefined; return obj; }, fromAminoMsg(object) { return SignDoc.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/SignDoc", value: SignDoc.toAmino(message) }; }, fromProtoMsg(message) { return SignDoc.decode(message.value); }, toProto(message) { return SignDoc.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.SignDoc", value: SignDoc.encode(message).finish() }; }, registerTypeUrl() { } }; function createBaseSignDocDirectAux() { return { bodyBytes: new Uint8Array(), publicKey: undefined, chainId: "", accountNumber: BigInt(0), sequence: BigInt(0), tip: undefined }; } /** * SignDocDirectAux is the type used for generating sign bytes for * SIGN_MODE_DIRECT_AUX. * @name SignDocDirectAux * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.SignDocDirectAux */ export const SignDocDirectAux = { typeUrl: "/cosmos.tx.v1beta1.SignDocDirectAux", aminoType: "cosmos-sdk/SignDocDirectAux", is(o) { return o && (o.$typeUrl === SignDocDirectAux.typeUrl || (o.bodyBytes instanceof Uint8Array || typeof o.bodyBytes === "string") && typeof o.chainId === "string" && typeof o.accountNumber === "bigint" && typeof o.sequence === "bigint"); }, isAmino(o) { return o && (o.$typeUrl === SignDocDirectAux.typeUrl || (o.body_bytes instanceof Uint8Array || typeof o.body_bytes === "string") && typeof o.chain_id === "string" && typeof o.account_number === "bigint" && typeof o.sequence === "bigint"); }, encode(message, writer = BinaryWriter.create()) { if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } if (message.publicKey !== undefined) { Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim(); } if (message.chainId !== "") { writer.uint32(26).string(message.chainId); } if (message.accountNumber !== BigInt(0)) { writer.uint32(32).uint64(message.accountNumber); } if (message.sequence !== BigInt(0)) { writer.uint32(40).uint64(message.sequence); } if (message.tip !== undefined) { Tip.encode(message.tip, writer.uint32(50).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 = createBaseSignDocDirectAux(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.bodyBytes = reader.bytes(); break; case 2: message.publicKey = Any.decode(reader, reader.uint32()); break; case 3: message.chainId = reader.string(); break; case 4: message.accountNumber = reader.uint64(); break; case 5: message.sequence = reader.uint64(); break; case 6: message.tip = Tip.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseSignDocDirectAux(); message.bodyBytes = object.bodyBytes ?? new Uint8Array(); message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; message.chainId = object.chainId ?? ""; message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? BigInt(object.accountNumber.toString()) : BigInt(0); message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0); message.tip = object.tip !== undefined && object.tip !== null ? Tip.fromPartial(object.tip) : undefined; return message; }, fromAmino(object) { const message = createBaseSignDocDirectAux(); if (object.body_bytes !== undefined && object.body_bytes !== null) { message.bodyBytes = bytesFromBase64(object.body_bytes); } if (object.public_key !== undefined && object.public_key !== null) { message.publicKey = Any.fromAmino(object.public_key); } if (object.chain_id !== undefined && object.chain_id !== null) { message.chainId = object.chain_id; } if (object.account_number !== undefined && object.account_number !== null) { message.accountNumber = BigInt(object.account_number); } if (object.sequence !== undefined && object.sequence !== null) { message.sequence = BigInt(object.sequence); } if (object.tip !== undefined && object.tip !== null) { message.tip = Tip.fromAmino(object.tip); } return message; }, toAmino(message) { const obj = {}; obj.body_bytes = message.bodyBytes ? base64FromBytes(message.bodyBytes) : undefined; obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined; obj.chain_id = message.chainId === "" ? undefined : message.chainId; obj.account_number = message.accountNumber !== BigInt(0) ? message.accountNumber?.toString() : undefined; obj.sequence = message.sequence !== BigInt(0) ? message.sequence?.toString() : undefined; obj.tip = message.tip ? Tip.toAmino(message.tip) : undefined; return obj; }, fromAminoMsg(object) { return SignDocDirectAux.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/SignDocDirectAux", value: SignDocDirectAux.toAmino(message) }; }, fromProtoMsg(message) { return SignDocDirectAux.decode(message.value); }, toProto(message) { return SignDocDirectAux.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.SignDocDirectAux", value: SignDocDirectAux.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(SignDocDirectAux.typeUrl)) { return; } Tip.registerTypeUrl(); } }; function createBaseTxBody() { return { messages: [], memo: "", timeoutHeight: BigInt(0), unordered: false, timeoutTimestamp: undefined, extensionOptions: [], nonCriticalExtensionOptions: [] }; } /** * TxBody is the body of a transaction that all signers sign over. * @name TxBody * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.TxBody */ export const TxBody = { typeUrl: "/cosmos.tx.v1beta1.TxBody", aminoType: "cosmos-sdk/TxBody", is(o) { return o && (o.$typeUrl === TxBody.typeUrl || Array.isArray(o.messages) && (!o.messages.length || Any.is(o.messages[0])) && typeof o.memo === "string" && typeof o.timeoutHeight === "bigint" && typeof o.unordered === "boolean" && Array.isArray(o.extensionOptions) && (!o.extensionOptions.length || Any.is(o.extensionOptions[0])) && Array.isArray(o.nonCriticalExtensionOptions) && (!o.nonCriticalExtensionOptions.length || Any.is(o.nonCriticalExtensionOptions[0]))); }, isAmino(o) { return o && (o.$typeUrl === TxBody.typeUrl || Array.isArray(o.messages) && (!o.messages.length || Any.isAmino(o.messages[0])) && typeof o.memo === "string" && typeof o.timeout_height === "bigint" && typeof o.unordered === "boolean" && Array.isArray(o.extension_options) && (!o.extension_options.length || Any.isAmino(o.extension_options[0])) && Array.isArray(o.non_critical_extension_options) && (!o.non_critical_extension_options.length || Any.isAmino(o.non_critical_extension_options[0]))); }, encode(message, writer = BinaryWriter.create()) { for (const v of message.messages) { Any.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.memo !== "") { writer.uint32(18).string(message.memo); } if (message.timeoutHeight !== BigInt(0)) { writer.uint32(24).uint64(message.timeoutHeight); } if (message.unordered === true) { writer.uint32(32).bool(message.unordered); } if (message.timeoutTimestamp !== undefined) { Timestamp.encode(toTimestamp(message.timeoutTimestamp), writer.uint32(42).fork()).ldelim(); } for (const v of message.extensionOptions) { Any.encode(v, writer.uint32(8186).fork()).ldelim(); } for (const v of message.nonCriticalExtensionOptions) { Any.encode(v, writer.uint32(16378).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 = createBaseTxBody(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.messages.push(Any.decode(reader, reader.uint32())); break; case 2: message.memo = reader.string(); break; case 3: message.timeoutHeight = reader.uint64(); break; case 4: message.unordered = reader.bool(); break; case 5: message.timeoutTimestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 1023: message.extensionOptions.push(Any.decode(reader, reader.uint32())); break; case 2047: message.nonCriticalExtensionOptions.push(Any.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseTxBody(); message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; message.memo = object.memo ?? ""; message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? BigInt(object.timeoutHeight.toString()) : BigInt(0); message.unordered = object.unordered ?? false; message.timeoutTimestamp = object.timeoutTimestamp ?? undefined; message.extensionOptions = object.extensionOptions?.map(e => Any.fromPartial(e)) || []; message.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions?.map(e => Any.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseTxBody(); message.messages = object.messages?.map(e => Any.fromAmino(e)) || []; if (object.memo !== undefined && object.memo !== null) { message.memo = object.memo; } if (object.timeout_height !== undefined && object.timeout_height !== null) { message.timeoutHeight = BigInt(object.timeout_height); } if (object.unordered !== undefined && object.unordered !== null) { message.unordered = object.unordered; } if (object.timeout_timestamp !== undefined && object.timeout_timestamp !== null) { message.timeoutTimestamp = fromTimestamp(Timestamp.fromAmino(object.timeout_timestamp)); } message.extensionOptions = object.extension_options?.map(e => Any.fromAmino(e)) || []; message.nonCriticalExtensionOptions = object.non_critical_extension_options?.map(e => Any.fromAmino(e)) || []; return message; }, toAmino(message) { const obj = {}; if (message.messages) { obj.messages = message.messages.map(e => e ? Any.toAmino(e) : undefined); } else { obj.messages = message.messages; } obj.memo = message.memo === "" ? undefined : message.memo; obj.timeout_height = message.timeoutHeight !== BigInt(0) ? message.timeoutHeight?.toString() : undefined; obj.unordered = message.unordered === false ? undefined : message.unordered; obj.timeout_timestamp = message.timeoutTimestamp ? Timestamp.toAmino(toTimestamp(message.timeoutTimestamp)) : undefined; if (message.extensionOptions) { obj.extension_options = message.extensionOptions.map(e => e ? Any.toAmino(e) : undefined); } else { obj.extension_options = message.extensionOptions; } if (message.nonCriticalExtensionOptions) { obj.non_critical_extension_options = message.nonCriticalExtensionOptions.map(e => e ? Any.toAmino(e) : undefined); } else { obj.non_critical_extension_options = message.nonCriticalExtensionOptions; } return obj; }, fromAminoMsg(object) { return TxBody.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/TxBody", value: TxBody.toAmino(message) }; }, fromProtoMsg(message) { return TxBody.decode(message.value); }, toProto(message) { return TxBody.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.TxBody", value: TxBody.encode(message).finish() }; }, registerTypeUrl() { } }; function createBaseAuthInfo() { return { signerInfos: [], fee: undefined, tip: undefined }; } /** * AuthInfo describes the fee and signer modes that are used to sign a * transaction. * @name AuthInfo * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.AuthInfo */ export const AuthInfo = { typeUrl: "/cosmos.tx.v1beta1.AuthInfo", aminoType: "cosmos-sdk/AuthInfo", is(o) { return o && (o.$typeUrl === AuthInfo.typeUrl || Array.isArray(o.signerInfos) && (!o.signerInfos.length || SignerInfo.is(o.signerInfos[0]))); }, isAmino(o) { return o && (o.$typeUrl === AuthInfo.typeUrl || Array.isArray(o.signer_infos) && (!o.signer_infos.length || SignerInfo.isAmino(o.signer_infos[0]))); }, encode(message, writer = BinaryWriter.create()) { for (const v of message.signerInfos) { SignerInfo.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.fee !== undefined) { Fee.encode(message.fee, writer.uint32(18).fork()).ldelim(); } if (message.tip !== undefined) { Tip.encode(message.tip, writer.uint32(26).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 = createBaseAuthInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.signerInfos.push(SignerInfo.decode(reader, reader.uint32())); break; case 2: message.fee = Fee.decode(reader, reader.uint32()); break; case 3: message.tip = Tip.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseAuthInfo(); message.signerInfos = object.signerInfos?.map(e => SignerInfo.fromPartial(e)) || []; message.fee = object.fee !== undefined && object.fee !== null ? Fee.fromPartial(object.fee) : undefined; message.tip = object.tip !== undefined && object.tip !== null ? Tip.fromPartial(object.tip) : undefined; return message; }, fromAmino(object) { const message = createBaseAuthInfo(); message.signerInfos = object.signer_infos?.map(e => SignerInfo.fromAmino(e)) || []; if (object.fee !== undefined && object.fee !== null) { message.fee = Fee.fromAmino(object.fee); } if (object.tip !== undefined && object.tip !== null) { message.tip = Tip.fromAmino(object.tip); } return message; }, toAmino(message) { const obj = {}; if (message.signerInfos) { obj.signer_infos = message.signerInfos.map(e => e ? SignerInfo.toAmino(e) : undefined); } else { obj.signer_infos = message.signerInfos; } obj.fee = message.fee ? Fee.toAmino(message.fee) : undefined; obj.tip = message.tip ? Tip.toAmino(message.tip) : undefined; return obj; }, fromAminoMsg(object) { return AuthInfo.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/AuthInfo", value: AuthInfo.toAmino(message) }; }, fromProtoMsg(message) { return AuthInfo.decode(message.value); }, toProto(message) { return AuthInfo.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.AuthInfo", value: AuthInfo.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(AuthInfo.typeUrl)) { return; } SignerInfo.registerTypeUrl(); Fee.registerTypeUrl(); Tip.registerTypeUrl(); } }; function createBaseSignerInfo() { return { publicKey: undefined, modeInfo: undefined, sequence: BigInt(0) }; } /** * SignerInfo describes the public key and signing mode of a single top-level * signer. * @name SignerInfo * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.SignerInfo */ export const SignerInfo = { typeUrl: "/cosmos.tx.v1beta1.SignerInfo", aminoType: "cosmos-sdk/SignerInfo", is(o) { return o && (o.$typeUrl === SignerInfo.typeUrl || typeof o.sequence === "bigint"); }, isAmino(o) { return o && (o.$typeUrl === SignerInfo.typeUrl || typeof o.sequence === "bigint"); }, encode(message, writer = BinaryWriter.create()) { if (message.publicKey !== undefined) { Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); } if (message.modeInfo !== undefined) { ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim(); } if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } 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 = createBaseSignerInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.publicKey = Any.decode(reader, reader.uint32()); break; case 2: message.modeInfo = ModeInfo.decode(reader, reader.uint32()); break; case 3: message.sequence = reader.uint64(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseSignerInfo(); message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; message.modeInfo = object.modeInfo !== undefined && object.modeInfo !== null ? ModeInfo.fromPartial(object.modeInfo) : undefined; message.sequence = object.sequence !== undefined && object.sequence !== null ? BigInt(object.sequence.toString()) : BigInt(0); return message; }, fromAmino(object) { const message = createBaseSignerInfo(); if (object.public_key !== undefined && object.public_key !== null) { message.publicKey = Any.fromAmino(object.public_key); } if (object.mode_info !== undefined && object.mode_info !== null) { message.modeInfo = ModeInfo.fromAmino(object.mode_info); } if (object.sequence !== undefined && object.sequence !== null) { message.sequence = BigInt(object.sequence); } return message; }, toAmino(message) { const obj = {}; obj.public_key = message.publicKey ? Any.toAmino(message.publicKey) : undefined; obj.mode_info = message.modeInfo ? ModeInfo.toAmino(message.modeInfo) : undefined; obj.sequence = message.sequence !== BigInt(0) ? message.sequence?.toString() : undefined; return obj; }, fromAminoMsg(object) { return SignerInfo.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/SignerInfo", value: SignerInfo.toAmino(message) }; }, fromProtoMsg(message) { return SignerInfo.decode(message.value); }, toProto(message) { return SignerInfo.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.SignerInfo", value: SignerInfo.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(SignerInfo.typeUrl)) { return; } ModeInfo.registerTypeUrl(); } }; function createBaseModeInfo() { return { single: undefined, multi: undefined }; } /** * ModeInfo describes the signing mode of a single or nested multisig signer. * @name ModeInfo * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.ModeInfo */ export const ModeInfo = { typeUrl: "/cosmos.tx.v1beta1.ModeInfo", aminoType: "cosmos-sdk/ModeInfo", is(o) { return o && o.$typeUrl === ModeInfo.typeUrl; }, isAmino(o) { return o && o.$typeUrl === ModeInfo.typeUrl; }, encode(message, writer = BinaryWriter.create()) { if (message.single !== undefined) { ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim(); } if (message.multi !== undefined) { ModeInfo_Multi.encode(message.multi, 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 = createBaseModeInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.single = ModeInfo_Single.decode(reader, reader.uint32()); break; case 2: message.multi = ModeInfo_Multi.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseModeInfo(); message.single = object.single !== undefined && object.single !== null ? ModeInfo_Single.fromPartial(object.single) : undefined; message.multi = object.multi !== undefined && object.multi !== null ? ModeInfo_Multi.fromPartial(object.multi) : undefined; return message; }, fromAmino(object) { const message = createBaseModeInfo(); if (object.single !== undefined && object.single !== null) { message.single = ModeInfo_Single.fromAmino(object.single); } if (object.multi !== undefined && object.multi !== null) { message.multi = ModeInfo_Multi.fromAmino(object.multi); } return message; }, toAmino(message) { const obj = {}; obj.single = message.single ? ModeInfo_Single.toAmino(message.single) : undefined; obj.multi = message.multi ? ModeInfo_Multi.toAmino(message.multi) : undefined; return obj; }, fromAminoMsg(object) { return ModeInfo.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/ModeInfo", value: ModeInfo.toAmino(message) }; }, fromProtoMsg(message) { return ModeInfo.decode(message.value); }, toProto(message) { return ModeInfo.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.ModeInfo", value: ModeInfo.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(ModeInfo.typeUrl)) { return; } ModeInfo_Single.registerTypeUrl(); ModeInfo_Multi.registerTypeUrl(); } }; function createBaseModeInfo_Single() { return { mode: 0 }; } /** * Single is the mode info for a single signer. It is structured as a message * to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the * future * @name ModeInfo_Single * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.Single */ export const ModeInfo_Single = { typeUrl: "/cosmos.tx.v1beta1.Single", aminoType: "cosmos-sdk/Single", is(o) { return o && (o.$typeUrl === ModeInfo_Single.typeUrl || isSet(o.mode)); }, isAmino(o) { return o && (o.$typeUrl === ModeInfo_Single.typeUrl || isSet(o.mode)); }, encode(message, writer = BinaryWriter.create()) { if (message.mode !== 0) { writer.uint32(8).int32(message.mode); } 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 = createBaseModeInfo_Single(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.mode = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseModeInfo_Single(); message.mode = object.mode ?? 0; return message; }, fromAmino(object) { const message = createBaseModeInfo_Single(); if (object.mode !== undefined && object.mode !== null) { message.mode = object.mode; } return message; }, toAmino(message) { const obj = {}; obj.mode = message.mode === 0 ? undefined : message.mode; return obj; }, fromAminoMsg(object) { return ModeInfo_Single.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/Single", value: ModeInfo_Single.toAmino(message) }; }, fromProtoMsg(message) { return ModeInfo_Single.decode(message.value); }, toProto(message) { return ModeInfo_Single.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.Single", value: ModeInfo_Single.encode(message).finish() }; }, registerTypeUrl() { } }; function createBaseModeInfo_Multi() { return { bitarray: undefined, modeInfos: [] }; } /** * Multi is the mode info for a multisig public key * @name ModeInfo_Multi * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.Multi */ export const ModeInfo_Multi = { typeUrl: "/cosmos.tx.v1beta1.Multi", aminoType: "cosmos-sdk/Multi", is(o) { return o && (o.$typeUrl === ModeInfo_Multi.typeUrl || Array.isArray(o.modeInfos) && (!o.modeInfos.length || ModeInfo.is(o.modeInfos[0]))); }, isAmino(o) { return o && (o.$typeUrl === ModeInfo_Multi.typeUrl || Array.isArray(o.mode_infos) && (!o.mode_infos.length || ModeInfo.isAmino(o.mode_infos[0]))); }, encode(message, writer = BinaryWriter.create()) { if (message.bitarray !== undefined) { CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim(); } for (const v of message.modeInfos) { ModeInfo.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 = createBaseModeInfo_Multi(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.bitarray = CompactBitArray.decode(reader, reader.uint32()); break; case 2: message.modeInfos.push(ModeInfo.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseModeInfo_Multi(); message.bitarray = object.bitarray !== undefined && object.bitarray !== null ? CompactBitArray.fromPartial(object.bitarray) : undefined; message.modeInfos = object.modeInfos?.map(e => ModeInfo.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseModeInfo_Multi(); if (object.bitarray !== undefined && object.bitarray !== null) { message.bitarray = CompactBitArray.fromAmino(object.bitarray); } message.modeInfos = object.mode_infos?.map(e => ModeInfo.fromAmino(e)) || []; return message; }, toAmino(message) { const obj = {}; obj.bitarray = message.bitarray ? CompactBitArray.toAmino(message.bitarray) : undefined; if (message.modeInfos) { obj.mode_infos = message.modeInfos.map(e => e ? ModeInfo.toAmino(e) : undefined); } else { obj.mode_infos = message.modeInfos; } return obj; }, fromAminoMsg(object) { return ModeInfo_Multi.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/Multi", value: ModeInfo_Multi.toAmino(message) }; }, fromProtoMsg(message) { return ModeInfo_Multi.decode(message.value); }, toProto(message) { return ModeInfo_Multi.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/cosmos.tx.v1beta1.Multi", value: ModeInfo_Multi.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(ModeInfo_Multi.typeUrl)) { return; } CompactBitArray.registerTypeUrl(); ModeInfo.registerTypeUrl(); } }; function createBaseFee() { return { amount: [], gasLimit: BigInt(0), payer: "", granter: "" }; } /** * Fee includes the amount of coins paid in fees and the maximum * gas to be used by the transaction. The ratio yields an effective "gasprice", * which must be above some miminum to be accepted into the mempool. * @name Fee * @package cosmos.tx.v1beta1 * @see proto type: cosmos.tx.v1beta1.Fee */ export const Fee = { typeUrl: "/cosmos.tx.v1beta1.Fee", aminoType: "cosmos-sdk/Fee", is(o) { return o && (o.$typeUrl === Fee.typeUrl || Array.isArray(o.amount) && (!o.amount.length || Coin.is(o.amount[0])) && typeof o.gasLimit === "bigint" && typeof o.payer === "string" && typeof o.granter === "string"); }, isAmino(o) { return o && (o.$typeUrl === Fee.typeUrl || Array.isArray(o.amount) && (!o.amount.length || Coin.isAmino(o.amount[0])) && typeof o.gas_limit === "bigint" && typeof o.payer === "string" && typeof o.granter === "string"); }, encode(message, writer = BinaryWriter.create()) { for (const v of message.amount) { Coin.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.gasLimit !== BigInt(0)) { writer.uint32(16).uint64(message.gasLimit); } if (message.payer !== "") { writer.uint32(26).string(message.payer); } if (message.granter !== "") { writer.uint32(34).string(message.granter); } 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 = createBaseFee(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.amount.push(Coin.decode(reader, reader.uint32())); break; case 2: message.gasLimit = reader.uint64(); break; case 3: message.payer = reader.string(); break; case 4: message.granter = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseFee(); message.amount = object.amount?.map(e => Coin.fromPartial(e)) || []; message.gasLimit = object.gasLimit !== undefined && object.gasLimit !== null ? BigInt(object.gasLimit.toString()) : BigInt(0); message.payer = object.payer ?? ""; message.granter = object.granter ?? ""; return message; }, fromAmino(object) { const message = createBaseFee(); message.amount = object.amount?.map(e => Coin.fromAmino(e)) || []; if (object.gas_limit !== undefined && object.gas_limit !== null) { message.gasLimit = BigInt(object.gas_limit); } if (object.payer !== undefined && object.payer !== null) { message.payer = object.payer; } if (object.granter !== undefined && object.granter !== null) { message.granter = object.granter; } return message; }, toAmino(message) { const obj = {}; if (message.amount) { obj.amount = message.amount.map(e => e ? Coin.toAmino(e) : undefined); } else { obj.amount = message.amount; } obj.gas_limit = message.gasLimit !== BigInt(0) ? message.gasLimit?.toString() : undefined; obj.payer = message.payer === "" ? undefined : message.payer; obj.granter = message.granter === "" ? undefined : message.granter; return obj; }, fromAminoMsg(object) { return Fee.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/Fee", value: Fee.toAmino(message) }; }, fromProtoMsg(message) { return Fee.decode(message.value); }, toProto(message) {