Skip to main content

AaveKandel

AaveKandel​

IS_FIRST_PULLER​

bytes32 IS_FIRST_PULLER

Indication that this is first puller (returned from lastLook) so posthook should deposit liquidity on AAVE

constructor​

constructor(contract IMangrove mgv, struct OLKey olKeyBaseQuote, address reserveId) public

Constructor

Parameters​

NameTypeDescription
mgvcontract IMangroveThe Mangrove deployment.
olKeyBaseQuotestruct OLKeyThe OLKey for the outbound_tkn base and inbound_tkn quote offer list Kandel will act on, the flipped OLKey is used for the opposite offer list.
reserveIdaddressidentifier of this contract's reserve when using a router.

isOverlying​

function isOverlying(address token) internal view returns (bool)

Verifies that token is not an official AAVE overlying.

Parameters​

NameTypeDescription
tokenaddressthe token to verify.

Return Values​

NameTypeDescription
[0]booltrue if overlying; otherwise, false.

initialize​

function initialize(contract AavePooledRouter router_, uint256 gasreq) external

Sets the AaveRouter as router and activates router for base and quote

Parameters​

NameTypeDescription
router_contract AavePooledRouterthe Aave router to use.
gasrequint256the gas required to execute an offer of this Kandel strat

setRouter​

function setRouter(contract AbstractRouter router) public virtual

depositFunds​

function depositFunds(uint256 baseAmount, uint256 quoteAmount) public

deposits funds to be available for being offered. Will increase pending.

Parameters​

NameTypeDescription
baseAmountuint256the amount of base tokens to deposit.
quoteAmountuint256the amount of quote tokens to deposit.

withdrawFundsForToken​

function withdrawFundsForToken(contract IERC20 token, uint256 amount, address recipient) internal

tries to withdraw funds on this contract's balance and then reaches out to the router available funds for the remainder

Parameters​

NameTypeDescription
tokencontract IERC20the token to withdraw.
amountuint256the amount of tokens to withdraw. Use type(uint).max to denote the entire reserve balance.
recipientaddressthe address to which the withdrawn funds should be sent to.

reserveBalance​

function reserveBalance(enum OfferType ba) public view returns (uint256 balance)

returns the amount of the router's that can be used by this contract, as well as local balance for the token offered for the offer type.

Parameters​

NameTypeDescription
baenum OfferTypethe offer type.

Return Values​

NameTypeDescription
balanceuint256the balance of the token.

lastLook​

function __lastLook__(struct MgvLib.SingleOrder order) internal returns (bytes32)

Verifies, prior to pulling funds from the router, whether pull will be fetching funds on AAVE

_lastLook should revert if trade is to be reneged on. If not, returned bytes32 are passed to makerPosthook in the makerData field._

Parameters​

NameTypeDescription
orderstruct MgvLib.SingleOrderis a recall of the taker order that is at the origin of the current trade.

Return Values​

NameTypeDescription
[0]bytes32

posthookSuccess​

function __posthookSuccess__(struct MgvLib.SingleOrder order, bytes32 makerData) internal returns (bytes32 repostStatus)

overrides and replaces Direct's posthook in order to push and supply on AAVE with a single call when offer logic is the first to pull funds from AAVE