// Copyright (c) Mysten Labs, Inc. // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 import type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query'; import { useMutation } from '@tanstack/react-query'; import { useIotaClientContext } from './useIotaClient.js'; import type { IotaRpcMethods } from './useIotaClientQuery.js'; export type UseIotaClientMutationOptions = Omit< UseMutationOptions, 'mutationFn' >; export function useIotaClientMutation( method: T, options: UseIotaClientMutationOptions = {}, ): UseMutationResult { const iotaContext = useIotaClientContext(); return useMutation({ ...options, mutationFn: async (params) => { return await iotaContext.client[method](params as never); }, }); }