Controller for a ButtonTranche bond
Invariants:
totalDebtshould always equal the sum of all tranche tokens'totalSupply()
init(address _trancheFactory, address _collateralToken, address _admin, uint256[] trancheRatios, uint256 _maturityDate) (external)
Constructor for Tranche ERC20 token
Deposit amount tokens from msg.sender, get tranche tokens in return Requirements:
msg.sendermust haveapprovedamountcollateral tokens to this contract
Matures the bond. Disables deposits, fixes the redemption ratio, and distributes collateral to redemption pools Requirements:
- The bond is not already mature
- One of:
msg.senderisownermaturityDatehas passed
Redeems some tranche tokens Requirements:
- The bond is mature
msg.senderowns at leastamounttranche tokens from addresstranchetranchemust be a valid tranche token on this bond
Redeems a slice of tranche tokens from all tranches. Returns collateral to the user proportionally to the amount of debt they are removing Requirements
- The bond is not mature
- The number of
amountsis the same as the number of tranches - The
amountsare in equivalent ratio to the tranche order
Get the string name for a tranche
Get the string symbol for a tranche
Get the string letter for a tranche index