# ZeroCouponBond

## `mint(uint256 depositAmount) → uint256 mintedAmount` (external) <a href="#mint-uint256-depositamount-uint256-mintedamount-external" id="mint-uint256-depositamount-uint256-mintedamount-external"></a>

Mint zero coupon bonds by depositing `depositAmount` stablecoins. @param depositAmount The amount to deposit for minting zero coupon bonds @return mintedAmount The amount of bonds minted

## `withdrawDeposit()` (external) <a href="#withdrawdeposit-external" id="withdrawdeposit-external"></a>

Withdraws the underlying deposit from the DInterest pool.

## `redeem(uint256 amount, bool withdrawDepositIfNeeded)` (external) <a href="#redeem-uint256-amount-bool-withdrawdepositifneeded-external" id="redeem-uint256-amount-bool-withdrawdepositifneeded-external"></a>

Redeems zero coupon bonds 1-for-1 for the underlying stablecoins. @param amount The amount of zero coupon bonds to burn @param withdrawDepositIfNeeded True if withdrawDeposit() should be called if needed, false otherwise (to save gas)

## `withdrawDepositNeeded() → bool` (external) <a href="#withdrawdepositneeded-bool-external" id="withdrawdepositneeded-bool-external"></a>

Checks whether withdrawDeposit() needs to be called. @return True if withdrawDeposit() should be called, false otherwise.
