Contract 0x9eda65278543E2497701Fd5964D86b880d2DCB98

 
Ad
Ad
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe65da621c318da1b76e3c2fa175364ff234c103b96d2f6eb213db880494d97520x60806040185160952021-08-29 9:25:5399 days 18 hrs ago0xab0c9bc6bcbaad9391c530f33f9294dec38ae189 IN  Contract Creation0 MATIC0.05949125
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LendingLogicAaveV2

Compiler Version
v0.7.1+commit.f4a555be

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-08-29
*/

// File: Interfaces/IAaveLendingPoolV2.sol



pragma solidity ^0.7.1;
pragma experimental ABIEncoderV2;

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;
  }

  struct UserConfigurationMap {
    uint256 data;
  }

  enum InterestRateMode {NONE, STABLE, VARIABLE}
}

interface IAaveLendingPoolV2 {
    function deposit(
        address asset,
        uint256 amount,
        address onBehalfOf,
        uint16 referralCode
    ) external;

    function withdraw(
        address asset,
        uint256 amount,
        address to
    ) external;

    function getReserveData(address asset)
        external
        view
        returns (DataTypes.ReserveData memory);
}
// File: Interfaces/IATokenV2.sol


pragma solidity ^0.7.1;

interface IATokenV2 {

}
// File: Interfaces/ILendingLogic.sol


pragma solidity ^0.7.1;

interface ILendingLogic {
    /**
        @notice Get the APR based on underlying token.
        @param _token Address of the underlying token
        @return Interest with 18 decimals
    */
    function getAPRFromUnderlying(address _token) external view returns(uint256);

    /**
        @notice Get the APR based on wrapped token.
        @param _token Address of the wrapped token
        @return Interest with 18 decimals
    */
    function getAPRFromWrapped(address _token) external view returns(uint256);

    /**
        @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, address _tokenHolder) 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, address _tokenHolder) external view returns(address[] memory targets, bytes[] memory data);

    /**
        @notice Get the underlying wrapped exchange rate
        @param _wrapped Address of the wrapped token
        @return The exchange rate
    */
    function exchangeRate(address _wrapped) external returns(uint256);

    /**
        @notice Get the underlying wrapped exchange rate in a view (non state changing) way
        @param _wrapped Address of the wrapped token
        @return The exchange rate
    */
    function exchangeRateView(address _wrapped) external view returns(uint256);
}
// File: Interfaces/IERC20.sol



pragma solidity ^0.7.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: OpenZeppelin/SafeMath.sol



pragma solidity ^0.7.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
// File: LendingLogicAaveV2.sol



pragma solidity ^0.7.1;





contract ATokenV2 is IATokenV2 {
    address public UNDERLYING_ASSET_ADDRESS;
}

contract LendingLogicAaveV2 is ILendingLogic {
    using SafeMath for uint128;

    IAaveLendingPoolV2 public lendingPool;
    uint16 public referralCode;

    constructor(address _lendingPool, uint16 _referralCode) {
        require(_lendingPool != address(0), "LENDING_POOL_INVALID");
        lendingPool = IAaveLendingPoolV2(_lendingPool);
        referralCode = _referralCode;
    }

    function getAPRFromWrapped(address _token) external view override returns(uint256) {
        address underlying = ATokenV2(_token).UNDERLYING_ASSET_ADDRESS();
        return getAPRFromUnderlying(underlying);
    }

    function getAPRFromUnderlying(address _token) public view override returns(uint256) {
        DataTypes.ReserveData memory reserveData = lendingPool.getReserveData(_token);
        return reserveData.currentLiquidityRate.div(1000000000);
    }

    function lend(address _underlying,uint256 _amount, address _tokenHolder) external view override returns(address[] memory targets, bytes[] memory data) {
        IERC20 underlying = IERC20(_underlying);

        targets = new address[](3);
        data = new bytes[](3);

        // zero out approval to be sure
        targets[0] = _underlying;
        data[0] = abi.encodeWithSelector(underlying.approve.selector, address(lendingPool), 0);

        // Set approval
        targets[1] = _underlying;
        data[1] = abi.encodeWithSelector(underlying.approve.selector, address(lendingPool), _amount);

        // Deposit into Aave
        targets[2] = address(lendingPool);
        data[2] =  abi.encodeWithSelector(lendingPool.deposit.selector, _underlying, _amount, _tokenHolder, referralCode);

        return(targets, data);
    }

    function unlend(address _wrapped, uint256 _amount,address _tokenHolder) external view override returns(address[] memory targets, bytes[] memory data) {
        ATokenV2 wrapped = ATokenV2(_wrapped);

        targets = new address[](1);
        data = new bytes[](1);

        targets[0] = address(lendingPool);
        data[0] = abi.encodeWithSelector(
            lendingPool.withdraw.selector,
            wrapped.UNDERLYING_ASSET_ADDRESS(),
            _amount,
            _tokenHolder
        );

        return(targets, data);
    }

    function exchangeRate(address) external pure override returns(uint256) {
        return 10**18;
    }

    function exchangeRateView(address) external pure override returns(uint256) {
        return 10**18;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_lendingPool","type":"address"},{"internalType":"uint16","name":"_referralCode","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchangeRateView","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"getAPRFromUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"getAPRFromWrapped","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_tokenHolder","type":"address"}],"name":"lend","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lendingPool","outputs":[{"internalType":"contract IAaveLendingPoolV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralCode","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wrapped","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_tokenHolder","type":"address"}],"name":"unlend","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620016783803806200167883398181016040528101906200003791906200013d565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a190620001c0565b60405180910390fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060146101000a81548161ffff021916908361ffff160217905550505062000269565b600081519050620001208162000235565b92915050565b60008151905062000137816200024f565b92915050565b600080604083850312156200015157600080fd5b600062000161858286016200010f565b9250506020620001748582860162000126565b9150509250929050565b60006200018d601483620001e2565b91507f4c454e44494e475f504f4f4c5f494e56414c49440000000000000000000000006000830152602082019050919050565b60006020820190508181036000830152620001db816200017e565b9050919050565b600082825260208201905092915050565b6000620002008262000215565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200024081620001f3565b81146200024c57600080fd5b50565b6200025a8162000207565b81146200026657600080fd5b50565b6113ff80620002796000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637b1c44321161005b5780637b1c44321461014e578063a59a99731461017f578063d8b6d2521461019d578063dc3b7c8b146101bb57610088565b80630f13634e1461008d578063269d2947146100bd57806337bca10f146100ed57806342bde0b81461011d575b600080fd5b6100a760048036038101906100a29190610d58565b6101eb565b6040516100b49190611166565b60405180910390f35b6100d760048036038101906100d29190610d58565b61027f565b6040516100e49190611166565b60405180910390f35b61010760048036038101906101029190610d58565b610291565b6040516101149190611166565b60405180910390f35b61013760048036038101906101329190610daa565b61037c565b6040516101459291906110d7565b60405180910390f35b61016860048036038101906101639190610daa565b61059d565b6040516101769291906110d7565b60405180910390f35b610187610944565b604051610194919061110e565b60405180910390f35b6101a5610968565b6040516101b2919061114b565b60405180910390f35b6101d560048036038101906101d09190610d58565b61097c565b6040516101e29190611166565b60405180910390f35b6000808273ffffffffffffffffffffffffffffffffffffffff1663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561023457600080fd5b505afa158015610248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026c9190610d81565b905061027781610291565b915050919050565b6000670de0b6b3a76400009050919050565b600061029b610a39565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166335ea6a75846040518263ffffffff1660e01b81526004016102f49190610fee565b6101806040518083038186803b15801561030d57600080fd5b505afa158015610321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103459190610df9565b9050610374633b9aca0082606001516fffffffffffffffffffffffffffffffff1661098e90919063ffffffff16565b915050919050565b6060806000859050600167ffffffffffffffff8111801561039c57600080fd5b506040519080825280602002602001820160405280156103cb5781602001602082028036833780820191505090505b509250600167ffffffffffffffff811180156103e657600080fd5b5060405190808252806020026020018201604052801561041a57816020015b60608152602001906001900390816104055790505b50915060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360008151811061044b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506369328dec60e01b8173ffffffffffffffffffffffffffffffffffffffff1663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d357600080fd5b505afa1580156104e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050b9190610d81565b868660405160240161051f9392919061105b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508260008151811061058957fe5b602002602001018190525050935093915050565b6060806000859050600367ffffffffffffffff811180156105bd57600080fd5b506040519080825280602002602001820160405280156105ec5781602001602082028036833780820191505090505b509250600367ffffffffffffffff8111801561060757600080fd5b5060405190808252806020026020018201604052801561063b57816020015b60608152602001906001900390816106265790505b509150858360008151811061064c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505063095ea7b360e01b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006040516024016106c2929190611009565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508260008151811061072c57fe5b6020026020010181905250858360018151811061074557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505063095ea7b360e01b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040516024016107ba929190611032565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508260018151811061082457fe5b602002602001018190525060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360028151811061085d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505063e8eda9df60e01b868686600060149054906101000a900461ffff166040516024016108c69493929190611092565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508260028151811061093057fe5b602002602001018190525050935093915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900461ffff1681565b6000670de0b6b3a76400009050919050565b60006109d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109d8565b905092915050565b60008083118290610a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a169190611129565b60405180910390fd5b506000838581610a2b57fe5b049050809150509392505050565b604051806101800160405280610a4d610b5c565b815260200160006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff168152602001600064ffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff1681525090565b6040518060200160405280600081525090565b600081359050610b7e81611356565b92915050565b600081519050610b9381611356565b92915050565b600060208284031215610bab57600080fd5b610bb56020611181565b90506000610bc584828501610d19565b60008301525092915050565b60006101808284031215610be457600080fd5b610bef610180611181565b90506000610bff84828501610b99565b6000830152506020610c1384828501610cef565b6020830152506040610c2784828501610cef565b6040830152506060610c3b84828501610cef565b6060830152506080610c4f84828501610cef565b60808301525060a0610c6384828501610cef565b60a08301525060c0610c7784828501610d2e565b60c08301525060e0610c8b84828501610b84565b60e083015250610100610ca084828501610b84565b61010083015250610120610cb684828501610b84565b61012083015250610140610ccc84828501610b84565b61014083015250610160610ce284828501610d43565b6101608301525092915050565b600081519050610cfe8161136d565b92915050565b600081359050610d1381611384565b92915050565b600081519050610d2881611384565b92915050565b600081519050610d3d8161139b565b92915050565b600081519050610d52816113b2565b92915050565b600060208284031215610d6a57600080fd5b6000610d7884828501610b6f565b91505092915050565b600060208284031215610d9357600080fd5b6000610da184828501610b84565b91505092915050565b600080600060608486031215610dbf57600080fd5b6000610dcd86828701610b6f565b9350506020610dde86828701610d04565b9250506040610def86828701610b6f565b9150509250925092565b60006101808284031215610e0c57600080fd5b6000610e1a84828501610bd1565b91505092915050565b6000610e2f8383610e4f565b60208301905092915050565b6000610e478383610f40565b905092915050565b610e5881611258565b82525050565b610e6781611258565b82525050565b6000610e78826111ce565b610e828185611214565b9350610e8d836111ae565b8060005b83811015610ebe578151610ea58882610e23565b9750610eb0836111fa565b925050600181019050610e91565b5085935050505092915050565b6000610ed6826111d9565b610ee08185611225565b935083602082028501610ef2856111be565b8060005b85811015610f2e5784840389528151610f0f8582610e3b565b9450610f1a83611207565b925060208a01995050600181019050610ef6565b50829750879550505050505092915050565b6000610f4b826111e4565b610f558185611236565b9350610f65818560208601611312565b610f6e81611345565b840191505092915050565b610f82816112dc565b82525050565b610f9181611300565b82525050565b6000610fa2826111ef565b610fac8185611247565b9350610fbc818560208601611312565b610fc581611345565b840191505092915050565b610fd981611286565b82525050565b610fe8816112b4565b82525050565b60006020820190506110036000830184610e5e565b92915050565b600060408201905061101e6000830185610e5e565b61102b6020830184610f88565b9392505050565b60006040820190506110476000830185610e5e565b6110546020830184610fdf565b9392505050565b60006060820190506110706000830186610e5e565b61107d6020830185610fdf565b61108a6040830184610e5e565b949350505050565b60006080820190506110a76000830187610e5e565b6110b46020830186610fdf565b6110c16040830185610e5e565b6110ce6060830184610fd0565b95945050505050565b600060408201905081810360008301526110f18185610e6d565b905081810360208301526111058184610ecb565b90509392505050565b60006020820190506111236000830184610f79565b92915050565b600060208201905081810360008301526111438184610f97565b905092915050565b60006020820190506111606000830184610fd0565b92915050565b600060208201905061117b6000830184610fdf565b92915050565b6000604051905081810181811067ffffffffffffffff821117156111a457600080fd5b8060405250919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061126382611294565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b600060ff82169050919050565b60006112e7826112ee565b9050919050565b60006112f982611294565b9050919050565b600061130b826112cf565b9050919050565b60005b83811015611330578082015181840152602081019050611315565b8381111561133f576000848401525b50505050565b6000601f19601f8301169050919050565b61135f81611258565b811461136a57600080fd5b50565b6113768161126a565b811461138157600080fd5b50565b61138d816112b4565b811461139857600080fd5b50565b6113a4816112be565b81146113af57600080fd5b50565b6113bb816112cf565b81146113c657600080fd5b5056fea26469706673582212205eb7300785373a71e3f7ad6c670e0c87b1a8f978f7e235a9998b4c8816497fd564736f6c634300070100330000000000000000000000008dff5e27ea6b7ac08ebfdf9eb090f32ee9a30fcf0000000000000000000000000000000000000000000000000000000000000000

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

0000000000000000000000008dff5e27ea6b7ac08ebfdf9eb090f32ee9a30fcf0000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _lendingPool (address): 0x8dff5e27ea6b7ac08ebfdf9eb090f32ee9a30fcf
Arg [1] : _referralCode (uint16): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008dff5e27ea6b7ac08ebfdf9eb090f32ee9a30fcf
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

12429:2528:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12833:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14845:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13057:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14173:553;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13311:854;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12516:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12560:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14734:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12833:216;12907:7;12927:18;12957:6;12948:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12927:64;;13009:32;13030:10;13009:20;:32::i;:::-;13002:39;;;12833:216;;;:::o;14845:107::-;14911:7;14938:6;14931:13;;14845:107;;;:::o;13057:246::-;13132:7;13152:40;;:::i;:::-;13195:11;;;;;;;;;;:26;;;13222:6;13195:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13152:77;;13247:48;13284:10;13247:11;:32;;;:36;;;;:48;;;;:::i;:::-;13240:55;;;13057:246;;;:::o;14173:553::-;14276:24;14302:19;14334:16;14362:8;14334:37;;14408:1;14394:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14384:26;;14440:1;14428:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14421:21;;14476:11;;;;;;;;;;14455:7;14463:1;14455:10;;;;;;;;;;;;;:33;;;;;;;;;;;14546:29;;;14590:7;:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14639:7;14661:12;14509:175;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14499:4;14504:1;14499:7;;;;;;;;;;;;;:185;;;;14697:21;14173:553;;;;;;:::o;13311:854::-;13415:24;13441:19;13473:17;13500:11;13473:39;;13549:1;13535:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13525:26;;13581:1;13569:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13562:21;;13650:11;13637:7;13645:1;13637:10;;;;;;;;;;;;;:24;;;;;;;;;;;13705:27;;;13742:11;;;;;;;;;;13756:1;13682:76;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13672:4;13677:1;13672:7;;;;;;;;;;;;;:86;;;;13809:11;13796:7;13804:1;13796:10;;;;;;;;;;;;;:24;;;;;;;;;;;13864:27;;;13901:11;;;;;;;;;;13915:7;13841:82;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13831:4;13836:1;13831:7;;;;;;;;;;;;;:92;;;;13987:11;;;;;;;;;;13966:7;13974:1;13966:10;;;;;;;;;;;;;:33;;;;;;;;;;;14044:28;;;14074:11;14087:7;14096:12;14110;;;;;;;;;;;14021:102;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14010:4;14015:1;14010:7;;;;;;;;;;;;;:113;;;;14136:21;13311:854;;;;;;:::o;12516:37::-;;;;;;;;;;;;:::o;12560:26::-;;;;;;;;;;;;;:::o;14734:103::-;14796:7;14823:6;14816:13;;14734:103;;;:::o;10113:132::-;10171:7;10198:39;10202:1;10205;10198:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;10191:46;;10113:132;;;;:::o;10741:278::-;10827:7;10859:1;10855;:5;10862:12;10847:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10886:9;10902:1;10898;:5;;;;;;10886:17;;11010:1;11003:8;;;10741:278;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:134::-;;226:6;220:13;211:22;;238:33;265:5;238:33;:::i;:::-;205:71;;;;:::o;330:359::-;;469:4;457:9;452:3;448:19;444:30;441:2;;;487:1;484;477:12;441:2;505:20;520:4;505:20;:::i;:::-;496:29;;575:1;607:60;663:3;654:6;643:9;639:22;607:60;:::i;:::-;600:4;593:5;589:16;582:86;535:144;435:254;;;;:::o;731:2281::-;;858:6;846:9;841:3;837:19;833:32;830:2;;;878:1;875;868:12;830:2;896:22;911:6;896:22;:::i;:::-;887:31;;977:1;1009:99;1104:3;1095:6;1084:9;1080:22;1009:99;:::i;:::-;1002:4;995:5;991:16;984:125;928:192;1180:2;1213:60;1269:3;1260:6;1249:9;1245:22;1213:60;:::i;:::-;1206:4;1199:5;1195:16;1188:86;1130:155;1350:2;1383:60;1439:3;1430:6;1419:9;1415:22;1383:60;:::i;:::-;1376:4;1369:5;1365:16;1358:86;1295:160;1521:2;1554:60;1610:3;1601:6;1590:9;1586:22;1554:60;:::i;:::-;1547:4;1540:5;1536:16;1529:86;1465:161;1697:3;1731:60;1787:3;1778:6;1767:9;1763:22;1731:60;:::i;:::-;1724:4;1717:5;1713:16;1706:86;1636:167;1872:3;1906:60;1962:3;1953:6;1942:9;1938:22;1906:60;:::i;:::-;1899:4;1892:5;1888:16;1881:86;1813:165;2043:3;2077:59;2132:3;2123:6;2112:9;2108:22;2077:59;:::i;:::-;2070:4;2063:5;2059:16;2052:85;1988:160;2207:3;2241:60;2297:3;2288:6;2277:9;2273:22;2241:60;:::i;:::-;2234:4;2227:5;2223:16;2216:86;2158:155;2381:3;2417:60;2473:3;2464:6;2453:9;2449:22;2417:60;:::i;:::-;2408:6;2401:5;2397:18;2390:88;2323:166;2559:3;2595:60;2651:3;2642:6;2631:9;2627:22;2595:60;:::i;:::-;2586:6;2579:5;2575:18;2568:88;2499:168;2740:3;2776:60;2832:3;2823:6;2812:9;2808:22;2776:60;:::i;:::-;2767:6;2760:5;2756:18;2749:88;2677:171;2896:3;2932:58;2986:3;2977:6;2966:9;2962:22;2932:58;:::i;:::-;2923:6;2916:5;2912:18;2905:86;2858:144;824:2188;;;;:::o;3019:134::-;;3103:6;3097:13;3088:22;;3115:33;3142:5;3115:33;:::i;:::-;3082:71;;;;:::o;3160:130::-;;3240:6;3227:20;3218:29;;3252:33;3279:5;3252:33;:::i;:::-;3212:78;;;;:::o;3297:134::-;;3381:6;3375:13;3366:22;;3393:33;3420:5;3393:33;:::i;:::-;3360:71;;;;:::o;3438:132::-;;3521:6;3515:13;3506:22;;3533:32;3559:5;3533:32;:::i;:::-;3500:70;;;;:::o;3577:130::-;;3659:6;3653:13;3644:22;;3671:31;3696:5;3671:31;:::i;:::-;3638:69;;;;:::o;3714:241::-;;3818:2;3806:9;3797:7;3793:23;3789:32;3786:2;;;3834:1;3831;3824:12;3786:2;3869:1;3886:53;3931:7;3922:6;3911:9;3907:22;3886:53;:::i;:::-;3876:63;;3848:97;3780:175;;;;:::o;3962:263::-;;4077:2;4065:9;4056:7;4052:23;4048:32;4045:2;;;4093:1;4090;4083:12;4045:2;4128:1;4145:64;4201:7;4192:6;4181:9;4177:22;4145:64;:::i;:::-;4135:74;;4107:108;4039:186;;;;:::o;4232:491::-;;;;4370:2;4358:9;4349:7;4345:23;4341:32;4338:2;;;4386:1;4383;4376:12;4338:2;4421:1;4438:53;4483:7;4474:6;4463:9;4459:22;4438:53;:::i;:::-;4428:63;;4400:97;4528:2;4546:53;4591:7;4582:6;4571:9;4567:22;4546:53;:::i;:::-;4536:63;;4507:98;4636:2;4654:53;4699:7;4690:6;4679:9;4675:22;4654:53;:::i;:::-;4644:63;;4615:98;4332:391;;;;;:::o;4730:318::-;;4872:3;4860:9;4851:7;4847:23;4843:33;4840:2;;;4889:1;4886;4879:12;4840:2;4924:1;4941:91;5024:7;5015:6;5004:9;5000:22;4941:91;:::i;:::-;4931:101;;4903:135;4834:214;;;;:::o;5056:173::-;;5143:46;5185:3;5177:6;5143:46;:::i;:::-;5218:4;5213:3;5209:14;5195:28;;5136:93;;;;:::o;5238:189::-;;5357:64;5417:3;5409:6;5357:64;:::i;:::-;5343:78;;5336:91;;;;:::o;5435:103::-;5508:24;5526:5;5508:24;:::i;:::-;5503:3;5496:37;5490:48;;:::o;5545:113::-;5628:24;5646:5;5628:24;:::i;:::-;5623:3;5616:37;5610:48;;:::o;5696:690::-;;5841:54;5889:5;5841:54;:::i;:::-;5908:86;5987:6;5982:3;5908:86;:::i;:::-;5901:93;;6015:56;6065:5;6015:56;:::i;:::-;6091:7;6119:1;6104:260;6129:6;6126:1;6123:13;6104:260;;;6196:6;6190:13;6217:63;6276:3;6261:13;6217:63;:::i;:::-;6210:70;;6297:60;6350:6;6297:60;:::i;:::-;6287:70;;6161:203;6151:1;6148;6144:9;6139:14;;6104:260;;;6108:14;6377:3;6370:10;;5820:566;;;;;;;:::o;6421:920::-;;6584:63;6641:5;6584:63;:::i;:::-;6660:95;6748:6;6743:3;6660:95;:::i;:::-;6653:102;;6778:3;6820:4;6812:6;6808:17;6803:3;6799:27;6847:65;6906:5;6847:65;:::i;:::-;6932:7;6960:1;6945:357;6970:6;6967:1;6964:13;6945:357;;;7032:9;7026:4;7022:20;7017:3;7010:33;7077:6;7071:13;7099:82;7176:4;7161:13;7099:82;:::i;:::-;7091:90;;7198:69;7260:6;7198:69;:::i;:::-;7188:79;;7290:4;7285:3;7281:14;7274:21;;7002:300;6992:1;6989;6985:9;6980:14;;6945:357;;;6949:14;7315:4;7308:11;;7332:3;7325:10;;6563:778;;;;;;;;;:::o;7349:323::-;;7449:38;7481:5;7449:38;:::i;:::-;7499:60;7552:6;7547:3;7499:60;:::i;:::-;7492:67;;7564:52;7609:6;7604:3;7597:4;7590:5;7586:16;7564:52;:::i;:::-;7637:29;7659:6;7637:29;:::i;:::-;7632:3;7628:39;7621:46;;7429:243;;;;;:::o;7679:176::-;7787:62;7843:5;7787:62;:::i;:::-;7782:3;7775:75;7769:86;;:::o;7862:138::-;7951:43;7988:5;7951:43;:::i;:::-;7946:3;7939:56;7933:67;;:::o;8007:347::-;;8119:39;8152:5;8119:39;:::i;:::-;8170:71;8234:6;8229:3;8170:71;:::i;:::-;8163:78;;8246:52;8291:6;8286:3;8279:4;8272:5;8268:16;8246:52;:::i;:::-;8319:29;8341:6;8319:29;:::i;:::-;8314:3;8310:39;8303:46;;8099:255;;;;;:::o;8361:110::-;8442:23;8459:5;8442:23;:::i;:::-;8437:3;8430:36;8424:47;;:::o;8478:113::-;8561:24;8579:5;8561:24;:::i;:::-;8556:3;8549:37;8543:48;;:::o;8598:222::-;;8725:2;8714:9;8710:18;8702:26;;8739:71;8807:1;8796:9;8792:17;8783:6;8739:71;:::i;:::-;8696:124;;;;:::o;8827:345::-;;8988:2;8977:9;8973:18;8965:26;;9002:71;9070:1;9059:9;9055:17;9046:6;9002:71;:::i;:::-;9084:78;9158:2;9147:9;9143:18;9134:6;9084:78;:::i;:::-;8959:213;;;;;:::o;9179:333::-;;9334:2;9323:9;9319:18;9311:26;;9348:71;9416:1;9405:9;9401:17;9392:6;9348:71;:::i;:::-;9430:72;9498:2;9487:9;9483:18;9474:6;9430:72;:::i;:::-;9305:207;;;;;:::o;9519:444::-;;9702:2;9691:9;9687:18;9679:26;;9716:71;9784:1;9773:9;9769:17;9760:6;9716:71;:::i;:::-;9798:72;9866:2;9855:9;9851:18;9842:6;9798:72;:::i;:::-;9881;9949:2;9938:9;9934:18;9925:6;9881:72;:::i;:::-;9673:290;;;;;;:::o;9970:552::-;;10179:3;10168:9;10164:19;10156:27;;10194:71;10262:1;10251:9;10247:17;10238:6;10194:71;:::i;:::-;10276:72;10344:2;10333:9;10329:18;10320:6;10276:72;:::i;:::-;10359;10427:2;10416:9;10412:18;10403:6;10359:72;:::i;:::-;10442:70;10508:2;10497:9;10493:18;10484:6;10442:70;:::i;:::-;10150:372;;;;;;;:::o;10529:665::-;;10802:2;10791:9;10787:18;10779:26;;10852:9;10846:4;10842:20;10838:1;10827:9;10823:17;10816:47;10877:108;10980:4;10971:6;10877:108;:::i;:::-;10869:116;;11033:9;11027:4;11023:20;11018:2;11007:9;11003:18;10996:48;11058:126;11179:4;11170:6;11058:126;:::i;:::-;11050:134;;10773:421;;;;;:::o;11201:272::-;;11353:2;11342:9;11338:18;11330:26;;11367:96;11460:1;11449:9;11445:17;11436:6;11367:96;:::i;:::-;11324:149;;;;:::o;11480:310::-;;11627:2;11616:9;11612:18;11604:26;;11677:9;11671:4;11667:20;11663:1;11652:9;11648:17;11641:47;11702:78;11775:4;11766:6;11702:78;:::i;:::-;11694:86;;11598:192;;;;:::o;11797:218::-;;11922:2;11911:9;11907:18;11899:26;;11936:69;12002:1;11991:9;11987:17;11978:6;11936:69;:::i;:::-;11893:122;;;;:::o;12022:222::-;;12149:2;12138:9;12134:18;12126:26;;12163:71;12231:1;12220:9;12216:17;12207:6;12163:71;:::i;:::-;12120:124;;;;:::o;12251:256::-;;12313:2;12307:9;12297:19;;12351:4;12343:6;12339:17;12450:6;12438:10;12435:22;12414:18;12402:10;12399:34;12396:62;12393:2;;;12471:1;12468;12461:12;12393:2;12491:10;12487:2;12480:22;12291:216;;;;:::o;12514:151::-;;12600:3;12592:11;;12638:4;12633:3;12629:14;12621:22;;12586:79;;;:::o;12672:160::-;;12767:3;12759:11;;12805:4;12800:3;12796:14;12788:22;;12753:79;;;:::o;12839:137::-;;12948:5;12942:12;12932:22;;12913:63;;;:::o;12983:146::-;;13101:5;13095:12;13085:22;;13066:63;;;:::o;13136:121::-;;13229:5;13223:12;13213:22;;13194:63;;;:::o;13264:122::-;;13358:5;13352:12;13342:22;;13323:63;;;:::o;13393:108::-;;13491:4;13486:3;13482:14;13474:22;;13468:33;;;:::o;13508:117::-;;13615:4;13610:3;13606:14;13598:22;;13592:33;;;:::o;13633:178::-;;13763:6;13758:3;13751:19;13800:4;13795:3;13791:14;13776:29;;13744:67;;;;:::o;13820:187::-;;13959:6;13954:3;13947:19;13996:4;13991:3;13987:14;13972:29;;13940:67;;;;:::o;14016:152::-;;14120:6;14115:3;14108:19;14157:4;14152:3;14148:14;14133:29;;14101:67;;;;:::o;14177:163::-;;14292:6;14287:3;14280:19;14329:4;14324:3;14320:14;14305:29;;14273:67;;;;:::o;14348:91::-;;14410:24;14428:5;14410:24;:::i;:::-;14399:35;;14393:46;;;:::o;14446:113::-;;14519:34;14512:5;14508:46;14497:57;;14491:68;;;:::o;14566:84::-;;14638:6;14631:5;14627:18;14616:29;;14610:40;;;:::o;14657:121::-;;14730:42;14723:5;14719:54;14708:65;;14702:76;;;:::o;14785:72::-;;14847:5;14836:16;;14830:27;;;:::o;14864:90::-;;14936:12;14929:5;14925:24;14914:35;;14908:46;;;:::o;14961:81::-;;15032:4;15025:5;15021:16;15010:27;;15004:38;;;:::o;15049:171::-;;15153:62;15209:5;15153:62;:::i;:::-;15140:75;;15134:86;;;:::o;15227:133::-;;15331:24;15349:5;15331:24;:::i;:::-;15318:37;;15312:48;;;:::o;15367:112::-;;15452:22;15468:5;15452:22;:::i;:::-;15439:35;;15433:46;;;:::o;15487:268::-;15552:1;15559:101;15573:6;15570:1;15567:13;15559:101;;;15649:1;15644:3;15640:11;15634:18;15630:1;15625:3;15621:11;15614:39;15595:2;15592:1;15588:10;15583:15;;15559:101;;;15675:6;15672:1;15669:13;15666:2;;;15740:1;15731:6;15726:3;15722:16;15715:27;15666:2;15536:219;;;;:::o;15763:97::-;;15851:2;15847:7;15842:2;15835:5;15831:14;15827:28;15817:38;;15811:49;;;:::o;15868:117::-;15937:24;15955:5;15937:24;:::i;:::-;15930:5;15927:35;15917:2;;15976:1;15973;15966:12;15917:2;15911:74;:::o;15992:117::-;16061:24;16079:5;16061:24;:::i;:::-;16054:5;16051:35;16041:2;;16100:1;16097;16090:12;16041:2;16035:74;:::o;16116:117::-;16185:24;16203:5;16185:24;:::i;:::-;16178:5;16175:35;16165:2;;16224:1;16221;16214:12;16165:2;16159:74;:::o;16240:115::-;16308:23;16325:5;16308:23;:::i;:::-;16301:5;16298:34;16288:2;;16346:1;16343;16336:12;16288:2;16282:73;:::o;16362:113::-;16429:22;16445:5;16429:22;:::i;:::-;16422:5;16419:33;16409:2;;16466:1;16463;16456:12;16409:2;16403:72;:::o

Swarm Source

ipfs://5eb7300785373a71e3f7ad6c670e0c87b1a8f978f7e235a9998b4c8816497fd5
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.