Ensuro Docs
  • Introduction
    • General Questions
    • Risk Management
  • Liquidity Providers
    • FAQ - Liquidity Providers
    • Onboarding process
  • Risk Partners
    • FAQ - Risk Partners
    • Onboarding process
    • Flow
  • Deployments
  • Audits
  • Smart Contracts
    • Architecture
    • Roles and permissions
    • Governance
    • Policy Lifecycle
    • Policies
    • Liquidity pools
    • Premiums Accounts
    • Reserves
    • Asset Management
    • Contracts
      • PolicyPool
      • EToken
      • RiskModule
        • TrustfulRiskModule
        • SignedQuoteRiskModule
        • SignedBucketRiskModule
        • FlightDelayRiskModule
        • PriceRiskModule
      • PremiumsAccount
      • AccessManager
      • IAssetManager
        • LiquidityThresholdAssetManager
        • ERC4626AssetManager
        • AAVEv3AssetManager
      • ILPWhitelist
        • LPManualWhitelist
      • Extensions
        • ERC4626CashFlowLender
        • ETokensBundleVault
        • MultiStrategyERC4626
  • Offchain APIs
    • Introduction
    • Callback notifications
    • API Reference
      • Pricing API
      • Offchain API
  • Frontend
    • Security and Monitoring
  • Legal & Compliance
    • Trust & Security in Ensuro's Ecosystem
  • Ensuro Risk Disclosures
  • Fees & Charges
  • Specific Responsibilities and Expectations of Retail Investors
  • Confirmation of Acceptance of Participation Agreement and Token Holder Terms & Conditions
  • Ensuro Terms of Service
  • Restricted Jurisdictions
  • Participation Agreement for Token Holders
  • Ensuro Anti-Money Laundering & Anti-Terrorism Financing Policy Statement
  • Privacy Policy
  • Ensuro Data Protection Policy
  • Cybersecurity Guide for Ensuro Protocol Investors
  • Tax Guide for Ensuro Protocol Investors
Powered by GitBook
On this page
  • Inheriting
  • Parameters
  • External Methods
  • setLiquidityThresholds
  1. Smart Contracts
  2. Contracts
  3. IAssetManager

LiquidityThresholdAssetManager

PreviousIAssetManagerNextERC4626AssetManager

Last updated 9 months ago

This is an abstract implementation of the interface that implements a liquidity strategy based on thresholds.

This strategy manages how much of the funds should remain liquid in the reserve (currency().balanceOf(reserve)) and how much is invested. For that, it has three liquidity thresholds: minimum, middle, and maximum. On the rebalance operations, if the liquid funds of the reserve are above the maximum, it invests funds, leaving liquidity at the middle level. If the liquid funds are below the minimum, it deinvests enough funds to leave the liquidity again at the middle level.

Inheriting

The contract does not implement the specific investment strategy, that must be implemented by descendant contracts. These contracts must overload at least the functions _invest(amount), _deinvest(amount), deinvestAll(), and getInvestmentValue().

Parameters

Field
Type
Description

liquidityMin

uint256 (amount)

Minimal amount of liquid funds the Asset Manager tries to leave in the Reserve. If under this value, deinvests.

liquidityMiddle

uint256 (amount)

Target amount to which the liquid funds of the reserve are taken after a rebalance operation

liquidityMin

uint256 (amount)

Maximum amount of liquid funds the Asset Manager tries to leave in the Reserve. If above this value, invests.

External Methods

setLiquidityThresholds

function setLiquidityThresholds(uint256 min, uint256 middle, uint256 max) external
Name
Type
Description

min

uint256

The new value for liquidityMin or type(uint256).max to leave unchanged

middle

uint256

The new value for liquidityMiddle or type(uint256).max to leave unchanged

max

uint256

The new value for liquidityMax or type(uint256).max to leave unchanged

IAssetManager