UNPKG

interchainjs

Version:

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

235 lines (234 loc) 8.24 kB
import { Any } from "../../../../google/protobuf/any"; import { isSet, bytesFromBase64, base64FromBytes } from "../../../../helpers"; import { BinaryReader, BinaryWriter } from "../../../../binary"; /** * Type defines a classification of message issued from a controller chain to its associated interchain accounts * host */ export var Type; (function (Type) { /** TYPE_UNSPECIFIED - Default zero value enumeration */ Type[Type["TYPE_UNSPECIFIED"] = 0] = "TYPE_UNSPECIFIED"; /** TYPE_EXECUTE_TX - Execute a transaction on an interchain accounts host chain */ Type[Type["TYPE_EXECUTE_TX"] = 1] = "TYPE_EXECUTE_TX"; Type[Type["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; })(Type || (Type = {})); export const TypeAmino = Type; export function typeFromJSON(object) { switch (object) { case 0: case "TYPE_UNSPECIFIED": return Type.TYPE_UNSPECIFIED; case 1: case "TYPE_EXECUTE_TX": return Type.TYPE_EXECUTE_TX; case -1: case "UNRECOGNIZED": default: return Type.UNRECOGNIZED; } } export function typeToJSON(object) { switch (object) { case Type.TYPE_UNSPECIFIED: return "TYPE_UNSPECIFIED"; case Type.TYPE_EXECUTE_TX: return "TYPE_EXECUTE_TX"; case Type.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } function createBaseInterchainAccountPacketData() { return { type: 0, data: new Uint8Array(), memo: "" }; } /** * InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field. * @name InterchainAccountPacketData * @package ibc.applications.interchain_accounts.v1 * @see proto type: ibc.applications.interchain_accounts.v1.InterchainAccountPacketData */ export const InterchainAccountPacketData = { typeUrl: "/ibc.applications.interchain_accounts.v1.InterchainAccountPacketData", aminoType: "cosmos-sdk/InterchainAccountPacketData", is(o) { return o && (o.$typeUrl === InterchainAccountPacketData.typeUrl || isSet(o.type) && (o.data instanceof Uint8Array || typeof o.data === "string") && typeof o.memo === "string"); }, isAmino(o) { return o && (o.$typeUrl === InterchainAccountPacketData.typeUrl || isSet(o.type) && (o.data instanceof Uint8Array || typeof o.data === "string") && typeof o.memo === "string"); }, encode(message, writer = BinaryWriter.create()) { if (message.type !== 0) { writer.uint32(8).int32(message.type); } if (message.data.length !== 0) { writer.uint32(18).bytes(message.data); } if (message.memo !== "") { writer.uint32(26).string(message.memo); } 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 = createBaseInterchainAccountPacketData(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.type = reader.int32(); break; case 2: message.data = reader.bytes(); break; case 3: message.memo = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseInterchainAccountPacketData(); message.type = object.type ?? 0; message.data = object.data ?? new Uint8Array(); message.memo = object.memo ?? ""; return message; }, fromAmino(object) { const message = createBaseInterchainAccountPacketData(); if (object.type !== undefined && object.type !== null) { message.type = object.type; } if (object.data !== undefined && object.data !== null) { message.data = bytesFromBase64(object.data); } if (object.memo !== undefined && object.memo !== null) { message.memo = object.memo; } return message; }, toAmino(message) { const obj = {}; obj.type = message.type === 0 ? undefined : message.type; obj.data = message.data ? base64FromBytes(message.data) : undefined; obj.memo = message.memo === "" ? undefined : message.memo; return obj; }, fromAminoMsg(object) { return InterchainAccountPacketData.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/InterchainAccountPacketData", value: InterchainAccountPacketData.toAmino(message) }; }, fromProtoMsg(message) { return InterchainAccountPacketData.decode(message.value); }, toProto(message) { return InterchainAccountPacketData.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/ibc.applications.interchain_accounts.v1.InterchainAccountPacketData", value: InterchainAccountPacketData.encode(message).finish() }; }, registerTypeUrl() { } }; function createBaseCosmosTx() { return { messages: [] }; } /** * CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain. * @name CosmosTx * @package ibc.applications.interchain_accounts.v1 * @see proto type: ibc.applications.interchain_accounts.v1.CosmosTx */ export const CosmosTx = { typeUrl: "/ibc.applications.interchain_accounts.v1.CosmosTx", aminoType: "cosmos-sdk/CosmosTx", is(o) { return o && (o.$typeUrl === CosmosTx.typeUrl || Array.isArray(o.messages) && (!o.messages.length || Any.is(o.messages[0]))); }, isAmino(o) { return o && (o.$typeUrl === CosmosTx.typeUrl || Array.isArray(o.messages) && (!o.messages.length || Any.isAmino(o.messages[0]))); }, encode(message, writer = BinaryWriter.create()) { for (const v of message.messages) { Any.encode(v, writer.uint32(10).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 = createBaseCosmosTx(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.messages.push(Any.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseCosmosTx(); message.messages = object.messages?.map(e => Any.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseCosmosTx(); message.messages = object.messages?.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; } return obj; }, fromAminoMsg(object) { return CosmosTx.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/CosmosTx", value: CosmosTx.toAmino(message) }; }, fromProtoMsg(message) { return CosmosTx.decode(message.value); }, toProto(message) { return CosmosTx.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/ibc.applications.interchain_accounts.v1.CosmosTx", value: CosmosTx.encode(message).finish() }; }, registerTypeUrl() { } };