Debt Repayment¶
Overview¶
- Interface containing required methods for performing collateral top ups on a lending protocol 
- This needs to be implemented by each protocol-specific top up handler (e.g. Aave Handler, Compound Handler) 
Overview¶
- LP token holders can register a position on a supported protocol for debt repayment 
- Positions can get updated or removed at any time 
- Keepers can execute debt repayments 
- Debt Repayments are executed through pre-registered top-up handlers 
Overview¶
- Handles fees charged on debt repayment amount 
Integrating Protocols for Debt Repayment¶
There is a number of protocols for which Mero supports debt repayments.
Currently the following protocols are supported:
We aim to add support to various other protocols. Please reach out if you are interested in integrating with Mero by emailing [email protected].
This section outlines how protocols can be integrated with Mero. Note that in the future integration will be subject to approval from the Mero DAO.
Getting Started: Top Up Handlers¶
Integrating a new protocol can be relatively straightforward. The top up logic is mostly abstracted away and handled by the TopUpAction contract. This contract handles the registration/deletion/updating of positions, while also containing a list of all supported Top up handlers. A top up handler is a contract which contains the top up logic for a specific protocol. Hence, integrating a new protocol requires to create a new top up handler for it.
A top up handler contains the following interface.
- 
function topUp(bytes32 account, address underlying, uint256 amount, bytes memory extra) external payable
- Tops up the account for the protocol - account: Account to be topped up
- underlying: Underlying currency to be used for top up
- amount: Amount to be topped up
- extra: Arbitrary data that can be passed to the handler
 
- 
TopUpHandler.getUserFactor(address account, bytes memory extra) external returns (uint256)¶
- Returns a factor for the user which should always be >= 1 for sufficiently colletaralized positions and should get closer to 1 when collaterization level decreases - account: Account for which to get the factor
- extra: Arbitrary data that can be passed to the handler
 
An example implementation of a top up handler is given by the Top Up Handler for Compound.
Adding A Top Up Handler¶
Once a new protocol top up handler has been implemented it only needs to be added to the TopUpAction contract. This can be done via the following method:
- 
updateTopUpHandler(bytes32 protocol, address handlerAddress) external
- Update an existing or add a new top up handler. - protocol: Name of the protocol as- bytes32
- handlerAddress: Address of the handler