function stakupToken() external view returns (IStakeUpToken);
function stUsdc() external view returns (IStUsdc);
function claimableRewards(address account) external view returns (uint256);
function totalStakeUpStaked() external view returns (uint256);
function rewardData() external view returns (RewardData memory);
/**
* @notice Data structure containing information pertaining to a reward period
* @dev All rewards are denominated in stTBY shares due to the token's rebasing nature
* @param index The last index that the rewards were updated
* @param lastShares The last shares balance of rewards available in the contract
*/
struct RewardData {
uint128 index;
uint128 lastShares;
}
function userStakingData(address account) external view returns (StakingData memory);
/**
* @notice Data structure containing information pertaining to a user's stake
* @dev All rewards are denominated in stTBY shares due to the token's rebasing nature
* @param amountStaked The amount of STAKEUP tokens currently staked
* @param index The last index that the users rewards were updated
* @param rewardsAccrued The amount of stTBY rewards that have accrued to the stake
*/
struct StakingData {
uint256 amountStaked;
uint128 index;
uint128 rewardsAccrued;
}
function lastRewardBlock() external view returns (uint256);