ETH Price: $2,856.51 (-10.16%)
Gas: 15 Gwei

Contract

0xc8152115298Ff56E6f9fD0610D77E57946900d4A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Set Lock Status181398072023-09-15 6:21:11294 days ago1694758871IN
0xc8152115...946900d4A
0 ETH0.0057657511.01000084
Set Lock Status181380982023-09-15 0:34:23294 days ago1694738063IN
0xc8152115...946900d4A
0 ETH0.0040559210.10713902
Set Lock Status181379582023-09-15 0:05:59294 days ago1694736359IN
0xc8152115...946900d4A
0 ETH0.0040690811
Set Lock Status181297662023-09-13 20:29:35295 days ago1694636975IN
0xc8152115...946900d4A
0 ETH0.0050345612.1141687
Set Lock Status181272222023-09-13 11:55:59295 days ago1694606159IN
0xc8152115...946900d4A
0 ETH0.0109649221.32643281
Set Lock Status181268782023-09-13 10:45:35295 days ago1694601935IN
0xc8152115...946900d4A
0 ETH0.0163049632.00849274
Set Lock Status181223842023-09-12 19:38:11296 days ago1694547491IN
0xc8152115...946900d4A
0 ETH0.0064985116.19297902
Set Lock Status181177232023-09-12 3:57:47297 days ago1694491067IN
0xc8152115...946900d4A
0 ETH0.003698489.21613892
Set Lock Status181175672023-09-12 3:26:11297 days ago1694489171IN
0xc8152115...946900d4A
0 ETH0.0047607711.86288807
Set Lock Status181154082023-09-11 20:10:35297 days ago1694463035IN
0xc8152115...946900d4A
0 ETH0.0268529661.95684636
Set Lock Status181121942023-09-11 9:22:59297 days ago1694424179IN
0xc8152115...946900d4A
0 ETH0.0045769911.40492819
Set Lock Status181101592023-09-11 2:33:23298 days ago1694399603IN
0xc8152115...946900d4A
0 ETH0.004219499.10298553
Set Lock Status181083962023-09-10 20:36:59298 days ago1694378219IN
0xc8152115...946900d4A
0 ETH0.003505019.05647823
Set Lock Status181076632023-09-10 18:08:11298 days ago1694369291IN
0xc8152115...946900d4A
0 ETH0.003076888.60128319
Set Lock Status181075252023-09-10 17:40:23298 days ago1694367623IN
0xc8152115...946900d4A
0 ETH0.0038964710.88850615
Set Lock Status181074342023-09-10 17:21:59298 days ago1694366519IN
0xc8152115...946900d4A
0 ETH0.004876858.92589561
Set Lock Status181067802023-09-10 15:10:23298 days ago1694358623IN
0xc8152115...946900d4A
0 ETH0.005309213.22946327
Set Lock Status180966962023-09-09 5:16:35300 days ago1694236595IN
0xc8152115...946900d4A
0 ETH0.003655679.10974561
Set Lock Status180960492023-09-09 3:06:23300 days ago1694228783IN
0xc8152115...946900d4A
0 ETH0.003907359.73692187
Set Lock Status180930162023-09-08 16:54:11300 days ago1694192051IN
0xc8152115...946900d4A
0 ETH0.010932829.38751928
Set Lock Status180921402023-09-08 13:57:47300 days ago1694181467IN
0xc8152115...946900d4A
0 ETH0.0051106612.73434964
Set Lock Status180913612023-09-08 11:20:35300 days ago1694172035IN
0xc8152115...946900d4A
0 ETH0.004825611.27937175
Set Lock Status180913472023-09-08 11:17:47300 days ago1694171867IN
0xc8152115...946900d4A
0 ETH0.004986312.42560072
Set Lock Status180913342023-09-08 11:14:59300 days ago1694171699IN
0xc8152115...946900d4A
0 ETH0.0040273610.17799237
Set Lock Status180913162023-09-08 11:11:23300 days ago1694171483IN
0xc8152115...946900d4A
0 ETH0.003349569.78123337
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:
esLBRBoost

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.8.17;

import "@openzeppelin/contracts/access/Ownable.sol";
import "../interfaces/IesLBR.sol";
import "../interfaces/IMiningIncentives.sol";


contract esLBRBoost is Ownable {
    esLBRLockSetting[] public esLBRLockSettings;
    mapping(address => LockStatus) public userLockStatus;
    IMiningIncentives public miningIncentives;

    // Define a struct for the lock settings
    struct esLBRLockSetting {
        uint256 duration;
        uint256 miningBoost;
    }

    // Define a struct for the user's lock status
    struct LockStatus {
        uint256 lockAmount;
        uint256 unlockTime;
        uint256 duration;
        uint256 miningBoost;
    }

    event StakeLBR(address indexed user, uint256 amount, uint256 time);
    event NewLockSetting(uint256 duration, uint256 miningBoost);
    event UserLockStatus(address indexed user, uint256 lockAmount, uint256 unlockTime, uint256 duration, uint256 miningBoost);
    event Unlock(address indexed user, uint256 unLockAmount, uint256 unlockTime);

    // Constructor to initialize the default lock settings
    constructor(address _miningIncentives) {
        esLBRLockSettings.push(esLBRLockSetting(30 days, 5 * 1e18));
        esLBRLockSettings.push(esLBRLockSetting(90 days, 10 * 1e18));
        esLBRLockSettings.push(esLBRLockSetting(180 days, 25 * 1e18));
        esLBRLockSettings.push(esLBRLockSetting(365 days, 50 * 1e18));
        miningIncentives = IMiningIncentives(_miningIncentives);
    }

    // Function to add a new lock setting
    function addLockSetting(esLBRLockSetting memory setting) external onlyOwner {
        esLBRLockSettings.push(setting);
        emit NewLockSetting(setting.duration, setting.miningBoost);
    }

    function setMiningIncentives(address _addr) external onlyOwner {
        miningIncentives = IMiningIncentives(_addr);
    }

    /**
     * @notice The user can set the lock status and choose to use either esLBR or LBR.
     * @param id The ID of the lock setting.
     * @param lbrAmount The amount of LBR to be locked.
     * @param useLBR A flag indicating whether to use LBR or not.
     */
    function setLockStatus(uint256 id, uint256 lbrAmount, bool useLBR) external {
        require(id < esLBRLockSettings.length, "Invalid lock setting ID");
        esLBRLockSetting memory _setting = esLBRLockSettings[id];
        LockStatus memory userStatus = userLockStatus[msg.sender];
        if (userStatus.unlockTime > block.timestamp) {
            require(userStatus.duration <= _setting.duration, "Your lock-in period has not ended, and the term can only be extended, not reduced.");
        }
        if(useLBR) {
            IesLBR(miningIncentives.LBR()).burn(msg.sender, lbrAmount);
            IesLBR(miningIncentives.esLBR()).mint(msg.sender, lbrAmount);
            emit StakeLBR(msg.sender, lbrAmount, block.timestamp);
        }
        require(IesLBR(miningIncentives.esLBR()).balanceOf(msg.sender) >= userStatus.lockAmount + lbrAmount, "IB");
        miningIncentives.refreshReward(msg.sender);
        userLockStatus[msg.sender] = LockStatus(userStatus.lockAmount + lbrAmount, block.timestamp + _setting.duration, _setting.duration, _setting.miningBoost);
        emit UserLockStatus(msg.sender, userLockStatus[msg.sender].lockAmount, userLockStatus[msg.sender].duration, _setting.duration, _setting.miningBoost);
    }

    function unlock() external {
        LockStatus storage userStatus = userLockStatus[msg.sender];
        require(userStatus.unlockTime < block.timestamp, "TNM");
        emit Unlock(msg.sender, userStatus.lockAmount, block.timestamp);
        userStatus.lockAmount = 0;
    }

    // Function to get the user's unlock time
    function getUnlockTime(address user) external view returns (uint256 unlockTime) {
        unlockTime = userLockStatus[user].unlockTime;
    }

    /**
     * @notice calculate the user's mining boost based on their lock status
     * @dev Based on the user's userUpdatedAt time, finishAt time, and the current time,
     * there are several scenarios that could occur, including no acceleration, full acceleration, and partial acceleration.
     */
    function getUserBoost(address user, uint256 userUpdatedAt, uint256 finishAt) external view returns (uint256) {
        LockStatus memory userStatus = userLockStatus[user];
        uint256 boostEndTime = userStatus.unlockTime;
        if (userUpdatedAt >= boostEndTime || userUpdatedAt >= finishAt || userStatus.lockAmount == 0) {
            return 0;
        }
        uint needLockedAmount = getAmountNeedLocked(user);
        if(needLockedAmount == 0) return 0;
        uint256 maxBoost = userLockStatus[user].miningBoost;

        if (finishAt > boostEndTime && block.timestamp > boostEndTime) {
            uint256 time = block.timestamp > finishAt ? finishAt : block.timestamp;
            maxBoost = ((boostEndTime - userUpdatedAt) * maxBoost) / (time - userUpdatedAt);
        }
        if (userStatus.lockAmount >= needLockedAmount) {
            return maxBoost;
        }
        return maxBoost * userStatus.lockAmount / needLockedAmount;
    }

    function getAmountNeedLocked(address user) public view returns (uint256) {
        uint256 stakedAmount = miningIncentives.stakedOf(user);
        uint256 totalStaked = miningIncentives.totalStaked();
        if(stakedAmount == 0 || totalStaked == 0) return 0;
        return stakedAmount * (IesLBR(miningIncentives.LBR()).totalSupply() + IesLBR(miningIncentives.esLBR()).totalSupply()) / totalStaked;
    }
}

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

interface IMiningIncentives {
    function totalStaked() external view returns (uint256);
    function stakedOf(address user) external view returns (uint256);
    function earned(address user) external view returns (uint256);
    function isOtherEarningsClaimable(address user) external view returns (bool);
    function esLBR() external view returns (address);
    function LBR() external view returns (address);
    function refreshReward(address _account) external;
}

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);
    function getPastVotes(address account, uint256 timepoint) external view returns (uint256);
    function getPastTotalSupply(uint256 timepoint) external view returns (uint256);
}

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

pragma solidity ^0.8.0;

import "../utils/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 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":"_miningIncentives","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"miningBoost","type":"uint256"}],"name":"NewLockSetting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"StakeLBR","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"unLockAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"lockAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"miningBoost","type":"uint256"}],"name":"UserLockStatus","type":"event"},{"inputs":[{"components":[{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"miningBoost","type":"uint256"}],"internalType":"struct esLBRBoost.esLBRLockSetting","name":"setting","type":"tuple"}],"name":"addLockSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"esLBRLockSettings","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"miningBoost","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getAmountNeedLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"unlockTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"userUpdatedAt","type":"uint256"},{"internalType":"uint256","name":"finishAt","type":"uint256"}],"name":"getUserBoost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miningIncentives","outputs":[{"internalType":"contract IMiningIncentives","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"lbrAmount","type":"uint256"},{"internalType":"bool","name":"useLBR","type":"bool"}],"name":"setLockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMiningIncentives","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userLockStatus","outputs":[{"internalType":"uint256","name":"lockAmount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"miningBoost","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5060405161134638038061134683398101604081905261002f916101da565b6100383361018a565b60408051808201825262278d008152674563918244f400006020808301918252600180548082018255600082815294517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660029283028181019290925594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf791820155865180880188526276a7008152678ac7230489e800008186019081528454808601865585895291519184028088019290925551908201558651808801885262ed4e00815268015af1d78b58c4000081860190815284548086018655858952915191840280880192909255519082015586518088019097526301e1338087526802b5e3af16b1880000938701938452825480840184559290955294519402918201939093559151910155600380546001600160a01b0319166001600160a01b039290921691909117905561020a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156101ec57600080fd5b81516001600160a01b038116811461020357600080fd5b9392505050565b61112d806102196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063c8d236061161008c578063d989a53b11610066578063d989a53b146101a5578063dbed1e88146101b8578063f2ccf056146101e4578063f2fde38b1461023b57600080fd5b8063c8d2360614610157578063d16911ba1461017f578063d64545d91461019257600080fd5b806313ae1e5b146100d4578063715018a6146100fa5780638da5cb5b14610104578063a69df4b514610129578063b237faf914610131578063c67543e914610144575b600080fd5b6100e76100e2366004610f04565b61024e565b6040519081526020015b60405180910390f35b610102610523565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f1565b610102610537565b6100e761013f366004610f21565b6105c6565b610102610152366004610f04565b6106fe565b61016a610165366004610f56565b610728565b604080519283526020830191909152016100f1565b61010261018d366004610f6f565b610756565b6101026101a0366004610fda565b610808565b600354610111906001600160a01b031681565b6100e76101c6366004610f04565b6001600160a01b031660009081526002602052604090206001015490565b61021b6101f2366004610f04565b600260208190526000918252604090912080546001820154928201546003909201549092919084565b6040805194855260208501939093529183015260608201526080016100f1565b610102610249366004610f04565b610dcc565b60035460405163af500ba360e01b81526001600160a01b038381166004830152600092839291169063af500ba390602401602060405180830381865afa15801561029c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c09190611013565b90506000600360009054906101000a90046001600160a01b03166001600160a01b031663817b1cd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190611013565b9050811580610348575080155b15610357575060009392505050565b60035460408051639730875360e01b8152905183926001600160a01b03169163973087539160048083019260209291908290030181865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c4919061102c565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104259190611013565b600360009054906101000a90046001600160a01b03166001600160a01b0316638afe540c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049c919061102c565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190611013565b610507919061105f565b6105119084611078565b61051b919061108f565b949350505050565b61052b610e45565b6105356000610e9f565b565b336000908152600260205260409020600181015442116105845760405162461bcd60e51b8152602060048201526003602482015262544e4d60e81b60448201526064015b60405180910390fd5b80546040805191825242602083015233917ff7870c5b224cbc19873599e46ccfc7103934650509b1af0c3ce90138377c2004910160405180910390a260009055565b6001600160a01b038316600090815260026020818152604080842081516080810183528154815260018201549381018490529381015491840191909152600301546060830152808510158061061b5750838510155b8061062557508151155b15610635576000925050506106f7565b60006106408761024e565b90508060000361065657600093505050506106f7565b6001600160a01b038716600090815260026020526040902060030154828611801561068057508242115b156106c55760008642116106945742610696565b865b90506106a288826110b1565b826106ad8a876110b1565b6106b79190611078565b6106c1919061108f565b9150505b835182116106d85793506106f792505050565b835182906106e69083611078565b6106f0919061108f565b9450505050505b9392505050565b610706610e45565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001818154811061073857600080fd5b60009182526020909120600290910201805460019091015490915082565b61075e610e45565b600180548082018255600091909152815160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6810182905560208301517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf79091018190556040517ff243b3c3db48511c3a48b7d0662940ba673132d19f1bcd79d50ed445e0bce23b926107fd92908252602082015260400190565b60405180910390a150565b60015483106108595760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206c6f636b2073657474696e67204944000000000000000000604482015260640161057b565b60006001848154811061086e5761086e6110c4565b600091825260208083206040805180820182526002948502909201805483526001908101548385015233865284845294819020815160808101835281548152958101549386018490529384015490850152600390920154606084015290925042101561096a5781516040820151111561096a5760405162461bcd60e51b815260206004820152605260248201527f596f7572206c6f636b2d696e20706572696f6420686173206e6f7420656e646560448201527f642c20616e6420746865207465726d2063616e206f6e6c792062652065787465606482015271373232b216103737ba103932b23ab1b2b21760711b608482015260a40161057b565b8215610b8157600360009054906101000a90046001600160a01b03166001600160a01b0316638afe540c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e7919061102c565b604051632770a7eb60e21b8152336004820152602481018690526001600160a01b039190911690639dc29fac906044016020604051808303816000875af1158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a91906110da565b50600360009054906101000a90046001600160a01b03166001600160a01b031663973087536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad2919061102c565b6040516340c10f1960e01b8152336004820152602481018690526001600160a01b0391909116906340c10f19906044016020604051808303816000875af1158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4591906110da565b506040805185815242602082015233917f0528cde2c67617f93e5ba994b14d34131c7027d844573ebbdb78ba556cbd94f6910160405180910390a25b8051610b8e90859061105f565b600360009054906101000a90046001600160a01b03166001600160a01b031663973087536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c05919061102c565b6040516370a0823160e01b81523360048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6f9190611013565b1015610ca25760405162461bcd60e51b815260206004820152600260248201526124a160f11b604482015260640161057b565b60035460405163fce67e0d60e01b81523360048201526001600160a01b039091169063fce67e0d90602401600060405180830381600087803b158015610ce757600080fd5b505af1158015610cfb573d6000803e3d6000fd5b505050506040518060800160405280858360000151610d1a919061105f565b8152602001836000015142610d2f919061105f565b8152835160208083019190915280850180516040938401523360008181526002808552908590208651808255878601516001830155878701519282018390556060978801516003909201919091558851935186519182529481019190915293840191909152928201527f70131146d6fec3f367c6f7d17364f2c1031793e4283e3bb57b2629a4aa45e7d99060800160405180910390a25050505050565b610dd4610e45565b6001600160a01b038116610e395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057b565b610e4281610e9f565b50565b6000546001600160a01b031633146105355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610e4257600080fd5b600060208284031215610f1657600080fd5b81356106f781610eef565b600080600060608486031215610f3657600080fd5b8335610f4181610eef565b95602085013595506040909401359392505050565b600060208284031215610f6857600080fd5b5035919050565b600060408284031215610f8157600080fd5b6040516040810181811067ffffffffffffffff82111715610fb257634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b8015158114610e4257600080fd5b600080600060608486031215610fef57600080fd5b8335925060208401359150604084013561100881610fcc565b809150509250925092565b60006020828403121561102557600080fd5b5051919050565b60006020828403121561103e57600080fd5b81516106f781610eef565b634e487b7160e01b600052601160045260246000fd5b8082018082111561107257611072611049565b92915050565b808202811582820484141761107257611072611049565b6000826110ac57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561107257611072611049565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156110ec57600080fd5b81516106f781610fcc56fea2646970667358221220e75a854c00919c1f72e1bc52fafb139c02f9aba7300f3ffde111335d26d9c52764736f6c634300081200330000000000000000000000000b2659734121feb636534213a159ac91691edbde

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063c8d236061161008c578063d989a53b11610066578063d989a53b146101a5578063dbed1e88146101b8578063f2ccf056146101e4578063f2fde38b1461023b57600080fd5b8063c8d2360614610157578063d16911ba1461017f578063d64545d91461019257600080fd5b806313ae1e5b146100d4578063715018a6146100fa5780638da5cb5b14610104578063a69df4b514610129578063b237faf914610131578063c67543e914610144575b600080fd5b6100e76100e2366004610f04565b61024e565b6040519081526020015b60405180910390f35b610102610523565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f1565b610102610537565b6100e761013f366004610f21565b6105c6565b610102610152366004610f04565b6106fe565b61016a610165366004610f56565b610728565b604080519283526020830191909152016100f1565b61010261018d366004610f6f565b610756565b6101026101a0366004610fda565b610808565b600354610111906001600160a01b031681565b6100e76101c6366004610f04565b6001600160a01b031660009081526002602052604090206001015490565b61021b6101f2366004610f04565b600260208190526000918252604090912080546001820154928201546003909201549092919084565b6040805194855260208501939093529183015260608201526080016100f1565b610102610249366004610f04565b610dcc565b60035460405163af500ba360e01b81526001600160a01b038381166004830152600092839291169063af500ba390602401602060405180830381865afa15801561029c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c09190611013565b90506000600360009054906101000a90046001600160a01b03166001600160a01b031663817b1cd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190611013565b9050811580610348575080155b15610357575060009392505050565b60035460408051639730875360e01b8152905183926001600160a01b03169163973087539160048083019260209291908290030181865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c4919061102c565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104259190611013565b600360009054906101000a90046001600160a01b03166001600160a01b0316638afe540c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049c919061102c565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190611013565b610507919061105f565b6105119084611078565b61051b919061108f565b949350505050565b61052b610e45565b6105356000610e9f565b565b336000908152600260205260409020600181015442116105845760405162461bcd60e51b8152602060048201526003602482015262544e4d60e81b60448201526064015b60405180910390fd5b80546040805191825242602083015233917ff7870c5b224cbc19873599e46ccfc7103934650509b1af0c3ce90138377c2004910160405180910390a260009055565b6001600160a01b038316600090815260026020818152604080842081516080810183528154815260018201549381018490529381015491840191909152600301546060830152808510158061061b5750838510155b8061062557508151155b15610635576000925050506106f7565b60006106408761024e565b90508060000361065657600093505050506106f7565b6001600160a01b038716600090815260026020526040902060030154828611801561068057508242115b156106c55760008642116106945742610696565b865b90506106a288826110b1565b826106ad8a876110b1565b6106b79190611078565b6106c1919061108f565b9150505b835182116106d85793506106f792505050565b835182906106e69083611078565b6106f0919061108f565b9450505050505b9392505050565b610706610e45565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001818154811061073857600080fd5b60009182526020909120600290910201805460019091015490915082565b61075e610e45565b600180548082018255600091909152815160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6810182905560208301517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf79091018190556040517ff243b3c3db48511c3a48b7d0662940ba673132d19f1bcd79d50ed445e0bce23b926107fd92908252602082015260400190565b60405180910390a150565b60015483106108595760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206c6f636b2073657474696e67204944000000000000000000604482015260640161057b565b60006001848154811061086e5761086e6110c4565b600091825260208083206040805180820182526002948502909201805483526001908101548385015233865284845294819020815160808101835281548152958101549386018490529384015490850152600390920154606084015290925042101561096a5781516040820151111561096a5760405162461bcd60e51b815260206004820152605260248201527f596f7572206c6f636b2d696e20706572696f6420686173206e6f7420656e646560448201527f642c20616e6420746865207465726d2063616e206f6e6c792062652065787465606482015271373232b216103737ba103932b23ab1b2b21760711b608482015260a40161057b565b8215610b8157600360009054906101000a90046001600160a01b03166001600160a01b0316638afe540c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e7919061102c565b604051632770a7eb60e21b8152336004820152602481018690526001600160a01b039190911690639dc29fac906044016020604051808303816000875af1158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a91906110da565b50600360009054906101000a90046001600160a01b03166001600160a01b031663973087536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad2919061102c565b6040516340c10f1960e01b8152336004820152602481018690526001600160a01b0391909116906340c10f19906044016020604051808303816000875af1158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4591906110da565b506040805185815242602082015233917f0528cde2c67617f93e5ba994b14d34131c7027d844573ebbdb78ba556cbd94f6910160405180910390a25b8051610b8e90859061105f565b600360009054906101000a90046001600160a01b03166001600160a01b031663973087536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c05919061102c565b6040516370a0823160e01b81523360048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6f9190611013565b1015610ca25760405162461bcd60e51b815260206004820152600260248201526124a160f11b604482015260640161057b565b60035460405163fce67e0d60e01b81523360048201526001600160a01b039091169063fce67e0d90602401600060405180830381600087803b158015610ce757600080fd5b505af1158015610cfb573d6000803e3d6000fd5b505050506040518060800160405280858360000151610d1a919061105f565b8152602001836000015142610d2f919061105f565b8152835160208083019190915280850180516040938401523360008181526002808552908590208651808255878601516001830155878701519282018390556060978801516003909201919091558851935186519182529481019190915293840191909152928201527f70131146d6fec3f367c6f7d17364f2c1031793e4283e3bb57b2629a4aa45e7d99060800160405180910390a25050505050565b610dd4610e45565b6001600160a01b038116610e395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057b565b610e4281610e9f565b50565b6000546001600160a01b031633146105355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610e4257600080fd5b600060208284031215610f1657600080fd5b81356106f781610eef565b600080600060608486031215610f3657600080fd5b8335610f4181610eef565b95602085013595506040909401359392505050565b600060208284031215610f6857600080fd5b5035919050565b600060408284031215610f8157600080fd5b6040516040810181811067ffffffffffffffff82111715610fb257634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b8015158114610e4257600080fd5b600080600060608486031215610fef57600080fd5b8335925060208401359150604084013561100881610fcc565b809150509250925092565b60006020828403121561102557600080fd5b5051919050565b60006020828403121561103e57600080fd5b81516106f781610eef565b634e487b7160e01b600052601160045260246000fd5b8082018082111561107257611072611049565b92915050565b808202811582820484141761107257611072611049565b6000826110ac57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561107257611072611049565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156110ec57600080fd5b81516106f781610fcc56fea2646970667358221220e75a854c00919c1f72e1bc52fafb139c02f9aba7300f3ffde111335d26d9c52764736f6c63430008120033

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

0000000000000000000000000b2659734121feb636534213a159ac91691edbde

-----Decoded View---------------
Arg [0] : _miningIncentives (address): 0x0B2659734121FeB636534213a159AC91691eDbde

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000b2659734121feb636534213a159ac91691edbde


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.