import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
//@ts-nocheck

import * as _m0 from "protobufjs/minimal";
import { MsgLiquidStake, MsgLiquidStakeResponse, MsgLiquidUnstake, MsgLiquidUnstakeResponse, MsgUpdateParams, MsgUpdateParamsResponse, MsgUpdateWhitelistedValidators, MsgUpdateWhitelistedValidatorsResponse, MsgUpdateWeightedRewardsReceivers, MsgUpdateWeightedRewardsReceiversResponse, MsgSetModulePaused, MsgSetModulePausedResponse, MsgBurn, MsgBurnResponse } from "./tx";
/** Msg defines the liquid staking Msg service. */

export class MsgClientImpl {
  constructor(rpc) {
    _defineProperty(this, "rpc", void 0);
    this.rpc = rpc;
    this.liquidStake = this.liquidStake.bind(this);
    this.liquidUnstake = this.liquidUnstake.bind(this);
    this.updateParams = this.updateParams.bind(this);
    this.updateWhitelistedValidators = this.updateWhitelistedValidators.bind(this);
    this.updateWeightedRewardsReceivers = this.updateWeightedRewardsReceivers.bind(this);
    this.setModulePaused = this.setModulePaused.bind(this);
    this.burn = this.burn.bind(this);
  }
  liquidStake(request) {
    const data = MsgLiquidStake.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "LiquidStake", data);
    return promise.then(data => MsgLiquidStakeResponse.decode(new _m0.Reader(data)));
  }
  liquidUnstake(request) {
    const data = MsgLiquidUnstake.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "LiquidUnstake", data);
    return promise.then(data => MsgLiquidUnstakeResponse.decode(new _m0.Reader(data)));
  }
  updateParams(request) {
    const data = MsgUpdateParams.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "UpdateParams", data);
    return promise.then(data => MsgUpdateParamsResponse.decode(new _m0.Reader(data)));
  }
  updateWhitelistedValidators(request) {
    const data = MsgUpdateWhitelistedValidators.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "UpdateWhitelistedValidators", data);
    return promise.then(data => MsgUpdateWhitelistedValidatorsResponse.decode(new _m0.Reader(data)));
  }
  updateWeightedRewardsReceivers(request) {
    const data = MsgUpdateWeightedRewardsReceivers.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "UpdateWeightedRewardsReceivers", data);
    return promise.then(data => MsgUpdateWeightedRewardsReceiversResponse.decode(new _m0.Reader(data)));
  }
  setModulePaused(request) {
    const data = MsgSetModulePaused.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "SetModulePaused", data);
    return promise.then(data => MsgSetModulePausedResponse.decode(new _m0.Reader(data)));
  }
  burn(request) {
    const data = MsgBurn.encode(request).finish();
    const promise = this.rpc.request("ixo.liquidstake.v1beta1.Msg", "Burn", data);
    return promise.then(data => MsgBurnResponse.decode(new _m0.Reader(data)));
  }
}