diff --git a/src/hooks/useSafe.test.ts b/src/hooks/useSafe.test.ts index 3a94f9b..ce7da92 100644 --- a/src/hooks/useSafe.test.ts +++ b/src/hooks/useSafe.test.ts @@ -9,6 +9,7 @@ import * as useSignerAddress from '@/hooks/useSignerAddress.js' import * as useTransaction from '@/hooks/useTransaction.js' import * as usePendingTransactions from '@/hooks/usePendingTransactions.js' import * as useTransactions from '@/hooks/useTransactions.js' +import { UseSafeTransactionReturnType } from '@/hooks/useSafeTransaction.js' import { useSafe } from '@/hooks/useSafe.js' import { configExistingSafe } from '@test/config.js' import { @@ -250,7 +251,7 @@ describe('useSafe', () => { useTransactionSpy.mockReturnValue({ data: safeMultisigTransaction, status: 'success' - }) + } as UseSafeTransactionReturnType) const { result } = await renderUseSafeHook() diff --git a/src/hooks/useTransaction.ts b/src/hooks/useTransaction.ts index e463ae0..854ddf7 100644 --- a/src/hooks/useTransaction.ts +++ b/src/hooks/useTransaction.ts @@ -6,11 +6,15 @@ import { import type { ConfigParam, SafeConfig } from '@/types/index.js' import { useSafeTransaction, UseSafeTransactionReturnType } from './useSafeTransaction.js' -export type UseTransactionParams = ConfigParam & - ({ safeTxHash: Hash; ethereumTxHash?: never } | { safeTxHash?: never; ethereumTxHash: Hash }) +export type UseTransactionParams = + | (ConfigParam & { safeTxHash: Hash }) + | { ethereumTxHash: Hash } -export type UseTransactionReturnType = - Params['safeTxHash'] extends Hash ? UseSafeTransactionReturnType : UseTransactionReturnTypeWagmi +export type UseTransactionReturnType = Params extends { + safeTxHash: Hash +} + ? UseSafeTransactionReturnType + : UseTransactionReturnTypeWagmi /** * Hook to get the status of a specific transaction. @@ -23,9 +27,10 @@ export type UseTransactionReturnType = export function useTransaction( params: Params ): UseTransactionReturnType { - if (params.safeTxHash && isHash(params.safeTxHash)) { + if ('safeTxHash' in params && isHash(params.safeTxHash)) { return useSafeTransaction(params) as UseTransactionReturnType } - - return useTransactionWagmi({ hash: params.ethereumTxHash }) as UseTransactionReturnType + return useTransactionWagmi({ + hash: (params as { ethereumTxHash: Hash }).ethereumTxHash + }) as UseTransactionReturnType }