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
  • WETH
  • CompoundModule
  1. Strat Lib
  2. Technical references
  3. API preferences
  4. Strats
  5. SRC
  6. Strategies
  7. Integrations

CompoundModule

WETH

deposit

function deposit() external payable

withdraw

function withdraw(uint256) external

CompoundModule

ErrorOnRedeem

event ErrorOnRedeem(bytes32 olKeyHash, uint256 offerId, uint256 amount, uint256 errorCode)

ErrorOnMint

event ErrorOnMint(bytes32 olKeyHash, uint256 offerId, uint256 amount, uint256 errorCode)

ComptrollerError

event ComptrollerError(address comp, uint256 errorCode)

overlyings

mapping(contract IERC20 => contract IcERC20) overlyings

comptroller

contract IComptroller comptroller

oracle

contract ICompoundPriceOracle oracle

weth

contract WETH weth

constructor

constructor(address _unitroller, address wethAddress) public

isCeth

function isCeth(contract IcERC20 ctoken) internal view returns (bool)

underlying

function underlying(contract IcERC20 ctoken) internal view returns (contract IERC20)

_approveLender

function _approveLender(contract IcERC20 ctoken, uint256 amount) internal returns (bool)

_enterMarkets

function _enterMarkets(address[] ctokens) internal

_exitMarket

function _exitMarket(contract IcERC20 ctoken) internal

_claimComp

function _claimComp() internal

isPooled

function isPooled(contract IERC20 token) public view returns (bool)

Heap

struct to circumvent stack too deep error in maxGettableUnderlying function

struct Heap {
  uint256 ctokenBalance;
  uint256 cDecimals;
  uint256 decimals;
  uint256 exchangeRateMantissa;
  uint256 liquidity;
  uint256 collateralFactorMantissa;
  uint256 maxRedeemable;
  uint256 balanceOfUnderlying;
  uint256 priceMantissa;
  uint256 underlyingLiquidity;
  enum CarefulMath.MathError mErr;
  uint256 errCode;
}

maxGettableUnderlying

function maxGettableUnderlying(address _ctoken, address account) public view returns (uint256, uint256)

Computes maximal maximal redeem capacity (R) and max borrow capacity (B|R) after R has been redeemed returns (R, B|R)

compoundRedeem

function compoundRedeem(uint256 amountToRedeem, struct MgvLib.SingleOrder order) internal returns (uint256)

_mint

function _mint(uint256 amount, contract IcERC20 ctoken) internal returns (uint256 errCode)

compoundMint

function compoundMint(uint256 amount, struct MgvLib.SingleOrder order) internal returns (uint256 missing)
PreviousAaveV3LenderNextInterfaces