import { Msg } from "./tx_pb.js";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
class MsgClient {
  constructor(_transport) {
    this._transport = _transport;
    this.typeName = Msg.typeName;
    this.methods = Msg.methods;
    this.options = Msg.options;
  }
  /**
   * Deposit defines a method for transferring coins from the sender's bank
   * balance into the subaccount's exchange deposits
   *
   * @generated from protobuf rpc: Deposit
   */
  deposit(input, options) {
    const method = this.methods[0], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * Withdraw defines a method for withdrawing coins from a subaccount's
   * deposits to the user's bank balance
   *
   * @generated from protobuf rpc: Withdraw
   */
  withdraw(input, options) {
    const method = this.methods[1], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * InstantSpotMarketLaunch defines method for creating a spot market by paying
   * listing fee without governance
   *
   * @generated from protobuf rpc: InstantSpotMarketLaunch
   */
  instantSpotMarketLaunch(input, options) {
    const method = this.methods[2], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * InstantPerpetualMarketLaunch defines a method for creating a new perpetual
   * futures market by paying listing fee without governance
   *
   * @generated from protobuf rpc: InstantPerpetualMarketLaunch
   */
  instantPerpetualMarketLaunch(input, options) {
    const method = this.methods[3], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * InstantExpiryFuturesMarketLaunch defines a method for creating a new expiry
   * futures market by paying listing fee without governance
   *
   * @generated from protobuf rpc: InstantExpiryFuturesMarketLaunch
   */
  instantExpiryFuturesMarketLaunch(input, options) {
    const method = this.methods[4], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * CreateSpotLimitOrder defines a method for creating a new spot limit order.
   *
   * @generated from protobuf rpc: CreateSpotLimitOrder
   */
  createSpotLimitOrder(input, options) {
    const method = this.methods[5], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * BatchCreateSpotLimitOrder defines a method for creating a new batch of spot
   * limit orders.
   *
   * @generated from protobuf rpc: BatchCreateSpotLimitOrders
   */
  batchCreateSpotLimitOrders(input, options) {
    const method = this.methods[6], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * CreateSpotMarketOrder defines a method for creating a new spot market
   * order.
   *
   * @generated from protobuf rpc: CreateSpotMarketOrder
   */
  createSpotMarketOrder(input, options) {
    const method = this.methods[7], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgCancelSpotOrder defines a method for cancelling a spot order.
   *
   * @generated from protobuf rpc: CancelSpotOrder
   */
  cancelSpotOrder(input, options) {
    const method = this.methods[8], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * BatchCancelSpotOrders defines a method for cancelling a batch of spot
   * orders in a given market.
   *
   * @generated from protobuf rpc: BatchCancelSpotOrders
   */
  batchCancelSpotOrders(input, options) {
    const method = this.methods[9], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * BatchUpdateOrders defines a method for updating a batch of orders.
   *
   * @generated from protobuf rpc: BatchUpdateOrders
   */
  batchUpdateOrders(input, options) {
    const method = this.methods[10], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * PrivilegedExecuteContract defines a method for executing a Cosmwasm
   * contract from the exchange module with privileged capabilities.
   *
   * @generated from protobuf rpc: PrivilegedExecuteContract
   */
  privilegedExecuteContract(input, options) {
    const method = this.methods[11], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * CreateDerivativeLimitOrder defines a method for creating a new derivative
   * limit order.
   *
   * @generated from protobuf rpc: CreateDerivativeLimitOrder
   */
  createDerivativeLimitOrder(input, options) {
    const method = this.methods[12], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * BatchCreateDerivativeLimitOrders defines a method for creating a new batch
   * of derivative limit orders.
   *
   * @generated from protobuf rpc: BatchCreateDerivativeLimitOrders
   */
  batchCreateDerivativeLimitOrders(input, options) {
    const method = this.methods[13], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgCreateDerivativeLimitOrder defines a method for creating a new
   * derivative market order.
   *
   * @generated from protobuf rpc: CreateDerivativeMarketOrder
   */
  createDerivativeMarketOrder(input, options) {
    const method = this.methods[14], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgCancelDerivativeOrder defines a method for cancelling a derivative
   * order.
   *
   * @generated from protobuf rpc: CancelDerivativeOrder
   */
  cancelDerivativeOrder(input, options) {
    const method = this.methods[15], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgBatchCancelDerivativeOrders defines a method for cancelling a batch of
   * derivative limit orders.
   *
   * @generated from protobuf rpc: BatchCancelDerivativeOrders
   */
  batchCancelDerivativeOrders(input, options) {
    const method = this.methods[16], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * InstantBinaryOptionsMarketLaunch defines method for creating a binary
   * options market by paying listing fee without governance
   *
   * @generated from protobuf rpc: InstantBinaryOptionsMarketLaunch
   */
  instantBinaryOptionsMarketLaunch(input, options) {
    const method = this.methods[17], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * CreateBinaryOptionsLimitOrder defines a method for creating a new binary
   * options limit order.
   *
   * @generated from protobuf rpc: CreateBinaryOptionsLimitOrder
   */
  createBinaryOptionsLimitOrder(input, options) {
    const method = this.methods[18], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * CreateBinaryOptionsMarketOrder defines a method for creating a new binary
   * options market order.
   *
   * @generated from protobuf rpc: CreateBinaryOptionsMarketOrder
   */
  createBinaryOptionsMarketOrder(input, options) {
    const method = this.methods[19], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgCancelBinaryOptionsOrder defines a method for cancelling a binary
   * options order.
   *
   * @generated from protobuf rpc: CancelBinaryOptionsOrder
   */
  cancelBinaryOptionsOrder(input, options) {
    const method = this.methods[20], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * BatchCancelBinaryOptionsOrders defines a method for cancelling a batch of
   * binary options limit orders.
   *
   * @generated from protobuf rpc: BatchCancelBinaryOptionsOrders
   */
  batchCancelBinaryOptionsOrders(input, options) {
    const method = this.methods[21], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * SubaccountTransfer defines a method for transfer between subaccounts
   *
   * @generated from protobuf rpc: SubaccountTransfer
   */
  subaccountTransfer(input, options) {
    const method = this.methods[22], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * ExternalTransfer defines a method for transfer between external accounts
   *
   * @generated from protobuf rpc: ExternalTransfer
   */
  externalTransfer(input, options) {
    const method = this.methods[23], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * LiquidatePosition defines a method for liquidating a position
   *
   * @generated from protobuf rpc: LiquidatePosition
   */
  liquidatePosition(input, options) {
    const method = this.methods[24], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * BatchLiquidatePositions defines a method for liquidating multiple positions
   * in a best-effort manner
   *
   * @generated from protobuf rpc: BatchLiquidatePositions
   */
  batchLiquidatePositions(input, options) {
    const method = this.methods[25], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * EmergencySettleMarket defines a method for emergency settling a market
   *
   * @generated from protobuf rpc: EmergencySettleMarket
   */
  emergencySettleMarket(input, options) {
    const method = this.methods[26], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * OffsetPosition defines a method for offsetting a position
   *
   * @generated from protobuf rpc: OffsetPosition
   */
  offsetPosition(input, options) {
    const method = this.methods[27], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * IncreasePositionMargin defines a method for increasing margin of a position
   *
   * @generated from protobuf rpc: IncreasePositionMargin
   */
  increasePositionMargin(input, options) {
    const method = this.methods[28], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * DecreasePositionMargin defines a method for decreasing margin of a position
   *
   * @generated from protobuf rpc: DecreasePositionMargin
   */
  decreasePositionMargin(input, options) {
    const method = this.methods[29], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RewardsOptOut defines a method for opting out of rewards
   *
   * @generated from protobuf rpc: RewardsOptOut
   */
  rewardsOptOut(input, options) {
    const method = this.methods[30], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * AdminUpdateBinaryOptionsMarket defines method for updating a binary options
   * market by admin
   *
   * @generated from protobuf rpc: AdminUpdateBinaryOptionsMarket
   */
  adminUpdateBinaryOptionsMarket(input, options) {
    const method = this.methods[31], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: UpdateParams
   */
  updateParams(input, options) {
    const method = this.methods[32], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * UpdateSpotMarket modifies certain spot market fields (admin only)
   *
   * @generated from protobuf rpc: UpdateSpotMarket
   */
  updateSpotMarket(input, options) {
    const method = this.methods[33], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * UpdateDerivativeMarket modifies certain derivative market fields (admin
   * only)
   *
   * @generated from protobuf rpc: UpdateDerivativeMarket
   */
  updateDerivativeMarket(input, options) {
    const method = this.methods[34], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: AuthorizeStakeGrants
   */
  authorizeStakeGrants(input, options) {
    const method = this.methods[35], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: ActivateStakeGrant
   */
  activateStakeGrant(input, options) {
    const method = this.methods[36], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: BatchExchangeModification
   */
  batchExchangeModification(input, options) {
    const method = this.methods[37], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: LaunchSpotMarket
   */
  launchSpotMarket(input, options) {
    const method = this.methods[38], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: LaunchPerpetualMarket
   */
  launchPerpetualMarket(input, options) {
    const method = this.methods[39], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: LaunchExpiryFuturesMarket
   */
  launchExpiryFuturesMarket(input, options) {
    const method = this.methods[40], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: LaunchBinaryOptionsMarket
   */
  launchBinaryOptionsMarket(input, options) {
    const method = this.methods[41], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: BatchSpendCommunityPool
   */
  batchSpendCommunityPool(input, options) {
    const method = this.methods[42], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: SpotMarketParamUpdate
   */
  spotMarketParamUpdate(input, options) {
    const method = this.methods[43], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: DerivativeMarketParamUpdate
   */
  derivativeMarketParamUpdate(input, options) {
    const method = this.methods[44], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: BinaryOptionsMarketParamUpdate
   */
  binaryOptionsMarketParamUpdate(input, options) {
    const method = this.methods[45], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: ForceSettleMarket
   */
  forceSettleMarket(input, options) {
    const method = this.methods[46], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: LaunchTradingRewardCampaign
   */
  launchTradingRewardCampaign(input, options) {
    const method = this.methods[47], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: EnableExchange
   */
  enableExchange(input, options) {
    const method = this.methods[48], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: UpdateTradingRewardCampaign
   */
  updateTradingRewardCampaign(input, options) {
    const method = this.methods[49], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: UpdateTradingRewardPendingPoints
   */
  updateTradingRewardPendingPoints(input, options) {
    const method = this.methods[50], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: UpdateFeeDiscount
   */
  updateFeeDiscount(input, options) {
    const method = this.methods[51], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * @generated from protobuf rpc: UpdateAtomicMarketOrderFeeMultiplierSchedule
   */
  updateAtomicMarketOrderFeeMultiplierSchedule(input, options) {
    const method = this.methods[52], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgCancelPostOnlyMode defines a message to turn off the post-only mode
   *
   * @generated from protobuf rpc: CancelPostOnlyMode
   */
  cancelPostOnlyMode(input, options) {
    const method = this.methods[53], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * MsgActivatePostOnlyMode defines a message to turn on the post-only mode for
   * a number of blocks
   *
   * @generated from protobuf rpc: ActivatePostOnlyMode
   */
  activatePostOnlyMode(input, options) {
    const method = this.methods[54], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * LiquidateCrossMarginPool atomically closes all positions in a cross-margin
   * pool, netting surplus from profitable positions against deficits before
   * touching the insurance fund.
   *
   * @generated from protobuf rpc: LiquidateCrossMarginPool
   */
  liquidateCrossMarginPool(input, options) {
    const method = this.methods[55], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * UpdateSubaccountRiskProfile allows a user (subject to eligibility & safety
   * gates) to set the subaccount's risk profile (e.g. opt into cross-margin).
   *
   * @generated from protobuf rpc: UpdateSubaccountRiskProfile
   */
  updateSubaccountRiskProfile(input, options) {
    const method = this.methods[56], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
}
export {
  MsgClient
};
