PoolRestrictions.solfor additional checks;
PowerIndexWrapperaddress for the pool and enable/disable "wrapper mode".
WrappedPiErc20.solis an ERC20 wrapper contract for staking underlying tokens from the pool to the corresponding protocol (e.g., YFI, AAVE, Sushi, etc.). If the corresponding protocol locks its governance tokens for voting / receiving rewards in a separate contract (e.g., in Sushi Swap, one should stake Sushi to Sushi Bar contract to receive protocol rewards),
PowerIndexPool.soluses a wrapped token (e.g., piSushi) instead Sushi token. In this case,
WrappedPiErc20.solautomatically stakes part of an underlying token(Sushi) into the corresponding protocol contract.
WrappedPiErc20.solfor each underlying token for all pools.
PowerIndexRouteris a contract that contains the logic of interaction with a specific protocol (voting, staking, withdrawal of awards, etc.). We are developing a
PowerIndexRouterfor each of the underlying tokens in the pool. Currently we have implementations for YFI(YearnPowerIndexRouter.sol) and AAVE(AavePowerIndexRouter.sol), which are inherited from PowerIndexNaiveRouter.sol and PowerIndexBasicRouter.sol.
VestedLPMining.solis a liquidity mining reward contract. Liquidity providers (Power Index, Uniswap, Balancer) can deposit LP tokens and receive a reward in CVP and as well as voting rights, based on stake of these tokens. The accrued CVP tokens have a specified vesting period.