LCOV - code coverage report
Current view: top level - protocol/pool - L2Pool.sol (source / functions) Coverage Total Hit
Test: lcov.info.p Lines: 100.0 % 20 20
Test Date: 2024-09-24 09:34:24 Functions: 100.0 % 9 9
Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : // SPDX-License-Identifier: BUSL-1.1
       2                 :             : pragma solidity ^0.8.10;
       3                 :             : 
       4                 :             : import {Pool} from './Pool.sol';
       5                 :             : import {IPoolAddressesProvider} from '../../interfaces/IPoolAddressesProvider.sol';
       6                 :             : import {IL2Pool} from '../../interfaces/IL2Pool.sol';
       7                 :             : import {CalldataLogic} from '../libraries/logic/CalldataLogic.sol';
       8                 :             : 
       9                 :             : /**
      10                 :             :  * @title L2Pool
      11                 :             :  * @author Aave
      12                 :             :  * @notice Calldata optimized extension of the Pool contract allowing users to pass compact calldata representation
      13                 :             :  * to reduce transaction costs on rollups.
      14                 :             :  */
      15                 :             : abstract contract L2Pool is Pool, IL2Pool {
      16                 :             :   /// @inheritdoc IL2Pool
      17                 :             :   function supply(bytes32 args) external override {
      18                 :           7 :     (address asset, uint256 amount, uint16 referralCode) = CalldataLogic.decodeSupplyParams(
      19                 :             :       _reservesList,
      20                 :             :       args
      21                 :             :     );
      22                 :             : 
      23                 :           7 :     supply(asset, amount, msg.sender, referralCode);
      24                 :             :   }
      25                 :             : 
      26                 :             :   /// @inheritdoc IL2Pool
      27                 :             :   function supplyWithPermit(bytes32 args, bytes32 r, bytes32 s) external override {
      28                 :        1000 :     (address asset, uint256 amount, uint16 referralCode, uint256 deadline, uint8 v) = CalldataLogic
      29                 :             :       .decodeSupplyWithPermitParams(_reservesList, args);
      30                 :             : 
      31                 :        1000 :     supplyWithPermit(asset, amount, msg.sender, referralCode, deadline, v, r, s);
      32                 :             :   }
      33                 :             : 
      34                 :             :   /// @inheritdoc IL2Pool
      35                 :             :   function withdraw(bytes32 args) external override returns (uint256) {
      36                 :           2 :     (address asset, uint256 amount) = CalldataLogic.decodeWithdrawParams(_reservesList, args);
      37                 :             : 
      38                 :           2 :     return withdraw(asset, amount, msg.sender);
      39                 :             :   }
      40                 :             : 
      41                 :             :   /// @inheritdoc IL2Pool
      42                 :             :   function borrow(bytes32 args) external override {
      43                 :           3 :     (address asset, uint256 amount, uint256 interestRateMode, uint16 referralCode) = CalldataLogic
      44                 :             :       .decodeBorrowParams(_reservesList, args);
      45                 :             : 
      46                 :           3 :     borrow(asset, amount, interestRateMode, referralCode, msg.sender);
      47                 :             :   }
      48                 :             : 
      49                 :             :   /// @inheritdoc IL2Pool
      50                 :             :   function repay(bytes32 args) external override returns (uint256) {
      51                 :           1 :     (address asset, uint256 amount, uint256 interestRateMode) = CalldataLogic.decodeRepayParams(
      52                 :             :       _reservesList,
      53                 :             :       args
      54                 :             :     );
      55                 :             : 
      56                 :           1 :     return repay(asset, amount, interestRateMode, msg.sender);
      57                 :             :   }
      58                 :             : 
      59                 :             :   /// @inheritdoc IL2Pool
      60                 :             :   function repayWithPermit(bytes32 args, bytes32 r, bytes32 s) external override returns (uint256) {
      61                 :        1000 :     (
      62                 :             :       address asset,
      63                 :             :       uint256 amount,
      64                 :             :       uint256 interestRateMode,
      65                 :             :       uint256 deadline,
      66                 :             :       uint8 v
      67                 :        1000 :     ) = CalldataLogic.decodeRepayWithPermitParams(_reservesList, args);
      68                 :             : 
      69                 :        1000 :     return repayWithPermit(asset, amount, interestRateMode, msg.sender, deadline, v, r, s);
      70                 :             :   }
      71                 :             : 
      72                 :             :   /// @inheritdoc IL2Pool
      73                 :             :   function repayWithATokens(bytes32 args) external override returns (uint256) {
      74                 :           1 :     (address asset, uint256 amount, uint256 interestRateMode) = CalldataLogic.decodeRepayParams(
      75                 :             :       _reservesList,
      76                 :             :       args
      77                 :             :     );
      78                 :             : 
      79                 :           1 :     return repayWithATokens(asset, amount, interestRateMode);
      80                 :             :   }
      81                 :             : 
      82                 :             :   /// @inheritdoc IL2Pool
      83                 :             :   function setUserUseReserveAsCollateral(bytes32 args) external override {
      84                 :           1 :     (address asset, bool useAsCollateral) = CalldataLogic.decodeSetUserUseReserveAsCollateralParams(
      85                 :             :       _reservesList,
      86                 :             :       args
      87                 :             :     );
      88                 :           1 :     setUserUseReserveAsCollateral(asset, useAsCollateral);
      89                 :             :   }
      90                 :             : 
      91                 :             :   /// @inheritdoc IL2Pool
      92                 :             :   function liquidationCall(bytes32 args1, bytes32 args2) external override {
      93                 :           1 :     (
      94                 :             :       address collateralAsset,
      95                 :             :       address debtAsset,
      96                 :             :       address user,
      97                 :             :       uint256 debtToCover,
      98                 :             :       bool receiveAToken
      99                 :           1 :     ) = CalldataLogic.decodeLiquidationCallParams(_reservesList, args1, args2);
     100                 :           1 :     liquidationCall(collateralAsset, debtAsset, user, debtToCover, receiveAToken);
     101                 :             :   }
     102                 :             : }
        

Generated by: LCOV version 2.1-1