interface ILPStaking {
// Events
event Deposit(address indexed user, uint256 indexed pid, uint256 amount);
event FeeRecipientSet(address indexed feeRecipient);
event FeeStagesSet(uint256[] feeTimeStages, uint256[] feePercentStages);
event PoolAdded(uint256 indexed pid, uint256 allocPoint, address lpToken);
event PoolUpdated(uint256 indexed pid, uint256 allocPoint);
event RewardClaimed(address indexed user, uint256 indexed pid, uint256 amount);
event RewardCollected(uint256 indexed pid, uint256 amount, uint256 accRewardPerShare, uint256 govTokenSupply, uint256 timestamp);
event RewardsProcessed(uint256 timestamp, uint256 amount);
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount);
// State-Changing Functions
function claimAllRewards();
function claimRewards(uint256 _pid);
function deposit(uint256 _pid, uint256 _amount);
function processRewards();
function withdraw(uint256 _pid, uint256 _amount);
// View Functions
function getAllPendingRewards(address _user) view returns (uint256 _pendingRewards);
function getFeeRecipient() view returns (address _feeRecipient);
function getFeeStageForUserAndPool(address _user, uint256 _pid) view returns (uint256 _timeSinceDeposit, uint256 _currentFeePercent);
function getFeeStages() view returns (uint256[] _feeTimeStages, uint256[] _feePercentStages);
function getPendingRewards(uint256 _pid, address _user) view returns (uint256 _pendingRewards);
function getPoolInfo(uint256 _pid) view returns (tuple(address lpToken, uint256 allocPoint, uint256 lastRewardBlock, uint256 accRewardPerShare, uint256 totalStaked) _poolInfo);
function getPoolLength() view returns (uint256 _poolLength);
function getTotalAllocPoint() view returns (uint256 _totalAllocPoint);
function getUserInfo(uint256 _pid, address _user) view returns (tuple(uint256 amount, uint256 rewardDebt, uint256 lastDepositTimestamp) _userInfo);
function getWithdrawalFeePercentage(uint256 _timeDelta) view returns (uint256 _feePercentage);
function poolInfo(uint256 _pid) view returns (tuple(address lpToken, uint256 allocPoint, uint256 lastRewardBlock, uint256 accGovTokenPerShare) _poolInfoLegacy);
function totalAllocPoint() view returns (uint256 _totalAllocPoint);
function userInfo(uint256 _pid, address _user) view returns (tuple(uint256 amount, uint256 rewardDebt, uint256 rewardDebtAtBlock, uint256 lastWithdrawBlock, uint256 firstDepositBlock, uint256 blockdelta, uint256 lastDepositBlock) _userInfoLegacy);
}
Incentivized Garden Pairs