// @ts-nocheck
/**
 * This file was automatically generated by @cosmwasm/ts-codegen@0.24.0.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run the @cosmwasm/ts-codegen generate command to regenerate this file.
 */

import { Coin, StdFee } from '@cosmjs/amino'
import { ExecuteResult } from '@cosmjs/cosmwasm-stargate'
import { useMutation, UseMutationOptions, useQuery, UseQueryOptions } from '@tanstack/react-query'

import { MarsMockRedBankClient, MarsMockRedBankQueryClient } from './MarsMockRedBank.client'
import {
  ArrayOfMarket,
  ArrayOfUncollateralizedLoanLimitResponse,
  ArrayOfUserCollateralResponse,
  ArrayOfUserDebtResponse,
  ConfigResponse,
  CreateOrUpdateConfig,
  InitOrUpdateAssetParams,
  Market,
  Uint128,
  UncollateralizedLoanLimitResponse,
  UserCollateralResponse,
  UserDebtResponse,
  UserPositionResponse,
} from './MarsMockRedBank.types'
export const marsMockRedBankQueryKeys = {
  contract: [
    {
      contract: 'marsMockRedBank',
    },
  ] as const,
  address: (contractAddress: string | undefined) =>
    [{ ...marsMockRedBankQueryKeys.contract[0], address: contractAddress }] as const,
  config: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [{ ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'config', args }] as const,
  market: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [{ ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'market', args }] as const,
  markets: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [{ ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'markets', args }] as const,
  uncollateralizedLoanLimit: (
    contractAddress: string | undefined,
    args?: Record<string, unknown>,
  ) =>
    [
      {
        ...marsMockRedBankQueryKeys.address(contractAddress)[0],
        method: 'uncollateralized_loan_limit',
        args,
      },
    ] as const,
  uncollateralizedLoanLimits: (
    contractAddress: string | undefined,
    args?: Record<string, unknown>,
  ) =>
    [
      {
        ...marsMockRedBankQueryKeys.address(contractAddress)[0],
        method: 'uncollateralized_loan_limits',
        args,
      },
    ] as const,
  userDebt: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      { ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'user_debt', args },
    ] as const,
  userDebts: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      { ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'user_debts', args },
    ] as const,
  userCollateral: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      { ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'user_collateral', args },
    ] as const,
  userCollaterals: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      { ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'user_collaterals', args },
    ] as const,
  userPosition: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      { ...marsMockRedBankQueryKeys.address(contractAddress)[0], method: 'user_position', args },
    ] as const,
  scaledLiquidityAmount: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      {
        ...marsMockRedBankQueryKeys.address(contractAddress)[0],
        method: 'scaled_liquidity_amount',
        args,
      },
    ] as const,
  scaledDebtAmount: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      {
        ...marsMockRedBankQueryKeys.address(contractAddress)[0],
        method: 'scaled_debt_amount',
        args,
      },
    ] as const,
  underlyingLiquidityAmount: (
    contractAddress: string | undefined,
    args?: Record<string, unknown>,
  ) =>
    [
      {
        ...marsMockRedBankQueryKeys.address(contractAddress)[0],
        method: 'underlying_liquidity_amount',
        args,
      },
    ] as const,
  underlyingDebtAmount: (contractAddress: string | undefined, args?: Record<string, unknown>) =>
    [
      {
        ...marsMockRedBankQueryKeys.address(contractAddress)[0],
        method: 'underlying_debt_amount',
        args,
      },
    ] as const,
}
export interface MarsMockRedBankReactQuery<TResponse, TData = TResponse> {
  client: MarsMockRedBankQueryClient | undefined
  options?: Omit<
    UseQueryOptions<TResponse, Error, TData>,
    "'queryKey' | 'queryFn' | 'initialData'"
  > & {
    initialData?: undefined
  }
}
export interface MarsMockRedBankUnderlyingDebtAmountQuery<TData>
  extends MarsMockRedBankReactQuery<Uint128, TData> {
  args: {
    amountScaled: Uint128
    denom: string
  }
}
export function useMarsMockRedBankUnderlyingDebtAmountQuery<TData = Uint128>({
  client,
  args,
  options,
}: MarsMockRedBankUnderlyingDebtAmountQuery<TData>) {
  return useQuery<Uint128, Error, TData>(
    marsMockRedBankQueryKeys.underlyingDebtAmount(client?.contractAddress, args),
    () =>
      client
        ? client.underlyingDebtAmount({
            amountScaled: args.amountScaled,
            denom: args.denom,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUnderlyingLiquidityAmountQuery<TData>
  extends MarsMockRedBankReactQuery<Uint128, TData> {
  args: {
    amountScaled: Uint128
    denom: string
  }
}
export function useMarsMockRedBankUnderlyingLiquidityAmountQuery<TData = Uint128>({
  client,
  args,
  options,
}: MarsMockRedBankUnderlyingLiquidityAmountQuery<TData>) {
  return useQuery<Uint128, Error, TData>(
    marsMockRedBankQueryKeys.underlyingLiquidityAmount(client?.contractAddress, args),
    () =>
      client
        ? client.underlyingLiquidityAmount({
            amountScaled: args.amountScaled,
            denom: args.denom,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankScaledDebtAmountQuery<TData>
  extends MarsMockRedBankReactQuery<Uint128, TData> {
  args: {
    amount: Uint128
    denom: string
  }
}
export function useMarsMockRedBankScaledDebtAmountQuery<TData = Uint128>({
  client,
  args,
  options,
}: MarsMockRedBankScaledDebtAmountQuery<TData>) {
  return useQuery<Uint128, Error, TData>(
    marsMockRedBankQueryKeys.scaledDebtAmount(client?.contractAddress, args),
    () =>
      client
        ? client.scaledDebtAmount({
            amount: args.amount,
            denom: args.denom,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankScaledLiquidityAmountQuery<TData>
  extends MarsMockRedBankReactQuery<Uint128, TData> {
  args: {
    amount: Uint128
    denom: string
  }
}
export function useMarsMockRedBankScaledLiquidityAmountQuery<TData = Uint128>({
  client,
  args,
  options,
}: MarsMockRedBankScaledLiquidityAmountQuery<TData>) {
  return useQuery<Uint128, Error, TData>(
    marsMockRedBankQueryKeys.scaledLiquidityAmount(client?.contractAddress, args),
    () =>
      client
        ? client.scaledLiquidityAmount({
            amount: args.amount,
            denom: args.denom,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUserPositionQuery<TData>
  extends MarsMockRedBankReactQuery<UserPositionResponse, TData> {
  args: {
    user: string
  }
}
export function useMarsMockRedBankUserPositionQuery<TData = UserPositionResponse>({
  client,
  args,
  options,
}: MarsMockRedBankUserPositionQuery<TData>) {
  return useQuery<UserPositionResponse, Error, TData>(
    marsMockRedBankQueryKeys.userPosition(client?.contractAddress, args),
    () =>
      client
        ? client.userPosition({
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUserCollateralsQuery<TData>
  extends MarsMockRedBankReactQuery<ArrayOfUserCollateralResponse, TData> {
  args: {
    limit?: number
    startAfter?: string
    user: string
  }
}
export function useMarsMockRedBankUserCollateralsQuery<TData = ArrayOfUserCollateralResponse>({
  client,
  args,
  options,
}: MarsMockRedBankUserCollateralsQuery<TData>) {
  return useQuery<ArrayOfUserCollateralResponse, Error, TData>(
    marsMockRedBankQueryKeys.userCollaterals(client?.contractAddress, args),
    () =>
      client
        ? client.userCollaterals({
            limit: args.limit,
            startAfter: args.startAfter,
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUserCollateralQuery<TData>
  extends MarsMockRedBankReactQuery<UserCollateralResponse, TData> {
  args: {
    denom: string
    user: string
  }
}
export function useMarsMockRedBankUserCollateralQuery<TData = UserCollateralResponse>({
  client,
  args,
  options,
}: MarsMockRedBankUserCollateralQuery<TData>) {
  return useQuery<UserCollateralResponse, Error, TData>(
    marsMockRedBankQueryKeys.userCollateral(client?.contractAddress, args),
    () =>
      client
        ? client.userCollateral({
            denom: args.denom,
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUserDebtsQuery<TData>
  extends MarsMockRedBankReactQuery<ArrayOfUserDebtResponse, TData> {
  args: {
    limit?: number
    startAfter?: string
    user: string
  }
}
export function useMarsMockRedBankUserDebtsQuery<TData = ArrayOfUserDebtResponse>({
  client,
  args,
  options,
}: MarsMockRedBankUserDebtsQuery<TData>) {
  return useQuery<ArrayOfUserDebtResponse, Error, TData>(
    marsMockRedBankQueryKeys.userDebts(client?.contractAddress, args),
    () =>
      client
        ? client.userDebts({
            limit: args.limit,
            startAfter: args.startAfter,
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUserDebtQuery<TData>
  extends MarsMockRedBankReactQuery<UserDebtResponse, TData> {
  args: {
    denom: string
    user: string
  }
}
export function useMarsMockRedBankUserDebtQuery<TData = UserDebtResponse>({
  client,
  args,
  options,
}: MarsMockRedBankUserDebtQuery<TData>) {
  return useQuery<UserDebtResponse, Error, TData>(
    marsMockRedBankQueryKeys.userDebt(client?.contractAddress, args),
    () =>
      client
        ? client.userDebt({
            denom: args.denom,
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUncollateralizedLoanLimitsQuery<TData>
  extends MarsMockRedBankReactQuery<ArrayOfUncollateralizedLoanLimitResponse, TData> {
  args: {
    limit?: number
    startAfter?: string
    user: string
  }
}
export function useMarsMockRedBankUncollateralizedLoanLimitsQuery<
  TData = ArrayOfUncollateralizedLoanLimitResponse,
>({ client, args, options }: MarsMockRedBankUncollateralizedLoanLimitsQuery<TData>) {
  return useQuery<ArrayOfUncollateralizedLoanLimitResponse, Error, TData>(
    marsMockRedBankQueryKeys.uncollateralizedLoanLimits(client?.contractAddress, args),
    () =>
      client
        ? client.uncollateralizedLoanLimits({
            limit: args.limit,
            startAfter: args.startAfter,
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUncollateralizedLoanLimitQuery<TData>
  extends MarsMockRedBankReactQuery<UncollateralizedLoanLimitResponse, TData> {
  args: {
    denom: string
    user: string
  }
}
export function useMarsMockRedBankUncollateralizedLoanLimitQuery<
  TData = UncollateralizedLoanLimitResponse,
>({ client, args, options }: MarsMockRedBankUncollateralizedLoanLimitQuery<TData>) {
  return useQuery<UncollateralizedLoanLimitResponse, Error, TData>(
    marsMockRedBankQueryKeys.uncollateralizedLoanLimit(client?.contractAddress, args),
    () =>
      client
        ? client.uncollateralizedLoanLimit({
            denom: args.denom,
            user: args.user,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankMarketsQuery<TData>
  extends MarsMockRedBankReactQuery<ArrayOfMarket, TData> {
  args: {
    limit?: number
    startAfter?: string
  }
}
export function useMarsMockRedBankMarketsQuery<TData = ArrayOfMarket>({
  client,
  args,
  options,
}: MarsMockRedBankMarketsQuery<TData>) {
  return useQuery<ArrayOfMarket, Error, TData>(
    marsMockRedBankQueryKeys.markets(client?.contractAddress, args),
    () =>
      client
        ? client.markets({
            limit: args.limit,
            startAfter: args.startAfter,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankMarketQuery<TData>
  extends MarsMockRedBankReactQuery<Market, TData> {
  args: {
    denom: string
  }
}
export function useMarsMockRedBankMarketQuery<TData = Market>({
  client,
  args,
  options,
}: MarsMockRedBankMarketQuery<TData>) {
  return useQuery<Market, Error, TData>(
    marsMockRedBankQueryKeys.market(client?.contractAddress, args),
    () =>
      client
        ? client.market({
            denom: args.denom,
          })
        : Promise.reject(new Error('Invalid client')),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankConfigQuery<TData>
  extends MarsMockRedBankReactQuery<ConfigResponse, TData> {}
export function useMarsMockRedBankConfigQuery<TData = ConfigResponse>({
  client,
  options,
}: MarsMockRedBankConfigQuery<TData>) {
  return useQuery<ConfigResponse, Error, TData>(
    marsMockRedBankQueryKeys.config(client?.contractAddress),
    () => (client ? client.config() : Promise.reject(new Error('Invalid client'))),
    { ...options, enabled: !!client && (options?.enabled != undefined ? options.enabled : true) },
  )
}
export interface MarsMockRedBankUpdateAssetCollateralStatusMutation {
  client: MarsMockRedBankClient
  msg: {
    denom: string
    enable: boolean
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankUpdateAssetCollateralStatusMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankUpdateAssetCollateralStatusMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankUpdateAssetCollateralStatusMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) =>
      client.updateAssetCollateralStatus(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankLiquidateMutation {
  client: MarsMockRedBankClient
  msg: {
    collateralDenom: string
    recipient?: string
    user: string
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankLiquidateMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankLiquidateMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankLiquidateMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.liquidate(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankRepayMutation {
  client: MarsMockRedBankClient
  msg: {
    onBehalfOf?: string
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankRepayMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankRepayMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankRepayMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.repay(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankBorrowMutation {
  client: MarsMockRedBankClient
  msg: {
    amount: Uint128
    denom: string
    recipient?: string
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankBorrowMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankBorrowMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankBorrowMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.borrow(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankWithdrawMutation {
  client: MarsMockRedBankClient
  msg: {
    amount?: Uint128
    denom: string
    recipient?: string
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankWithdrawMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankWithdrawMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankWithdrawMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.withdraw(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankDepositMutation {
  client: MarsMockRedBankClient
  msg: {
    onBehalfOf?: string
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankDepositMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankDepositMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankDepositMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.deposit(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankUpdateUncollateralizedLoanLimitMutation {
  client: MarsMockRedBankClient
  msg: {
    denom: string
    newLimit: Uint128
    user: string
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankUpdateUncollateralizedLoanLimitMutation(
  options?: Omit<
    UseMutationOptions<
      ExecuteResult,
      Error,
      MarsMockRedBankUpdateUncollateralizedLoanLimitMutation
    >,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankUpdateUncollateralizedLoanLimitMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) =>
      client.updateUncollateralizedLoanLimit(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankUpdateAssetMutation {
  client: MarsMockRedBankClient
  msg: {
    denom: string
    params: InitOrUpdateAssetParams
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankUpdateAssetMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankUpdateAssetMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankUpdateAssetMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.updateAsset(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankInitAssetMutation {
  client: MarsMockRedBankClient
  msg: {
    denom: string
    params: InitOrUpdateAssetParams
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankInitAssetMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankInitAssetMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankInitAssetMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.initAsset(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankUpdateConfigMutation {
  client: MarsMockRedBankClient
  msg: {
    config: CreateOrUpdateConfig
  }
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankUpdateConfigMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankUpdateConfigMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankUpdateConfigMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) =>
      client.updateConfig(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankUpdateEmergencyOwnerMutation {
  client: MarsMockRedBankClient
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankUpdateEmergencyOwnerMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankUpdateEmergencyOwnerMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankUpdateEmergencyOwnerMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) =>
      client.updateEmergencyOwner(msg, fee, memo, funds),
    options,
  )
}
export interface MarsMockRedBankUpdateOwnerMutation {
  client: MarsMockRedBankClient
  args?: {
    fee?: number | StdFee | 'auto'
    memo?: string
    funds?: Coin[]
  }
}
export function useMarsMockRedBankUpdateOwnerMutation(
  options?: Omit<
    UseMutationOptions<ExecuteResult, Error, MarsMockRedBankUpdateOwnerMutation>,
    'mutationFn'
  >,
) {
  return useMutation<ExecuteResult, Error, MarsMockRedBankUpdateOwnerMutation>(
    ({ client, msg, args: { fee, memo, funds } = {} }) => client.updateOwner(msg, fee, memo, funds),
    options,
  )
}
