Lev3x Issuance

Lev3xIssuanceModule.sol

issue

Deposits stable asset (e.g. usdc) to the index and mints quantity of the index leverage token. Amount of asset to be received is proportional to quantity.

function issue( ISetToken _setToken, uint256 _quantity, address _to, uint256 _maxEquityCost ) external
  • _setToken Instance of the SetToken to issue

  • _quantity Quantity of SetToken required to be issued

  • _to Address to mint SetToken to

  • _maxEquityCost For slippage, maximum cost incurred on issuer

redeem

Returns components from the SetToken, unwinds any external module component positions and burns the SetToken. If the token has debt positions, the module transfers the equity after deducting the debt amount for the user.

redeemed_equity_per_index = (collateral - debt) * quantity / index_total_supply

function redeem(ISetToken _setToken, uint256 _quantity, address _to, uint256 _minEquityReceived ) external
  • _setToken Instance of the SetToken to redeem

  • _quantity Quantity of SetToken to redeem (be burnt)

  • _to n Address to send collateral to

  • _minEquityReceived For slippage (protect from sandwich attacks). Minimum amount of collateral asset to receive.

calculateEquityIssuanceCost

View method that calculates the amount of collateral asset needed to collateralize passed issue quantity of Index. Can also be used to determine how much collateral expected to be returned on redemption. It calculates the total amount required of collateral asset for a given setToken quantity.

function calculateEquityIssuanceCost( ISetToken _setToken, uint256 _quantity, bool _isIssue ) external view
  • _setToken Instance of the SetToken to issue

  • _quantity Amount of Sets to be issued/redeemed

  • _isIssue Whether Sets are being issued or redeemed

  • _equityCost equity notional amounts of component, represented as uint256

Last updated