interface ILendingLogic {
    /**
        @notice Get the calls needed to lend.
        @param _underlying Address of the underlying token
        @param _amount Amount of the underlying token
        @return targets Addresses of the contracts to call
        @return data Calldata of the calls
    */
    function lend(address _underlying, uint256 _amount) external view returns(address[] memory targets, bytes[] memory data);
    
    /**
        @notice Get the calls needed to unlend
        @param _wrapped Address of the wrapped token
        @param _amount Amount of the underlying tokens
        @return targets Addresses of the contracts to call
        @return data Calldata of the calls
    */
    function unlend(address _wrapped, uint256 _amount) external view returns(address[] memory targets, bytes[] memory data);
}
function unlend(address _wrapped, uint256 _amount) external view returns(address[] memory targets, bytes[] memory data);

/**
 @notice Get the calls needed to unlend
 @param _wrapped Address of the wrapped token
 @param _amount Amount of the underlying tokens
 @return targets Addresses of the contracts to call
 @return data Calldata of the calls
 */