Define a Rewards Manager Configuration
A Rewards Manager config consists of an array of stake pool and reward pool configs: StakePoolConfig[] and RewardPoolConfig[]. These configs are passed to CozyManager.createRewardsManager when deploying a new Rewards Manager.
Stake Pool Config
struct StakePoolConfig {
  // The underlying asset of the stake pool.
  IERC20 asset;
  // The rewards weight of the stake pool.
  uint16 rewardsWeight;
}Stake Pool Assets
Each stake pool must have a unique underlying asset. When constructing StakePoolConfig[], the structs must be sorted by the address of the underlying stake asset. Passing in an array where the structs are unsorted or contain a duplicate asset will revert.
Stake Pool Rewards Weights
The rewards weight determines the share of the total rewards that are distributed to a given stake pool. For example, a rewards weight of 90% implies stakers in that pool earn 90% of all dripped reward assets.
The rewardsWeight parameter is represented as zoc (e.g. 5000 is 50%). The sum of rewards weights across all stake pools must be a zoc (or 100%).
Allowed Stake Pools
The allowedStakePools constant defines a limit on the number of stake pools in a single Rewards Manager.
Reward Pool Config
struct RewardPoolConfig {
  // The underlying asset of the reward pool.
  IERC20 asset;
  // The drip model for the reward pool.
  IDripModel dripModel;
}Reward Pool Assets
There are no restrictions on the underlying assets of reward pools.
Reward Pool Drip Models
The drip model for a reward pool defines the rate at which assets deposited into a reward pool accrue (i.e. "drip") to stakers. Drip-decay models must conform to the IDripModel interface. 
For more details on the mechanics of drip models, see here.
Allowed Reward Pools
The allowedRewardPools constant defines a limit on the number of reward pools in a single Rewards Manager.
Last updated