+ Current: {currentValidatorId.slice(0, 8)}...{currentValidatorId.slice(-8)} +
+Connect your wallet to stake SOL
} + {status === 'success' && signature && ( +Stake Successful!
++ Signature: {signature} +
+Error
++ {String(error instanceof Error ? error.message : error)} +
+Processing stake transaction...
+Unstake Successful!
++ Signature: {unstakeSignature} +
+ +Unstake Error
++ {String(unstakeError instanceof Error ? unstakeError.message : unstakeError)} +
+Processing unstake transaction...
+Withdraw Successful!
++ Signature: {withdrawSignature} +
+ +Withdraw Error
++ {String(withdrawError instanceof Error ? withdrawError.message : withdrawError)} +
+Processing withdraw transaction...
++ Stake Status: {status} +
++ Unstake Status: {unstakeStatus} +
++ Withdraw Status: {withdrawStatus} +
++ Is Staking: {isStaking ? 'Yes' : 'No'} +
++ Is Unstaking: {isUnstaking ? 'Yes' : 'No'} +
++ Is Withdrawing: {isWithdrawing ? 'Yes' : 'No'} +
+ {signature && ( ++ Last Stake Signature: {signature.slice(0, 20)}... +
+ )} + {unstakeSignature && ( ++ Last Unstake Signature: {unstakeSignature.slice(0, 20)}... +
+ )} + {withdrawSignature && ( ++ Last Withdraw Signature: {withdrawSignature.slice(0, 20)}... +
+ )} +Found {stakeAccounts.length} stake account(s):
+ {stakeAccounts.map((acc) => { + const stakeAmount = + Number(acc?.account?.data?.parsed?.info?.stake?.delegation?.stake || 0) / + Number(LAMPORTS_PER_SOL); + const deactivationEpoch = + acc?.account?.data?.parsed?.info?.stake?.delegation?.deactivationEpoch || + '18446744073709551615'; + const isDeactivated = deactivationEpoch !== '18446744073709551615'; + + return ( ++ Account: {acc?.pubkey.slice(0, 20)}... +
++ Stake: {stakeAmount.toFixed(4)} SOL +
++ Voter:{' '} + {acc?.account?.data?.parsed?.info?.stake?.delegation?.voter?.slice(0, 20)} + ... +
++ Status:{' '} + + {isDeactivated ? 'Deactivated' : 'Active'} + +
++ Deactivated at epoch {deactivationEpoch}. Wait for cooldown before + withdrawing. +
+ )} +