ETH Price: $3,480.28 (+1.67%)
Gas: 14 Gwei

Contract

0x46708A7B62f04482dAEF7b914Bfafdd471FdAF19
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Get Reward181559422023-09-17 13:06:59288 days ago1694956019IN
Lybra Finance: esLBRMiner V2
0 ETH0.000891888.52966582
Get Reward180907052023-09-08 9:07:59297 days ago1694164079IN
Lybra Finance: esLBRMiner V2
0 ETH0.0008473212.04221366
Get Reward180850072023-09-07 14:00:59298 days ago1694095259IN
Lybra Finance: esLBRMiner V2
0 ETH0.0019777918.91490279
Get Reward180743002023-09-06 2:00:23299 days ago1693965623IN
Lybra Finance: esLBRMiner V2
0 ETH0.0025305313.65
Get Reward180742802023-09-06 1:56:23299 days ago1693965383IN
Lybra Finance: esLBRMiner V2
0 ETH0.0025108215.16274932
Get Reward180741652023-09-06 1:33:11299 days ago1693963991IN
Lybra Finance: esLBRMiner V2
0 ETH0.0039817521.71231384
Get Reward180740882023-09-06 1:17:47299 days ago1693963067IN
Lybra Finance: esLBRMiner V2
0 ETH0.0030435618
Get Reward180740792023-09-06 1:15:59299 days ago1693962959IN
Lybra Finance: esLBRMiner V2
0 ETH0.0032080619.3855756
Get Reward180724722023-09-05 19:51:35299 days ago1693943495IN
Lybra Finance: esLBRMiner V2
0 ETH0.002473114.45522071
Get Reward180722622023-09-05 19:08:59300 days ago1693940939IN
Lybra Finance: esLBRMiner V2
0 ETH0.0042080122.69853394
Get Reward180720782023-09-05 18:31:59300 days ago1693938719IN
Lybra Finance: esLBRMiner V2
0 ETH0.0041401122.27160847
Get Reward180720152023-09-05 18:19:23300 days ago1693937963IN
Lybra Finance: esLBRMiner V2
0 ETH0.0039490622.80164066
Get Reward180719082023-09-05 17:57:59300 days ago1693936679IN
Lybra Finance: esLBRMiner V2
0 ETH0.0052333631.22683636
Get Reward180718902023-09-05 17:54:23300 days ago1693936463IN
Lybra Finance: esLBRMiner V2
0 ETH0.0056634531
Get Reward180717882023-09-05 17:33:59300 days ago1693935239IN
Lybra Finance: esLBRMiner V2
0 ETH0.0048928526.39267345
Get Reward180717522023-09-05 17:26:35300 days ago1693934795IN
Lybra Finance: esLBRMiner V2
0 ETH0.0049105126.87865775
Get Reward180716932023-09-05 17:14:11300 days ago1693934051IN
Lybra Finance: esLBRMiner V2
0 ETH0.0046058525.50488405
Get Reward180716742023-09-05 17:09:59300 days ago1693933799IN
Lybra Finance: esLBRMiner V2
0 ETH0.0038380620.70301466
Get Reward180715422023-09-05 16:43:11300 days ago1693932191IN
Lybra Finance: esLBRMiner V2
0 ETH0.0035425720.4545914
Get Reward180713342023-09-05 16:01:11300 days ago1693929671IN
Lybra Finance: esLBRMiner V2
0 ETH0.0032474417
Get Reward180711872023-09-05 15:31:23300 days ago1693927883IN
Lybra Finance: esLBRMiner V2
0 ETH0.0072933437.76371349
Get Reward180710822023-09-05 15:09:59300 days ago1693926599IN
Lybra Finance: esLBRMiner V2
0 ETH0.002920116.52336652
Get Reward180710762023-09-05 15:08:47300 days ago1693926527IN
Lybra Finance: esLBRMiner V2
0 ETH0.0032009816.76428739
Get Reward180708362023-09-05 14:20:23300 days ago1693923623IN
Lybra Finance: esLBRMiner V2
0 ETH0.0033025417.1
Get Reward180706872023-09-05 13:50:35300 days ago1693921835IN
Lybra Finance: esLBRMiner V2
0 ETH0.0025740413.47483444
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:
esLBRMinerV2

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : esLBRMinterV2.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.8.17;
/**
 * @title esLBRMiner is a stripped down version of Synthetix StakingRewards.sol, to reward esLBR to EUSD minters.
 * Differences from the original contract,
 * - Get `totalStaked` from totalSupply() in contract EUSD.
 * - Get `stakedOf(user)` from getBorrowedOf(user) in contract EUSD.
 * - When an address borrowed EUSD amount changes, call the refreshReward method to update rewards to be claimed.
 */

import "./ILybra.sol";
import "./Ownable.sol";
import "./IesLBR.sol";

interface Ihelper {
    function getCollateralRate(address user) external view returns (uint256);
}

interface IlybraFund {
    function refreshReward(address user) external;
}

interface IesLBRBoost {
    function getUserBoost(
        address user,
        uint256 userUpdatedAt,
        uint256 finishAt
    ) external view returns (uint256);

    function getUnlockTime(address user)
        external
        view
        returns (uint256 unlockTime);
}

contract esLBRMinerV2 is Ownable {
    ILybra public immutable lybra;
    Ihelper public helper;
    IesLBRBoost public esLBRBoost;
    IlybraFund public lybraFund;
    address public esLBR;

    // Duration of rewards to be paid out (in seconds)
    uint256 public duration = 2_592_000;
    // Timestamp of when the rewards finish
    uint256 public finishAt;
    // Minimum of last updated time and reward finish time
    uint256 public updatedAt;
    // Reward to be paid out per second
    uint256 public rewardRate;
    // Sum of (reward rate * dt * 1e18 / total supply)
    uint256 public rewardPerTokenStored;
    // User address => rewardPerTokenStored
    mapping(address => uint256) public userRewardPerTokenPaid;
    // User address => rewards to be claimed
    mapping(address => uint256) public rewards;
    mapping(address => uint256) public userUpdatedAt;
    uint256 public extraRate = 50 * 1e18;
    // Currently, the official rebase time for Lido is between 12PM to 13PM UTC.
    uint256 public lockdownPeriod = 12 hours;

    constructor(
        address _lybra,
        address _helper,
        address _boost,
        address _fund
    ) {
        lybra = ILybra(_lybra);
        helper = Ihelper(_helper);
        esLBRBoost = IesLBRBoost(_boost);
        lybraFund = IlybraFund(_fund);
    }

    function setEsLBR(address _eslbr) external onlyOwner {
        esLBR = _eslbr;
    }

    function setExtraRate(uint256 rate) external onlyOwner {
        extraRate = rate;
    }

    function setLockdownPeriod(uint256 _time) external onlyOwner {
        lockdownPeriod = _time;
    }

    function setBoost(address _boost) external onlyOwner {
        esLBRBoost = IesLBRBoost(_boost);
    }

    function setLybraFund(address _fund) external onlyOwner {
        lybraFund = IlybraFund(_fund);
    }

    function setRewardsDuration(uint256 _duration) external onlyOwner {
        require(finishAt < block.timestamp, "reward duration not finished");
        duration = _duration;
    }

    function totalStaked() internal view returns (uint256) {
        return lybra.totalSupply();
    }

    function stakedOf(address user) public view returns (uint256) {
        return lybra.getBorrowedOf(user);
    }

    modifier updateReward(address _account) {
        rewardPerTokenStored = rewardPerToken();
        updatedAt = lastTimeRewardApplicable();

        if (_account != address(0)) {
            rewards[_account] = earned(_account);
            userRewardPerTokenPaid[_account] = rewardPerTokenStored;
            userUpdatedAt[_account] = block.timestamp;
        }

        _;
    }

    function lastTimeRewardApplicable() public view returns (uint256) {
        return _min(finishAt, block.timestamp);
    }

    function rewardPerToken() public view returns (uint256) {
        if (totalStaked() == 0) {
            return rewardPerTokenStored;
        }

        return
            rewardPerTokenStored +
            (rewardRate * (lastTimeRewardApplicable() - updatedAt) * 1e18) /
            totalStaked();
    }

    /**
     * @dev To limit the behavior of arbitrageurs who mint a large amount of eUSD after stETH rebase and before eUSD interest distribution to earn extra profit,
     * a 1-hour revert during stETH rebase is implemented to eliminate this issue.
     * If the user's collateral ratio is below safeCollateralRate, they are not subject to this restriction.
     */
    function pausedByLido(address _account) public view returns(bool) {
        uint256 collateralRate = helper.getCollateralRate(_account);
        return (block.timestamp - lockdownPeriod) % 1 days < 1 hours &&
            collateralRate >= lybra.safeCollateralRate();
    }

    /**
     * @notice Update user's claimable reward data and record the timestamp.
     */
    function refreshReward(address _account) external updateReward(_account) {
        if (
            pausedByLido(_account)
        ) {
            revert(
                "Minting and repaying functions of eUSD are temporarily disabled during stETH rebasing periods."
            );
        }
    }

    function getBoost(address _account) public view returns (uint256) {
        uint256 redemptionBoost;
        if (lybra.isRedemptionProvider(_account)) {
            redemptionBoost = extraRate;
        }
        return 100 * 1e18 + redemptionBoost + esLBRBoost.getUserBoost(
            _account,
            userUpdatedAt[_account],
            finishAt
        );
    }

    function earned(address _account) public view returns (uint256) {
        return
            ((stakedOf(_account) *
                getBoost(_account) *
                (rewardPerToken() - userRewardPerTokenPaid[_account])) / 1e38) +
            rewards[_account];
    }

    function getReward() external updateReward(msg.sender) {
        require(
            block.timestamp >= esLBRBoost.getUnlockTime(msg.sender),
            "Your lock-in period has not ended. You can't claim your esLBR now."
        );
        uint256 reward = rewards[msg.sender];
        if (reward > 0) {
            rewards[msg.sender] = 0;
            lybraFund.refreshReward(msg.sender);
            IesLBR(esLBR).mint(msg.sender, reward);
        }
    }

    function notifyRewardAmount(uint256 amount)
        external
        onlyOwner
        updateReward(address(0))
    {
        require(amount > 0, "amount = 0");
        if (block.timestamp >= finishAt) {
            rewardRate = amount / duration;
        } else {
            uint256 remainingRewards = (finishAt - block.timestamp) *
                rewardRate;
            rewardRate = (amount + remainingRewards) / duration;
        }

        require(rewardRate > 0, "reward rate = 0");

        finishAt = block.timestamp + duration;
        updatedAt = block.timestamp;
    }

    function _min(uint256 x, uint256 y) private pure returns (uint256) {
        return x <= y ? x : y;
    }
}

File 2 of 5 : IesLBR.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.17;

interface IesLBR {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function mint(address user, uint256 amount) external returns(bool);
    function burn(address user, uint256 amount) external returns(bool);
}

File 3 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 4 of 5 : ILybra.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.17;

interface ILybra {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function totalDepositedEther() external view returns (uint256);

    function safeCollateralRate() external view returns (uint256);

    function redemptionFee() external view returns (uint256);

    function keeperRate() external view returns (uint256);

    function depositedEther(address user) external view returns (uint256);

    function getBorrowedOf(address user) external view returns (uint256);

    function isRedemptionProvider(address user) external view returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    function transferShares(
        address _recipient,
        uint256 _sharesAmount
    ) external returns (uint256);

    function getSharesByMintedEUSD(
        uint256 _EUSDAmount
    ) external view returns (uint256);

    function getMintedEUSDByShares(
        uint256 _sharesAmount
    ) external view returns (uint256);
}

File 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_lybra","type":"address"},{"internalType":"address","name":"_helper","type":"address"},{"internalType":"address","name":"_boost","type":"address"},{"internalType":"address","name":"_fund","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"esLBR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"esLBRBoost","outputs":[{"internalType":"contract IesLBRBoost","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getBoost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"helper","outputs":[{"internalType":"contract Ihelper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockdownPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lybra","outputs":[{"internalType":"contract ILybra","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lybraFund","outputs":[{"internalType":"contract IlybraFund","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"pausedByLido","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"refreshReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_boost","type":"address"}],"name":"setBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_eslbr","type":"address"}],"name":"setEsLBR","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setExtraRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"setLockdownPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fund","type":"address"}],"name":"setLybraFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"setRewardsDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"stakedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updatedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userUpdatedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60a060405262278d006005556802b5e3af16b1880000600d5561a8c0600e553480156200002b57600080fd5b50604051620012db380380620012db8339810160408190526200004e916200010e565b6200005933620000a1565b6001600160a01b03938416608052600180549385166001600160a01b03199485161790556002805492851692841692909217909155600380549190931691161790556200016b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200010957600080fd5b919050565b600080600080608085870312156200012557600080fd5b6200013085620000f1565b93506200014060208601620000f1565b92506200015060408601620000f1565b91506200016060608601620000f1565b905092959194509250565b608051611138620001a3600039600081816104410152818161094e015281816109fd01528181610b710152610f7401526111386000f3fe608060405234801561001057600080fd5b50600436106101fa5760003560e01c8063898ac82e1161011a578063cd3daf9d116100ad578063eb9e646f1161007c578063eb9e646f146103f6578063ed23f60814610416578063f2fde38b14610429578063fccabef31461043c578063fce67e0d1461046357600080fd5b8063cd3daf9d146103bf578063cf8e12a3146103c7578063df136d65146103da578063e2d4aadd146103e357600080fd5b806399816183116100e95780639981618314610373578063af500ba314610386578063be980e4d14610399578063cc1a378f146103ac57600080fd5b8063898ac82e1461031c5780638b8763471461032f5780638da5cb5b1461034f578063973087531461036057600080fd5b80635c4e8d5c11610192578063715018a611610161578063715018a6146102fa5780637519ab50146103025780637b0a47ee1461030b57806380faa57d1461031457600080fd5b80635c4e8d5c146102a857806363b0e66a146102cb57806367ba3d90146102de57806367d3b488146102f157600080fd5b80632e997ab4116101ce5780632e997ab4146102575780633c6b16ab146102605780633ce6486e146102755780633d18b912146102a057600080fd5b80628cc262146101ff5780630700037d146102255780630fb5a6b4146102455780632a8c2e881461024e575b600080fd5b61021261020d366004610ff4565b610476565b6040519081526020015b60405180910390f35b610212610233366004610ff4565b600b6020526000908152604090205481565b61021260055481565b610212600e5481565b610212600d5481565b61027361026e36600461101d565b6104fe565b005b600354610288906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b610273610661565b6102bb6102b6366004610ff4565b6108b1565b604051901515815260200161021c565b600154610288906001600160a01b031681565b6102126102ec366004610ff4565b6109d9565b61021260065481565b610273610b1c565b61021260075481565b61021260085481565b610212610b30565b600254610288906001600160a01b031681565b61021261033d366004610ff4565b600a6020526000908152604090205481565b6000546001600160a01b0316610288565b600454610288906001600160a01b031681565b61027361038136600461101d565b610b43565b610212610394366004610ff4565b610b50565b6102736103a7366004610ff4565b610bde565b6102736103ba36600461101d565b610c08565b610212610c66565b6102736103d5366004610ff4565b610cd1565b61021260095481565b6102736103f1366004610ff4565b610cfb565b610212610404366004610ff4565b600c6020526000908152604090205481565b61027361042436600461101d565b610d25565b610273610437366004610ff4565b610d32565b6102887f000000000000000000000000000000000000000000000000000000000000000081565b610273610471366004610ff4565b610dab565b6001600160a01b0381166000908152600b6020908152604080832054600a9092528220546f4b3b4ca85a86c47a098a224000000000906104b4610c66565b6104be919061104c565b6104c7856109d9565b6104d086610b50565b6104da919061105f565b6104e4919061105f565b6104ee919061108c565b6104f891906110a0565b92915050565b610506610eaf565b6000610510610c66565b60095561051b610b30565b6007556001600160a01b038116156105695761053681610476565b6001600160a01b0382166000908152600b6020908152604080832093909355600954600a825283832055600c9052204290555b600082116105ab5760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b60448201526064015b60405180910390fd5b60065442106105c9576005546105c1908361108c565b600855610605565b6000600854426006546105dc919061104c565b6105e6919061105f565b6005549091506105f682856110a0565b610600919061108c565b600855505b6000600854116106495760405162461bcd60e51b815260206004820152600f60248201526e07265776172642072617465203d203608c1b60448201526064016105a2565b60055461065690426110a0565b600655505042600755565b3361066a610c66565b600955610675610b30565b6007556001600160a01b038116156106c35761069081610476565b6001600160a01b0382166000908152600b6020908152604080832093909355600954600a825283832055600c9052204290555b600254604051631b7da3d160e31b81523360048201526001600160a01b039091169063dbed1e8890602401602060405180830381865afa15801561070b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072f91906110b3565b4210156107af5760405162461bcd60e51b815260206004820152604260248201527f596f7572206c6f636b2d696e20706572696f6420686173206e6f7420656e646560448201527f642e20596f752063616e277420636c61696d20796f75722065734c4252206e6f6064820152613b9760f11b608482015260a4016105a2565b336000908152600b602052604090205480156108ad57336000818152600b602052604080822091909155600354905163fce67e0d60e01b815260048101929092526001600160a01b03169063fce67e0d90602401600060405180830381600087803b15801561081d57600080fd5b505af1158015610831573d6000803e3d6000fd5b5050600480546040516340c10f1960e01b81523392810192909252602482018590526001600160a01b031692506340c10f1991506044016020604051808303816000875af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906110cc565b505b5050565b6001546040516377e071ad60e01b81526001600160a01b03838116600483015260009283929116906377e071ad90602401602060405180830381865afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092391906110b3565b9050610e1062015180600e544261093a919061104c565b61094491906110ee565b1080156109d257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d4719406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce91906110b3565b8110155b9392505050565b604051631e24111360e21b81526001600160a01b03828116600483015260009182917f00000000000000000000000000000000000000000000000000000000000000001690637890444c90602401602060405180830381865afa158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6891906110cc565b15610a725750600d545b6002546001600160a01b038481166000818152600c60205260409081902054600654915163b237faf960e01b815260048101939093526024830152604482015291169063b237faf990606401602060405180830381865afa158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff91906110b3565b610b128268056bc75e2d631000006110a0565b6109d291906110a0565b610b24610eaf565b610b2e6000610f09565b565b6000610b3e60065442610f59565b905090565b610b4b610eaf565b600e55565b60405162b5b06160e31b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906305ad830890602401602060405180830381865afa158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f891906110b3565b610be6610eaf565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c10610eaf565b4260065410610c615760405162461bcd60e51b815260206004820152601c60248201527f726577617264206475726174696f6e206e6f742066696e69736865640000000060448201526064016105a2565b600555565b6000610c70610f70565b600003610c7e575060095490565b610c86610f70565b600754610c91610b30565b610c9b919061104c565b600854610ca8919061105f565b610cba90670de0b6b3a764000061105f565b610cc4919061108c565b600954610b3e91906110a0565b610cd9610eaf565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610d03610eaf565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610d2d610eaf565b600d55565b610d3a610eaf565b6001600160a01b038116610d9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a2565b610da881610f09565b50565b80610db4610c66565b600955610dbf610b30565b6007556001600160a01b03811615610e0d57610dda81610476565b6001600160a01b0382166000908152600b6020908152604080832093909355600954600a825283832055600c9052204290555b610e16826108b1565b156108ad5760405162461bcd60e51b815260206004820152605e60248201527f4d696e74696e6720616e64207265706179696e672066756e6374696f6e73206f60448201527f662065555344206172652074656d706f726172696c792064697361626c65642060648201527f647572696e67207374455448207265626173696e6720706572696f64732e0000608482015260a4016105a2565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831115610f6957816109d2565b5090919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e91906110b3565b60006020828403121561100657600080fd5b81356001600160a01b03811681146109d257600080fd5b60006020828403121561102f57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104f8576104f8611036565b80820281158282048414176104f8576104f8611036565b634e487b7160e01b600052601260045260246000fd5b60008261109b5761109b611076565b500490565b808201808211156104f8576104f8611036565b6000602082840312156110c557600080fd5b5051919050565b6000602082840312156110de57600080fd5b815180151581146109d257600080fd5b6000826110fd576110fd611076565b50069056fea2646970667358221220d0757084ea3676b6cf0f4b68baeb6f1a48267df832dbd633595dba092737c38964736f6c6343000811003300000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371000000000000000000000000857cc243b8494e13bdbade27c25ef61c2e500fda0000000000000000000000009a3019a8a84b1cf9b785a02a0813bfb7a63fcdf1000000000000000000000000850f078a8469b1c7cdfd6635aaf02fd370382eb7

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101fa5760003560e01c8063898ac82e1161011a578063cd3daf9d116100ad578063eb9e646f1161007c578063eb9e646f146103f6578063ed23f60814610416578063f2fde38b14610429578063fccabef31461043c578063fce67e0d1461046357600080fd5b8063cd3daf9d146103bf578063cf8e12a3146103c7578063df136d65146103da578063e2d4aadd146103e357600080fd5b806399816183116100e95780639981618314610373578063af500ba314610386578063be980e4d14610399578063cc1a378f146103ac57600080fd5b8063898ac82e1461031c5780638b8763471461032f5780638da5cb5b1461034f578063973087531461036057600080fd5b80635c4e8d5c11610192578063715018a611610161578063715018a6146102fa5780637519ab50146103025780637b0a47ee1461030b57806380faa57d1461031457600080fd5b80635c4e8d5c146102a857806363b0e66a146102cb57806367ba3d90146102de57806367d3b488146102f157600080fd5b80632e997ab4116101ce5780632e997ab4146102575780633c6b16ab146102605780633ce6486e146102755780633d18b912146102a057600080fd5b80628cc262146101ff5780630700037d146102255780630fb5a6b4146102455780632a8c2e881461024e575b600080fd5b61021261020d366004610ff4565b610476565b6040519081526020015b60405180910390f35b610212610233366004610ff4565b600b6020526000908152604090205481565b61021260055481565b610212600e5481565b610212600d5481565b61027361026e36600461101d565b6104fe565b005b600354610288906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b610273610661565b6102bb6102b6366004610ff4565b6108b1565b604051901515815260200161021c565b600154610288906001600160a01b031681565b6102126102ec366004610ff4565b6109d9565b61021260065481565b610273610b1c565b61021260075481565b61021260085481565b610212610b30565b600254610288906001600160a01b031681565b61021261033d366004610ff4565b600a6020526000908152604090205481565b6000546001600160a01b0316610288565b600454610288906001600160a01b031681565b61027361038136600461101d565b610b43565b610212610394366004610ff4565b610b50565b6102736103a7366004610ff4565b610bde565b6102736103ba36600461101d565b610c08565b610212610c66565b6102736103d5366004610ff4565b610cd1565b61021260095481565b6102736103f1366004610ff4565b610cfb565b610212610404366004610ff4565b600c6020526000908152604090205481565b61027361042436600461101d565b610d25565b610273610437366004610ff4565b610d32565b6102887f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada37181565b610273610471366004610ff4565b610dab565b6001600160a01b0381166000908152600b6020908152604080832054600a9092528220546f4b3b4ca85a86c47a098a224000000000906104b4610c66565b6104be919061104c565b6104c7856109d9565b6104d086610b50565b6104da919061105f565b6104e4919061105f565b6104ee919061108c565b6104f891906110a0565b92915050565b610506610eaf565b6000610510610c66565b60095561051b610b30565b6007556001600160a01b038116156105695761053681610476565b6001600160a01b0382166000908152600b6020908152604080832093909355600954600a825283832055600c9052204290555b600082116105ab5760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b60448201526064015b60405180910390fd5b60065442106105c9576005546105c1908361108c565b600855610605565b6000600854426006546105dc919061104c565b6105e6919061105f565b6005549091506105f682856110a0565b610600919061108c565b600855505b6000600854116106495760405162461bcd60e51b815260206004820152600f60248201526e07265776172642072617465203d203608c1b60448201526064016105a2565b60055461065690426110a0565b600655505042600755565b3361066a610c66565b600955610675610b30565b6007556001600160a01b038116156106c35761069081610476565b6001600160a01b0382166000908152600b6020908152604080832093909355600954600a825283832055600c9052204290555b600254604051631b7da3d160e31b81523360048201526001600160a01b039091169063dbed1e8890602401602060405180830381865afa15801561070b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072f91906110b3565b4210156107af5760405162461bcd60e51b815260206004820152604260248201527f596f7572206c6f636b2d696e20706572696f6420686173206e6f7420656e646560448201527f642e20596f752063616e277420636c61696d20796f75722065734c4252206e6f6064820152613b9760f11b608482015260a4016105a2565b336000908152600b602052604090205480156108ad57336000818152600b602052604080822091909155600354905163fce67e0d60e01b815260048101929092526001600160a01b03169063fce67e0d90602401600060405180830381600087803b15801561081d57600080fd5b505af1158015610831573d6000803e3d6000fd5b5050600480546040516340c10f1960e01b81523392810192909252602482018590526001600160a01b031692506340c10f1991506044016020604051808303816000875af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906110cc565b505b5050565b6001546040516377e071ad60e01b81526001600160a01b03838116600483015260009283929116906377e071ad90602401602060405180830381865afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092391906110b3565b9050610e1062015180600e544261093a919061104c565b61094491906110ee565b1080156109d257507f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada3716001600160a01b0316632d4719406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce91906110b3565b8110155b9392505050565b604051631e24111360e21b81526001600160a01b03828116600483015260009182917f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada3711690637890444c90602401602060405180830381865afa158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6891906110cc565b15610a725750600d545b6002546001600160a01b038481166000818152600c60205260409081902054600654915163b237faf960e01b815260048101939093526024830152604482015291169063b237faf990606401602060405180830381865afa158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff91906110b3565b610b128268056bc75e2d631000006110a0565b6109d291906110a0565b610b24610eaf565b610b2e6000610f09565b565b6000610b3e60065442610f59565b905090565b610b4b610eaf565b600e55565b60405162b5b06160e31b81526001600160a01b0382811660048301526000917f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371909116906305ad830890602401602060405180830381865afa158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f891906110b3565b610be6610eaf565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c10610eaf565b4260065410610c615760405162461bcd60e51b815260206004820152601c60248201527f726577617264206475726174696f6e206e6f742066696e69736865640000000060448201526064016105a2565b600555565b6000610c70610f70565b600003610c7e575060095490565b610c86610f70565b600754610c91610b30565b610c9b919061104c565b600854610ca8919061105f565b610cba90670de0b6b3a764000061105f565b610cc4919061108c565b600954610b3e91906110a0565b610cd9610eaf565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610d03610eaf565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610d2d610eaf565b600d55565b610d3a610eaf565b6001600160a01b038116610d9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a2565b610da881610f09565b50565b80610db4610c66565b600955610dbf610b30565b6007556001600160a01b03811615610e0d57610dda81610476565b6001600160a01b0382166000908152600b6020908152604080832093909355600954600a825283832055600c9052204290555b610e16826108b1565b156108ad5760405162461bcd60e51b815260206004820152605e60248201527f4d696e74696e6720616e64207265706179696e672066756e6374696f6e73206f60448201527f662065555344206172652074656d706f726172696c792064697361626c65642060648201527f647572696e67207374455448207265626173696e6720706572696f64732e0000608482015260a4016105a2565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081831115610f6957816109d2565b5090919050565b60007f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada3716001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e91906110b3565b60006020828403121561100657600080fd5b81356001600160a01b03811681146109d257600080fd5b60006020828403121561102f57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104f8576104f8611036565b80820281158282048414176104f8576104f8611036565b634e487b7160e01b600052601260045260246000fd5b60008261109b5761109b611076565b500490565b808201808211156104f8576104f8611036565b6000602082840312156110c557600080fd5b5051919050565b6000602082840312156110de57600080fd5b815180151581146109d257600080fd5b6000826110fd576110fd611076565b50069056fea2646970667358221220d0757084ea3676b6cf0f4b68baeb6f1a48267df832dbd633595dba092737c38964736f6c63430008110033

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

00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371000000000000000000000000857cc243b8494e13bdbade27c25ef61c2e500fda0000000000000000000000009a3019a8a84b1cf9b785a02a0813bfb7a63fcdf1000000000000000000000000850f078a8469b1c7cdfd6635aaf02fd370382eb7

-----Decoded View---------------
Arg [0] : _lybra (address): 0x97de57eC338AB5d51557DA3434828C5DbFaDA371
Arg [1] : _helper (address): 0x857CC243b8494e13BdbAde27C25ef61c2e500fda
Arg [2] : _boost (address): 0x9a3019a8a84B1cf9b785A02A0813BFb7A63fCDF1
Arg [3] : _fund (address): 0x850F078A8469b1c7CdfD6635aaf02fD370382Eb7

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371
Arg [1] : 000000000000000000000000857cc243b8494e13bdbade27c25ef61c2e500fda
Arg [2] : 0000000000000000000000009a3019a8a84b1cf9b785a02a0813bfb7a63fcdf1
Arg [3] : 000000000000000000000000850f078a8469b1c7cdfd6635aaf02fd370382eb7


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.