fluid-contracts-public/contracts/periphery/resolvers/stakingRewards/structs.sol
2024-07-11 13:05:09 +00:00

32 lines
1.3 KiB
Solidity

// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.21;
import { Structs as FluidLendingResolverStructs } from "../lending/structs.sol";
abstract contract Structs {
struct FTokenStakingRewardsDetails {
uint rewardPerToken; // how much rewards have distributed per token since start
uint getRewardForDuration; // total rewards being distributed
uint totalSupply; // total fToken deposited
uint periodFinish; // when rewards will get over
uint rewardRate; // total rewards / duration
uint rewardsDuration; // how long rewards are for since start to end
address rewardsToken; // which token are we distributing as rewards
address fToken; // which token are we distributing as rewards
}
struct UserRewardDetails {
uint earned;
uint fTokenShares; // user fToken balance deposited
uint underlyingAssets; // user fToken balance converted into underlying token
uint ftokenAllowance; // allowance of fToken to rewards contract
}
struct UserFTokenRewardsEntireData {
FluidLendingResolverStructs.FTokenDetails fTokenDetails;
FluidLendingResolverStructs.UserPosition userPosition;
FTokenStakingRewardsDetails fTokenRewardsDetails;
UserRewardDetails userRewardsDetails;
}
}