"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createClientImpl = exports.MsgClientImpl = void 0;
const binary_1 = require("../../../../binary");
const tx_1 = require("./tx");
class MsgClientImpl {
rpc;
constructor(rpc) {
this.rpc = rpc;
this.registerPayee = this.registerPayee.bind(this);
this.registerCounterpartyPayee = this.registerCounterpartyPayee.bind(this);
this.payPacketFee = this.payPacketFee.bind(this);
this.payPacketFeeAsync = this.payPacketFeeAsync.bind(this);
}
registerPayee(request) {
const data = tx_1.MsgRegisterPayee.encode(request).finish();
const promise = this.rpc.request("ibc.applications.fee.v1.Msg", "RegisterPayee", data);
return promise.then(data => tx_1.MsgRegisterPayeeResponse.decode(new binary_1.BinaryReader(data)));
}
registerCounterpartyPayee(request) {
const data = tx_1.MsgRegisterCounterpartyPayee.encode(request).finish();
const promise = this.rpc.request("ibc.applications.fee.v1.Msg", "RegisterCounterpartyPayee", data);
return promise.then(data => tx_1.MsgRegisterCounterpartyPayeeResponse.decode(new binary_1.BinaryReader(data)));
}
payPacketFee(request) {
const data = tx_1.MsgPayPacketFee.encode(request).finish();
const promise = this.rpc.request("ibc.applications.fee.v1.Msg", "PayPacketFee", data);
return promise.then(data => tx_1.MsgPayPacketFeeResponse.decode(new binary_1.BinaryReader(data)));
}
payPacketFeeAsync(request) {
const data = tx_1.MsgPayPacketFeeAsync.encode(request).finish();
const promise = this.rpc.request("ibc.applications.fee.v1.Msg", "PayPacketFeeAsync", data);
return promise.then(data => tx_1.MsgPayPacketFeeAsyncResponse.decode(new binary_1.BinaryReader(data)));
}
}
exports.MsgClientImpl = MsgClientImpl;
const createClientImpl = (rpc) => {
return new MsgClientImpl(rpc);
};
exports.createClientImpl = createClientImpl;