UNPKG

interchainjs

Version:

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

351 lines (350 loc) 13.7 kB
import { Coin } from "../../../../cosmos/base/v1beta1/coin"; import { Hop } from "./transfer"; import { BinaryReader, BinaryWriter } from "../../../../binary"; import { GlobalDecoderRegistry } from "../../../../registry"; function createBaseAllocation() { return { sourcePort: "", sourceChannel: "", spendLimit: [], allowList: [], allowedPacketData: [], allowedForwarding: [] }; } /** * Allocation defines the spend limit for a particular port and channel * @name Allocation * @package ibc.applications.transfer.v1 * @see proto type: ibc.applications.transfer.v1.Allocation */ export const Allocation = { typeUrl: "/ibc.applications.transfer.v1.Allocation", aminoType: "cosmos-sdk/Allocation", is(o) { return o && (o.$typeUrl === Allocation.typeUrl || typeof o.sourcePort === "string" && typeof o.sourceChannel === "string" && Array.isArray(o.spendLimit) && (!o.spendLimit.length || Coin.is(o.spendLimit[0])) && Array.isArray(o.allowList) && (!o.allowList.length || typeof o.allowList[0] === "string") && Array.isArray(o.allowedPacketData) && (!o.allowedPacketData.length || typeof o.allowedPacketData[0] === "string") && Array.isArray(o.allowedForwarding) && (!o.allowedForwarding.length || AllowedForwarding.is(o.allowedForwarding[0]))); }, isAmino(o) { return o && (o.$typeUrl === Allocation.typeUrl || typeof o.source_port === "string" && typeof o.source_channel === "string" && Array.isArray(o.spend_limit) && (!o.spend_limit.length || Coin.isAmino(o.spend_limit[0])) && Array.isArray(o.allow_list) && (!o.allow_list.length || typeof o.allow_list[0] === "string") && Array.isArray(o.allowed_packet_data) && (!o.allowed_packet_data.length || typeof o.allowed_packet_data[0] === "string") && Array.isArray(o.allowed_forwarding) && (!o.allowed_forwarding.length || AllowedForwarding.isAmino(o.allowed_forwarding[0]))); }, encode(message, writer = BinaryWriter.create()) { if (message.sourcePort !== "") { writer.uint32(10).string(message.sourcePort); } if (message.sourceChannel !== "") { writer.uint32(18).string(message.sourceChannel); } for (const v of message.spendLimit) { Coin.encode(v, writer.uint32(26).fork()).ldelim(); } for (const v of message.allowList) { writer.uint32(34).string(v); } for (const v of message.allowedPacketData) { writer.uint32(42).string(v); } for (const v of message.allowedForwarding) { AllowedForwarding.encode(v, 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 = createBaseAllocation(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.sourcePort = reader.string(); break; case 2: message.sourceChannel = reader.string(); break; case 3: message.spendLimit.push(Coin.decode(reader, reader.uint32())); break; case 4: message.allowList.push(reader.string()); break; case 5: message.allowedPacketData.push(reader.string()); break; case 6: message.allowedForwarding.push(AllowedForwarding.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseAllocation(); message.sourcePort = object.sourcePort ?? ""; message.sourceChannel = object.sourceChannel ?? ""; message.spendLimit = object.spendLimit?.map(e => Coin.fromPartial(e)) || []; message.allowList = object.allowList?.map(e => e) || []; message.allowedPacketData = object.allowedPacketData?.map(e => e) || []; message.allowedForwarding = object.allowedForwarding?.map(e => AllowedForwarding.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseAllocation(); if (object.source_port !== undefined && object.source_port !== null) { message.sourcePort = object.source_port; } if (object.source_channel !== undefined && object.source_channel !== null) { message.sourceChannel = object.source_channel; } message.spendLimit = object.spend_limit?.map(e => Coin.fromAmino(e)) || []; message.allowList = object.allow_list?.map(e => e) || []; message.allowedPacketData = object.allowed_packet_data?.map(e => e) || []; message.allowedForwarding = object.allowed_forwarding?.map(e => AllowedForwarding.fromAmino(e)) || []; return message; }, toAmino(message) { const obj = {}; obj.source_port = message.sourcePort === "" ? undefined : message.sourcePort; obj.source_channel = message.sourceChannel === "" ? undefined : message.sourceChannel; if (message.spendLimit) { obj.spend_limit = message.spendLimit.map(e => e ? Coin.toAmino(e) : undefined); } else { obj.spend_limit = message.spendLimit; } if (message.allowList) { obj.allow_list = message.allowList.map(e => e); } else { obj.allow_list = message.allowList; } if (message.allowedPacketData) { obj.allowed_packet_data = message.allowedPacketData.map(e => e); } else { obj.allowed_packet_data = message.allowedPacketData; } if (message.allowedForwarding) { obj.allowed_forwarding = message.allowedForwarding.map(e => e ? AllowedForwarding.toAmino(e) : undefined); } else { obj.allowed_forwarding = message.allowedForwarding; } return obj; }, fromAminoMsg(object) { return Allocation.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/Allocation", value: Allocation.toAmino(message) }; }, fromProtoMsg(message) { return Allocation.decode(message.value); }, toProto(message) { return Allocation.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/ibc.applications.transfer.v1.Allocation", value: Allocation.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(Allocation.typeUrl)) { return; } Coin.registerTypeUrl(); AllowedForwarding.registerTypeUrl(); } }; function createBaseAllowedForwarding() { return { hops: [] }; } /** * AllowedForwarding defines which options are allowed for forwarding. * @name AllowedForwarding * @package ibc.applications.transfer.v1 * @see proto type: ibc.applications.transfer.v1.AllowedForwarding */ export const AllowedForwarding = { typeUrl: "/ibc.applications.transfer.v1.AllowedForwarding", aminoType: "cosmos-sdk/AllowedForwarding", is(o) { return o && (o.$typeUrl === AllowedForwarding.typeUrl || Array.isArray(o.hops) && (!o.hops.length || Hop.is(o.hops[0]))); }, isAmino(o) { return o && (o.$typeUrl === AllowedForwarding.typeUrl || Array.isArray(o.hops) && (!o.hops.length || Hop.isAmino(o.hops[0]))); }, encode(message, writer = BinaryWriter.create()) { for (const v of message.hops) { Hop.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 = createBaseAllowedForwarding(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.hops.push(Hop.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseAllowedForwarding(); message.hops = object.hops?.map(e => Hop.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseAllowedForwarding(); message.hops = object.hops?.map(e => Hop.fromAmino(e)) || []; return message; }, toAmino(message) { const obj = {}; if (message.hops) { obj.hops = message.hops.map(e => e ? Hop.toAmino(e) : undefined); } else { obj.hops = message.hops; } return obj; }, fromAminoMsg(object) { return AllowedForwarding.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/AllowedForwarding", value: AllowedForwarding.toAmino(message) }; }, fromProtoMsg(message) { return AllowedForwarding.decode(message.value); }, toProto(message) { return AllowedForwarding.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/ibc.applications.transfer.v1.AllowedForwarding", value: AllowedForwarding.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(AllowedForwarding.typeUrl)) { return; } Hop.registerTypeUrl(); } }; function createBaseTransferAuthorization() { return { allocations: [] }; } /** * TransferAuthorization allows the grantee to spend up to spend_limit coins from * the granter's account for ibc transfer on a specific channel * @name TransferAuthorization * @package ibc.applications.transfer.v1 * @see proto type: ibc.applications.transfer.v1.TransferAuthorization */ export const TransferAuthorization = { typeUrl: "/ibc.applications.transfer.v1.TransferAuthorization", aminoType: "cosmos-sdk/TransferAuthorization", is(o) { return o && (o.$typeUrl === TransferAuthorization.typeUrl || Array.isArray(o.allocations) && (!o.allocations.length || Allocation.is(o.allocations[0]))); }, isAmino(o) { return o && (o.$typeUrl === TransferAuthorization.typeUrl || Array.isArray(o.allocations) && (!o.allocations.length || Allocation.isAmino(o.allocations[0]))); }, encode(message, writer = BinaryWriter.create()) { for (const v of message.allocations) { Allocation.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 = createBaseTransferAuthorization(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.allocations.push(Allocation.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromPartial(object) { const message = createBaseTransferAuthorization(); message.allocations = object.allocations?.map(e => Allocation.fromPartial(e)) || []; return message; }, fromAmino(object) { const message = createBaseTransferAuthorization(); message.allocations = object.allocations?.map(e => Allocation.fromAmino(e)) || []; return message; }, toAmino(message) { const obj = {}; if (message.allocations) { obj.allocations = message.allocations.map(e => e ? Allocation.toAmino(e) : undefined); } else { obj.allocations = message.allocations; } return obj; }, fromAminoMsg(object) { return TransferAuthorization.fromAmino(object.value); }, toAminoMsg(message) { return { type: "cosmos-sdk/TransferAuthorization", value: TransferAuthorization.toAmino(message) }; }, fromProtoMsg(message) { return TransferAuthorization.decode(message.value); }, toProto(message) { return TransferAuthorization.encode(message).finish(); }, toProtoMsg(message) { return { typeUrl: "/ibc.applications.transfer.v1.TransferAuthorization", value: TransferAuthorization.encode(message).finish() }; }, registerTypeUrl() { if (!GlobalDecoderRegistry.registerExistingTypeUrl(TransferAuthorization.typeUrl)) { return; } GlobalDecoderRegistry.register(TransferAuthorization.typeUrl, TransferAuthorization); GlobalDecoderRegistry.registerAminoProtoMapping(TransferAuthorization.aminoType, TransferAuthorization.typeUrl); Allocation.registerTypeUrl(); } };