diff --git a/src/app/hooks/services/useDelegationService.ts b/src/app/hooks/services/useDelegationService.ts index ae9fabbe..c4a19930 100644 --- a/src/app/hooks/services/useDelegationService.ts +++ b/src/app/hooks/services/useDelegationService.ts @@ -8,7 +8,6 @@ import { DelegationV2, DelegationV2StakingState as State, } from "@/app/types/delegationsV2"; -import { FinalityProviderState } from "@/app/types/finalityProviders"; import { BbnStakingParamsVersion } from "@/app/types/networkInfo"; import { validateDelegation } from "@/utils/delegations"; import { getBbnParamByVersion } from "@/utils/params"; @@ -71,7 +70,8 @@ export function useDelegationService() { submitSlashingWithdrawalTx, } = useTransactionService(); - const { getFinalityProvider } = useFinalityProviderState(); + const { getFinalityProvider, getSlashedFinalityProvider } = + useFinalityProviderState(); const validations = useMemo( () => @@ -103,8 +103,9 @@ export function useDelegationService() { ...acc, [delegation.stakingTxHashHex]: { isSlashed: - getFinalityProvider(delegation.finalityProviderBtcPksHex[0]) - ?.state === FinalityProviderState.SLASHED, + getSlashedFinalityProvider( + delegation.finalityProviderBtcPksHex[0], + ) !== null, }, }), {} as Record, diff --git a/src/app/state/FinalityProviderState.tsx b/src/app/state/FinalityProviderState.tsx index f4b5df7c..1a8e5ce3 100644 --- a/src/app/state/FinalityProviderState.tsx +++ b/src/app/state/FinalityProviderState.tsx @@ -33,6 +33,7 @@ interface FinalityProviderState { getFinalityProvider: (btcPkHex: string) => FinalityProvider | null; fetchNextPage: () => void; getFinalityProviderName: (btcPkHex: string) => string | undefined; + getSlashedFinalityProvider: (btcPkHex: string) => FinalityProvider | null; } const SORT_DIRECTIONS = { @@ -72,6 +73,7 @@ const defaultState: FinalityProviderState = { getFinalityProvider: () => null, fetchNextPage: () => {}, getFinalityProviderName: () => undefined, + getSlashedFinalityProvider: () => null, }; const { StateProvider, useState: useFpState } = @@ -169,6 +171,12 @@ export function FinalityProviderState({ children }: PropsWithChildren) { [data?.finalityProviders], ); + const getSlashedFinalityProvider = useCallback( + (btcPkHex: string) => + data?.finalityProviders.find((fp) => fp.btcPk === btcPkHex) || null, + [data?.finalityProviders], + ); + const state = useMemo( () => ({ filter, @@ -182,6 +190,7 @@ export function FinalityProviderState({ children }: PropsWithChildren) { getFinalityProvider, fetchNextPage, getFinalityProviderName, + getSlashedFinalityProvider, }), [ filter, @@ -195,6 +204,7 @@ export function FinalityProviderState({ children }: PropsWithChildren) { getFinalityProvider, fetchNextPage, getFinalityProviderName, + getSlashedFinalityProvider, ], );