ETH Price: $3,258.40 (-0.84%)

Contract

0xdAEe25EEFf49ed3f09028AA2E194E213E747709a
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Get Reward171854792023-05-04 6:18:23626 days ago1683181103IN
0xdAEe25EE...3E747709a
0 ETH0.0093313855.82508991
Get Reward171850302023-05-04 4:47:59626 days ago1683175679IN
0xdAEe25EE...3E747709a
0 ETH0.0072936656.1512984
Get Reward171849292023-05-04 4:27:47626 days ago1683174467IN
0xdAEe25EE...3E747709a
0 ETH0.0086690458.97587218
Get Reward171845942023-05-04 3:20:23626 days ago1683170423IN
0xdAEe25EE...3E747709a
0 ETH0.0089251360.71810008
Get Reward171838032023-05-04 0:39:47626 days ago1683160787IN
0xdAEe25EE...3E747709a
0 ETH0.0096283473.97656345
Get Reward171837072023-05-04 0:20:23626 days ago1683159623IN
0xdAEe25EE...3E747709a
0 ETH0.0109849665.71764692
Get Reward171834582023-05-03 23:30:11626 days ago1683156611IN
0xdAEe25EE...3E747709a
0 ETH0.0085407665.75233583
Get Reward171827472023-05-03 21:05:59626 days ago1683147959IN
0xdAEe25EE...3E747709a
0 ETH0.0132777579.43426981
Get Reward171794382023-05-03 9:54:23626 days ago1683107663IN
0xdAEe25EE...3E747709a
0 ETH0.006494849.90095903
Get Reward171794222023-05-03 9:51:11626 days ago1683107471IN
0xdAEe25EE...3E747709a
0 ETH0.0076655350.23519216
Get Reward171792342023-05-03 9:13:11626 days ago1683105191IN
0xdAEe25EE...3E747709a
0 ETH0.0086459356.66007373
Get Reward171771982023-05-03 2:19:35627 days ago1683080375IN
0xdAEe25EE...3E747709a
0 ETH0.0127532976.41598613
Get Reward171728432023-05-02 11:38:35627 days ago1683027515IN
0xdAEe25EE...3E747709a
0 ETH0.0085079465.49967251
Get Reward171724562023-05-02 10:20:35627 days ago1683022835IN
0xdAEe25EE...3E747709a
0 ETH0.0077935860
Get Reward171721592023-05-02 9:20:11627 days ago1683019211IN
0xdAEe25EE...3E747709a
0 ETH0.0085266651.01083992
Get Reward171717602023-05-02 7:58:47627 days ago1683014327IN
0xdAEe25EE...3E747709a
0 ETH0.0068449452.69679792
Get Reward171717262023-05-02 7:51:47627 days ago1683013907IN
0xdAEe25EE...3E747709a
0 ETH0.0066752450.51113487
Get Reward171711942023-05-02 6:03:35628 days ago1683007415IN
0xdAEe25EE...3E747709a
0 ETH0.0080362161.74388666
Get Reward171711872023-05-02 6:02:11628 days ago1683007331IN
0xdAEe25EE...3E747709a
0 ETH0.0073020164.83645258
Get Reward171710592023-05-02 5:36:35628 days ago1683005795IN
0xdAEe25EE...3E747709a
0 ETH0.0095150872
Get Reward171683502023-05-01 20:28:47628 days ago1682972927IN
0xdAEe25EE...3E747709a
0 ETH0.0160428486.13425088
Get Reward171680622023-05-01 19:30:35628 days ago1682969435IN
0xdAEe25EE...3E747709a
0 ETH0.0118240589.47179933
Get Reward171664362023-05-01 14:00:59628 days ago1682949659IN
0xdAEe25EE...3E747709a
0 ETH0.0175757104.80883765
Get Reward171664032023-05-01 13:54:23628 days ago1682949263IN
0xdAEe25EE...3E747709a
0 ETH0.010580567.73996269
Get Reward171657242023-05-01 11:36:47628 days ago1682941007IN
0xdAEe25EE...3E747709a
0 ETH0.007542254.73578491
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:
esLBRMiner

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: esLBRMiner.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";

contract esLBRMiner is Ownable {
    ILybra public immutable lybra;
    address public esLBR;

    // Duration of rewards to be paid out (in seconds)
    uint256 public duration;
    // 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;

    uint256 public extraRate = 150;

    constructor(
        address _lybra
    ) {
        lybra = ILybra(_lybra);
    }

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

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

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

    function stakedOf(address user) public view returns (uint256) {
        uint256 amount = lybra.getBorrowedOf(user);
        if (lybra.isRedemptionProvider(user)) {
            amount = (amount * extraRate) / 100;
        }
        return amount;
    }

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

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

        _;
    }

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

    function refreshReward(address _account) external updateReward(_account) {}

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

    function getReward() external updateReward(msg.sender) {
        uint256 reward = rewards[msg.sender];
        if (reward > 0) {
            rewards[msg.sender] = 0;
            IesLBR(esLBR).mint(msg.sender, reward);
        }
    }

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

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

File 3 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 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: 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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_lybra","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":"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":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","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":[{"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":"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":"_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":"_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"}]

60a0604052609660095534801561001557600080fd5b50604051610c74380380610c748339810160408190526100349161009e565b61003d3361004e565b6001600160a01b03166080526100ce565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100b057600080fd5b81516001600160a01b03811681146100c757600080fd5b9392505050565b608051610b766100fe600039600081816102be015281816106050152818161069201526109ce0152610b766000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80638b876347116100c3578063cf8e12a31161007c578063cf8e12a314610277578063df136d651461028a578063ed23f60814610293578063f2fde38b146102a6578063fccabef3146102b9578063fce67e0d146102e057600080fd5b80638b876347146101f15780638da5cb5b146102115780639730875314610236578063af500ba314610249578063cc1a378f1461025c578063cd3daf9d1461026f57600080fd5b80633d18b912116101155780633d18b912146101be57806367d3b488146101c6578063715018a6146101cf5780637519ab50146101d75780637b0a47ee146101e057806380faa57d146101e957600080fd5b80628cc262146101515780630700037d146101775780630fb5a6b4146101975780632e997ab4146101a05780633c6b16ab146101a9575b600080fd5b61016461015f366004610a4e565b6102f3565b6040519081526020015b60405180910390f35b610164610185366004610a4e565b60086020526000908152604090205481565b61016460025481565b61016460095481565b6101bc6101b7366004610a77565b610360565b005b6101bc6104bc565b61016460035481565b6101bc6105bb565b61016460045481565b61016460055481565b6101646105cf565b6101646101ff366004610a4e565b60076020526000908152604090205481565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161016e565b60015461021e906001600160a01b031681565b610164610257366004610a4e565b6105e2565b6101bc61026a366004610a77565b610725565b610164610783565b6101bc610285366004610a4e565b6107ee565b61016460065481565b6101bc6102a1366004610a77565b610818565b6101bc6102b4366004610a4e565b610832565b61021e7f000000000000000000000000000000000000000000000000000000000000000081565b6101bc6102ee366004610a4e565b6108ab565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a764000090610329610783565b6103339190610aa6565b61033c856105e2565b6103469190610ab9565b6103509190610ad0565b61035a9190610af2565b92915050565b610368610909565b6000610372610783565b60065561037d6105cf565b6004556001600160a01b038116156103c457610398816102f3565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555b600082116104065760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b60448201526064015b60405180910390fd5b60035442106104245760025461041c9083610ad0565b600555610460565b6000600554426003546104379190610aa6565b6104419190610ab9565b6002549091506104518285610af2565b61045b9190610ad0565b600555505b6000600554116104a45760405162461bcd60e51b815260206004820152600f60248201526e07265776172642072617465203d203608c1b60448201526064016103fd565b6002546104b19042610af2565b600355505042600455565b336104c5610783565b6006556104d06105cf565b6004556001600160a01b03811615610517576104eb816102f3565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555b3360009081526008602052604090205480156105b757336000818152600860205260408082209190915560015490516340c10f1960e01b81526004810192909252602482018390526001600160a01b0316906340c10f19906044016020604051808303816000875af1158015610591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b59190610b05565b505b5050565b6105c3610909565b6105cd6000610963565b565b60006105dd600354426109b3565b905090565b60405162b5b06160e31b81526001600160a01b03828116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906305ad830890602401602060405180830381865afa15801561064c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106709190610b27565b604051631e24111360e21b81526001600160a01b0385811660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690637890444c90602401602060405180830381865afa1580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190610b05565b1561035a576064600954826107149190610ab9565b61071e9190610ad0565b9392505050565b61072d610909565b426003541061077e5760405162461bcd60e51b815260206004820152601c60248201527f726577617264206475726174696f6e206e6f742066696e69736865640000000060448201526064016103fd565b600255565b600061078d6109ca565b60000361079b575060065490565b6107a36109ca565b6004546107ae6105cf565b6107b89190610aa6565b6005546107c59190610ab9565b6107d790670de0b6b3a7640000610ab9565b6107e19190610ad0565b6006546105dd9190610af2565b6107f6610909565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610820610909565b6064811161082d57600080fd5b600955565b61083a610909565b6001600160a01b03811661089f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103fd565b6108a881610963565b50565b806108b4610783565b6006556108bf6105cf565b6004556001600160a01b038116156105b7576108da816102f3565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555050565b6000546001600160a01b031633146105cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818311156109c3578161071e565b5090919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dd9190610b27565b600060208284031215610a6057600080fd5b81356001600160a01b038116811461071e57600080fd5b600060208284031215610a8957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561035a5761035a610a90565b808202811582820484141761035a5761035a610a90565b600082610aed57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561035a5761035a610a90565b600060208284031215610b1757600080fd5b8151801515811461071e57600080fd5b600060208284031215610b3957600080fd5b505191905056fea2646970667358221220ce78ad4e383609eb78dff556535c0aed7207188e508b1ab23f034c0a34f9ada164736f6c6343000811003300000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014c5760003560e01c80638b876347116100c3578063cf8e12a31161007c578063cf8e12a314610277578063df136d651461028a578063ed23f60814610293578063f2fde38b146102a6578063fccabef3146102b9578063fce67e0d146102e057600080fd5b80638b876347146101f15780638da5cb5b146102115780639730875314610236578063af500ba314610249578063cc1a378f1461025c578063cd3daf9d1461026f57600080fd5b80633d18b912116101155780633d18b912146101be57806367d3b488146101c6578063715018a6146101cf5780637519ab50146101d75780637b0a47ee146101e057806380faa57d146101e957600080fd5b80628cc262146101515780630700037d146101775780630fb5a6b4146101975780632e997ab4146101a05780633c6b16ab146101a9575b600080fd5b61016461015f366004610a4e565b6102f3565b6040519081526020015b60405180910390f35b610164610185366004610a4e565b60086020526000908152604090205481565b61016460025481565b61016460095481565b6101bc6101b7366004610a77565b610360565b005b6101bc6104bc565b61016460035481565b6101bc6105bb565b61016460045481565b61016460055481565b6101646105cf565b6101646101ff366004610a4e565b60076020526000908152604090205481565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161016e565b60015461021e906001600160a01b031681565b610164610257366004610a4e565b6105e2565b6101bc61026a366004610a77565b610725565b610164610783565b6101bc610285366004610a4e565b6107ee565b61016460065481565b6101bc6102a1366004610a77565b610818565b6101bc6102b4366004610a4e565b610832565b61021e7f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada37181565b6101bc6102ee366004610a4e565b6108ab565b6001600160a01b0381166000908152600860209081526040808320546007909252822054670de0b6b3a764000090610329610783565b6103339190610aa6565b61033c856105e2565b6103469190610ab9565b6103509190610ad0565b61035a9190610af2565b92915050565b610368610909565b6000610372610783565b60065561037d6105cf565b6004556001600160a01b038116156103c457610398816102f3565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555b600082116104065760405162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b60448201526064015b60405180910390fd5b60035442106104245760025461041c9083610ad0565b600555610460565b6000600554426003546104379190610aa6565b6104419190610ab9565b6002549091506104518285610af2565b61045b9190610ad0565b600555505b6000600554116104a45760405162461bcd60e51b815260206004820152600f60248201526e07265776172642072617465203d203608c1b60448201526064016103fd565b6002546104b19042610af2565b600355505042600455565b336104c5610783565b6006556104d06105cf565b6004556001600160a01b03811615610517576104eb816102f3565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555b3360009081526008602052604090205480156105b757336000818152600860205260408082209190915560015490516340c10f1960e01b81526004810192909252602482018390526001600160a01b0316906340c10f19906044016020604051808303816000875af1158015610591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b59190610b05565b505b5050565b6105c3610909565b6105cd6000610963565b565b60006105dd600354426109b3565b905090565b60405162b5b06160e31b81526001600160a01b03828116600483015260009182917f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada37116906305ad830890602401602060405180830381865afa15801561064c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106709190610b27565b604051631e24111360e21b81526001600160a01b0385811660048301529192507f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada37190911690637890444c90602401602060405180830381865afa1580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190610b05565b1561035a576064600954826107149190610ab9565b61071e9190610ad0565b9392505050565b61072d610909565b426003541061077e5760405162461bcd60e51b815260206004820152601c60248201527f726577617264206475726174696f6e206e6f742066696e69736865640000000060448201526064016103fd565b600255565b600061078d6109ca565b60000361079b575060065490565b6107a36109ca565b6004546107ae6105cf565b6107b89190610aa6565b6005546107c59190610ab9565b6107d790670de0b6b3a7640000610ab9565b6107e19190610ad0565b6006546105dd9190610af2565b6107f6610909565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610820610909565b6064811161082d57600080fd5b600955565b61083a610909565b6001600160a01b03811661089f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103fd565b6108a881610963565b50565b806108b4610783565b6006556108bf6105cf565b6004556001600160a01b038116156105b7576108da816102f3565b6001600160a01b0382166000908152600860209081526040808320939093556006546007909152919020555050565b6000546001600160a01b031633146105cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818311156109c3578161071e565b5090919050565b60007f00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada3716001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dd9190610b27565b600060208284031215610a6057600080fd5b81356001600160a01b038116811461071e57600080fd5b600060208284031215610a8957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561035a5761035a610a90565b808202811582820484141761035a5761035a610a90565b600082610aed57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561035a5761035a610a90565b600060208284031215610b1757600080fd5b8151801515811461071e57600080fd5b600060208284031215610b3957600080fd5b505191905056fea2646970667358221220ce78ad4e383609eb78dff556535c0aed7207188e508b1ab23f034c0a34f9ada164736f6c63430008110033

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

00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371

-----Decoded View---------------
Arg [0] : _lybra (address): 0x97de57eC338AB5d51557DA3434828C5DbFaDA371

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000097de57ec338ab5d51557da3434828c5dbfada371


Deployed Bytecode Sourcemap

541:3616:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:233;;;;;;:::i;:::-;;:::i;:::-;;;451:25:5;;;439:2;424:18;2799:233:4;;;;;;;;1205:42;;;;;;:::i;:::-;;;;;;;;;;;;;;695:23;;;;;;1254:30;;;;;;3463:581;;;;;;:::i;:::-;;:::i;:::-;;3038:233;;;:::i;768:23::-;;;;;;1877:103:3;;;:::i;856:24:4:-;;;;;;926:25;;;;;;2282:121;;;:::i;1097:57::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1236:87:3;1282:7;1309:6;-1:-1:-1;;;;;1309:6:3;1236:87;;;-1:-1:-1;;;;;836:32:5;;;818:51;;806:2;791:18;1236:87:3;672:203:5;613:20:4;;;;;-1:-1:-1;;;;;613:20:4;;;1695:251;;;;;;:::i;:::-;;:::i;3277:180::-;;;;;;:::i;:::-;;:::i;2409:303::-;;;:::i;1378:84::-;;;;;;:::i;:::-;;:::i;1012:35::-;;;;;;1468:117;;;;;;:::i;:::-;;:::i;2135:201:3:-;;;;;;:::i;:::-;;:::i;578:29:4:-;;;;;2718:75;;;;;;:::i;:::-;;:::i;2799:233::-;-1:-1:-1;;;;;3008:17:4;;2854:7;3008:17;;;:7;:17;;;;;;;;;2951:22;:32;;;;;;2988:4;;2932:16;:14;:16::i;:::-;:51;;;;:::i;:::-;2894:18;2903:8;2894;:18::i;:::-;:90;;;;:::i;:::-;2893:99;;;;:::i;:::-;2892:133;;;;:::i;:::-;2873:152;2799:233;-1:-1:-1;;2799:233:4:o;3463:581::-;1122:13:3;:11;:13::i;:::-;3571:1:4::1;2025:16;:14;:16::i;:::-;2002:20;:39:::0;2063:26:::1;:24;:26::i;:::-;2051:9;:38:::0;-1:-1:-1;;;;;2104:22:4;::::1;::::0;2100:158:::1;;2162:16;2169:8;2162:6;:16::i;:::-;-1:-1:-1::0;;;;;2142:17:4;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;:36;;;;2227:20:::1;::::0;2192:22:::1;:32:::0;;;;;;:55;2100:158:::1;3606:1:::2;3597:6;:10;3589:33;;;::::0;-1:-1:-1;;;3589:33:4;;2094:2:5;3589:33:4::2;::::0;::::2;2076:21:5::0;2133:2;2113:18;;;2106:30;-1:-1:-1;;;2152:18:5;;;2145:40;2202:18;;3589:33:4::2;;;;;;;;;3655:8;;3636:15;:27;3632:268;;3701:8;::::0;3692:17:::2;::::0;:6;:17:::2;:::i;:::-;3679:10;:30:::0;3632:268:::2;;;3740:24;3814:10;;3779:15;3768:8;;:26;;;;:::i;:::-;3767:57;;;;:::i;:::-;3881:8;::::0;3740:84;;-1:-1:-1;3852:25:4::2;3740:84:::0;3852:6;:25:::2;:::i;:::-;3851:38;;;;:::i;:::-;3838:10;:51:::0;-1:-1:-1;3632:268:4::2;3931:1;3918:10;;:14;3910:42;;;::::0;-1:-1:-1;;;3910:42:4;;2433:2:5;3910:42:4::2;::::0;::::2;2415:21:5::0;2472:2;2452:18;;;2445:30;-1:-1:-1;;;2491:18:5;;;2484:45;2546:18;;3910:42:4::2;2231:339:5::0;3910:42:4::2;3992:8;::::0;3974:26:::2;::::0;:15:::2;:26;:::i;:::-;3963:8;:37:::0;-1:-1:-1;;4022:15:4::2;4010:9;:27:::0;3463:581::o;3038:233::-;3081:10;2025:16;:14;:16::i;:::-;2002:20;:39;2063:26;:24;:26::i;:::-;2051:9;:38;-1:-1:-1;;;;;2104:22:4;;;2100:158;;2162:16;2169:8;2162:6;:16::i;:::-;-1:-1:-1;;;;;2142:17:4;;;;;;:7;:17;;;;;;;;:36;;;;2227:20;;2192:22;:32;;;;;;:55;2100:158;3128:10:::1;3103:14;3120:19:::0;;;:7:::1;:19;::::0;;;;;3153:10;;3149:116:::1;;3187:10;3201:1;3179:19:::0;;;:7:::1;:19;::::0;;;;;:23;;;;3223:5:::1;::::0;3216:38;;-1:-1:-1;;;3216:38:4;;::::1;::::0;::::1;2749:51:5::0;;;;2816:18;;;2809:34;;;-1:-1:-1;;;;;3223:5:4::1;::::0;3216:18:::1;::::0;2722::5;;3216:38:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3149:116;3093:178;3038:233:::0;:::o;1877:103:3:-;1122:13;:11;:13::i;:::-;1942:30:::1;1969:1;1942:18;:30::i;:::-;1877:103::o:0;2282:121:4:-;2339:7;2365:31;2370:8;;2380:15;2365:4;:31::i;:::-;2358:38;;2282:121;:::o;1695:251::-;1784:25;;-1:-1:-1;;;1784:25:4;;-1:-1:-1;;;;;836:32:5;;;1784:25:4;;;818:51:5;1748:7:4;;;;1784:5;:19;;;;791:18:5;;1784:25:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1823:32;;-1:-1:-1;;;1823:32:4;;-1:-1:-1;;;;;836:32:5;;;1823::4;;;818:51:5;1767:42:4;;-1:-1:-1;1823:5:4;:26;;;;;;791:18:5;;1823:32:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1819:98;;;1903:3;1890:9;;1881:6;:18;;;;:::i;:::-;1880:26;;;;:::i;:::-;1871:35;1933:6;-1:-1:-1;;;1695:251:4:o;3277:180::-;1122:13:3;:11;:13::i;:::-;3372:15:4::1;3361:8;;:26;3353:67;;;::::0;-1:-1:-1;;;3353:67:4;;3527:2:5;3353:67:4::1;::::0;::::1;3509:21:5::0;3566:2;3546:18;;;3539:30;3605;3585:18;;;3578:58;3653:18;;3353:67:4::1;3325:352:5::0;3353:67:4::1;3430:8;:20:::0;3277:180::o;2409:303::-;2456:7;2479:13;:11;:13::i;:::-;2496:1;2479:18;2475:76;;-1:-1:-1;2520:20:4;;;2409:303::o;2475:76::-;2692:13;:11;:13::i;:::-;2659:9;;2630:26;:24;:26::i;:::-;:38;;;;:::i;:::-;2616:10;;:53;;;;:::i;:::-;:60;;2672:4;2616:60;:::i;:::-;2615:90;;;;:::i;:::-;2580:20;;:125;;;;:::i;1378:84::-;1122:13:3;:11;:13::i;:::-;1441:5:4::1;:14:::0;;-1:-1:-1;;;;;;1441:14:4::1;-1:-1:-1::0;;;;;1441:14:4;;;::::1;::::0;;;::::1;::::0;;1378:84::o;1468:117::-;1122:13:3;:11;:13::i;:::-;1548:3:4::1;1541:4;:10;1533:19;;;::::0;::::1;;1562:9;:16:::0;1468:117::o;2135:201:3:-;1122:13;:11;:13::i;:::-;-1:-1:-1;;;;;2224:22:3;::::1;2216:73;;;::::0;-1:-1:-1;;;2216:73:3;;3884:2:5;2216:73:3::1;::::0;::::1;3866:21:5::0;3923:2;3903:18;;;3896:30;3962:34;3942:18;;;3935:62;-1:-1:-1;;;4013:18:5;;;4006:36;4059:19;;2216:73:3::1;3682:402:5::0;2216:73:3::1;2300:28;2319:8;2300:18;:28::i;:::-;2135:201:::0;:::o;2718:75:4:-;2781:8;2025:16;:14;:16::i;:::-;2002:20;:39;2063:26;:24;:26::i;:::-;2051:9;:38;-1:-1:-1;;;;;2104:22:4;;;2100:158;;2162:16;2169:8;2162:6;:16::i;:::-;-1:-1:-1;;;;;2142:17:4;;;;;;:7;:17;;;;;;;;:36;;;;2227:20;;2192:22;:32;;;;;;:55;2718:75;;:::o;1401:132:3:-;1282:7;1309:6;-1:-1:-1;;;;;1309:6:3;736:10:0;1465:23:3;1457:68;;;;-1:-1:-1;;;1457:68:3;;4291:2:5;1457:68:3;;;4273:21:5;;;4310:18;;;4303:30;4369:34;4349:18;;;4342:62;4421:18;;1457:68:3;4089:356:5;2496:191:3;2570:16;2589:6;;-1:-1:-1;;;;;2606:17:3;;;-1:-1:-1;;;;;;2606:17:3;;;;;;2639:40;;2589:6;;;;;;;2639:40;;2570:16;2639:40;2559:128;2496:191;:::o;4050:105:4:-;4108:7;4139:1;4134;:6;;:14;;4147:1;4134:14;;;-1:-1:-1;4143:1:4;;4050:105;-1:-1:-1;4050:105:4:o;1591:98::-;1637:7;1663:5;-1:-1:-1;;;;;1663:17:4;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:286:5:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:5;;210:42;;200:70;;266:1;263;256:12;487:180;546:6;599:2;587:9;578:7;574:23;570:32;567:52;;;615:1;612;605:12;567:52;-1:-1:-1;638:23:5;;487:180;-1:-1:-1;487:180:5:o;1102:127::-;1163:10;1158:3;1154:20;1151:1;1144:31;1194:4;1191:1;1184:15;1218:4;1215:1;1208:15;1234:128;1301:9;;;1322:11;;;1319:37;;;1336:18;;:::i;1367:168::-;1440:9;;;1471;;1488:15;;;1482:22;;1468:37;1458:71;;1509:18;;:::i;1540:217::-;1580:1;1606;1596:132;;1650:10;1645:3;1641:20;1638:1;1631:31;1685:4;1682:1;1675:15;1713:4;1710:1;1703:15;1596:132;-1:-1:-1;1742:9:5;;1540:217::o;1762:125::-;1827:9;;;1848:10;;;1845:36;;;1861:18;;:::i;2854:277::-;2921:6;2974:2;2962:9;2953:7;2949:23;2945:32;2942:52;;;2990:1;2987;2980:12;2942:52;3022:9;3016:16;3075:5;3068:13;3061:21;3054:5;3051:32;3041:60;;3097:1;3094;3087:12;3136:184;3206:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:52;;;3275:1;3272;3265:12;3227:52;-1:-1:-1;3298:16:5;;3136:184;-1:-1:-1;3136:184:5:o

Swarm Source

ipfs://ce78ad4e383609eb78dff556535c0aed7207188e508b1ab23f034c0a34f9ada1

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.