interchainjs
Version:
InterchainJS is a JavaScript library for interacting with Cosmos SDK based blockchains.
436 lines (435 loc) • 15.8 kB
JavaScript
import { Coin } from "../../../../cosmos/base/v1beta1/coin";
import { PacketId } from "../../../core/channel/v1/channel";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { GlobalDecoderRegistry } from "../../../../registry";
function createBaseFee() {
return {
recvFee: [],
ackFee: [],
timeoutFee: []
};
}
/**
* Fee defines the ICS29 receive, acknowledgement and timeout fees
* @name Fee
* @package ibc.applications.fee.v1
* @see proto type: ibc.applications.fee.v1.Fee
*/
export const Fee = {
typeUrl: "/ibc.applications.fee.v1.Fee",
aminoType: "cosmos-sdk/Fee",
is(o) {
return o && (o.$typeUrl === Fee.typeUrl || Array.isArray(o.recvFee) && (!o.recvFee.length || Coin.is(o.recvFee[0])) && Array.isArray(o.ackFee) && (!o.ackFee.length || Coin.is(o.ackFee[0])) && Array.isArray(o.timeoutFee) && (!o.timeoutFee.length || Coin.is(o.timeoutFee[0])));
},
isAmino(o) {
return o && (o.$typeUrl === Fee.typeUrl || Array.isArray(o.recv_fee) && (!o.recv_fee.length || Coin.isAmino(o.recv_fee[0])) && Array.isArray(o.ack_fee) && (!o.ack_fee.length || Coin.isAmino(o.ack_fee[0])) && Array.isArray(o.timeout_fee) && (!o.timeout_fee.length || Coin.isAmino(o.timeout_fee[0])));
},
encode(message, writer = BinaryWriter.create()) {
for (const v of message.recvFee) {
Coin.encode(v, writer.uint32(10).fork()).ldelim();
}
for (const v of message.ackFee) {
Coin.encode(v, writer.uint32(18).fork()).ldelim();
}
for (const v of message.timeoutFee) {
Coin.encode(v, 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 = createBaseFee();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.recvFee.push(Coin.decode(reader, reader.uint32()));
break;
case 2:
message.ackFee.push(Coin.decode(reader, reader.uint32()));
break;
case 3:
message.timeoutFee.push(Coin.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseFee();
message.recvFee = object.recvFee?.map(e => Coin.fromPartial(e)) || [];
message.ackFee = object.ackFee?.map(e => Coin.fromPartial(e)) || [];
message.timeoutFee = object.timeoutFee?.map(e => Coin.fromPartial(e)) || [];
return message;
},
fromAmino(object) {
const message = createBaseFee();
message.recvFee = object.recv_fee?.map(e => Coin.fromAmino(e)) || [];
message.ackFee = object.ack_fee?.map(e => Coin.fromAmino(e)) || [];
message.timeoutFee = object.timeout_fee?.map(e => Coin.fromAmino(e)) || [];
return message;
},
toAmino(message) {
const obj = {};
if (message.recvFee) {
obj.recv_fee = message.recvFee.map(e => e ? Coin.toAmino(e) : undefined);
}
else {
obj.recv_fee = message.recvFee;
}
if (message.ackFee) {
obj.ack_fee = message.ackFee.map(e => e ? Coin.toAmino(e) : undefined);
}
else {
obj.ack_fee = message.ackFee;
}
if (message.timeoutFee) {
obj.timeout_fee = message.timeoutFee.map(e => e ? Coin.toAmino(e) : undefined);
}
else {
obj.timeout_fee = message.timeoutFee;
}
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) {
return Fee.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.applications.fee.v1.Fee",
value: Fee.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(Fee.typeUrl)) {
return;
}
Coin.registerTypeUrl();
}
};
function createBasePacketFee() {
return {
fee: Fee.fromPartial({}),
refundAddress: "",
relayers: []
};
}
/**
* PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers
* @name PacketFee
* @package ibc.applications.fee.v1
* @see proto type: ibc.applications.fee.v1.PacketFee
*/
export const PacketFee = {
typeUrl: "/ibc.applications.fee.v1.PacketFee",
aminoType: "cosmos-sdk/PacketFee",
is(o) {
return o && (o.$typeUrl === PacketFee.typeUrl || Fee.is(o.fee) && typeof o.refundAddress === "string" && Array.isArray(o.relayers) && (!o.relayers.length || typeof o.relayers[0] === "string"));
},
isAmino(o) {
return o && (o.$typeUrl === PacketFee.typeUrl || Fee.isAmino(o.fee) && typeof o.refund_address === "string" && Array.isArray(o.relayers) && (!o.relayers.length || typeof o.relayers[0] === "string"));
},
encode(message, writer = BinaryWriter.create()) {
if (message.fee !== undefined) {
Fee.encode(message.fee, writer.uint32(10).fork()).ldelim();
}
if (message.refundAddress !== "") {
writer.uint32(18).string(message.refundAddress);
}
for (const v of message.relayers) {
writer.uint32(26).string(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 = createBasePacketFee();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.fee = Fee.decode(reader, reader.uint32());
break;
case 2:
message.refundAddress = reader.string();
break;
case 3:
message.relayers.push(reader.string());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBasePacketFee();
message.fee = object.fee !== undefined && object.fee !== null ? Fee.fromPartial(object.fee) : undefined;
message.refundAddress = object.refundAddress ?? "";
message.relayers = object.relayers?.map(e => e) || [];
return message;
},
fromAmino(object) {
const message = createBasePacketFee();
if (object.fee !== undefined && object.fee !== null) {
message.fee = Fee.fromAmino(object.fee);
}
if (object.refund_address !== undefined && object.refund_address !== null) {
message.refundAddress = object.refund_address;
}
message.relayers = object.relayers?.map(e => e) || [];
return message;
},
toAmino(message) {
const obj = {};
obj.fee = message.fee ? Fee.toAmino(message.fee) : undefined;
obj.refund_address = message.refundAddress === "" ? undefined : message.refundAddress;
if (message.relayers) {
obj.relayers = message.relayers.map(e => e);
}
else {
obj.relayers = message.relayers;
}
return obj;
},
fromAminoMsg(object) {
return PacketFee.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/PacketFee",
value: PacketFee.toAmino(message)
};
},
fromProtoMsg(message) {
return PacketFee.decode(message.value);
},
toProto(message) {
return PacketFee.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.applications.fee.v1.PacketFee",
value: PacketFee.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(PacketFee.typeUrl)) {
return;
}
Fee.registerTypeUrl();
}
};
function createBasePacketFees() {
return {
packetFees: []
};
}
/**
* PacketFees contains a list of type PacketFee
* @name PacketFees
* @package ibc.applications.fee.v1
* @see proto type: ibc.applications.fee.v1.PacketFees
*/
export const PacketFees = {
typeUrl: "/ibc.applications.fee.v1.PacketFees",
aminoType: "cosmos-sdk/PacketFees",
is(o) {
return o && (o.$typeUrl === PacketFees.typeUrl || Array.isArray(o.packetFees) && (!o.packetFees.length || PacketFee.is(o.packetFees[0])));
},
isAmino(o) {
return o && (o.$typeUrl === PacketFees.typeUrl || Array.isArray(o.packet_fees) && (!o.packet_fees.length || PacketFee.isAmino(o.packet_fees[0])));
},
encode(message, writer = BinaryWriter.create()) {
for (const v of message.packetFees) {
PacketFee.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 = createBasePacketFees();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.packetFees.push(PacketFee.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBasePacketFees();
message.packetFees = object.packetFees?.map(e => PacketFee.fromPartial(e)) || [];
return message;
},
fromAmino(object) {
const message = createBasePacketFees();
message.packetFees = object.packet_fees?.map(e => PacketFee.fromAmino(e)) || [];
return message;
},
toAmino(message) {
const obj = {};
if (message.packetFees) {
obj.packet_fees = message.packetFees.map(e => e ? PacketFee.toAmino(e) : undefined);
}
else {
obj.packet_fees = message.packetFees;
}
return obj;
},
fromAminoMsg(object) {
return PacketFees.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/PacketFees",
value: PacketFees.toAmino(message)
};
},
fromProtoMsg(message) {
return PacketFees.decode(message.value);
},
toProto(message) {
return PacketFees.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.applications.fee.v1.PacketFees",
value: PacketFees.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(PacketFees.typeUrl)) {
return;
}
PacketFee.registerTypeUrl();
}
};
function createBaseIdentifiedPacketFees() {
return {
packetId: PacketId.fromPartial({}),
packetFees: []
};
}
/**
* IdentifiedPacketFees contains a list of type PacketFee and associated PacketId
* @name IdentifiedPacketFees
* @package ibc.applications.fee.v1
* @see proto type: ibc.applications.fee.v1.IdentifiedPacketFees
*/
export const IdentifiedPacketFees = {
typeUrl: "/ibc.applications.fee.v1.IdentifiedPacketFees",
aminoType: "cosmos-sdk/IdentifiedPacketFees",
is(o) {
return o && (o.$typeUrl === IdentifiedPacketFees.typeUrl || PacketId.is(o.packetId) && Array.isArray(o.packetFees) && (!o.packetFees.length || PacketFee.is(o.packetFees[0])));
},
isAmino(o) {
return o && (o.$typeUrl === IdentifiedPacketFees.typeUrl || PacketId.isAmino(o.packet_id) && Array.isArray(o.packet_fees) && (!o.packet_fees.length || PacketFee.isAmino(o.packet_fees[0])));
},
encode(message, writer = BinaryWriter.create()) {
if (message.packetId !== undefined) {
PacketId.encode(message.packetId, writer.uint32(10).fork()).ldelim();
}
for (const v of message.packetFees) {
PacketFee.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 = createBaseIdentifiedPacketFees();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.packetId = PacketId.decode(reader, reader.uint32());
break;
case 2:
message.packetFees.push(PacketFee.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object) {
const message = createBaseIdentifiedPacketFees();
message.packetId = object.packetId !== undefined && object.packetId !== null ? PacketId.fromPartial(object.packetId) : undefined;
message.packetFees = object.packetFees?.map(e => PacketFee.fromPartial(e)) || [];
return message;
},
fromAmino(object) {
const message = createBaseIdentifiedPacketFees();
if (object.packet_id !== undefined && object.packet_id !== null) {
message.packetId = PacketId.fromAmino(object.packet_id);
}
message.packetFees = object.packet_fees?.map(e => PacketFee.fromAmino(e)) || [];
return message;
},
toAmino(message) {
const obj = {};
obj.packet_id = message.packetId ? PacketId.toAmino(message.packetId) : undefined;
if (message.packetFees) {
obj.packet_fees = message.packetFees.map(e => e ? PacketFee.toAmino(e) : undefined);
}
else {
obj.packet_fees = message.packetFees;
}
return obj;
},
fromAminoMsg(object) {
return IdentifiedPacketFees.fromAmino(object.value);
},
toAminoMsg(message) {
return {
type: "cosmos-sdk/IdentifiedPacketFees",
value: IdentifiedPacketFees.toAmino(message)
};
},
fromProtoMsg(message) {
return IdentifiedPacketFees.decode(message.value);
},
toProto(message) {
return IdentifiedPacketFees.encode(message).finish();
},
toProtoMsg(message) {
return {
typeUrl: "/ibc.applications.fee.v1.IdentifiedPacketFees",
value: IdentifiedPacketFees.encode(message).finish()
};
},
registerTypeUrl() {
if (!GlobalDecoderRegistry.registerExistingTypeUrl(IdentifiedPacketFees.typeUrl)) {
return;
}
PacketId.registerTypeUrl();
PacketFee.registerTypeUrl();
}
};