LCOV - code coverage report
Current view: top level - extensions/paraswap-adapters - AaveParaSwapFeeClaimer.sol (source / functions) Coverage Total Hit
Test: lcov.info.p Lines: 50.0 % 8 4
Test Date: 2024-09-24 09:34:24 Functions: 80.0 % 5 4
Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : // SPDX-License-Identifier: MIT
       2                 :             : 
       3                 :             : pragma solidity ^0.8.0;
       4                 :             : 
       5                 :             : import {IFeeClaimer} from './interfaces/IFeeClaimer.sol';
       6                 :             : import {IERC20} from '../../dependencies/openzeppelin/contracts/IERC20.sol';
       7                 :             : 
       8                 :             : /**
       9                 :             :  * @title AaveParaSwapFeeClaimer
      10                 :             :  * @author BGD Labs
      11                 :             :  * @dev Helper contract that allows claiming paraswap partner fee to the collector on the respective network.
      12                 :             :  */
      13                 :             : contract AaveParaSwapFeeClaimer {
      14                 :             :   // lowercase for backwards compatibility as originally this was in storage
      15                 :             :   address public immutable aaveCollector;
      16                 :             :   IFeeClaimer public immutable paraswapFeeClaimer;
      17                 :             : 
      18                 :             :   constructor(address _aaveCollector, IFeeClaimer _paraswapFeeClaimer) {
      19                 :           0 :     require(address(_paraswapFeeClaimer) != address(0), 'PARASWAP_FEE_CLAIMER_REQUIRED');
      20                 :           0 :     require(_aaveCollector != address(0), 'COLLECTOR_REQUIRED');
      21                 :           0 :     aaveCollector = _aaveCollector;
      22                 :           0 :     paraswapFeeClaimer = _paraswapFeeClaimer;
      23                 :             :   }
      24                 :             : 
      25                 :             :   /**
      26                 :             :    * @dev returns claimable balance for a specified asset
      27                 :             :    * @param asset The asset to fetch claimable balance of
      28                 :             :    */
      29                 :             :   function getClaimable(address asset) external view returns (uint256) {
      30                 :           5 :     return paraswapFeeClaimer.getBalance(IERC20(asset), address(this));
      31                 :             :   }
      32                 :             : 
      33                 :             :   /**
      34                 :             :    * @dev returns claimable balances for specified assets
      35                 :             :    * @param assets The assets to fetch claimable balances of
      36                 :             :    */
      37                 :             :   function batchGetClaimable(address[] memory assets) external view returns (uint256[] memory) {
      38                 :           1 :     return paraswapFeeClaimer.batchGetBalance(assets, address(this));
      39                 :             :   }
      40                 :             : 
      41                 :             :   /**
      42                 :             :    * @dev withdraws a single asset to the collector
      43                 :             :    * @notice will revert when there's nothing to claim
      44                 :             :    * @param asset The asset to claim rewards of
      45                 :             :    */
      46                 :             :   function claimToCollector(IERC20 asset) external {
      47                 :           1 :     paraswapFeeClaimer.withdrawAllERC20(asset, aaveCollector);
      48                 :             :   }
      49                 :             : 
      50                 :             :   /**
      51                 :             :    * @dev withdraws all asset to the collector
      52                 :             :    * @notice will revert when there's nothing to claim on a single supplied asset
      53                 :             :    * @param assets The assets to claim rewards of
      54                 :             :    */
      55                 :             :   function batchClaimToCollector(address[] memory assets) external {
      56                 :           1 :     paraswapFeeClaimer.batchWithdrawAllERC20(assets, aaveCollector);
      57                 :             :   }
      58                 :             : }
        

Generated by: LCOV version 2.1-1