TempusPool is the main smart contract in Tempus Protocol.
Each Tempus Pool is defined by 2 main properties:
  1. 1.
    A Yield Bearing Token (such as Lido's stETH or Compound's cDai).
  2. 2.
    A maturity date.
The Tempus Pool handles deposits and redemptions (routed via the TempusController). By keeping track of the underlying Yield Bearing Token's exchange rate, it mints Capitals and Yields on deposit and burns them on redemption in exchange for Yield Bearing Tokens.
This component is also where the deposited Yield Bearing Tokens are kept.
Each YieldBearingToken can have multiple pools with different maturities. Since each different YieldBearingToken stems from a different underlying protocol (such as Yearn, Compound, or Lido), each underlying protocol has a separate pool implementation that implements specific methods from TempusPool for each protocol. At the moment, Tempus supports Lido and Yearn, but the Tempus team is working on adding additional integrations.