ETH Price: $2,462.47 (+2.65%)

Contract

0x38972f4bc20dbf2Eb2A4cb0593414E7f1BC73c2D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Loop157278252022-10-11 22:23:23709 days ago1665527003IN
0x38972f4b...f1BC73c2D
0 ETH0.1295686225.48622996
Loop157099262022-10-09 10:24:47711 days ago1665311087IN
0x38972f4b...f1BC73c2D
0 ETH0.2133352722.24389425
Loop157046372022-10-08 16:42:23712 days ago1665247343IN
0x38972f4b...f1BC73c2D
0 ETH0.103733310.74443691
Loop157024532022-10-08 9:23:59712 days ago1665221039IN
0x38972f4b...f1BC73c2D
0 ETH0.010087455.92491852
Loop157010562022-10-08 4:43:23712 days ago1665204203IN
0x38972f4b...f1BC73c2D
0 ETH0.014044626.93961163
Loop157005032022-10-08 2:52:11712 days ago1665197531IN
0x38972f4b...f1BC73c2D
0 ETH0.060694436.43634618
Loop157004572022-10-08 2:42:59712 days ago1665196979IN
0x38972f4b...f1BC73c2D
0 ETH0.074195797.86976774
Loop157004362022-10-08 2:38:47712 days ago1665196727IN
0x38972f4b...f1BC73c2D
0 ETH0.114701837.94679511
Loop156956622022-10-07 10:34:35713 days ago1665138875IN
0x38972f4b...f1BC73c2D
0 ETH0.008612116.54374243
Loop156949662022-10-07 8:14:59713 days ago1665130499IN
0x38972f4b...f1BC73c2D
0 ETH0.008802266.61472172
Loop156933552022-10-07 2:51:59713 days ago1665111119IN
0x38972f4b...f1BC73c2D
0 ETH0.031737425.80921695
Loop156907662022-10-06 18:11:47714 days ago1665079907IN
0x38972f4b...f1BC73c2D
0 ETH0.0131510516.1436288
Loop156813762022-10-05 10:42:11715 days ago1664966531IN
0x38972f4b...f1BC73c2D
0 ETH0.0462644611.32160471
Loop156811782022-10-05 10:01:59715 days ago1664964119IN
0x38972f4b...f1BC73c2D
0 ETH0.021059095.46600406
Loop156809542022-10-05 9:16:47715 days ago1664961407IN
0x38972f4b...f1BC73c2D
0 ETH0.010360154.79862054
Loop156808372022-10-05 8:53:23715 days ago1664960003IN
0x38972f4b...f1BC73c2D
0 ETH0.012194725.26988443
Loop156735882022-10-04 8:29:23716 days ago1664872163IN
0x38972f4b...f1BC73c2D
0 ETH0.018040339.43272282
Loop156691932022-10-03 17:43:35717 days ago1664819015IN
0x38972f4b...f1BC73c2D
0 ETH0.0466012538.27102677
Loop156677042022-10-03 12:43:59717 days ago1664801039IN
0x38972f4b...f1BC73c2D
0 ETH0.0326769810.14716643
Loop156590122022-10-02 7:37:23718 days ago1664696243IN
0x38972f4b...f1BC73c2D
0 ETH0.018020544.66244585
Loop156582012022-10-02 4:54:47718 days ago1664686487IN
0x38972f4b...f1BC73c2D
0 ETH0.019227024.81028743
Loop156581512022-10-02 4:44:47718 days ago1664685887IN
0x38972f4b...f1BC73c2D
0 ETH0.019253484.70612864
Loop156563862022-10-01 22:50:35719 days ago1664664635IN
0x38972f4b...f1BC73c2D
0 ETH0.006321825.12482382
Loop156512982022-10-01 5:43:47719 days ago1664603027IN
0x38972f4b...f1BC73c2D
0 ETH0.010212176.8624222
Loop156447722022-09-30 7:50:35720 days ago1664524235IN
0x38972f4b...f1BC73c2D
0 ETH0.0182099610.92734656
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Leverager

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : Leverager.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {SafeMath} from "@openzeppelin/contracts/utils/math/SafeMath.sol";
import {ILendingPool} from "./interfaces/ILendingPool.sol";
import {DataTypes} from "./libraries/types/DataTypes.sol";
import {IERC20} from "./interfaces/IERC20.sol";

contract Leverager {
  using SafeMath for uint256;

  uint256 public constant BORROW_RATIO_DECIMALS = 4;
  ILendingPool public immutable lendingPool;

  constructor(address _lendingPool) {
    lendingPool = ILendingPool(_lendingPool);
  }

  /**
   * @dev Returns the configuration of the reserve
   * @param asset The address of the underlying asset of the reserve
   * @return The configuration of the reserve
   **/
  function getConfiguration(address asset) external view returns (DataTypes.ReserveConfigurationMap memory) {
    return lendingPool.getConfiguration(asset);
  }

  /**
   * @dev Returns variable debt token address of asset
   * @param asset The address of the underlying asset of the reserve
   * @return varaiableDebtToken address of the asset
   **/
  function getVDebtToken(address asset) public view returns (address) {
    DataTypes.ReserveData memory reserveData = lendingPool.getReserveData(asset);
    return reserveData.variableDebtTokenAddress;
  }

  /**
   * @dev Returns loan to value
   * @param asset The address of the underlying asset of the reserve
   * @return ltv of the asset
   **/
  function ltv(address asset) public view returns (uint256) {
    DataTypes.ReserveConfigurationMap memory conf = lendingPool.getConfiguration(asset);
    return conf.data % (2 ** 16);
  }

  /**
   * @dev Loop the deposit and borrow of an asset
   * @param asset for loop
   * @param amount for the initial deposit
   * @param interestRateMode stable or variable borrow mode
   * @param borrowRatio Ratio of tokens to borrow
   * @param loopCount Repeat count for loop
   **/
  function loop(
    address asset,
    uint256 amount,
    uint256 interestRateMode,
    uint256 borrowRatio,
    uint256 loopCount
  ) external {
    uint16 referralCode = 0;
    IERC20(asset).transferFrom(msg.sender, address(this), amount);
    IERC20(asset).approve(address(lendingPool), type(uint256).max);
    lendingPool.deposit(asset, amount, msg.sender, referralCode);
    for (uint256 i = 0; i < loopCount; i += 1) {
      amount = amount.mul(borrowRatio).div(10 ** BORROW_RATIO_DECIMALS);
      lendingPool.borrow(asset, amount, interestRateMode, referralCode, msg.sender);
      lendingPool.deposit(asset, amount, msg.sender, referralCode);
    }
  }
}

File 2 of 5 : SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 3 of 5 : ILendingPool.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {DataTypes} from '../libraries/types/DataTypes.sol';

interface ILendingPool {
  function deposit(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external;
  function borrow(address asset, uint256 amount, uint256 interestRateMode, uint16 referralCode, address onBehalfOf) external;
  function getConfiguration(address asset) external view returns (DataTypes.ReserveConfigurationMap memory);
  function getReserveData(address asset) external view returns (DataTypes.ReserveData memory);
  function getReservesList() external view returns (address[] memory);
}

File 4 of 5 : DataTypes.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library DataTypes {
  // refer to the whitepaper, section 1.1 basic concepts for a formal description of these properties.
  struct ReserveData {
    //stores the reserve configuration
    ReserveConfigurationMap configuration;
    //the liquidity index. Expressed in ray
    uint128 liquidityIndex;
    //variable borrow index. Expressed in ray
    uint128 variableBorrowIndex;
    //the current supply rate. Expressed in ray
    uint128 currentLiquidityRate;
    //the current variable borrow rate. Expressed in ray
    uint128 currentVariableBorrowRate;
    //the current stable borrow rate. Expressed in ray
    uint128 currentStableBorrowRate;
    uint40 lastUpdateTimestamp;
    //tokens addresses
    address aTokenAddress;
    address stableDebtTokenAddress;
    address variableDebtTokenAddress;
    //address of the interest rate strategy
    address interestRateStrategyAddress;
    //the id of the reserve. Represents the position in the list of the active reserves
    uint8 id;
  }

  struct ReserveConfigurationMap {
    //bit 0-15: LTV
    //bit 16-31: Liq. threshold
    //bit 32-47: Liq. bonus
    //bit 48-55: Decimals
    //bit 56: Reserve is active
    //bit 57: reserve is frozen
    //bit 58: borrowing is enabled
    //bit 59: stable rate borrowing enabled
    //bit 60-63: reserved
    //bit 64-79: reserve factor
    uint256 data;
  }
}

File 5 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
  function balanceOf(address account) external view returns (uint256);
  function totalSupply() external view returns (uint256);
  function transferFrom(address sender, address recipient, uint256 amount) external returns(bool);
  function approve(address spender, uint256 amount) external returns(bool);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_lendingPool","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BORROW_RATIO_DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getConfiguration","outputs":[{"components":[{"internalType":"uint256","name":"data","type":"uint256"}],"internalType":"struct DataTypes.ReserveConfigurationMap","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getVDebtToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lendingPool","outputs":[{"internalType":"contract ILendingPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"interestRateMode","type":"uint256"},{"internalType":"uint256","name":"borrowRatio","type":"uint256"},{"internalType":"uint256","name":"loopCount","type":"uint256"}],"name":"loop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"ltv","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b50604051610b6a380380610b6a83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610aaf6100bb6000396000818160c501528181610142015281816101ed01528181610322015281816103e5015281816104ab0152818161053d01526105e40152610aaf6000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063667f3745146100675780637473eea6146100975780639c978eec146100b8578063a59a9973146100c0578063b5f29360146100e7578063c44b11f7146100fc575b600080fd5b61007a610075366004610694565b61011e565b6040516001600160a01b0390911681526020015b60405180910390f35b6100aa6100a5366004610694565b6101c9565b60405190815260200161008e565b6100aa600481565b61007a7f000000000000000000000000000000000000000000000000000000000000000081565b6100fa6100f53660046106b1565b610281565b005b61010f61010a366004610694565b6105b8565b6040519051815260200161008e565b6040516335ea6a7560e01b81526001600160a01b03828116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101806040518083038186803b15801561018557600080fd5b505afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd91906107d3565b61012001519392505050565b60405163c44b11f760e01b81526001600160a01b03828116600483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063c44b11f79060240160206040518083038186803b15801561022f57600080fd5b505afa158015610243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026791906108c0565b805190915061027a9062010000906108f2565b9392505050565b6040516323b872dd60e01b8152336004820152306024820152604481018590526000906001600160a01b038716906323b872dd90606401602060405180830381600087803b1580156102d257600080fd5b505af11580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a9190610906565b5060405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600019602483015287169063095ea7b390604401602060405180830381600087803b15801561037657600080fd5b505af115801561038a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ae9190610906565b5060405163e8eda9df60e01b81526001600160a01b0387811660048301526024820187905233604483015261ffff831660648301527f0000000000000000000000000000000000000000000000000000000000000000169063e8eda9df90608401600060405180830381600087803b15801561042957600080fd5b505af115801561043d573d6000803e3d6000fd5b5050505060005b828110156105af5761046b61045b6004600a610a22565b6104658887610664565b90610670565b60405163a415bcad60e01b81526001600160a01b038981166004830152602482018390526044820188905261ffff851660648301523360848301529197507f00000000000000000000000000000000000000000000000000000000000000009091169063a415bcad9060a401600060405180830381600087803b1580156104f157600080fd5b505af1158015610505573d6000803e3d6000fd5b505060405163e8eda9df60e01b81526001600160a01b038a81166004830152602482018a905233604483015261ffff861660648301527f000000000000000000000000000000000000000000000000000000000000000016925063e8eda9df9150608401600060405180830381600087803b15801561058357600080fd5b505af1158015610597573d6000803e3d6000fd5b505050506001816105a89190610a2e565b9050610444565b50505050505050565b6040805160208101825260008152905163c44b11f760e01b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c44b11f79060240160206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e91906108c0565b92915050565b600061027a8284610a46565b600061027a8284610a65565b6001600160a01b038116811461069157600080fd5b50565b6000602082840312156106a657600080fd5b813561027a8161067c565b600080600080600060a086880312156106c957600080fd5b85356106d48161067c565b97602087013597506040870135966060810135965060800135945092505050565b604051610180810167ffffffffffffffff8111828210171561072757634e487b7160e01b600052604160045260246000fd5b60405290565b60006020828403121561073f57600080fd5b6040516020810181811067ffffffffffffffff8211171561077057634e487b7160e01b600052604160045260246000fd5b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff8116811461079d57600080fd5b919050565b805164ffffffffff8116811461079d57600080fd5b805161079d8161067c565b805160ff8116811461079d57600080fd5b600061018082840312156107e657600080fd5b6107ee6106f5565b6107f8848461072d565b81526108066020840161077d565b60208201526108176040840161077d565b60408201526108286060840161077d565b60608201526108396080840161077d565b608082015261084a60a0840161077d565b60a082015261085b60c084016107a2565b60c082015261086c60e084016107b7565b60e082015261010061087f8185016107b7565b908201526101206108918482016107b7565b908201526101406108a38482016107b7565b908201526101606108b58482016107c2565b908201529392505050565b6000602082840312156108d257600080fd5b61027a838361072d565b634e487b7160e01b600052601260045260246000fd5b600082610901576109016108dc565b500690565b60006020828403121561091857600080fd5b8151801515811461027a57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561097957816000190482111561095f5761095f610928565b8085161561096c57918102915b93841c9390800290610943565b509250929050565b6000826109905750600161065e565b8161099d5750600061065e565b81600181146109b357600281146109bd576109d9565b600191505061065e565b60ff8411156109ce576109ce610928565b50506001821b61065e565b5060208310610133831016604e8410600b84101617156109fc575081810a61065e565b610a06838361093e565b8060001904821115610a1a57610a1a610928565b029392505050565b600061027a8383610981565b60008219821115610a4157610a41610928565b500190565b6000816000190483118215151615610a6057610a60610928565b500290565b600082610a7457610a746108dc565b50049056fea26469706673582212207908b1b026a9db4f26345dc0d4d7b19f487b3be355b528b70493df03068a6ef364736f6c634300080900330000000000000000000000002409af0251dcb89ee3dee572629291f9b087c668

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063667f3745146100675780637473eea6146100975780639c978eec146100b8578063a59a9973146100c0578063b5f29360146100e7578063c44b11f7146100fc575b600080fd5b61007a610075366004610694565b61011e565b6040516001600160a01b0390911681526020015b60405180910390f35b6100aa6100a5366004610694565b6101c9565b60405190815260200161008e565b6100aa600481565b61007a7f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c66881565b6100fa6100f53660046106b1565b610281565b005b61010f61010a366004610694565b6105b8565b6040519051815260200161008e565b6040516335ea6a7560e01b81526001600160a01b03828116600483015260009182917f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c66816906335ea6a75906024016101806040518083038186803b15801561018557600080fd5b505afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd91906107d3565b61012001519392505050565b60405163c44b11f760e01b81526001600160a01b03828116600483015260009182917f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c668169063c44b11f79060240160206040518083038186803b15801561022f57600080fd5b505afa158015610243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026791906108c0565b805190915061027a9062010000906108f2565b9392505050565b6040516323b872dd60e01b8152336004820152306024820152604481018590526000906001600160a01b038716906323b872dd90606401602060405180830381600087803b1580156102d257600080fd5b505af11580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a9190610906565b5060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c66881166004830152600019602483015287169063095ea7b390604401602060405180830381600087803b15801561037657600080fd5b505af115801561038a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ae9190610906565b5060405163e8eda9df60e01b81526001600160a01b0387811660048301526024820187905233604483015261ffff831660648301527f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c668169063e8eda9df90608401600060405180830381600087803b15801561042957600080fd5b505af115801561043d573d6000803e3d6000fd5b5050505060005b828110156105af5761046b61045b6004600a610a22565b6104658887610664565b90610670565b60405163a415bcad60e01b81526001600160a01b038981166004830152602482018390526044820188905261ffff851660648301523360848301529197507f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c6689091169063a415bcad9060a401600060405180830381600087803b1580156104f157600080fd5b505af1158015610505573d6000803e3d6000fd5b505060405163e8eda9df60e01b81526001600160a01b038a81166004830152602482018a905233604483015261ffff861660648301527f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c66816925063e8eda9df9150608401600060405180830381600087803b15801561058357600080fd5b505af1158015610597573d6000803e3d6000fd5b505050506001816105a89190610a2e565b9050610444565b50505050505050565b6040805160208101825260008152905163c44b11f760e01b81526001600160a01b0383811660048301527f0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c668169063c44b11f79060240160206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e91906108c0565b92915050565b600061027a8284610a46565b600061027a8284610a65565b6001600160a01b038116811461069157600080fd5b50565b6000602082840312156106a657600080fd5b813561027a8161067c565b600080600080600060a086880312156106c957600080fd5b85356106d48161067c565b97602087013597506040870135966060810135965060800135945092505050565b604051610180810167ffffffffffffffff8111828210171561072757634e487b7160e01b600052604160045260246000fd5b60405290565b60006020828403121561073f57600080fd5b6040516020810181811067ffffffffffffffff8211171561077057634e487b7160e01b600052604160045260246000fd5b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff8116811461079d57600080fd5b919050565b805164ffffffffff8116811461079d57600080fd5b805161079d8161067c565b805160ff8116811461079d57600080fd5b600061018082840312156107e657600080fd5b6107ee6106f5565b6107f8848461072d565b81526108066020840161077d565b60208201526108176040840161077d565b60408201526108286060840161077d565b60608201526108396080840161077d565b608082015261084a60a0840161077d565b60a082015261085b60c084016107a2565b60c082015261086c60e084016107b7565b60e082015261010061087f8185016107b7565b908201526101206108918482016107b7565b908201526101406108a38482016107b7565b908201526101606108b58482016107c2565b908201529392505050565b6000602082840312156108d257600080fd5b61027a838361072d565b634e487b7160e01b600052601260045260246000fd5b600082610901576109016108dc565b500690565b60006020828403121561091857600080fd5b8151801515811461027a57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561097957816000190482111561095f5761095f610928565b8085161561096c57918102915b93841c9390800290610943565b509250929050565b6000826109905750600161065e565b8161099d5750600061065e565b81600181146109b357600281146109bd576109d9565b600191505061065e565b60ff8411156109ce576109ce610928565b50506001821b61065e565b5060208310610133831016604e8410600b84101617156109fc575081810a61065e565b610a06838361093e565b8060001904821115610a1a57610a1a610928565b029392505050565b600061027a8383610981565b60008219821115610a4157610a41610928565b500190565b6000816000190483118215151615610a6057610a60610928565b500290565b600082610a7457610a746108dc565b50049056fea26469706673582212207908b1b026a9db4f26345dc0d4d7b19f487b3be355b528b70493df03068a6ef364736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c668

-----Decoded View---------------
Arg [0] : _lendingPool (address): 0x2409aF0251DCB89EE3Dee572629291f9B087c668

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002409af0251dcb89ee3dee572629291f9b087c668


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.