diff --git a/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDelegationItem.tsx b/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDelegationItem.tsx index 64e5f9f02..1beee2a91 100644 --- a/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDelegationItem.tsx +++ b/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDelegationItem.tsx @@ -13,7 +13,6 @@ import { getValidatorDashboardValidatorUrl } from "@/utils/validatorDashboardUti import { getExplorerTxUrl, getExplorerAddressUrl } from "@/utils/explorerUtils" import { useSequencerStatus, SequencerStatus } from "@/hooks/rollup/useSequencerStatus" import { useStakeHealth } from "@/hooks/rollup/useStakeHealth" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useGovernanceConfig } from "@/hooks/governance" import { useClaimAllContext } from "@/contexts/ClaimAllContext" import { WithdrawalActions } from "./WithdrawalActions" @@ -58,8 +57,6 @@ export const ATPDetailsDelegationItem = ({ const { symbol, decimals } = useStakingAssetTokenDetails() const { date, time } = formatBlockTimestamp(delegation.timestamp) const { getSplitStatus, claimAllHook } = useClaimAllContext() - const { isRewardsClaimable } = useIsRewardsClaimable() - const { status, statusLabel, isLoading: isLoadingStatus, canFinalize, actualUnlockTime, refetch: refetchStatus } = useSequencerStatus(delegation.operatorAddress as Address) const { withdrawalDelayDays } = useGovernanceConfig() @@ -445,16 +442,14 @@ export const ATPDetailsDelegationItem = ({ providerTakeRate: delegation.providerTakeRate, providerRewardsRecipient: delegation.providerRewardsRecipient })} - disabled={delegationRewards.userRewards === 0n || isInBatch || isRewardsClaimable === false} + disabled={delegationRewards.userRewards === 0n || isInBatch} className="px-3 py-1.5 border font-oracle-standard text-xs font-bold uppercase tracking-wide whitespace-nowrap transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-parchment/10 disabled:border-parchment/30 disabled:text-parchment/60 border-chartreuse bg-chartreuse text-ink hover:bg-chartreuse/90" title={ - isRewardsClaimable === false - ? "Rewards are currently locked by the network protocol" - : delegationRewards.userRewards === 0n - ? "No rewards to claim" - : isInBatch - ? "Processing in batch" - : "Claim delegation rewards" + delegationRewards.userRewards === 0n + ? "No rewards to claim" + : isInBatch + ? "Processing in batch" + : "Claim delegation rewards" } > {isProcessingInBatch ? ( @@ -466,13 +461,9 @@ export const ATPDetailsDelegationItem = ({ 'Claim Rewards' )} - {(delegationRewards.userRewards === 0n || isRewardsClaimable === false) && ( + {delegationRewards.userRewards === 0n && ( diff --git a/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDirectStakeItem.tsx b/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDirectStakeItem.tsx index fa0ce6534..af356579d 100644 --- a/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDirectStakeItem.tsx +++ b/staking-dashboard/src/components/ATPDetailsModal/ATPDetailsDirectStakeItem.tsx @@ -12,7 +12,6 @@ import { getValidatorDashboardValidatorUrl } from "@/utils/validatorDashboardUti import { getExplorerTxUrl } from "@/utils/explorerUtils" import { useSequencerStatus, SequencerStatus } from "@/hooks/rollup/useSequencerStatus" import { useStakeHealth } from "@/hooks/rollup/useStakeHealth" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useGovernanceConfig } from "@/hooks/governance" import { ClaimSelfStakeRewardsModal } from "@/components/ClaimSelfStakeRewardsModal" import { WithdrawalActions } from "./WithdrawalActions" @@ -41,8 +40,6 @@ export const ATPDetailsDirectStakeItem = ({ stake, stakerAddress, rollupVersion, const [isClaimModalOpen, setIsClaimModalOpen] = useState(false) const { symbol, decimals } = useStakingAssetTokenDetails() const { date, time } = formatBlockTimestamp(stake.timestamp) - const { isRewardsClaimable } = useIsRewardsClaimable() - const { status, statusLabel, isLoading: isLoadingStatus, canFinalize, actualUnlockTime, refetch: refetchStatus } = useSequencerStatus(stake.attesterAddress as Address) const { withdrawalDelayDays } = useGovernanceConfig() @@ -366,19 +363,11 @@ export const ATPDetailsDirectStakeItem = ({ stake, stakerAddress, rollupVersion,
- {isRewardsClaimable === false && ( - - )}
)} diff --git a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverview.tsx b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverview.tsx index f036b4d82..615805144 100644 --- a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverview.tsx +++ b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverview.tsx @@ -2,7 +2,6 @@ import { useState, useEffect, useRef } from "react" import { useAggregatedStakingData } from "@/hooks/atp/useAggregatedStakingData" import { useMultipleStakeableAmounts } from "@/hooks/atp/useMultipleStakeableAmounts" import { useStakingAssetTokenDetails } from "@/hooks/stakingRegistry" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useCoinbaseAddresses, useMultipleCoinbaseRewards } from "@/hooks/rewards" import { ATPDetailsModal } from "@/components/ATPDetailsModal" import { ATPStakingOverviewSkeleton } from "./ATPStakingOverviewSkeleton" @@ -58,9 +57,6 @@ export const ATPStakingOverview = ({ atpData, walletBalance = 0n }: ATPStakingOv isLoading: isLoadingStakeable, } = useMultipleStakeableAmounts(atpData) - // Check if rewards are claimable - const { isRewardsClaimable } = useIsRewardsClaimable() - // Get coinbase addresses and their rewards for self-stake tracking const { coinbaseAddresses } = useCoinbaseAddresses() const { totalCoinbaseRewards, coinbaseBreakdown, refetch: refetchCoinbaseRewards } = useMultipleCoinbaseRewards(coinbaseAddresses as Address[]) @@ -179,7 +175,6 @@ export const ATPStakingOverview = ({ atpData, walletBalance = 0n }: ATPStakingOv totalRewards={totalRewards} selfStakeRewards={totalCoinbaseRewards} pendingWarehouseWithdrawal={pendingWarehouseWithdrawal} - isRewardsClaimable={isRewardsClaimable} isExpanded={isTotalRewardsExpanded} onToggle={() => setIsTotalRewardsExpanded(!isTotalRewardsExpanded)} decimals={decimals} diff --git a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewClaimableRewards.tsx b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewClaimableRewards.tsx index d057fb0dc..bdcf4e92b 100644 --- a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewClaimableRewards.tsx +++ b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewClaimableRewards.tsx @@ -11,7 +11,6 @@ interface ATPStakingOverviewClaimableRewardsProps { totalRewards: bigint selfStakeRewards?: bigint pendingWarehouseWithdrawal?: bigint - isRewardsClaimable?: boolean isExpanded: boolean onToggle: () => void decimals: number @@ -25,7 +24,7 @@ interface ATPStakingOverviewClaimableRewardsProps { * Displays claimable delegation rewards and self-stake rewards */ export const ATPStakingOverviewClaimableRewards = forwardRef( - ({ totalRewards, selfStakeRewards = 0n, pendingWarehouseWithdrawal = 0n, isRewardsClaimable = true, isExpanded, onToggle, decimals, symbol, delegationBreakdown = [], coinbaseBreakdown = [], onClaimSuccess }, ref) => { + ({ totalRewards, selfStakeRewards = 0n, pendingWarehouseWithdrawal = 0n, isExpanded, onToggle, decimals, symbol, delegationBreakdown = [], coinbaseBreakdown = [], onClaimSuccess }, ref) => { const [isManageModalOpen, setIsManageModalOpen] = useState(false) const [isClaimAllModalOpen, setIsClaimAllModalOpen] = useState(false) @@ -85,18 +84,6 @@ export const ATPStakingOverviewClaimableRewards = forwardRef - {/* Rewards Locked Warning */} - {!isRewardsClaimable && ( -
-
- - - Rewards are currently locked - -
-
- )} - {/* Info message when no rewards */} {combinedTotalRewards === 0n && (
@@ -117,7 +104,7 @@ export const ATPStakingOverviewClaimableRewards = forwardRef diff --git a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDelegationItem.tsx b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDelegationItem.tsx index 343b18bcd..13f32dba1 100644 --- a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDelegationItem.tsx +++ b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDelegationItem.tsx @@ -4,7 +4,6 @@ import { Icon } from "@/components/Icon" import { formatTokenAmount } from "@/utils/atpFormatters" import { getValidatorDashboardValidatorUrl } from "@/utils/validatorDashboardUtils" import { getExplorerTxUrl } from "@/utils/explorerUtils" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useClaimAllContext } from "@/contexts/ClaimAllContext" import type { ATPData } from "@/hooks/atp" import type { DelegationBreakdown, Erc20DelegationBreakdown } from "@/hooks/atp/useAggregatedStakingData" @@ -35,7 +34,6 @@ export const ATPStakingOverviewDelegationItem = ({ onClaimClick }: ATPStakingOverviewDelegationItemProps) => { const { getSplitStatus, claimAllHook } = useClaimAllContext() - const { isRewardsClaimable } = useIsRewardsClaimable() const isWallet = variant === 'wallet' const splitStatus = getSplitStatus(delegation.splitContract as Address) @@ -152,12 +150,10 @@ export const ATPStakingOverviewDelegationItem = ({
- {isRewardsClaimable === false && ( - - )} )} diff --git a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDirectStakeItem.tsx b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDirectStakeItem.tsx index a8e732a38..dff98cd99 100644 --- a/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDirectStakeItem.tsx +++ b/staking-dashboard/src/components/ATPStakingOverview/ATPStakingOverviewDirectStakeItem.tsx @@ -4,7 +4,6 @@ import { Icon } from "@/components/Icon" import { formatTokenAmount } from "@/utils/atpFormatters" import { getValidatorDashboardValidatorUrl } from "@/utils/validatorDashboardUtils" import { getExplorerTxUrl } from "@/utils/explorerUtils" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import type { ATPData } from "@/hooks/atp" import type { DirectStakeBreakdown, Erc20DirectStakeBreakdown } from "@/hooks/atp/useAggregatedStakingData" @@ -32,7 +31,6 @@ export const ATPStakingOverviewDirectStakeItem = ({ onWalletClick, onClaimClick }: ATPStakingOverviewDirectStakeItemProps) => { - const { isRewardsClaimable } = useIsRewardsClaimable() const isWallet = variant === 'wallet' return ( @@ -119,19 +117,11 @@ export const ATPStakingOverviewDirectStakeItem = ({
- {isRewardsClaimable === false && ( - - )}
)} diff --git a/staking-dashboard/src/components/ClaimAllDelegationRewardsButton/ClaimAllDelegationRewardsButton.tsx b/staking-dashboard/src/components/ClaimAllDelegationRewardsButton/ClaimAllDelegationRewardsButton.tsx index f7338a9ef..e108c43ce 100644 --- a/staking-dashboard/src/components/ClaimAllDelegationRewardsButton/ClaimAllDelegationRewardsButton.tsx +++ b/staking-dashboard/src/components/ClaimAllDelegationRewardsButton/ClaimAllDelegationRewardsButton.tsx @@ -1,7 +1,6 @@ import { useEffect, useMemo } from "react" import { useAccount } from "wagmi" import { useStakingAssetTokenDetails } from "@/hooks/stakingRegistry" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useClaimAllContext } from "@/contexts/ClaimAllContext" import { useAlert } from "@/contexts/AlertContext" import type { Address } from "viem" @@ -28,7 +27,6 @@ export const ClaimAllDelegationRewardsButton = ({ }: ClaimAllDelegationRewardsButtonProps) => { const { address: beneficiary } = useAccount() // TODO : should get the address from atp.beneficiary to handle the condition where the connected address is operator const { stakingAssetAddress: tokenAddress } = useStakingAssetTokenDetails() - const { isRewardsClaimable } = useIsRewardsClaimable() const { claimAllHook } = useClaimAllContext() const { showAlert } = useAlert() @@ -81,7 +79,7 @@ export const ClaimAllDelegationRewardsButton = ({ claimAllHook.claimAll(tasks) } - if (delegationsWithRewards.length === 0 || isRewardsClaimable === false) { + if (delegationsWithRewards.length === 0) { return null } diff --git a/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsModal.tsx b/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsModal.tsx index ae3555689..16246b868 100644 --- a/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsModal.tsx +++ b/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsModal.tsx @@ -3,7 +3,6 @@ import { createPortal } from "react-dom" import { Icon } from "@/components/Icon" import { useClaimAllRewards } from "@/hooks/rewards" import { useStakingAssetTokenDetails } from "@/hooks/stakingRegistry" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { ClaimAllRewardsSummary } from "./ClaimAllRewardsSummary" import { ClaimAllRewardsProgress } from "./ClaimAllRewardsProgress" import { ClaimAllRewardsSuccess } from "./ClaimAllRewardsSuccess" @@ -38,9 +37,6 @@ export const ClaimAllRewardsModal = ({ // Token details const { symbol, decimals } = useStakingAssetTokenDetails() - // Check if rewards are claimable - const { isRewardsClaimable } = useIsRewardsClaimable() - // Claim hook const claimAllRewards = useClaimAllRewards() @@ -154,7 +150,6 @@ export const ClaimAllRewardsModal = ({ pendingWarehouseWithdrawal={pendingWarehouseWithdrawal} decimals={decimals ?? 18} symbol={symbol ?? ""} - isRewardsClaimable={isRewardsClaimable ?? false} onStartClaiming={handleStartClaiming} isDisabled={false} /> diff --git a/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsSummary.tsx b/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsSummary.tsx index 9237690da..f5f003197 100644 --- a/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsSummary.tsx +++ b/staking-dashboard/src/components/ClaimAllRewardsModal/ClaimAllRewardsSummary.tsx @@ -9,7 +9,6 @@ interface ClaimAllRewardsSummaryProps { pendingWarehouseWithdrawal?: bigint decimals: number symbol: string - isRewardsClaimable: boolean onStartClaiming: () => void isDisabled: boolean } @@ -23,7 +22,6 @@ export const ClaimAllRewardsSummary = ({ pendingWarehouseWithdrawal = 0n, decimals, symbol, - isRewardsClaimable, onStartClaiming, isDisabled }: ClaimAllRewardsSummaryProps) => { @@ -41,21 +39,6 @@ export const ClaimAllRewardsSummary = ({ return (
- {/* Rewards Locked Warning */} - {!isRewardsClaimable && ( -
-
- -
-

Rewards Locked

-

- Rewards are currently locked and cannot be claimed. Check back later. -

-
-
-
- )} - {/* Total */}
@@ -187,18 +170,14 @@ export const ClaimAllRewardsSummary = ({ {/* Claim Button */} {/* Transaction Info */} - {hasRewards && isRewardsClaimable && ( + {hasRewards && (

This will require multiple transactions. Each claim will prompt for approval.

diff --git a/staking-dashboard/src/components/ClaimSelfStakeRewardsModal/ClaimSelfStakeRewardsModal.tsx b/staking-dashboard/src/components/ClaimSelfStakeRewardsModal/ClaimSelfStakeRewardsModal.tsx index 19d09f749..ddbad6d91 100644 --- a/staking-dashboard/src/components/ClaimSelfStakeRewardsModal/ClaimSelfStakeRewardsModal.tsx +++ b/staking-dashboard/src/components/ClaimSelfStakeRewardsModal/ClaimSelfStakeRewardsModal.tsx @@ -7,7 +7,6 @@ import { debounce } from "@/utils/debounce" import { useStakingAssetTokenDetails } from "@/hooks/stakingRegistry" import { useSequencerRewards } from "@/hooks/rollup/useSequencerRewards" import { useClaimSequencerRewards } from "@/hooks/rollup/useClaimSequencerRewards" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useAlert } from "@/contexts/AlertContext" import type { ATPData } from "@/hooks/atp" import type { Address } from "viem" @@ -58,8 +57,6 @@ export const ClaimSelfStakeRewardsModal = ({ reset } = useClaimSequencerRewards() - const { isRewardsClaimable } = useIsRewardsClaimable() - // Create debounced check function that manages debouncing state const debouncedCheckRewards = useMemo( () => debounce(() => { @@ -232,17 +229,6 @@ export const ClaimSelfStakeRewardsModal = ({
)} - {/* Rewards Not Claimable Warning */} - {isRewardsClaimable === false && ( -
-
- Rewards Currently Locked -
-
- All rewards are currently locked by the network protocol (rollup). Claiming will be enabled once the protocol unlocks rewards. -
-
- )} )} @@ -270,8 +256,7 @@ export const ClaimSelfStakeRewardsModal = ({ !rewards || rewards === 0n || isPending || - isConfirming || - isRewardsClaimable === false + isConfirming } className="px-6 py-3 bg-chartreuse text-ink font-oracle-standard font-bold text-sm uppercase tracking-wider hover:bg-chartreuse/90 transition-all disabled:opacity-50 disabled:cursor-not-allowed" > diff --git a/staking-dashboard/src/components/RewardsManagement/CoinbaseAddressList.tsx b/staking-dashboard/src/components/RewardsManagement/CoinbaseAddressList.tsx index 47f3862e7..4a71fa76d 100644 --- a/staking-dashboard/src/components/RewardsManagement/CoinbaseAddressList.tsx +++ b/staking-dashboard/src/components/RewardsManagement/CoinbaseAddressList.tsx @@ -9,7 +9,6 @@ interface CoinbaseAddressListProps { coinbaseBreakdown: CoinbaseBreakdown[] decimals: number symbol: string - isRewardsClaimable: boolean isLoading?: boolean onRefetch?: () => void } @@ -21,7 +20,6 @@ export const CoinbaseAddressList = ({ coinbaseBreakdown, decimals, symbol, - isRewardsClaimable, isLoading, onRefetch }: CoinbaseAddressListProps) => { @@ -100,26 +98,20 @@ export const CoinbaseAddressList = ({ {/* Claim Button */} {item.rewards > 0n && (
- {isRewardsClaimable ? ( - - ) : ( -
- Rewards are currently locked -
- )} +
)}
diff --git a/staking-dashboard/src/components/RewardsManagement/ManageRewardsAddressesModal.tsx b/staking-dashboard/src/components/RewardsManagement/ManageRewardsAddressesModal.tsx index 25ef5dcb9..6113487a0 100644 --- a/staking-dashboard/src/components/RewardsManagement/ManageRewardsAddressesModal.tsx +++ b/staking-dashboard/src/components/RewardsManagement/ManageRewardsAddressesModal.tsx @@ -2,7 +2,6 @@ import { useState, useMemo } from "react" import { createPortal } from "react-dom" import { Icon } from "@/components/Icon" import { useStakingAssetTokenDetails } from "@/hooks/stakingRegistry" -import { useIsRewardsClaimable } from "@/hooks/rollup/useIsRewardsClaimable" import { useAggregatedStakingData } from "@/hooks/atp/useAggregatedStakingData" import { useCoinbaseAddresses, @@ -14,7 +13,6 @@ import { import { AddAddressForm } from "./AddAddressForm" import { CoinbaseAddressList } from "./CoinbaseAddressList" import { SplitContractList } from "./SplitContractList" -import { RewardsLockedBanner } from "./RewardsLockedBanner" import type { Address } from "viem" import type { SplitContractWithSource } from "./types" @@ -38,9 +36,6 @@ export const ManageRewardsAddressesModal = ({ // Token details const { symbol, decimals, stakingAssetAddress: tokenAddress } = useStakingAssetTokenDetails() - // Check if rewards are claimable - const { isRewardsClaimable } = useIsRewardsClaimable() - // Coinbase addresses const { coinbaseAddresses, @@ -154,11 +149,6 @@ export const ManageRewardsAddressesModal = ({
- {/* Rewards Locked Banner */} - {isRewardsClaimable === false && ( - - )} - {/* Tabs */}
@@ -145,7 +137,6 @@ interface SplitContractListProps { decimals: number symbol: string tokenAddress: Address | undefined - isRewardsClaimable: boolean isLoading?: boolean onRefetch?: () => void } @@ -158,7 +149,6 @@ export const SplitContractList = ({ decimals, symbol, tokenAddress, - isRewardsClaimable, isLoading, onRefetch }: SplitContractListProps) => { @@ -218,7 +208,6 @@ export const SplitContractList = ({ decimals={decimals} symbol={symbol} tokenAddress={tokenAddress} - isRewardsClaimable={isRewardsClaimable} isRemoving={isRemoving} /> ))} @@ -240,7 +229,6 @@ export const SplitContractList = ({ decimals={decimals} symbol={symbol} tokenAddress={tokenAddress} - isRewardsClaimable={isRewardsClaimable} onRemove={() => handleRemove(split.address)} isRemoving={isRemoving} /> diff --git a/staking-dashboard/src/components/RewardsManagement/index.ts b/staking-dashboard/src/components/RewardsManagement/index.ts index 6d28d29fd..48d6e9896 100644 --- a/staking-dashboard/src/components/RewardsManagement/index.ts +++ b/staking-dashboard/src/components/RewardsManagement/index.ts @@ -2,4 +2,3 @@ export { ManageRewardsAddressesModal } from "./ManageRewardsAddressesModal" export { AddAddressForm } from "./AddAddressForm" export { CoinbaseAddressList } from "./CoinbaseAddressList" export { SplitContractList } from "./SplitContractList" -export { RewardsLockedBanner } from "./RewardsLockedBanner" diff --git a/staking-dashboard/src/components/WalletStakesDetailsModal/WalletDelegationItem.tsx b/staking-dashboard/src/components/WalletStakesDetailsModal/WalletDelegationItem.tsx index 621f3daf7..5a908ba79 100644 --- a/staking-dashboard/src/components/WalletStakesDetailsModal/WalletDelegationItem.tsx +++ b/staking-dashboard/src/components/WalletStakesDetailsModal/WalletDelegationItem.tsx @@ -12,7 +12,7 @@ import { formatBlockTimestamp } from "@/utils/dateFormatters" import { useStakingAssetTokenDetails } from "@/hooks/stakingRegistry" import { getValidatorDashboardValidatorUrl } from "@/utils/validatorDashboardUtils" import { getExplorerTxUrl, getExplorerAddressUrl } from "@/utils/explorerUtils" -import { useSequencerStatus, SequencerStatus, useStakeHealth, useIsRewardsClaimable } from "@/hooks/rollup" +import { useSequencerStatus, SequencerStatus, useStakeHealth } from "@/hooks/rollup" import { useGovernanceConfig } from "@/hooks/governance" import { useClaimAllContext } from "@/contexts/ClaimAllContext" import { WalletWithdrawalActions } from "./WalletWithdrawalActions" @@ -43,8 +43,6 @@ export const WalletDelegationItem = ({ const { symbol, decimals } = useStakingAssetTokenDetails() const { date, time } = formatBlockTimestamp(delegation.timestamp) const { getSplitStatus, claimAllHook } = useClaimAllContext() - const { isRewardsClaimable } = useIsRewardsClaimable() - const { status, statusLabel, isLoading: isLoadingStatus, canFinalize, actualUnlockTime, refetch: refetchStatus } = useSequencerStatus(delegation.attesterAddress as Address) const { withdrawalDelayDays } = useGovernanceConfig() @@ -339,16 +337,14 @@ export const WalletDelegationItem = ({ providerTakeRate: delegation.providerTakeRate, providerRewardsRecipient: delegation.providerRewardsRecipient })} - disabled={delegation.rewards === 0n || isInBatch || isRewardsClaimable === false} + disabled={delegation.rewards === 0n || isInBatch} className="px-3 py-1.5 border font-oracle-standard text-xs font-bold uppercase tracking-wide whitespace-nowrap transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-parchment/10 disabled:border-parchment/30 disabled:text-parchment/60 border-chartreuse bg-chartreuse text-ink hover:bg-chartreuse/90" title={ - isRewardsClaimable === false - ? "Rewards are currently locked by the network protocol" - : delegation.rewards === 0n - ? "No rewards to claim" - : isInBatch - ? "Processing in batch" - : "Claim delegation rewards" + delegation.rewards === 0n + ? "No rewards to claim" + : isInBatch + ? "Processing in batch" + : "Claim delegation rewards" } > {isProcessingInBatch ? ( @@ -360,13 +356,9 @@ export const WalletDelegationItem = ({ 'Claim Rewards' )} - {(delegation.rewards === 0n || isRewardsClaimable === false) && ( + {delegation.rewards === 0n && ( diff --git a/staking-dashboard/src/hooks/rollup/index.ts b/staking-dashboard/src/hooks/rollup/index.ts index d35471714..0d14b5085 100644 --- a/staking-dashboard/src/hooks/rollup/index.ts +++ b/staking-dashboard/src/hooks/rollup/index.ts @@ -2,7 +2,6 @@ export { useRollupData } from "./useRollupData"; export { useActivationThresholdFormatted } from "./useActivationThresholdFormatted"; export { useSequencerRewards } from "./useSequencerRewards"; export { useClaimSequencerRewards } from "./useClaimSequencerRewards"; -export { useIsRewardsClaimable } from "./useIsRewardsClaimable"; export { useEjectionThreshold } from "./useEjectionThreshold"; export { useStakeHealth } from "./useStakeHealth"; export type { StakeHealth } from "./useStakeHealth";