Architecture
The main contract which will be used by users is IdleCDO which allows depositing underlying and mint tranche tokens (ERC20), either AA or BB, and redeeming principal+interest from it.
The IdleCDO references an IIdleCDOStrategy and the first strategy proposed is IdleStrategy which uses Idle finance as a lending provider. IdleCDO should be able to change its strategy without impact, so it's possible to change the lending provider (assuming the position has been previously withdrawn).
Governance tokens collected as rewards, are not redistributed to users directly in the IdleCDO contract but rather sold to the market (harvest method) and the underlyings reinvested in the downstream lending provider where possible.
Other tokens (eg IDLE that won't be sold or tokens that have no liquid markets) will get redistributed to people who staked their tranches in a separate IdleCDOTrancheRewards contract (one for AA and one for BB).
These are the main contracts used:
IdleCDO.sol
IdleCDOTrancheRewards.sol
IdleCDOTranche.sol
IdleStrategy.sol

Notes

  • IdleCDO, IdleStrategy and IdleCDOTrancheRewards are upgradable contracts.
  • There are no 'loose' scripts but only hardhat tasks which are used both for interacting with contracts and tests in fork (integration task)
  • The integration task should be useful also to understand the complete workflow
Last modified 17d ago
Copy link
Contents
Notes