ETH Price: $3,941.89 (+5.24%)

Contract

0xc7e880d704e0Cec60E9FaeCa6E57D55Bd278Ac04
 
Transaction Hash
Method
Block
From
To
Unlock171369212023-04-27 10:27:59595 days ago1682591279IN
0xc7e880d7...Bd278Ac04
0 ETH0.004136834.85416309
Unlock170619402023-04-16 20:57:11605 days ago1681678631IN
0xc7e880d7...Bd278Ac04
0 ETH0.0087986262.69417841
Claim Reward166645862023-02-19 19:02:47661 days ago1676833367IN
0xc7e880d7...Bd278Ac04
0 ETH0.0028018425.89623207
Unlock166004482023-02-10 19:28:47670 days ago1676057327IN
0xc7e880d7...Bd278Ac04
0 ETH0.002834320.96036348
Unlock165985642023-02-10 13:09:35671 days ago1676034575IN
0xc7e880d7...Bd278Ac04
0 ETH0.0027431423.0962717
Unlock165667042023-02-06 2:16:59675 days ago1675649819IN
0xc7e880d7...Bd278Ac04
0 ETH0.0021432118.04588157
Claim Reward165621662023-02-05 11:03:59676 days ago1675595039IN
0xc7e880d7...Bd278Ac04
0 ETH0.0009696217.04237966
Claim Reward165484262023-02-03 13:02:59678 days ago1675429379IN
0xc7e880d7...Bd278Ac04
0 ETH0.0013527623.77645361
Unlock165411172023-02-02 12:28:35679 days ago1675340915IN
0xc7e880d7...Bd278Ac04
0 ETH0.0024910918.42295692
Unlock165411132023-02-02 12:27:47679 days ago1675340867IN
0xc7e880d7...Bd278Ac04
0 ETH0.0029340419.26272232
Unlock165411042023-02-02 12:25:47679 days ago1675340747IN
0xc7e880d7...Bd278Ac04
0 ETH0.0020925616.82411776
Set Time Lock165411022023-02-02 12:25:23679 days ago1675340723IN
0xc7e880d7...Bd278Ac04
0 ETH0.0004132817.34369435
Unlock165404382023-02-02 10:11:47679 days ago1675332707IN
0xc7e880d7...Bd278Ac04
0 ETH0.0024709318.18601237
Unlock165381022023-02-02 2:20:35679 days ago1675304435IN
0xc7e880d7...Bd278Ac04
0 ETH0.0028630221.17275997
Unlock165380552023-02-02 2:11:11679 days ago1675303871IN
0xc7e880d7...Bd278Ac04
0 ETH0.0024199920.37549824
Unlock165354342023-02-01 17:23:59679 days ago1675272239IN
0xc7e880d7...Bd278Ac04
0 ETH0.0028688324.15452914
Claim Reward165351242023-02-01 16:21:47679 days ago1675268507IN
0xc7e880d7...Bd278Ac04
0 ETH0.0007915921.02901946
Unlock165344872023-02-01 14:13:23679 days ago1675260803IN
0xc7e880d7...Bd278Ac04
0 ETH0.0005855320.75859008
Unlock165344862023-02-01 14:13:11679 days ago1675260791IN
0xc7e880d7...Bd278Ac04
0 ETH0.0024578920.69453754
Claim Reward165339462023-02-01 12:24:23680 days ago1675254263IN
0xc7e880d7...Bd278Ac04
0 ETH0.0009173516.12361501
Claim Reward165339302023-02-01 12:21:11680 days ago1675254071IN
0xc7e880d7...Bd278Ac04
0 ETH0.0009326116.39188779
Unlock165327942023-02-01 8:32:11680 days ago1675240331IN
0xc7e880d7...Bd278Ac04
0 ETH0.0022509918.95259745
Unlock165303302023-02-01 0:16:35680 days ago1675210595IN
0xc7e880d7...Bd278Ac04
0 ETH0.002599121.88349039
Unlock165303252023-02-01 0:15:35680 days ago1675210535IN
0xc7e880d7...Bd278Ac04
0 ETH0.0026223122.07889889
Set Min Day Of M...165302302023-01-31 23:56:35680 days ago1675209395IN
0xc7e880d7...Bd278Ac04
0 ETH0.0006944524.09469099
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
166645862023-02-19 19:02:47661 days ago1676833367
0xc7e880d7...Bd278Ac04
0.04633256 ETH
166004482023-02-10 19:28:47670 days ago1676057327
0xc7e880d7...Bd278Ac04
0.01533373 ETH
165621662023-02-05 11:03:59676 days ago1675595039
0xc7e880d7...Bd278Ac04
0.14798468 ETH
165484262023-02-03 13:02:59678 days ago1675429379
0xc7e880d7...Bd278Ac04
0.01839524 ETH
165411172023-02-02 12:28:35679 days ago1675340915
0xc7e880d7...Bd278Ac04
0.14895438 ETH
165411132023-02-02 12:27:47679 days ago1675340867
0xc7e880d7...Bd278Ac04
0.03916896 ETH
165381022023-02-02 2:20:35679 days ago1675304435
0xc7e880d7...Bd278Ac04
0.00730357 ETH
165339462023-02-01 12:24:23680 days ago1675254263
0xc7e880d7...Bd278Ac04
0.04462767 ETH
165339302023-02-01 12:21:11680 days ago1675254071
0xc7e880d7...Bd278Ac04
0.04421392 ETH
165251282023-01-31 6:50:47681 days ago1675147847
0xc7e880d7...Bd278Ac04
0.00124199 ETH
165144622023-01-29 19:08:11682 days ago1675019291
0xc7e880d7...Bd278Ac04
0.0360716 ETH
164950162023-01-27 1:56:35685 days ago1674784595
0xc7e880d7...Bd278Ac04
0.00784413 ETH
164903182023-01-26 10:13:35686 days ago1674728015
0xc7e880d7...Bd278Ac04
0.05046591 ETH
164879852023-01-26 2:23:59686 days ago1674699839
0xc7e880d7...Bd278Ac04
0.00735998 ETH
164857032023-01-25 18:44:11686 days ago1674672251
0xc7e880d7...Bd278Ac04
0.21946176 ETH
164856632023-01-25 18:36:11686 days ago1674671771
0xc7e880d7...Bd278Ac04
0.97089271 ETH
164824302023-01-25 7:45:35687 days ago1674632735
0xc7e880d7...Bd278Ac04
0.07380968 ETH
164788252023-01-24 19:41:59687 days ago1674589319
0xc7e880d7...Bd278Ac04
0.08125843 ETH
164773772023-01-24 14:50:47687 days ago1674571847
0xc7e880d7...Bd278Ac04
0.00116209 ETH
164742822023-01-24 4:28:23688 days ago1674534503
0xc7e880d7...Bd278Ac04
0.12516671 ETH
164704862023-01-23 15:45:23688 days ago1674488723
0xc7e880d7...Bd278Ac04
0.02941211 ETH
164699722023-01-23 14:01:59688 days ago1674482519
0xc7e880d7...Bd278Ac04
0.05920382 ETH
164692042023-01-23 11:27:59689 days ago1674473279
0xc7e880d7...Bd278Ac04
0.02286186 ETH
164689752023-01-23 10:41:47689 days ago1674470507
0xc7e880d7...Bd278Ac04
0.02284842 ETH
164689742023-01-23 10:41:35689 days ago1674470495
0xc7e880d7...Bd278Ac04
0.00317556 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ParrotRewards

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-05
*/

/**
 *Submitted for verification at Etherscan.io on 2022-08-05
*/

/**
 *Submitted for verification at Etherscan.io on 2022-08-05
*/

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

// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @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 anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing 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);
    }
}

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

pragma solidity ^0.8.15;

interface IParrotRewards {
    function claimReward() external;
    function depositRewards() external payable;
    function getLockedShares(address wallet) external view returns (uint256);
    function lock(uint256 amount) external;
    function unlock(uint256 amount) external;
}

contract ParrotRewards is IParrotRewards, Ownable {
    address public shareholderToken;

    uint256 private constant ONE_DAY = 60 * 60 * 24;
    uint256 public timeLock = 30 days;
    uint256 public totalLockedUsers;
    uint256 public totalSharesDeposited;
    uint256 public totalRewards;
    uint256 public totalDistributed;
    uint256 public rewardsPerShare;
    uint256 private constant ACC_FACTOR = 10**36;

    int256 private constant OFFSET19700101 = 2440588;

    uint8 public minDayOfMonthCanLock = 1;
    uint8 public maxDayOfMonthCanLock = 5;

    struct Reward {
        uint256 totalExcluded;
        uint256 totalRealised;
        uint256 lastClaim;
    }

    struct Share {
        uint256 amount;
        uint256 lockedTime;
    }

    // amount of shares a user has
    mapping(address => Share) public shares;
    // reward information per user
    mapping(address => Reward) public rewards;

    event ClaimReward(address wallet);
    event DistributeReward(address indexed wallet, address payable receiver);
    event DepositRewards(address indexed wallet, uint256 amountETH);

    constructor(address _shareholderToken) {
        shareholderToken = _shareholderToken;
    }

    function lock(uint256 _amount) external {
        uint256 _currentDayOfMonth = _dayOfMonth(block.timestamp);
        require(
            _currentDayOfMonth >= minDayOfMonthCanLock &&
            _currentDayOfMonth <= maxDayOfMonthCanLock,
            "outside of allowed lock window"
        );
        address shareholder = msg.sender;
        IERC20 tokenContract = IERC20(shareholderToken);
        _amount = _amount == 0 ? tokenContract.balanceOf(shareholder) : _amount;
        tokenContract.transferFrom(shareholder, address(this), _amount);
        _addShares(shareholder, _amount);
    }

    function unlock(uint256 _amount) external {
        address shareholder = msg.sender;
        require(
            block.timestamp >= shares[shareholder].lockedTime + timeLock,
            "must wait the time lock before unstaking"
        );
        _amount = _amount == 0 ? shares[shareholder].amount : _amount;
        require(_amount > 0, "need tokens to unlock");
        require(
            _amount <= shares[shareholder].amount,
            "cannot unlock more than you have locked"
        );
        IERC20(shareholderToken).transfer(shareholder, _amount);
        _removeShares(shareholder, _amount);
    }

    function _addShares(address shareholder, uint256 amount) internal {
        _distributeReward(shareholder);

        uint256 sharesBefore = shares[shareholder].amount;
        totalSharesDeposited += amount;
        shares[shareholder].amount += amount;
        shares[shareholder].lockedTime = block.timestamp;
        if (sharesBefore == 0 && shares[shareholder].amount > 0) {
            totalLockedUsers++;
        }
        rewards[shareholder].totalExcluded = getCumulativeRewards(
            shares[shareholder].amount
        );
    }

    function _removeShares(address shareholder, uint256 amount) internal {
        amount = amount == 0 ? shares[shareholder].amount : amount;
        require(
            shares[shareholder].amount > 0 && amount <= shares[shareholder].amount,
            "you can only unlock if you have some lockd"
        );
        _distributeReward(shareholder);

        totalSharesDeposited -= amount;
        shares[shareholder].amount -= amount;
        if (shares[shareholder].amount == 0) {
            totalLockedUsers--;
        }
        rewards[shareholder].totalExcluded = getCumulativeRewards(
            shares[shareholder].amount
        );
  }

    function depositRewards() public payable override {
        _depositRewards(msg.value);
    }

    function _depositRewards(uint256 _amount) internal {
        require(_amount > 0, "must provide ETH to deposit");
        require(totalSharesDeposited > 0, "must be shares deposited");

        totalRewards += _amount;
        rewardsPerShare += (ACC_FACTOR * _amount) / totalSharesDeposited;
        emit DepositRewards(msg.sender, _amount);
    }

    function _distributeReward(address shareholder) internal {
        if (shares[shareholder].amount == 0) {
            return;
        }

        uint256 amount = getUnpaid(shareholder);

        rewards[shareholder].totalRealised += amount;
        rewards[shareholder].totalExcluded = getCumulativeRewards(
            shares[shareholder].amount
        );
        rewards[shareholder].lastClaim = block.timestamp;

        if (amount > 0) {
            bool success;
            address payable receiver = payable(shareholder);
            totalDistributed += amount;
            uint256 balanceBefore = address(this).balance;
            (success,) = receiver.call{ value: amount }('');
            require(address(this).balance >= balanceBefore - amount);
            emit DistributeReward(shareholder, receiver);
        }
    }

    function _dayOfMonth(uint256 _timestamp) internal pure returns (uint256) {
        (, , uint256 day) = _daysToDate(_timestamp / ONE_DAY);
        return day;
    }

    // date conversion algorithm from http://aa.usno.navy.mil/faq/docs/JD_Formula.php
    function _daysToDate(uint256 _days) internal pure returns (uint256, uint256, uint256) {
        int256 __days = int256(_days);

        int256 L = __days + 68569 + OFFSET19700101;
        int256 N = (4 * L) / 146097;
        L = L - (146097 * N + 3) / 4;
        int256 _year = (4000 * (L + 1)) / 1461001;
        L = L - (1461 * _year) / 4 + 31;
        int256 _month = (80 * L) / 2447;
        int256 _day = L - (2447 * _month) / 80;
        L = _month / 11;
        _month = _month + 2 - 12 * L;
        _year = 100 * (N - 49) + _year + L;

        return (uint256(_year), uint256(_month), uint256(_day));
    }

    function claimReward() external override {
        _distributeReward(msg.sender);
        emit ClaimReward(msg.sender);
    }

    // returns the unpaid rewards
    function getUnpaid(address shareholder) public view returns (uint256) {
        if (shares[shareholder].amount == 0) {
            return 0;
        }

        uint256 earnedRewards = getCumulativeRewards(shares[shareholder].amount);
        uint256 rewardsExcluded = rewards[shareholder].totalExcluded;
        if (earnedRewards <= rewardsExcluded) {
            return 0;
        }

        return earnedRewards - rewardsExcluded;
    }

    function getCumulativeRewards(uint256 share) internal view returns (uint256) {
        return (share * rewardsPerShare) / ACC_FACTOR;
    }

    function getLockedShares(address user) external view override returns (uint256) {
        return shares[user].amount;
    }

    function setMinDayOfMonthCanLock(uint8 _day) external onlyOwner {
        require(_day <= maxDayOfMonthCanLock, "can set min day above max day");
        minDayOfMonthCanLock = _day;
    }

    function setMaxDayOfMonthCanLock(uint8 _day) external onlyOwner {
        require(_day >= minDayOfMonthCanLock, "can set max day below min day");
        maxDayOfMonthCanLock = _day;
    }

    function setTimeLock(uint256 numSec) external onlyOwner {
        require(numSec <= 365 days, "must be less than a year");
        timeLock = numSec;
    }

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    receive() external payable {
        _depositRewards(msg.value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_shareholderToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"ClaimReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"DepositRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"address payable","name":"receiver","type":"address"}],"name":"DistributeReward","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"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositRewards","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getLockedShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDayOfMonthCanLock","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDayOfMonthCanLock","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"},{"internalType":"uint256","name":"lastClaim","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_day","type":"uint8"}],"name":"setMaxDayOfMonthCanLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_day","type":"uint8"}],"name":"setMinDayOfMonthCanLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numSec","type":"uint256"}],"name":"setTimeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareholderToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockedTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLockedUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSharesDeposited","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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262278d006002556008805461ffff191661050117905534801561002657600080fd5b50604051611690380380611690833981016040819052610045916100c3565b61004e33610073565b600180546001600160a01b0319166001600160a01b03929092169190911790556100f3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d557600080fd5b81516001600160a01b03811681146100ec57600080fd5b9392505050565b61158e806101026000396000f3fe60806040526004361061014f5760003560e01c80638f0000fd116100b6578063dc69c3631161006f578063dc69c363146103f5578063dd46706414610414578063e0395c1e14610434578063efca2eed1461044a578063f2fde38b14610460578063f5648a4f1461048057600080fd5b80638f0000fd1461032b578063b88a802f1461034b578063beb68d0514610360578063c7e1d0b114610380578063ce7c2ac214610396578063d085835a146103df57600080fd5b80635bcb318a116101085780635bcb318a146102645780635dfa41dd146102845780636198e339146102a4578063715018a6146102c457806389d96917146102d95780638da5cb5b146102f957600080fd5b80630700037d146101645780630e15561a146101c0578063152111f7146101e45780633c6e6789146101ec5780633d28a280146102025780633f4b3b7e1461023857600080fd5b3661015f5761015d34610495565b005b600080fd5b34801561017057600080fd5b506101a061017f3660046112c0565b600a6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b3480156101cc57600080fd5b506101d660055481565b6040519081526020016101b7565b61015d6105c7565b3480156101f857600080fd5b506101d660045481565b34801561020e57600080fd5b506101d661021d3660046112c0565b6001600160a01b031660009081526009602052604090205490565b34801561024457600080fd5b506008546102529060ff1681565b60405160ff90911681526020016101b7565b34801561027057600080fd5b5061015d61027f3660046112f0565b6105d2565b34801561029057600080fd5b5061015d61029f366004611309565b610633565b3480156102b057600080fd5b5061015d6102bf3660046112f0565b6106b0565b3480156102d057600080fd5b5061015d61089f565b3480156102e557600080fd5b506101d66102f43660046112c0565b6108b1565b34801561030557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101b7565b34801561033757600080fd5b5061015d610346366004611309565b610939565b34801561035757600080fd5b5061015d6109b5565b34801561036c57600080fd5b50600154610313906001600160a01b031681565b34801561038c57600080fd5b506101d660075481565b3480156103a257600080fd5b506103ca6103b13660046112c0565b6009602052600090815260409020805460019091015482565b604080519283526020830191909152016101b7565b3480156103eb57600080fd5b506101d660025481565b34801561040157600080fd5b5060085461025290610100900460ff1681565b34801561042057600080fd5b5061015d61042f3660046112f0565b6109f3565b34801561044057600080fd5b506101d660035481565b34801561045657600080fd5b506101d660065481565b34801561046c57600080fd5b5061015d61047b3660046112c0565b610b7e565b34801561048c57600080fd5b5061015d610bf7565b600081116104ea5760405162461bcd60e51b815260206004820152601b60248201527f6d7573742070726f766964652045544820746f206465706f736974000000000060448201526064015b60405180910390fd5b60006004541161053c5760405162461bcd60e51b815260206004820152601860248201527f6d75737420626520736861726573206465706f7369746564000000000000000060448201526064016104e1565b806005600082825461054e9190611342565b909155505060045461056f826ec097ce7bc90715b34b9f100000000061135a565b610579919061138f565b6007600082825461058a9190611342565b909155505060405181815233907fb9ad861b752f80117b35bea6dec99933d8a5ae360f2839ee8784b750d56134099060200160405180910390a250565b6105d034610495565b565b6105da610c41565b6301e1338081111561062e5760405162461bcd60e51b815260206004820152601860248201527f6d757374206265206c657373207468616e20612079656172000000000000000060448201526064016104e1565b600255565b61063b610c41565b60085460ff90811690821610156106945760405162461bcd60e51b815260206004820152601d60248201527f63616e20736574206d6178206461792062656c6f77206d696e2064617900000060448201526064016104e1565b6008805460ff9092166101000261ff0019909216919091179055565b6002543360008181526009602052604090206001015490916106d191611342565b4210156107315760405162461bcd60e51b815260206004820152602860248201527f6d7573742077616974207468652074696d65206c6f636b206265666f726520756044820152676e7374616b696e6760c01b60648201526084016104e1565b811561073d5781610757565b6001600160a01b0381166000908152600960205260409020545b9150600082116107a15760405162461bcd60e51b81526020600482015260156024820152746e65656420746f6b656e7320746f20756e6c6f636b60581b60448201526064016104e1565b6001600160a01b0381166000908152600960205260409020548211156108195760405162461bcd60e51b815260206004820152602760248201527f63616e6e6f7420756e6c6f636b206d6f7265207468616e20796f752068617665604482015266081b1bd8dad95960ca1b60648201526084016104e1565b60015460405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af115801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906113a3565b5061089b8183610c9b565b5050565b6108a7610c41565b6105d06000610e26565b6001600160a01b03811660009081526009602052604081205481036108d857506000919050565b6001600160a01b0382166000908152600960205260408120546108fa90610e76565b6001600160a01b0384166000908152600a6020526040902054909150808211610927575060009392505050565b61093181836113c5565b949350505050565b610941610c41565b60085460ff6101009091048116908216111561099f5760405162461bcd60e51b815260206004820152601d60248201527f63616e20736574206d696e206461792061626f7665206d61782064617900000060448201526064016104e1565b6008805460ff191660ff92909216919091179055565b6109be33610ea6565b6040513381527f63e32091e4445d16e29c33a6b264577c2d86694021aa4e6f4dd590048f5792e89060200160405180910390a1565b60006109fe42611022565b60085490915060ff168110801590610a205750600854610100900460ff168111155b610a6c5760405162461bcd60e51b815260206004820152601e60248201527f6f757473696465206f6620616c6c6f776564206c6f636b2077696e646f77000060448201526064016104e1565b60015433906001600160a01b03168315610a865783610af0565b6040516370a0823160e01b81526001600160a01b0383811660048301528216906370a0823190602401602060405180830381865afa158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af091906113dc565b6040516323b872dd60e01b81526001600160a01b03848116600483015230602483015260448201839052919550908216906323b872dd906064016020604051808303816000875af1158015610b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6d91906113a3565b50610b788285611043565b50505050565b610b86610c41565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e1565b610bf481610e26565b50565b610bff610c41565b604051600090339047908381818185875af1925050503d8060008114610b78576040519150601f19603f3d011682016040523d82523d6000602084013e610b78565b6000546001600160a01b031633146105d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e1565b8015610ca75780610cc1565b6001600160a01b0382166000908152600960205260409020545b6001600160a01b03831660009081526009602052604090205490915015801590610d0357506001600160a01b0382166000908152600960205260409020548111155b610d625760405162461bcd60e51b815260206004820152602a60248201527f796f752063616e206f6e6c7920756e6c6f636b20696620796f752068617665206044820152691cdbdb59481b1bd8dad960b21b60648201526084016104e1565b610d6b82610ea6565b8060046000828254610d7d91906113c5565b90915550506001600160a01b03821660009081526009602052604081208054839290610daa9084906113c5565b90915550506001600160a01b0382166000908152600960205260408120549003610de45760038054906000610dde836113f5565b91905055505b6001600160a01b038216600090815260096020526040902054610e0690610e76565b6001600160a01b039092166000908152600a602052604090209190915550565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006ec097ce7bc90715b34b9f100000000060075483610e96919061135a565b610ea0919061138f565b92915050565b6001600160a01b0381166000908152600960205260408120549003610ec85750565b6000610ed3826108b1565b6001600160a01b0383166000908152600a6020526040812060010180549293508392909190610f03908490611342565b90915550506001600160a01b038216600090815260096020526040902054610f2a90610e76565b6001600160a01b0383166000908152600a6020526040902090815542600290910155801561089b576000808390508260066000828254610f6a9190611342565b909155505060405147906001600160a01b038316908590600081818185875af1925050503d8060008114610fba576040519150601f19603f3d011682016040523d82523d6000602084013e610fbf565b606091505b50909350610fcf905084826113c5565b471015610fdb57600080fd5b6040516001600160a01b0383811682528616907f762e3e2d1a38b40402072407d6eed487e6836ef3ced426a733334e8b304c779b9060200160405180910390a25050505050565b60008061103a611035620151808561138f565b61114c565b95945050505050565b61104c82610ea6565b6001600160a01b0382166000908152600960205260408120546004805491928492611078908490611342565b90915550506001600160a01b038316600090815260096020526040812080548492906110a5908490611342565b90915550506001600160a01b038316600090815260096020526040902042600190910155801580156110ee57506001600160a01b03831660009081526009602052604090205415155b1561110957600380549060006111038361140c565b91905055505b6001600160a01b03831660009081526009602052604090205461112b90610e76565b6001600160a01b039093166000908152600a60205260409020929092555050565b60008080838162253d8c6111638362010bd9611425565b61116d9190611425565b9050600062023ab1611180836004611466565b61118a91906114eb565b9050600461119b8262023ab1611466565b6111a6906003611425565b6111b091906114eb565b6111ba9083611519565b9150600062164b096111cd846001611425565b6111d990610fa0611466565b6111e391906114eb565b905060046111f3826105b5611466565b6111fd91906114eb565b6112079084611519565b61121290601f611425565b9250600061098f611224856050611466565b61122e91906114eb565b9050600060506112408361098f611466565b61124a91906114eb565b6112549086611519565b9050611261600b836114eb565b945061126e85600c611466565b611279836002611425565b6112839190611519565b91508483611292603187611519565b61129d906064611466565b6112a79190611425565b6112b19190611425565b9a919950975095505050505050565b6000602082840312156112d257600080fd5b81356001600160a01b03811681146112e957600080fd5b9392505050565b60006020828403121561130257600080fd5b5035919050565b60006020828403121561131b57600080fd5b813560ff811681146112e957600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156113555761135561132c565b500190565b60008160001904831182151516156113745761137461132c565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261139e5761139e611379565b500490565b6000602082840312156113b557600080fd5b815180151581146112e957600080fd5b6000828210156113d7576113d761132c565b500390565b6000602082840312156113ee57600080fd5b5051919050565b6000816114045761140461132c565b506000190190565b60006001820161141e5761141e61132c565b5060010190565b600080821280156001600160ff1b03849003851316156114475761144761132c565b600160ff1b83900384128116156114605761146061132c565b50500190565b60006001600160ff1b038184138284138082168684048611161561148c5761148c61132c565b600160ff1b60008712828116878305891216156114ab576114ab61132c565b600087129250878205871284841616156114c7576114c761132c565b878505871281841616156114dd576114dd61132c565b505050929093029392505050565b6000826114fa576114fa611379565b600160ff1b8214600019841416156115145761151461132c565b500590565b60008083128015600160ff1b8501841216156115375761153761132c565b6001600160ff1b03840183138116156115525761155261132c565b5050039056fea26469706673582212201e6d33b25985ecc867121eed2d16c1e3dd00614dde355dbe479c56c90cfde9e964736f6c634300080f00330000000000000000000000007369d128a7e1a0dad37b7057bb37d700a58b3ff5

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638f0000fd116100b6578063dc69c3631161006f578063dc69c363146103f5578063dd46706414610414578063e0395c1e14610434578063efca2eed1461044a578063f2fde38b14610460578063f5648a4f1461048057600080fd5b80638f0000fd1461032b578063b88a802f1461034b578063beb68d0514610360578063c7e1d0b114610380578063ce7c2ac214610396578063d085835a146103df57600080fd5b80635bcb318a116101085780635bcb318a146102645780635dfa41dd146102845780636198e339146102a4578063715018a6146102c457806389d96917146102d95780638da5cb5b146102f957600080fd5b80630700037d146101645780630e15561a146101c0578063152111f7146101e45780633c6e6789146101ec5780633d28a280146102025780633f4b3b7e1461023857600080fd5b3661015f5761015d34610495565b005b600080fd5b34801561017057600080fd5b506101a061017f3660046112c0565b600a6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b3480156101cc57600080fd5b506101d660055481565b6040519081526020016101b7565b61015d6105c7565b3480156101f857600080fd5b506101d660045481565b34801561020e57600080fd5b506101d661021d3660046112c0565b6001600160a01b031660009081526009602052604090205490565b34801561024457600080fd5b506008546102529060ff1681565b60405160ff90911681526020016101b7565b34801561027057600080fd5b5061015d61027f3660046112f0565b6105d2565b34801561029057600080fd5b5061015d61029f366004611309565b610633565b3480156102b057600080fd5b5061015d6102bf3660046112f0565b6106b0565b3480156102d057600080fd5b5061015d61089f565b3480156102e557600080fd5b506101d66102f43660046112c0565b6108b1565b34801561030557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101b7565b34801561033757600080fd5b5061015d610346366004611309565b610939565b34801561035757600080fd5b5061015d6109b5565b34801561036c57600080fd5b50600154610313906001600160a01b031681565b34801561038c57600080fd5b506101d660075481565b3480156103a257600080fd5b506103ca6103b13660046112c0565b6009602052600090815260409020805460019091015482565b604080519283526020830191909152016101b7565b3480156103eb57600080fd5b506101d660025481565b34801561040157600080fd5b5060085461025290610100900460ff1681565b34801561042057600080fd5b5061015d61042f3660046112f0565b6109f3565b34801561044057600080fd5b506101d660035481565b34801561045657600080fd5b506101d660065481565b34801561046c57600080fd5b5061015d61047b3660046112c0565b610b7e565b34801561048c57600080fd5b5061015d610bf7565b600081116104ea5760405162461bcd60e51b815260206004820152601b60248201527f6d7573742070726f766964652045544820746f206465706f736974000000000060448201526064015b60405180910390fd5b60006004541161053c5760405162461bcd60e51b815260206004820152601860248201527f6d75737420626520736861726573206465706f7369746564000000000000000060448201526064016104e1565b806005600082825461054e9190611342565b909155505060045461056f826ec097ce7bc90715b34b9f100000000061135a565b610579919061138f565b6007600082825461058a9190611342565b909155505060405181815233907fb9ad861b752f80117b35bea6dec99933d8a5ae360f2839ee8784b750d56134099060200160405180910390a250565b6105d034610495565b565b6105da610c41565b6301e1338081111561062e5760405162461bcd60e51b815260206004820152601860248201527f6d757374206265206c657373207468616e20612079656172000000000000000060448201526064016104e1565b600255565b61063b610c41565b60085460ff90811690821610156106945760405162461bcd60e51b815260206004820152601d60248201527f63616e20736574206d6178206461792062656c6f77206d696e2064617900000060448201526064016104e1565b6008805460ff9092166101000261ff0019909216919091179055565b6002543360008181526009602052604090206001015490916106d191611342565b4210156107315760405162461bcd60e51b815260206004820152602860248201527f6d7573742077616974207468652074696d65206c6f636b206265666f726520756044820152676e7374616b696e6760c01b60648201526084016104e1565b811561073d5781610757565b6001600160a01b0381166000908152600960205260409020545b9150600082116107a15760405162461bcd60e51b81526020600482015260156024820152746e65656420746f6b656e7320746f20756e6c6f636b60581b60448201526064016104e1565b6001600160a01b0381166000908152600960205260409020548211156108195760405162461bcd60e51b815260206004820152602760248201527f63616e6e6f7420756e6c6f636b206d6f7265207468616e20796f752068617665604482015266081b1bd8dad95960ca1b60648201526084016104e1565b60015460405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af115801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906113a3565b5061089b8183610c9b565b5050565b6108a7610c41565b6105d06000610e26565b6001600160a01b03811660009081526009602052604081205481036108d857506000919050565b6001600160a01b0382166000908152600960205260408120546108fa90610e76565b6001600160a01b0384166000908152600a6020526040902054909150808211610927575060009392505050565b61093181836113c5565b949350505050565b610941610c41565b60085460ff6101009091048116908216111561099f5760405162461bcd60e51b815260206004820152601d60248201527f63616e20736574206d696e206461792061626f7665206d61782064617900000060448201526064016104e1565b6008805460ff191660ff92909216919091179055565b6109be33610ea6565b6040513381527f63e32091e4445d16e29c33a6b264577c2d86694021aa4e6f4dd590048f5792e89060200160405180910390a1565b60006109fe42611022565b60085490915060ff168110801590610a205750600854610100900460ff168111155b610a6c5760405162461bcd60e51b815260206004820152601e60248201527f6f757473696465206f6620616c6c6f776564206c6f636b2077696e646f77000060448201526064016104e1565b60015433906001600160a01b03168315610a865783610af0565b6040516370a0823160e01b81526001600160a01b0383811660048301528216906370a0823190602401602060405180830381865afa158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af091906113dc565b6040516323b872dd60e01b81526001600160a01b03848116600483015230602483015260448201839052919550908216906323b872dd906064016020604051808303816000875af1158015610b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6d91906113a3565b50610b788285611043565b50505050565b610b86610c41565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e1565b610bf481610e26565b50565b610bff610c41565b604051600090339047908381818185875af1925050503d8060008114610b78576040519150601f19603f3d011682016040523d82523d6000602084013e610b78565b6000546001600160a01b031633146105d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e1565b8015610ca75780610cc1565b6001600160a01b0382166000908152600960205260409020545b6001600160a01b03831660009081526009602052604090205490915015801590610d0357506001600160a01b0382166000908152600960205260409020548111155b610d625760405162461bcd60e51b815260206004820152602a60248201527f796f752063616e206f6e6c7920756e6c6f636b20696620796f752068617665206044820152691cdbdb59481b1bd8dad960b21b60648201526084016104e1565b610d6b82610ea6565b8060046000828254610d7d91906113c5565b90915550506001600160a01b03821660009081526009602052604081208054839290610daa9084906113c5565b90915550506001600160a01b0382166000908152600960205260408120549003610de45760038054906000610dde836113f5565b91905055505b6001600160a01b038216600090815260096020526040902054610e0690610e76565b6001600160a01b039092166000908152600a602052604090209190915550565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006ec097ce7bc90715b34b9f100000000060075483610e96919061135a565b610ea0919061138f565b92915050565b6001600160a01b0381166000908152600960205260408120549003610ec85750565b6000610ed3826108b1565b6001600160a01b0383166000908152600a6020526040812060010180549293508392909190610f03908490611342565b90915550506001600160a01b038216600090815260096020526040902054610f2a90610e76565b6001600160a01b0383166000908152600a6020526040902090815542600290910155801561089b576000808390508260066000828254610f6a9190611342565b909155505060405147906001600160a01b038316908590600081818185875af1925050503d8060008114610fba576040519150601f19603f3d011682016040523d82523d6000602084013e610fbf565b606091505b50909350610fcf905084826113c5565b471015610fdb57600080fd5b6040516001600160a01b0383811682528616907f762e3e2d1a38b40402072407d6eed487e6836ef3ced426a733334e8b304c779b9060200160405180910390a25050505050565b60008061103a611035620151808561138f565b61114c565b95945050505050565b61104c82610ea6565b6001600160a01b0382166000908152600960205260408120546004805491928492611078908490611342565b90915550506001600160a01b038316600090815260096020526040812080548492906110a5908490611342565b90915550506001600160a01b038316600090815260096020526040902042600190910155801580156110ee57506001600160a01b03831660009081526009602052604090205415155b1561110957600380549060006111038361140c565b91905055505b6001600160a01b03831660009081526009602052604090205461112b90610e76565b6001600160a01b039093166000908152600a60205260409020929092555050565b60008080838162253d8c6111638362010bd9611425565b61116d9190611425565b9050600062023ab1611180836004611466565b61118a91906114eb565b9050600461119b8262023ab1611466565b6111a6906003611425565b6111b091906114eb565b6111ba9083611519565b9150600062164b096111cd846001611425565b6111d990610fa0611466565b6111e391906114eb565b905060046111f3826105b5611466565b6111fd91906114eb565b6112079084611519565b61121290601f611425565b9250600061098f611224856050611466565b61122e91906114eb565b9050600060506112408361098f611466565b61124a91906114eb565b6112549086611519565b9050611261600b836114eb565b945061126e85600c611466565b611279836002611425565b6112839190611519565b91508483611292603187611519565b61129d906064611466565b6112a79190611425565b6112b19190611425565b9a919950975095505050505050565b6000602082840312156112d257600080fd5b81356001600160a01b03811681146112e957600080fd5b9392505050565b60006020828403121561130257600080fd5b5035919050565b60006020828403121561131b57600080fd5b813560ff811681146112e957600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156113555761135561132c565b500190565b60008160001904831182151516156113745761137461132c565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261139e5761139e611379565b500490565b6000602082840312156113b557600080fd5b815180151581146112e957600080fd5b6000828210156113d7576113d761132c565b500390565b6000602082840312156113ee57600080fd5b5051919050565b6000816114045761140461132c565b506000190190565b60006001820161141e5761141e61132c565b5060010190565b600080821280156001600160ff1b03849003851316156114475761144761132c565b600160ff1b83900384128116156114605761146061132c565b50500190565b60006001600160ff1b038184138284138082168684048611161561148c5761148c61132c565b600160ff1b60008712828116878305891216156114ab576114ab61132c565b600087129250878205871284841616156114c7576114c761132c565b878505871281841616156114dd576114dd61132c565b505050929093029392505050565b6000826114fa576114fa611379565b600160ff1b8214600019841416156115145761151461132c565b500590565b60008083128015600160ff1b8501841216156115375761153761132c565b6001600160ff1b03840183138116156115525761155261132c565b5050039056fea26469706673582212201e6d33b25985ecc867121eed2d16c1e3dd00614dde355dbe479c56c90cfde9e964736f6c634300080f0033

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

0000000000000000000000007369d128a7e1a0dad37b7057bb37d700a58b3ff5

-----Decoded View---------------
Arg [0] : _shareholderToken (address): 0x7369D128A7e1a0dad37B7057Bb37D700A58b3ff5

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007369d128a7e1a0dad37b7057bb37d700a58b3ff5


Deployed Bytecode Sourcemap

6757:7678:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14398:26;14414:9;14398:15;:26::i;:::-;6757:7678;;;;;7660:41;;;;;;;;;;-1:-1:-1;7660:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;507:25:1;;;563:2;548:18;;541:34;;;;591:18;;;584:34;495:2;480:18;7660:41:0;;;;;;;;7028:27;;;;;;;;;;;;;;;;;;;775:25:1;;;763:2;748:18;7028:27:0;629:177:1;10490:95:0;;;:::i;6986:35::-;;;;;;;;;;;;;;;;13495:125;;;;;;;;;;-1:-1:-1;13495:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;13593:12:0;13566:7;13593:12;;;:6;:12;;;;;:19;;13495:125;7247:37;;;;;;;;;;-1:-1:-1;7247:37:0;;;;;;;;;;;983:4:1;971:17;;;953:36;;941:2;926:18;7247:37:0;811:184:1;14026:158:0;;;;;;;;;;-1:-1:-1;14026:158:0;;;;;:::i;:::-;;:::i;13827:191::-;;;;;;;;;;-1:-1:-1;13827:191:0;;;;;:::i;:::-;;:::i;8619:631::-;;;;;;;;;;-1:-1:-1;8619:631:0;;;;;:::i;:::-;;:::i;2803:103::-;;;;;;;;;;;;;:::i;12888:450::-;;;;;;;;;;-1:-1:-1;12888:450:0;;;;;:::i;:::-;;:::i;2155:87::-;;;;;;;;;;-1:-1:-1;2201:7:0;2228:6;-1:-1:-1;;;;;2228:6:0;2155:87;;;-1:-1:-1;;;;;1623:32:1;;;1605:51;;1593:2;1578:18;2155:87:0;1459:203:1;13628:191:0;;;;;;;;;;-1:-1:-1;13628:191:0;;;;;:::i;:::-;;:::i;12717:128::-;;;;;;;;;;;;;:::i;6814:31::-;;;;;;;;;;-1:-1:-1;6814:31:0;;;;-1:-1:-1;;;;;6814:31:0;;;7100:30;;;;;;;;;;;;;;;;7578:39;;;;;;;;;;-1:-1:-1;7578:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1841:25:1;;;1897:2;1882:18;;1875:34;;;;1814:18;7578:39:0;1667:248:1;6908:33:0;;;;;;;;;;;;;;;;7291:37;;;;;;;;;;-1:-1:-1;7291:37:0;;;;;;;;;;;8003:608;;;;;;;;;;-1:-1:-1;8003:608:0;;;;;:::i;:::-;;:::i;6948:31::-;;;;;;;;;;;;;;;;7062;;;;;;;;;;;;;;;;3061:201;;;;;;;;;;-1:-1:-1;3061:201:0;;;;;:::i;:::-;;:::i;14192:160::-;;;;;;;;;;;;;:::i;10593:355::-;10673:1;10663:7;:11;10655:51;;;;-1:-1:-1;;;10655:51:0;;2122:2:1;10655:51:0;;;2104:21:1;2161:2;2141:18;;;2134:30;2200:29;2180:18;;;2173:57;2247:18;;10655:51:0;;;;;;;;;10748:1;10725:20;;:24;10717:61;;;;-1:-1:-1;;;10717:61:0;;2478:2:1;10717:61:0;;;2460:21:1;2517:2;2497:18;;;2490:30;2556:26;2536:18;;;2529:54;2600:18;;10717:61:0;2276:348:1;10717:61:0;10807:7;10791:12;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;10869:20:0;;10845;10858:7;7175:6;10845:20;:::i;:::-;10844:45;;;;:::i;:::-;10825:15;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;10905:35:0;;775:25:1;;;10920:10:0;;10905:35;;763:2:1;748:18;10905:35:0;;;;;;;10593:355;:::o;10490:95::-;10551:26;10567:9;10551:15;:26::i;:::-;10490:95::o;14026:158::-;2041:13;:11;:13::i;:::-;14111:8:::1;14101:6;:18;;14093:55;;;::::0;-1:-1:-1;;;14093:55:0;;3526:2:1;14093:55:0::1;::::0;::::1;3508:21:1::0;3565:2;3545:18;;;3538:30;3604:26;3584:18;;;3577:54;3648:18;;14093:55:0::1;3324:348:1::0;14093:55:0::1;14159:8;:17:::0;14026:158::o;13827:191::-;2041:13;:11;:13::i;:::-;13918:20:::1;::::0;::::1;::::0;;::::1;13910:28:::0;;::::1;;;13902:70;;;::::0;-1:-1:-1;;;13902:70:0;;3879:2:1;13902:70:0::1;::::0;::::1;3861:21:1::0;3918:2;3898:18;;;3891:30;3957:31;3937:18;;;3930:59;4006:18;;13902:70:0::1;3677:353:1::0;13902:70:0::1;13983:20;:27:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;13983:27:0;;::::1;::::0;;;::::1;::::0;;13827:191::o;8619:631::-;8789:8;;8694:10;8672:19;8756;;;:6;:19;;;;;:30;;;8694:10;;8756:41;;;:::i;:::-;8737:15;:60;;8715:150;;;;-1:-1:-1;;;8715:150:0;;4237:2:1;8715:150:0;;;4219:21:1;4276:2;4256:18;;;4249:30;4315:34;4295:18;;;4288:62;-1:-1:-1;;;4366:18:1;;;4359:38;4414:19;;8715:150:0;4035:404:1;8715:150:0;8886:12;;:51;;8930:7;8886:51;;;-1:-1:-1;;;;;8901:19:0;;;;;;:6;:19;;;;;:26;8886:51;8876:61;;8966:1;8956:7;:11;8948:45;;;;-1:-1:-1;;;8948:45:0;;4646:2:1;8948:45:0;;;4628:21:1;4685:2;4665:18;;;4658:30;-1:-1:-1;;;4704:18:1;;;4697:51;4765:18;;8948:45:0;4444:345:1;8948:45:0;-1:-1:-1;;;;;9037:19:0;;;;;;:6;:19;;;;;:26;9026:37;;;9004:126;;;;-1:-1:-1;;;9004:126:0;;4996:2:1;9004:126:0;;;4978:21:1;5035:2;5015:18;;;5008:30;5074:34;5054:18;;;5047:62;-1:-1:-1;;;5125:18:1;;;5118:37;5172:19;;9004:126:0;4794:403:1;9004:126:0;9148:16;;9141:55;;-1:-1:-1;;;9141:55:0;;-1:-1:-1;;;;;5394:32:1;;;9141:55:0;;;5376:51:1;5443:18;;;5436:34;;;9148:16:0;;;;9141:33;;5349:18:1;;9141:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9207:35;9221:11;9234:7;9207:13;:35::i;:::-;8661:589;8619:631;:::o;2803:103::-;2041:13;:11;:13::i;:::-;2868:30:::1;2895:1;2868:18;:30::i;12888:450::-:0;-1:-1:-1;;;;;12973:19:0;;12949:7;12973:19;;;:6;:19;;;;;:26;:31;;12969:72;;-1:-1:-1;13028:1:0;;12888:450;-1:-1:-1;12888:450:0:o;12969:72::-;-1:-1:-1;;;;;13098:19:0;;13053:21;13098:19;;;:6;:19;;;;;:26;13077:48;;:20;:48::i;:::-;-1:-1:-1;;;;;13162:20:0;;13136:23;13162:20;;;:7;:20;;;;;:34;13053:72;;-1:-1:-1;13211:32:0;;;13207:73;;-1:-1:-1;13267:1:0;;12888:450;-1:-1:-1;;;12888:450:0:o;13207:73::-;13299:31;13315:15;13299:13;:31;:::i;:::-;13292:38;12888:450;-1:-1:-1;;;;12888:450:0:o;13628:191::-;2041:13;:11;:13::i;:::-;13719:20:::1;::::0;::::1;;::::0;;::::1;::::0;::::1;13711:28:::0;;::::1;;;13703:70;;;::::0;-1:-1:-1;;;13703:70:0;;6095:2:1;13703:70:0::1;::::0;::::1;6077:21:1::0;6134:2;6114:18;;;6107:30;6173:31;6153:18;;;6146:59;6222:18;;13703:70:0::1;5893:353:1::0;13703:70:0::1;13784:20;:27:::0;;-1:-1:-1;;13784:27:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;13628:191::o;12717:128::-;12769:29;12787:10;12769:17;:29::i;:::-;12814:23;;12826:10;1605:51:1;;12814:23:0;;1593:2:1;1578:18;12814:23:0;;;;;;;12717:128::o;8003:608::-;8054:26;8083:28;8095:15;8083:11;:28::i;:::-;8166:20;;8054:57;;-1:-1:-1;8166:20:0;;8144:42;;;;;:101;;-1:-1:-1;8225:20:0;;;;;;;8203:42;;;8144:101;8122:181;;;;-1:-1:-1;;;8122:181:0;;6453:2:1;8122:181:0;;;6435:21:1;6492:2;6472:18;;;6465:30;6531:32;6511:18;;;6504:60;6581:18;;8122:181:0;6251:354:1;8122:181:0;8387:16;;8336:10;;-1:-1:-1;;;;;8387:16:0;8425:12;;:61;;8479:7;8425:61;;;8440:36;;-1:-1:-1;;;8440:36:0;;-1:-1:-1;;;;;1623:32:1;;;8440:36:0;;;1605:51:1;8440:23:0;;;;;1578:18:1;;8440:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8497:63;;-1:-1:-1;;;8497:63:0;;-1:-1:-1;;;;;7057:15:1;;;8497:63:0;;;7039:34:1;8545:4:0;7089:18:1;;;7082:43;7141:18;;;7134:34;;;8415:71:0;;-1:-1:-1;8497:26:0;;;;;;6974:18:1;;8497:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8571:32;8582:11;8595:7;8571:10;:32::i;:::-;8043:568;;;8003:608;:::o;3061:201::-;2041:13;:11;:13::i;:::-;-1:-1:-1;;;;;3150:22:0;::::1;3142:73;;;::::0;-1:-1:-1;;;3142:73:0;;7381:2:1;3142:73:0::1;::::0;::::1;7363:21:1::0;7420:2;7400:18;;;7393:30;7459:34;7439:18;;;7432:62;-1:-1:-1;;;7510:18:1;;;7503:36;7556:19;;3142:73:0::1;7179:402:1::0;3142:73:0::1;3226:28;3245:8;3226:18;:28::i;:::-;3061:201:::0;:::o;14192:160::-;2041:13;:11;:13::i;:::-;14286:58:::1;::::0;14250:12:::1;::::0;14294:10:::1;::::0;14318:21:::1;::::0;14250:12;14286:58;14250:12;14286:58;14318:21;14294:10;14286:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2320:132:::0;2201:7;2228:6;-1:-1:-1;;;;;2228:6:0;845:10;2384:23;2376:68;;;;-1:-1:-1;;;2376:68:0;;7998:2:1;2376:68:0;;;7980:21:1;;;8017:18;;;8010:30;8076:34;8056:18;;;8049:62;8128:18;;2376:68:0;7796:356:1;9822:660:0;9911:11;;:49;;9954:6;9911:49;;;-1:-1:-1;;;;;9925:19:0;;;;;;:6;:19;;;;;:26;9911:49;-1:-1:-1;;;;;9993:19:0;;10022:1;9993:19;;;:6;:19;;;;;:26;9902:58;;-1:-1:-1;9993:30:0;;;;:70;;-1:-1:-1;;;;;;10037:19:0;;;;;;:6;:19;;;;;:26;10027:36;;;9993:70;9971:162;;;;-1:-1:-1;;;9971:162:0;;8359:2:1;9971:162:0;;;8341:21:1;8398:2;8378:18;;;8371:30;8437:34;8417:18;;;8410:62;-1:-1:-1;;;8488:18:1;;;8481:40;8538:19;;9971:162:0;8157:406:1;9971:162:0;10144:30;10162:11;10144:17;:30::i;:::-;10211:6;10187:20;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;10228:19:0;;;;;;:6;:19;;;;;:36;;10258:6;;10228:19;:36;;10258:6;;10228:36;:::i;:::-;;;;-1:-1:-1;;;;;;;10279:19:0;;;;;;:6;:19;;;;;:26;:31;;10275:82;;10327:16;:18;;;:16;:18;;;:::i;:::-;;;;;;10275:82;-1:-1:-1;;;;;10439:19:0;;;;;;:6;:19;;;;;:26;10404:72;;:20;:72::i;:::-;-1:-1:-1;;;;;10367:20:0;;;;;;;:7;:20;;;;;:109;;;;-1:-1:-1;9822:660:0:o;3422:191::-;3496:16;3515:6;;-1:-1:-1;;;;;3532:17:0;;;-1:-1:-1;;;;;;3532:17:0;;;;;;3565:40;;3515:6;;;;;;;3565:40;;3496:16;3565:40;3485:128;3422:191;:::o;13346:141::-;13414:7;7175:6;13450:15;;13442:5;:23;;;;:::i;:::-;13441:38;;;;:::i;:::-;13434:45;13346:141;-1:-1:-1;;13346:141:0:o;10956:855::-;-1:-1:-1;;;;;11028:19:0;;;;;;:6;:19;;;;;:26;:31;;11024:70;;10956:855;:::o;11024:70::-;11106:14;11123:22;11133:11;11123:9;:22::i;:::-;-1:-1:-1;;;;;11158:20:0;;;;;;:7;:20;;;;;:34;;:44;;11106:39;;-1:-1:-1;11106:39:0;;11158:34;;:20;:44;;11106:39;;11158:44;:::i;:::-;;;;-1:-1:-1;;;;;;;11285:19:0;;;;;;:6;:19;;;;;:26;11250:72;;:20;:72::i;:::-;-1:-1:-1;;;;;11213:20:0;;;;;;:7;:20;;;;;:109;;;11366:15;11333:30;;;;:48;11398:10;;11394:410;;11425:12;11452:24;11487:11;11452:47;;11534:6;11514:16;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;11628:34:0;;11579:21;;-1:-1:-1;;;;;11628:13:0;;;11650:6;;11628:34;;;;11650:6;11628:13;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11615:47:0;;-1:-1:-1;11710:22:0;;-1:-1:-1;11726:6:0;11710:13;:22;:::i;:::-;11685:21;:47;;11677:56;;;;;;11753:39;;-1:-1:-1;;;;;1623:32:1;;;1605:51;;11753:39:0;;;;;1593:2:1;1578:18;11753:39:0;;;;;;;11410:394;;;11013:798;10956:855;:::o;11819:166::-;11883:7;;11923:33;11935:20;6889:12;11935:10;:20;:::i;:::-;11923:11;:33::i;:::-;11903:53;11819:166;-1:-1:-1;;;;;11819:166:0:o;9258:556::-;9335:30;9353:11;9335:17;:30::i;:::-;-1:-1:-1;;;;;9401:19:0;;9378:20;9401:19;;;:6;:19;;;;;:26;9438:20;:30;;9401:26;;9462:6;;9438:30;;9462:6;;9438:30;:::i;:::-;;;;-1:-1:-1;;;;;;;9479:19:0;;;;;;:6;:19;;;;;:36;;9509:6;;9479:19;:36;;9509:6;;9479:36;:::i;:::-;;;;-1:-1:-1;;;;;;;9526:19:0;;;;;;:6;:19;;;;;9559:15;9526:30;;;;:48;9589:17;;:51;;;;-1:-1:-1;;;;;;9610:19:0;;9639:1;9610:19;;;:6;:19;;;;;:26;:30;;9589:51;9585:102;;;9657:16;:18;;;:16;:18;;;:::i;:::-;;;;;;9585:102;-1:-1:-1;;;;;9769:19:0;;;;;;:6;:19;;;;;:26;9734:72;;:20;:72::i;:::-;-1:-1:-1;;;;;9697:20:0;;;;;;;:7;:20;;;;;:109;;;;-1:-1:-1;;9258:556:0:o;12080:629::-;12139:7;;;12200:5;12139:7;7231;12230:14;12200:5;12239;12230:14;:::i;:::-;:31;;;;:::i;:::-;12219:42;-1:-1:-1;12272:8:0;12293:6;12284:5;12219:42;12284:1;:5;:::i;:::-;12283:16;;;;:::i;:::-;12272:27;-1:-1:-1;12337:1:0;12319:10;12272:27;12319:6;:10;:::i;:::-;:14;;12332:1;12319:14;:::i;:::-;12318:20;;;;:::i;:::-;12314:24;;:1;:24;:::i;:::-;12310:28;-1:-1:-1;12349:12:0;12383:7;12373:5;12310:28;12377:1;12373:5;:::i;:::-;12365:14;;:4;:14;:::i;:::-;12364:26;;;;:::i;:::-;12349:41;-1:-1:-1;12426:1:0;12410:12;12349:41;12410:4;:12;:::i;:::-;12409:18;;;;:::i;:::-;12405:22;;:1;:22;:::i;:::-;:27;;12430:2;12405:27;:::i;:::-;12401:31;-1:-1:-1;12443:13:0;12470:4;12460:6;12401:31;12460:2;:6;:::i;:::-;12459:15;;;;:::i;:::-;12443:31;-1:-1:-1;12485:11:0;12521:2;12504:13;12443:31;12504:4;:13;:::i;:::-;12503:20;;;;:::i;:::-;12499:24;;:1;:24;:::i;:::-;12485:38;-1:-1:-1;12538:11:0;12547:2;12538:6;:11;:::i;:::-;12534:15;-1:-1:-1;12582:6:0;12534:15;12582:2;:6;:::i;:::-;12569:10;:6;12578:1;12569:10;:::i;:::-;:19;;;;:::i;:::-;12560:28;-1:-1:-1;12632:1:0;12624:5;12614:6;12618:2;12614:1;:6;:::i;:::-;12607:14;;:3;:14;:::i;:::-;:22;;;;:::i;:::-;:26;;;;:::i;:::-;12599:34;12678:6;;-1:-1:-1;12678:6:0;-1:-1:-1;12080:629:0;-1:-1:-1;;;;;;12080:629:0:o;14:286:1:-;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:1;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:1:o;1000:180::-;1059:6;1112:2;1100:9;1091:7;1087:23;1083:32;1080:52;;;1128:1;1125;1118:12;1080:52;-1:-1:-1;1151:23:1;;1000:180;-1:-1:-1;1000:180:1:o;1185:269::-;1242:6;1295:2;1283:9;1274:7;1270:23;1266:32;1263:52;;;1311:1;1308;1301:12;1263:52;1350:9;1337:23;1400:4;1393:5;1389:16;1382:5;1379:27;1369:55;;1420:1;1417;1410:12;2629:127;2690:10;2685:3;2681:20;2678:1;2671:31;2721:4;2718:1;2711:15;2745:4;2742:1;2735:15;2761:128;2801:3;2832:1;2828:6;2825:1;2822:13;2819:39;;;2838:18;;:::i;:::-;-1:-1:-1;2874:9:1;;2761:128::o;2894:168::-;2934:7;3000:1;2996;2992:6;2988:14;2985:1;2982:21;2977:1;2970:9;2963:17;2959:45;2956:71;;;3007:18;;:::i;:::-;-1:-1:-1;3047:9:1;;2894:168::o;3067:127::-;3128:10;3123:3;3119:20;3116:1;3109:31;3159:4;3156:1;3149:15;3183:4;3180:1;3173:15;3199:120;3239:1;3265;3255:35;;3270:18;;:::i;:::-;-1:-1:-1;3304:9:1;;3199:120::o;5481:277::-;5548:6;5601:2;5589:9;5580:7;5576:23;5572:32;5569:52;;;5617:1;5614;5607:12;5569:52;5649:9;5643:16;5702:5;5695:13;5688:21;5681:5;5678:32;5668:60;;5724:1;5721;5714:12;5763:125;5803:4;5831:1;5828;5825:8;5822:34;;;5836:18;;:::i;:::-;-1:-1:-1;5873:9:1;;5763:125::o;6610:184::-;6680:6;6733:2;6721:9;6712:7;6708:23;6704:32;6701:52;;;6749:1;6746;6739:12;6701:52;-1:-1:-1;6772:16:1;;6610:184;-1:-1:-1;6610:184:1:o;8568:136::-;8607:3;8635:5;8625:39;;8644:18;;:::i;:::-;-1:-1:-1;;;8680:18:1;;8568:136::o;8933:135::-;8972:3;8993:17;;;8990:43;;9013:18;;:::i;:::-;-1:-1:-1;9060:1:1;9049:13;;8933:135::o;9073:265::-;9112:3;9140:9;;;9165:10;;-1:-1:-1;;;;;9184:27:1;;;9177:35;;9161:52;9158:78;;;9216:18;;:::i;:::-;-1:-1:-1;;;9263:19:1;;;9256:27;;9248:36;;9245:62;;;9287:18;;:::i;:::-;-1:-1:-1;;9323:9:1;;9073:265::o;9343:553::-;9382:7;-1:-1:-1;;;;;9452:9:1;;;9480;;;9505:11;;;9524:10;;;9518:17;;9501:35;9498:61;;;9539:18;;:::i;:::-;-1:-1:-1;;;9615:1:1;9608:9;;9633:11;;;9653;;;9646:19;;9629:37;9626:63;;;9669:18;;:::i;:::-;9715:1;9712;9708:9;9698:19;;9762:1;9758:2;9753:11;9750:1;9746:19;9741:2;9737;9733:11;9729:37;9726:63;;;9769:18;;:::i;:::-;9834:1;9830:2;9825:11;9822:1;9818:19;9813:2;9809;9805:11;9801:37;9798:63;;;9841:18;;:::i;:::-;-1:-1:-1;;;9881:9:1;;;;;9343:553;-1:-1:-1;;;9343:553:1:o;9901:193::-;9940:1;9966;9956:35;;9971:18;;:::i;:::-;-1:-1:-1;;;10007:18:1;;-1:-1:-1;;10027:13:1;;10003:38;10000:64;;;10044:18;;:::i;:::-;-1:-1:-1;10078:10:1;;9901:193::o;10099:267::-;10138:4;10167:9;;;10192:10;;-1:-1:-1;;;10211:19:1;;10204:27;;10188:44;10185:70;;;10235:18;;:::i;:::-;-1:-1:-1;;;;;10282:27:1;;10275:35;;10267:44;;10264:70;;;10314:18;;:::i;:::-;-1:-1:-1;;10351:9:1;;10099:267::o

Swarm Source

ipfs://1e6d33b25985ecc867121eed2d16c1e3dd00614dde355dbe479c56c90cfde9e9

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  ]
[ 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.