mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
feat: update common logics
This commit is contained in:
parent
9bf8613bf6
commit
9b8c7db025
|
@ -34,26 +34,22 @@ abstract contract Helpers is Stores, Basic {
|
|||
address _onBehalf,
|
||||
uint256 _getId,
|
||||
Mode _mode
|
||||
) internal returns (TokenInterface _tokenContract, uint256 _amt) {
|
||||
) internal returns (MarketParams memory, uint256 _amt) {
|
||||
_amt = getUint(_getId, _assets);
|
||||
|
||||
bool _isEth;
|
||||
if (_mode == Mode.Collateral) {
|
||||
_isEth = _marketParams.collateralToken == ethAddr;
|
||||
} else {
|
||||
_isEth = _marketParams.loanToken == ethAddr;
|
||||
}
|
||||
bool _isEth = _mode == Mode.Collateral
|
||||
? _marketParams.collateralToken == ethAddr
|
||||
: _marketParams.loanToken == ethAddr;
|
||||
|
||||
// Set the correct token contract
|
||||
_tokenContract = _isEth
|
||||
? TokenInterface(wethAddr)
|
||||
: TokenInterface(_marketParams.loanToken);
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
// Check for max value
|
||||
if (_assets == type(uint256).max) {
|
||||
uint256 _maxAvailable = _isEth
|
||||
? address(this).balance
|
||||
: _tokenContract.balanceOf(address(this));
|
||||
: TokenInterface(_marketParams.loanToken).balanceOf(
|
||||
address(this)
|
||||
);
|
||||
if (_mode == Mode.Repay) {
|
||||
uint256 _amtDebt = getPaybackBalance(_marketParams, _onBehalf);
|
||||
_amt = min(_maxAvailable, _amtDebt);
|
||||
|
@ -64,8 +60,14 @@ abstract contract Helpers is Stores, Basic {
|
|||
|
||||
// Perform conversion if necessary
|
||||
if (_isEth) {
|
||||
convertEthToWeth(true, _tokenContract, _amt);
|
||||
convertEthToWeth(
|
||||
true,
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
_amt
|
||||
);
|
||||
}
|
||||
|
||||
return (_marketParams, _amt);
|
||||
}
|
||||
|
||||
/// @notice Handles Eth to Weth conversion if shares are provided.
|
||||
|
@ -75,24 +77,29 @@ abstract contract Helpers is Stores, Basic {
|
|||
address _onBehalf,
|
||||
uint256 _getId,
|
||||
bool _isRepay
|
||||
) internal returns (TokenInterface _tokenContract, uint256 _assets) {
|
||||
) internal returns (MarketParams memory, uint256 _assets) {
|
||||
uint256 _shareAmt = getUint(_getId, _shares);
|
||||
bool _isEth = _marketParams.loanToken == ethAddr;
|
||||
|
||||
// Set the token contract based on whether the loan token is ETH
|
||||
_tokenContract = _isEth
|
||||
? TokenInterface(wethAddr)
|
||||
: TokenInterface(_marketParams.loanToken);
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
// Handle the max share case or normal share conversion
|
||||
if (_isRepay && _shares == type(uint256).max) {
|
||||
// Handle the max share case
|
||||
if (_shares == type(uint256).max) {
|
||||
uint256 _maxAvailable = _isEth
|
||||
? address(this).balance
|
||||
: _tokenContract.balanceOf(address(this));
|
||||
: TokenInterface(_marketParams.loanToken).balanceOf(
|
||||
address(this)
|
||||
);
|
||||
|
||||
// If it's repay calculate the min of balance available and debt to repay
|
||||
if (_isRepay) {
|
||||
_assets = min(
|
||||
_maxAvailable,
|
||||
getPaybackBalance(_marketParams, _onBehalf)
|
||||
);
|
||||
} else {
|
||||
_assets = _maxAvailable;
|
||||
}
|
||||
} else {
|
||||
bytes32 _id = id(_marketParams);
|
||||
_assets = _toAssetsUp(
|
||||
|
@ -104,8 +111,14 @@ abstract contract Helpers is Stores, Basic {
|
|||
|
||||
// Perform ETH to WETH conversion if necessary
|
||||
if (_isEth) {
|
||||
convertEthToWeth(true, _tokenContract, _assets);
|
||||
convertEthToWeth(
|
||||
true,
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
_assets
|
||||
);
|
||||
}
|
||||
|
||||
return (_marketParams, _assets);
|
||||
}
|
||||
|
||||
/// @notice Helper function to find the minimum of two values
|
||||
|
@ -163,4 +176,18 @@ abstract contract Helpers is Stores, Basic {
|
|||
) internal pure returns (uint256) {
|
||||
return (x * y + (d - 1)) / d;
|
||||
}
|
||||
|
||||
function updateTokenAddresses(
|
||||
MarketParams memory _marketParams
|
||||
) internal returns (MarketParams memory) {
|
||||
_marketParams.loanToken = _marketParams.loanToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.loanToken;
|
||||
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
|
||||
return _marketParams;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,10 +24,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final assets amount and token contract
|
||||
uint256 _amt;
|
||||
(
|
||||
TokenInterface _tokenContract, // Loan token contract
|
||||
uint256 _amt
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt
|
||||
) = _performEthToWethConversion(
|
||||
_marketParams,
|
||||
_assets,
|
||||
|
@ -36,14 +36,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
Mode.Other
|
||||
);
|
||||
|
||||
// Approving loan token for supplying
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.loanToken = address(_tokenContract);
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
uint256 _shares;
|
||||
(_assets, _shares) = MORPHO_BLUE.supply(
|
||||
|
@ -86,10 +83,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final assets amount and token contract
|
||||
uint256 _amt;
|
||||
(
|
||||
TokenInterface _tokenContract, // Loan token contract
|
||||
uint256 _amt
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt
|
||||
) = _performEthToWethConversion(
|
||||
_marketParams,
|
||||
_assets,
|
||||
|
@ -98,14 +95,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
Mode.Other
|
||||
);
|
||||
|
||||
// Approving loan token for supplying
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.loanToken = address(_tokenContract);
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
uint256 _shares;
|
||||
(_assets, _shares) = MORPHO_BLUE.supply(
|
||||
|
@ -133,7 +127,7 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
* @dev Supply ETH/ERC20 Token for lending.
|
||||
* @notice Supplies assets for a perfect share amount to Morpho Blue for lending.
|
||||
* @param _marketParams The market to supply assets to. (For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
|
||||
* @param _shares The exact amount of shares to mint. (Max maount not allowed)
|
||||
* @param _shares The exact amount of shares to mint. (For max: `uint256(-1)`)
|
||||
* @param _onBehalf The address that will get the shares.
|
||||
* @param _getId ID to retrieve amt.
|
||||
* @param _setId ID stores the amount of tokens deposited.
|
||||
|
@ -149,10 +143,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final converted assets amount for approval and token contract
|
||||
uint256 _amt;
|
||||
(
|
||||
TokenInterface _tokenContract, // Loan token contract
|
||||
uint256 _amt // Shares amount converted to assets
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt // Shares amount converted to assets
|
||||
) = _performEthToWethSharesConversion(
|
||||
_marketParams,
|
||||
_shares,
|
||||
|
@ -161,14 +155,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
false
|
||||
);
|
||||
|
||||
// Approving loan token for supplying
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.loanToken = address(_tokenContract);
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
(uint256 _assets, ) = MORPHO_BLUE.supply(
|
||||
_marketParams,
|
||||
|
@ -208,10 +199,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final assets amount and token contract
|
||||
uint256 _amt;
|
||||
(
|
||||
TokenInterface _tokenContract, // Collateral token contract
|
||||
uint256 _amt
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt
|
||||
) = _performEthToWethConversion(
|
||||
_marketParams,
|
||||
_assets,
|
||||
|
@ -221,13 +212,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
// Approving collateral token
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.collateralToken = address(_tokenContract);
|
||||
_marketParams.loanToken = _marketParams.loanToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.loanToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.collateralToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
MORPHO_BLUE.supplyCollateral(
|
||||
_marketParams,
|
||||
|
@ -261,10 +250,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _amt;
|
||||
// Final assets amount and token contract
|
||||
(
|
||||
TokenInterface _tokenContract, // Collateral token contract
|
||||
uint256 _amt
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt
|
||||
) = _performEthToWethConversion(
|
||||
_marketParams,
|
||||
_assets,
|
||||
|
@ -274,13 +264,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
// Approving collateral token
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.collateralToken = address(_tokenContract);
|
||||
_marketParams.loanToken = _marketParams.loanToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.loanToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.collateralToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
MORPHO_BLUE.supplyCollateral(
|
||||
_marketParams,
|
||||
|
@ -302,7 +290,7 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
}
|
||||
|
||||
/**
|
||||
* @notice Handles the withdrawal of collateral by a user from a specific market of a specific amount.
|
||||
* @notice Handles the collateral withdrawals.
|
||||
* @dev The market to withdraw assets from. (For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
|
||||
* @param _marketParams The market to withdraw assets from.
|
||||
* @param _assets The amount of assets to withdraw. (For max: `uint256(-1)`)
|
||||
|
@ -321,14 +309,7 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
{
|
||||
uint256 _amt = getUint(_getId, _assets);
|
||||
|
||||
// Updating token addresses
|
||||
bool _collateralIsEth = _marketParams.collateralToken == ethAddr;
|
||||
_marketParams.collateralToken = _collateralIsEth
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
_marketParams.loanToken = _marketParams.loanToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.loanToken;
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
// If amount is max, fetch collateral value from Morpho's contract
|
||||
if (_amt == type(uint256).max) {
|
||||
|
@ -344,7 +325,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
address(this)
|
||||
);
|
||||
|
||||
convertWethToEth(_collateralIsEth, TokenInterface(wethAddr), _amt);
|
||||
convertWethToEth(
|
||||
_marketParams.collateralToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_amt
|
||||
);
|
||||
|
||||
setUint(_setId, _amt);
|
||||
|
||||
|
@ -375,15 +360,9 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
{
|
||||
uint256 _amt = getUint(_getId, _assets);
|
||||
|
||||
// Updating token addresses
|
||||
bool _collateralIsEth = _marketParams.collateralToken == ethAddr;
|
||||
_marketParams.collateralToken = _collateralIsEth
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
_marketParams.loanToken = _marketParams.loanToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.loanToken;
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
// If amount is max, fetch collateral value from Morpho's contract
|
||||
if (_amt == type(uint256).max) {
|
||||
bytes32 _id = id(_marketParams);
|
||||
Position memory _pos = MORPHO_BLUE.position(_id, _onBehalf);
|
||||
|
@ -398,7 +377,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
if (_receiver == address(this))
|
||||
convertWethToEth(_collateralIsEth, TokenInterface(wethAddr), _amt);
|
||||
convertWethToEth(
|
||||
_marketParams.collateralToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_amt
|
||||
);
|
||||
|
||||
setUint(_setId, _amt);
|
||||
|
||||
|
@ -432,16 +415,14 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _amt = getUint(_getId, _assets);
|
||||
bool _isEth = _marketParams.loanToken == ethAddr;
|
||||
_marketParams.loanToken = _isEth ? wethAddr : _marketParams.loanToken;
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
if (_amt == type(uint256).max) {
|
||||
bytes32 _id = id(_marketParams);
|
||||
Position memory _pos = MORPHO_BLUE.position(_id, address(this));
|
||||
uint256 _shares = _pos.supplyShares;
|
||||
|
||||
_amt = _toAssetsUp(
|
||||
_shares,
|
||||
MORPHO_BLUE.market(_id).totalSupplyAssets,
|
||||
|
@ -458,7 +439,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
address(this)
|
||||
);
|
||||
|
||||
convertWethToEth(_isEth, TokenInterface(wethAddr), _assets);
|
||||
convertWethToEth(
|
||||
_marketParams.loanToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_assets
|
||||
);
|
||||
|
||||
setUint(_setId, _assets);
|
||||
|
||||
|
@ -494,16 +479,14 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _amt = getUint(_getId, _assets);
|
||||
bool _isEth = _marketParams.loanToken == ethAddr;
|
||||
_marketParams.loanToken = _isEth ? wethAddr : _marketParams.loanToken;
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
if (_amt == type(uint256).max) {
|
||||
bytes32 _id = id(_marketParams);
|
||||
Position memory _pos = MORPHO_BLUE.position(_id, _onBehalf);
|
||||
uint256 _shares = _pos.supplyShares;
|
||||
|
||||
_amt = _toAssetsUp(
|
||||
_shares,
|
||||
MORPHO_BLUE.market(_id).totalSupplyAssets,
|
||||
|
@ -521,7 +504,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
if (_receiver == address(this))
|
||||
convertWethToEth(_isEth, TokenInterface(wethAddr), _assets);
|
||||
convertWethToEth(
|
||||
_marketParams.loanToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_assets
|
||||
);
|
||||
|
||||
setUint(_setId, _assets);
|
||||
|
||||
|
@ -558,11 +545,8 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _shareAmt = getUint(_getId, _shares);
|
||||
bool _isEth = _marketParams.loanToken == ethAddr;
|
||||
_marketParams.loanToken = _isEth ? wethAddr : _marketParams.loanToken;
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
if (_shareAmt == type(uint256).max) {
|
||||
bytes32 _id = id(_marketParams);
|
||||
|
@ -579,7 +563,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
if (_receiver == address(this))
|
||||
convertWethToEth(_isEth, TokenInterface(wethAddr), _assets);
|
||||
convertWethToEth(
|
||||
_marketParams.loanToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_assets
|
||||
);
|
||||
|
||||
setUint(_setId, _assets);
|
||||
|
||||
|
@ -613,12 +601,8 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _amt = getUint(_getId, _assets);
|
||||
bool _isETH = _marketParams.loanToken == ethAddr;
|
||||
|
||||
_marketParams.loanToken = _isETH ? wethAddr : _marketParams.loanToken;
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
(, uint256 _shares) = MORPHO_BLUE.borrow(
|
||||
_marketParams,
|
||||
|
@ -628,7 +612,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
address(this)
|
||||
);
|
||||
|
||||
convertWethToEth(_isETH, TokenInterface(wethAddr), _amt);
|
||||
convertWethToEth(
|
||||
_marketParams.loanToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_amt
|
||||
);
|
||||
|
||||
setUint(_setId, _amt);
|
||||
|
||||
|
@ -659,12 +647,8 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _amt = getUint(_getId, _assets);
|
||||
bool _isETH = _marketParams.loanToken == ethAddr;
|
||||
|
||||
_marketParams.loanToken = _isETH ? wethAddr : _marketParams.loanToken;
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
(, uint256 _shares) = MORPHO_BLUE.borrow(
|
||||
_marketParams,
|
||||
|
@ -675,7 +659,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
if (_receiver == address(this))
|
||||
convertWethToEth(_isETH, TokenInterface(wethAddr), _amt);
|
||||
convertWethToEth(
|
||||
_marketParams.loanToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_amt
|
||||
);
|
||||
|
||||
setUint(_setId, _amt);
|
||||
|
||||
|
@ -714,12 +702,8 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
uint256 _shareAmt = getUint(_getId, _shares);
|
||||
bool _isETH = _marketParams.loanToken == ethAddr;
|
||||
|
||||
_marketParams.loanToken = _isETH ? wethAddr : _marketParams.loanToken;
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
_marketParams = updateTokenAddresses(_marketParams);
|
||||
|
||||
(uint256 _assets, ) = MORPHO_BLUE.borrow(
|
||||
_marketParams,
|
||||
|
@ -730,7 +714,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
if (_receiver == address(this))
|
||||
convertWethToEth(_isETH, TokenInterface(wethAddr), _assets);
|
||||
convertWethToEth(
|
||||
_marketParams.loanToken == ethAddr,
|
||||
TokenInterface(wethAddr),
|
||||
_assets
|
||||
);
|
||||
|
||||
setUint(_setId, _assets);
|
||||
|
||||
|
@ -747,7 +735,7 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
}
|
||||
|
||||
/**
|
||||
* @notice Repays assets.
|
||||
* @notice Repay assets.
|
||||
* @dev The market to repay assets to. (For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
|
||||
* @param _marketParams The market to repay assets to.
|
||||
* @param _assets The amount of assets to repay. (For max: `uint256(-1)`)
|
||||
|
@ -764,10 +752,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final assets amount and token contract
|
||||
uint256 _amt;
|
||||
(
|
||||
TokenInterface _tokenContract,
|
||||
uint256 _amt // Assets final amount to repay
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt // Assets final amount to repay
|
||||
) = _performEthToWethConversion(
|
||||
_marketParams,
|
||||
_assets,
|
||||
|
@ -777,13 +765,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
// Approving loan token for repaying
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.loanToken = address(_tokenContract);
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
uint256 _shares;
|
||||
(_assets, _shares) = MORPHO_BLUE.repay(
|
||||
|
@ -826,10 +812,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final assets amount and token contract
|
||||
uint256 _amt;
|
||||
(
|
||||
TokenInterface _tokenContract,
|
||||
uint256 _amt // Assets final amount to repay
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_amt // Assets final amount to repay
|
||||
) = _performEthToWethConversion(
|
||||
_marketParams,
|
||||
_assets,
|
||||
|
@ -839,13 +825,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
);
|
||||
|
||||
// Approving loan token for repaying
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _amt);
|
||||
|
||||
// Updating token addresses
|
||||
_marketParams.loanToken = address(_tokenContract);
|
||||
_marketParams.collateralToken = _marketParams.collateralToken == ethAddr
|
||||
? wethAddr
|
||||
: _marketParams.collateralToken;
|
||||
approve(
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
address(MORPHO_BLUE),
|
||||
_amt
|
||||
);
|
||||
|
||||
uint256 _shares;
|
||||
(_assets, _shares) = MORPHO_BLUE.repay(
|
||||
|
@ -889,10 +873,10 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
payable
|
||||
returns (string memory _eventName, bytes memory _eventParam)
|
||||
{
|
||||
// Final assets amount and token contract
|
||||
uint256 _assetsAmt;
|
||||
(
|
||||
TokenInterface _tokenContract,
|
||||
uint256 _assetsAmt // Assets final amount to repay
|
||||
_marketParams, // Updated token contracts in case of Eth
|
||||
_assetsAmt // Assets final amount to repay
|
||||
) = _performEthToWethSharesConversion(
|
||||
_marketParams,
|
||||
_shares,
|
||||
|
@ -901,7 +885,11 @@ abstract contract MorphoBlue is Helpers, Events {
|
|||
true
|
||||
);
|
||||
|
||||
approve(_tokenContract, address(MORPHO_BLUE), _assetsAmt);
|
||||
approve(
|
||||
TokenInterface(_marketParams.loanToken),
|
||||
address(MORPHO_BLUE),
|
||||
_assetsAmt
|
||||
);
|
||||
|
||||
(uint256 _assets, ) = MORPHO_BLUE.repay(
|
||||
_marketParams,
|
||||
|
|
Loading…
Reference in New Issue
Block a user