🖥️
Term Finance v1 Developer Documentation
  • Overview
  • Term Finance Protocol
    • Term Repo
      • Term Auction Group
        • Initialization Parameters
        • Administrative Functions
      • Term Servicer Group
        • Initialization Parameters
        • Administrative Functions
      • Term Repo Token
        • Initialization Parameters
        • Administrative Functions
    • Protocol Contracts
      • Price Feeds
    • Conventions
    • Terminology
  • Access Controls
    • Upgradeability
  • Deployed Contracts
    • Smart Contract Audits
    • Formal Verification
    • [Ethereum]
    • [Avalanche]
  • Protocol Security
    • Smart Contract Monitoring
    • Front-End Security
  • Solidity API - latest
    • Term Repo Class
      • Term Auction Group
        • TermAuction.sol
        • TermAuctionBidLocker.sol
        • TermAuctionOfferLocker.sol
      • Term Servicer Group
        • TermRepoServicer.sol
        • TermRepoLocker.sol
        • TermRepoCollateralManager.sol
        • TermRepoRolloverManager.sol
      • TermRepoToken.sol
    • Protocol Class
      • TermController.sol
      • TermEventEmitter.sol
      • TermInitializer.sol
      • TermPriceConsumerV3.sol
  • Solidity API - 0.5.31
    • Term Repo Class
      • Term Auction Group
        • TermAuction.sol
        • TermAuctionBidLocker.sol
        • TermAuctionOfferLocker.sol
      • Term Servicer Group
        • TermRepoServicer.sol
        • TermRepoLocker.sol
        • TermRepoCollateralManager.sol
        • TermRepoRolloverManager.sol
      • TermRepoToken.sol
    • Protocol Class
      • TermController.sol
      • TermEventEmitter.sol
      • TermInitializer.sol
      • TermPriceConsumerV3.sol
  • Solidity API - 0.5.32
    • Term Repo Class
      • Term Auction Group
        • TermAuction.sol
        • TermAuctionBidLocker.sol
        • TermAuctionOfferLocker.sol
      • Term Servicer Group
        • TermRepoServicer.sol
        • TermRepoLocker.sol
        • TermRepoCollateralManager.sol
        • TermRepoRolloverManager.sol
      • TermRepoToken.sol
    • Protocol Class
      • TermController.sol
      • TermEventEmitter.sol
      • TermInitializer.sol
      • TermPriceConsumerV3.sol
  • Solidity API - 0.6.0
    • Term Repo Class
      • Term Auction Group
        • TermAuction.sol
        • TermAuctionBidLocker.sol
        • TermAuctionOfferLocker.sol
      • Term Servicer Group
        • TermRepoServicer.sol
        • TermRepoLocker.sol
        • TermRepoCollateralManager.sol
        • TermRepoRolloverManager.sol
      • TermRepoToken.sol
    • Protocol Class
      • TermController.sol
      • TermEventEmitter.sol
      • TermInitializer.sol
      • TermPriceConsumerV3.sol
  • Solidity API - 0.9.0
    • Term Repo Class
      • Term Auction Group
        • TermAuction.sol
        • TermAuctionBidLocker.sol
        • TermAuctionOfferLocker.sol
      • Term Servicer Group
        • TermRepoServicer.sol
        • TermRepoLocker.sol
        • TermRepoCollateralManager.sol
        • TermRepoRolloverManager.sol
      • TermRepoToken.sol
    • Protocol Class
      • TermController.sol
      • TermEventEmitter.sol
      • TermInitializer.sol
      • TermPriceConsumerV3.sol
  • DeFiSafety - detailed report
  • Github Repo
  • Periphery Contracts
    • Blue Sheets
      • Core Architecture
      • Core Functionality
      • Administration
      • Deployed Contracts
        • Smart Contract Audits
        • [Ethereum]
      • Solidity API - latest
        • RepoTokenLinkedList.sol#RepoTokenLinkedList
        • RepoTokenLinkedList.sol#RepoTokenLinkedListStorageV1
        • RepoTokenLinkedListEventEmitter.sol
        • TermDiscountRateAdapter.sol
    • Github Repo
    • Term Strategy Vaults
      • Core Architecture
        • Yearn V3 Framework
        • Term Integration
      • Core Functionality
        • YearnV3 Base Operations
        • Term Protocol Operations
          • Core Integration
          • Portfolio Valuation
          • Protocol Interactions
          • Portfolio Constraints
      • Administration
        • Yearn Roles & Governance
        • Term Vault Governance
      • Configuration Guide
      • Deployed Contracts
        • Smart Contract Audits
        • [Ethereum]
      • Solidity API - latest
        • RepoTokenList.sol#RepoTokenList
        • RepoTokenList.sol#RepoTokenListData
        • RepoTokenList.sol#RepoTokenListNode
        • RepoTokenUtils.sol#RepoTokenUtils
        • Strategy.sol#Strategy
        • TermAuctionList.sol#TermAuctionList
        • TermAuctionList.sol#PendingOffer
        • TermAuctionList.sol#TermAuctionListData
        • TermAuctionList.sol#TermAuctionListNode
        • TermDiscountRateAdapter.sol#TermDiscountRateAdapter
        • TermVaultEventEmitter.sol#TermVaultEventEmitter
        • TermFinanceVaultWrappedVotesToken.sol#TermFinanceVaultWrappedVotesToken
    • Github Repo
Powered by GitBook
On this page
  • Overview
  • Repo Token Validation
  • Concentration Limits
  • Reserve Requirements
  • Maturity Management
  • Collateral Validation
  1. Periphery Contracts
  2. Term Strategy Vaults
  3. Core Functionality
  4. Term Protocol Operations

Portfolio Constraints

Overview

Building on the validation and risk management principles outlined earlier, this section details additional mechanisms employed by Term Strategy Vaults to enforce key portfolio constraints. These mechanisms ensure compliance with the protocol’s risk framework, focusing on:

  1. Position Concentration Limits

  2. Liquid Reserve Requirements

  3. Weighted Average Duration Caps

  4. RepoToken Collateral Requirements

Repo Token Validation

The validateRepoToken function operates within the validation framework previously described by performing checks specific to repoTokens before they are accepted into the portfolio.

function validateRepoToken(
    RepoTokenListData storage listData,
    ITermRepoToken repoToken,
    address asset
) internal view returns (bool, uint256)
  • Verifies contract against TermController

  • Validates purchaseToken against baseAsset

  • Ensures repoToken not already matured

  • Checks collateral backing against collateralParams

Concentration Limits

The _validateRepoTokenConcentration function operates to enforce position concentration limits, ensuring no single repoToken or group of positions disproportionately dominates the portfolio.

function _validateRepoTokenConcentration(
    address repoToken,
    uint256 repoTokenAmountInBaseAssetPrecision,
    uint256 assetValue,
    uint256 liquidBalanceToRemove
) private view
  • Maximum exposure per repo token

  • Portfolio-wide concentration checks

Reserve Requirements

The _liquidReserveRatio function operates to ensure the portfolio maintains adequate reserves for user withdrawals and ongoing operations.

function _liquidReserveRatio(uint256 liquidBalance) internal view returns (uint256)
  • Minimum liquidity maintenance

  • Reserve ratio calculations

  • Withdrawal availability checks

Maturity Management

The _calculateWeightedMaturity function ensures that the portfolio’s weighted average duration complies with the protocol’s duration caps.

function _calculateWeightedMaturity(
    address repoToken,
    uint256 repoTokenAmount,
    uint256 liquidBalance
) private view returns (uint256)
  • Weighted average maturity tracking

  • Maturity threshold enforcement

  • Portfolio duration management

Collateral Validation

Collateral requirements, previously introduced, are enforced through the collateralTokenParams field in the RepoTokenListData struct:

struct RepoTokenListData {
    mapping(address => uint256) collateralTokenParams;
}
  • Collateral type restrictions

  • Minimum collateral ratios

  • Collateral quality checks

Last updated 4 months ago