"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createIbcAminoConverters = exports.isAminoMsgTransfer = void 0;
const tx_1 = require("cosmjs-types/ibc/applications/transfer/v1/tx");
const long_1 = __importDefault(require("long"));
function isAminoMsgTransfer(msg) {
return msg.type === "cosmos-sdk/MsgTransfer";
}
exports.isAminoMsgTransfer = isAminoMsgTransfer;
function omitDefault(input) {
if (typeof input === "string") {
return input === "" ? undefined : input;
}
if (typeof input === "number") {
return input === 0 ? undefined : input;
}
if (long_1.default.isLong(input)) {
return input.isZero() ? undefined : input;
}
throw new Error(`Got unsupported type '${typeof input}'`);
}
function createIbcAminoConverters() {
return {
"/ibc.applications.transfer.v1.MsgTransfer": {
aminoType: "cosmos-sdk/MsgTransfer",
toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, memo, }) => ({
source_port: sourcePort,
source_channel: sourceChannel,
token: token,
sender: sender,
receiver: receiver,
timeout_height: timeoutHeight
? {
revision_height: omitDefault(timeoutHeight.revisionHeight)?.toString(),
revision_number: omitDefault(timeoutHeight.revisionNumber)?.toString(),
}
: {},
timeout_timestamp: omitDefault(timeoutTimestamp)?.toString(),
memo: omitDefault(memo)?.toString(),
}),
fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, memo, }) => tx_1.MsgTransfer.fromPartial({
sourcePort: source_port,
sourceChannel: source_channel,
token: token,
sender: sender,
receiver: receiver,
timeoutHeight: timeout_height
? {
revisionHeight: long_1.default.fromString(timeout_height.revision_height || "0", true),
revisionNumber: long_1.default.fromString(timeout_height.revision_number || "0", true),
}
: undefined,
timeoutTimestamp: long_1.default.fromString(timeout_timestamp || "0", true),
memo: memo ?? "",
}),
},
};
}
exports.createIbcAminoConverters = createIbcAminoConverters;
//# sourceMappingURL=aminomessages.js.map