Mangrove
Developper
Developper
  • Welcome
  • Protocol
    • Introduction
    • Technical References
      • Overview
      • Ticks, ratios, and prices
      • Offer-list
        • Views on offers
      • Market-order
        • Delegation
      • Creating & Updating offers
        • Maker contract
        • Offer provisions
        • Gas requirement
        • Public data structures
        • Executing offers
      • Cleaning offers
      • Governance-parameters
        • Global variables
        • Local variables
        • Data structures and views
      • Periphery Contracts
        • MgvReader
        • MgvOracle
      • Literate Source Code
    • Background
      • Taking available liquidity
      • Making liquidity available
      • Reneging on offers
  • Strat Lib
    • What is the Strat Library?
    • Getting-started
      • Set Up Your Local Environment
      • Post a Smart Offer
    • Guides
      • Unlocking liquidity
      • Reposting an offer in the posthook
      • Using last look to renege trades
      • Determining gas requirements
      • Creating a Direct contract
      • Deploying your contract
      • Testing a maker contract
      • Safe offer logic guidelines
      • Approvals
    • Technical references
      • Principal hooks
      • Liquidity routing
      • API preferences
        • Core
          • SRC
            • IMangrove
        • Strats
          • SRC
            • Strategies
              • MangroveOffer
              • MangroveOrder
              • Integrations
                • AaveV3Borrower
                • AaveV3BorrowerImplementation
                • AaveV3BorrowerStorage
                • AaveV3Lender
                • CompoundModule
              • Interfaces
                • IForwarder
                • ILiquidityProvider
                • IOfferLogic
                • IOrderLogic
              • Offer_forwarder
                • Abstract
                  • Forwarder
              • Offer_maker
                • Abstract
                  • Direct
                • Market_making
                  • Kandel
                    • AaveKandel
                    • AaveKandelSeeder
                    • KandelSeeder
                    • Abstract
                      • AbstractKandelSeeder
                      • CoreKandel
                      • DirectWithBidsAndAsksDistribution
                      • GeometricKandel
                      • HasIndexedBidsAndAsks
                      • KandelLib
                      • TradesBaseQuotePair
              • Routeurs
                • SimpleRouter
                • Abstract
                  • AbstractRouter
                • Integrations
                  • AavePooledRouter
                  • HasAaveBalanceMemoizer
              • Utils
                • AccessControlled
              • Vendor
                • AAVE
                  • V3
                    • Contracts
                      • Dependencies
                        • Oppenzeppelin
                          • Contracts
                            • IERC20
                      • Interfaces
                        • IAToken
                        • IAaveIncentivesController
                        • IAaveOracle
                        • ICreditDelegationToken
                        • IInitializableAToken
                        • IPool
                        • IPoolAddressesProvider
                        • IPriceOracleGetter
                        • IScaledBalanceToken
                      • Protocol
                        • Libraries
                          • Configurations
                            • ReserveConfiguration
                          • Helpers
                            • Errors
                          • Types
                            • DataTypes
                    • Periphery
                      • Contracts
                        • MISC
                          • Interfaces
                            • IEACAggregatorProxy
                        • Rewards
                          • Interfaces
                            • IRewardsController
                            • IRewardsDistributor
                            • ITransferStrategyBase
                          • Libraries
                            • RewardsDataTypes
                • Compound
                  • CarefulMath
                  • Exponential
                  • ExponentialNoError
                  • ICompound
    • Background
      • Building Blocks
        • MangroveOffer
        • Direct
        • Forwarder
  • Vaults
    • Understanding vaults
      • Oracles
    • Managing a vault (CLI)
      • Deploying an oracle
      • Creating a vault
      • Monitoring the vault
      • Setting the vault position
      • Setting the fee data
      • Rebalancing
      • Adding or removing liquidity
    • Custom interactions
      • Oracles
      • Vault Factory
      • Managing a vault
        • Setting the position
        • Rebalancing
        • Setting a manager
        • Setting fee
  • Keeper Bots
    • Keeper Bots
    • Guides
      • Using borrowed funds for cleaning
    • Backgroud
      • The role of cleaning bots in Mangrove
      • The role of gas price updater bots in Mangrove
  • Adresses
    • Deployment Addresses
  • Quick Links
    • Glossary
    • Website
    • Whitepaper
Powered by GitBook
On this page
  • ReserveData
  • ReserveConfigurationMap
  • UserConfigurationMap
  • EModeCategory
  • InterestRateMode
  • ReserveCache
  • ExecuteLiquidationCallParams
  • ExecuteSupplyParams
  • ExecuteBorrowParams
  • ExecuteRepayParams
  • ExecuteWithdrawParams
  • ExecuteSetUserEModeParams
  • FinalizeTransferParams
  • FlashloanParams
  • FlashloanSimpleParams
  • FlashLoanRepaymentParams
  • CalculateUserAccountDataParams
  • ValidateBorrowParams
  • ValidateLiquidationCallParams
  • CalculateInterestRatesParams
  • InitReserveParams
  1. Strat Lib
  2. Technical references
  3. API preferences
  4. Strats
  5. SRC
  6. Strategies
  7. Vendor
  8. AAVE
  9. V3
  10. Contracts
  11. Protocol
  12. Libraries
  13. Types

DataTypes

ReserveData

struct ReserveData {
  struct DataTypes.ReserveConfigurationMap configuration;
  uint128 liquidityIndex;
  uint128 currentLiquidityRate;
  uint128 variableBorrowIndex;
  uint128 currentVariableBorrowRate;
  uint128 currentStableBorrowRate;
  uint40 lastUpdateTimestamp;
  uint16 id;
  address aTokenAddress;
  address stableDebtTokenAddress;
  address variableDebtTokenAddress;
  address interestRateStrategyAddress;
  uint128 accruedToTreasury;
  uint128 unbacked;
  uint128 isolationModeTotalDebt;
}

ReserveConfigurationMap

struct ReserveConfigurationMap {
  uint256 data;
}

UserConfigurationMap

struct UserConfigurationMap {
  uint256 data;
}

EModeCategory

struct EModeCategory {
  uint16 ltv;
  uint16 liquidationThreshold;
  uint16 liquidationBonus;
  address priceSource;
  string label;
}

InterestRateMode

enum InterestRateMode {
  NONE,
  STABLE,
  VARIABLE
}

ReserveCache

struct ReserveCache {
  uint256 currScaledVariableDebt;
  uint256 nextScaledVariableDebt;
  uint256 currPrincipalStableDebt;
  uint256 currAvgStableBorrowRate;
  uint256 currTotalStableDebt;
  uint256 nextAvgStableBorrowRate;
  uint256 nextTotalStableDebt;
  uint256 currLiquidityIndex;
  uint256 nextLiquidityIndex;
  uint256 currVariableBorrowIndex;
  uint256 nextVariableBorrowIndex;
  uint256 currLiquidityRate;
  uint256 currVariableBorrowRate;
  uint256 reserveFactor;
  struct DataTypes.ReserveConfigurationMap reserveConfiguration;
  address aTokenAddress;
  address stableDebtTokenAddress;
  address variableDebtTokenAddress;
  uint40 reserveLastUpdateTimestamp;
  uint40 stableDebtLastUpdateTimestamp;
}

ExecuteLiquidationCallParams

struct ExecuteLiquidationCallParams {
  uint256 reservesCount;
  uint256 debtToCover;
  address collateralAsset;
  address debtAsset;
  address user;
  bool receiveAToken;
  address priceOracle;
  uint8 userEModeCategory;
  address priceOracleSentinel;
}

ExecuteSupplyParams

struct ExecuteSupplyParams {
  address asset;
  uint256 amount;
  address onBehalfOf;
  uint16 referralCode;
}

ExecuteBorrowParams

struct ExecuteBorrowParams {
  address asset;
  address user;
  address onBehalfOf;
  uint256 amount;
  enum DataTypes.InterestRateMode interestRateMode;
  uint16 referralCode;
  bool releaseUnderlying;
  uint256 maxStableRateBorrowSizePercent;
  uint256 reservesCount;
  address oracle;
  uint8 userEModeCategory;
  address priceOracleSentinel;
}

ExecuteRepayParams

struct ExecuteRepayParams {
  address asset;
  uint256 amount;
  enum DataTypes.InterestRateMode interestRateMode;
  address onBehalfOf;
  bool useATokens;
}

ExecuteWithdrawParams

struct ExecuteWithdrawParams {
  address asset;
  uint256 amount;
  address to;
  uint256 reservesCount;
  address oracle;
  uint8 userEModeCategory;
}

ExecuteSetUserEModeParams

struct ExecuteSetUserEModeParams {
  uint256 reservesCount;
  address oracle;
  uint8 categoryId;
}

FinalizeTransferParams

struct FinalizeTransferParams {
  address asset;
  address from;
  address to;
  uint256 amount;
  uint256 balanceFromBefore;
  uint256 balanceToBefore;
  uint256 reservesCount;
  address oracle;
  uint8 fromEModeCategory;
}

FlashloanParams

struct FlashloanParams {
  address receiverAddress;
  address[] assets;
  uint256[] amounts;
  uint256[] interestRateModes;
  address onBehalfOf;
  bytes params;
  uint16 referralCode;
  uint256 flashLoanPremiumToProtocol;
  uint256 flashLoanPremiumTotal;
  uint256 maxStableRateBorrowSizePercent;
  uint256 reservesCount;
  address addressesProvider;
  uint8 userEModeCategory;
  bool isAuthorizedFlashBorrower;
}

FlashloanSimpleParams

struct FlashloanSimpleParams {
  address receiverAddress;
  address asset;
  uint256 amount;
  bytes params;
  uint16 referralCode;
  uint256 flashLoanPremiumToProtocol;
  uint256 flashLoanPremiumTotal;
}

FlashLoanRepaymentParams

struct FlashLoanRepaymentParams {
  uint256 amount;
  uint256 totalPremium;
  uint256 flashLoanPremiumToProtocol;
  address asset;
  address receiverAddress;
  uint16 referralCode;
}

CalculateUserAccountDataParams

struct CalculateUserAccountDataParams {
  struct DataTypes.UserConfigurationMap userConfig;
  uint256 reservesCount;
  address user;
  address oracle;
  uint8 userEModeCategory;
}

ValidateBorrowParams

struct ValidateBorrowParams {
  struct DataTypes.ReserveCache reserveCache;
  struct DataTypes.UserConfigurationMap userConfig;
  address asset;
  address userAddress;
  uint256 amount;
  enum DataTypes.InterestRateMode interestRateMode;
  uint256 maxStableLoanPercent;
  uint256 reservesCount;
  address oracle;
  uint8 userEModeCategory;
  address priceOracleSentinel;
  bool isolationModeActive;
  address isolationModeCollateralAddress;
  uint256 isolationModeDebtCeiling;
}

ValidateLiquidationCallParams

struct ValidateLiquidationCallParams {
  struct DataTypes.ReserveCache debtReserveCache;
  uint256 totalDebt;
  uint256 healthFactor;
  address priceOracleSentinel;
}

CalculateInterestRatesParams

struct CalculateInterestRatesParams {
  uint256 unbacked;
  uint256 liquidityAdded;
  uint256 liquidityTaken;
  uint256 totalStableDebt;
  uint256 totalVariableDebt;
  uint256 averageStableBorrowRate;
  uint256 reserveFactor;
  address reserve;
  address aToken;
}

InitReserveParams

struct InitReserveParams {
  address asset;
  address aTokenAddress;
  address stableDebtAddress;
  address variableDebtAddress;
  address interestRateStrategyAddress;
  uint16 reservesCount;
  uint16 maxNumberReserves;
}
PreviousTypesNextPeriphery