ETH Price: $3,085.97 (-1.40%)
Gas: 2 Gwei

Contract

0x445332F0719f9e66721536323A5D6a2677fE8080
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Update Collar To...158744942022-11-01 10:09:59565 days ago1667297399IN
0x445332F0...677fE8080
0 ETH0.000274329.40798098
Pool Creation158688392022-10-31 15:08:35566 days ago1667228915IN
0x445332F0...677fE8080
0 ETH0.0026511227.27076356
0x60806040154836252022-09-06 10:44:36621 days ago1662461076IN
 Create: CollarStake
0 ETH0.012157487.39756788

Advanced mode:
Parent Transaction Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CollarStake

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-06
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.16;

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

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom( address sender, address recipient, uint256 amount) external returns (bool);
   
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Context {
    
    constructor()  {}

    function _msgSender() internal view returns (address ) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor()  {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), 'Ownable: caller is not the owner');
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), 'Ownable: new owner is the zero address');
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

abstract contract ReentrancyGuard {

    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

contract Pausable is Context {
    
    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;

    constructor () {
        _paused = false;
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

contract CollarStake is Ownable, ReentrancyGuard, Pausable {

    IERC20 public CollarToken;
    uint256 public stakeDays = 365;
    uint256 public stakeLimit;
    uint256 public coolDownTime = 10 * 86400;
    uint256 public currentPool;

    struct UserInfo {
        address staker;
        uint256 poolID;
        uint256 stakeID;
        uint256 stakeAmount;
        uint256 stakeTime;
        uint256 unstakeTime;
        uint256 withdrawTime;
        uint256 stakingDays;
        uint256 APY_percentage;
        uint256 lastClaim;
        uint256 rewardEndTime;
        uint256 rewardAmount;
        bool claimed;
    }

    struct poolInfo {
        uint256 poolID;
        IERC20 stakeToken;
        uint256 APYpercentage;
        uint256 poolStakeID;
        uint256 totalStakedToken;
        bool UnActive;
    }
    
    struct userID{
        uint256[] stakeIDs;
    }

    mapping(uint256 => mapping(uint256 => UserInfo)) internal userDetails;
    mapping(address => mapping(uint256 => userID)) internal userIDs;
    mapping(uint256 => poolInfo) internal poolDetails;

    event emergencySafe(address indexed receiver, address tokenAddressss, uint256 TokenAmount);
    event CreatePool(address indexed creator,uint256 poolID, address stakeToken,uint256 APYPercentage);
    event stakeing(address indexed staker, uint256 stakeID, uint256 stakeAmount, uint256 stakeTime);
    event unstakeing(address indexed staker, uint256 stakeID, uint256 stakeAmount, uint256 UnstakeTime);
    event setAPYPercentage(address indexed owner,uint256 poolID, uint256 newPercentage);
    event withdrawTokens(address indexed staker, uint256 withdrawToken, uint256 withdrawTime);
    event RewardClaimed(address indexed staker,uint256 stakeID, uint256 rewardAmount, uint256 claimTime);
    event adminDeposits(address indexed owner, uint256 RewardDepositamount);
    event UpdatePoolStatus(address indexed owner,uint256 poolID,bool status);

    constructor ( uint256 _maxTokenStake, address _CollarAddress) {
        stakeLimit = _maxTokenStake;
        CollarToken = IERC20(_CollarAddress);
    }

    function viewUserDetails(uint256 _poolID, uint256 _stakeID) external view returns(UserInfo memory){
        return userDetails[_poolID][_stakeID];
    }

    function veiwPools(uint256 _poolID) external view returns(poolInfo memory){
        return poolDetails[_poolID];
    }

    function userStakeIDs(address _account, uint256 _poolID) external view returns(uint256[] memory stakeIDs){
        return userIDs[_account][_poolID].stakeIDs;
    }

    function updateMaxTokenStake(uint256 _maxTokenStake) external onlyOwner whenNotPaused {
        stakeLimit = _maxTokenStake;
    }

    function updatePoolAPYpercentage(uint256 _poolID, uint256 _APYpercentage) external onlyOwner whenNotPaused {
        poolInfo storage pool = poolDetails[_poolID];
        pool.APYpercentage = _APYpercentage;

        emit setAPYPercentage(msg.sender, _poolID, _APYpercentage);
    }

    function updateCoolDownTime(uint256 _coolDownTime ) external onlyOwner whenNotPaused {
        coolDownTime = _coolDownTime;
    }

    function updateCollarToken(address _CollarToken) external onlyOwner whenNotPaused {
        require(_CollarToken != address(0x0),"Collar is not a zero address");
        CollarToken = IERC20(_CollarToken);
    }

    function poolCreation(address _stakeToken, uint256 _APYPercentage) external onlyOwner whenNotPaused {
        currentPool++;
        poolInfo storage pool = poolDetails[currentPool];
        pool.stakeToken = IERC20(_stakeToken);
        pool.APYpercentage = _APYPercentage;
        pool.poolID = currentPool;

        emit CreatePool(msg.sender, currentPool, _stakeToken, _APYPercentage);
    }

    function poolStatus(uint256 poolID, bool status) external onlyOwner whenNotPaused {
        poolInfo storage pool = poolDetails[poolID];
        require(pool.poolID > 0,"Pool Not found");
        pool.UnActive  = status;

        emit UpdatePoolStatus(msg.sender, poolID, status);
    }

    function stake(uint256 _poolID,uint256 _tokenAmount, uint256 _stakeDays) external nonReentrant whenNotPaused {
        require( _tokenAmount > 0 && _tokenAmount < stakeLimit,"incorrect token amount");
        poolInfo storage pool = poolDetails[_poolID];
        require(!pool.UnActive,"pool is not active");
        pool.poolStakeID++;
        UserInfo storage user = userDetails[_poolID][pool.poolStakeID];
        user.staker = msg.sender;
        user.stakeID = pool.poolStakeID;
        user.poolID = _poolID;
        user.stakeAmount = _tokenAmount;
        user.stakeTime = block.timestamp;
        user.lastClaim = block.timestamp;
        user.rewardEndTime = (block.timestamp + (_stakeDays * (86400)));
        user.APY_percentage = pool.APYpercentage;
        user.stakingDays = _stakeDays;
        pool.totalStakedToken = pool.totalStakedToken + (_tokenAmount);
        userIDs[msg.sender][_poolID].stakeIDs.push(pool.poolStakeID);

        (pool.stakeToken).transferFrom(msg.sender, address(this), _tokenAmount);
        emit stakeing(msg.sender, pool.poolStakeID, _tokenAmount, block.timestamp);
    }

    function unstake(uint256 _poolID,uint256 _stakeID) external nonReentrant whenNotPaused {
        UserInfo storage user = userDetails[_poolID][_stakeID];
        require(user.stakeTime > 0 , "Invalid stake ID");
        require(user.rewardEndTime <= block.timestamp,"");
        require(user.unstakeTime == 0, "user already claim this ID");
        require(user.staker == msg.sender," invalid user ID");
        claimReward( _poolID,_stakeID);
        user.unstakeTime = block.timestamp;
       
        
        emit unstakeing(msg.sender, _stakeID, user.stakeAmount, block.timestamp);
    }

    function withdraw(uint256 _poolID,uint256 _stakeID) external {
        UserInfo storage user = userDetails[_poolID][_stakeID];
        poolInfo storage pool = poolDetails[_poolID];
        require(user.staker == msg.sender," invalid user ID");
        require(user.unstakeTime != 0,"User not unstake the tokens");
        require(user.unstakeTime + (coolDownTime) < block.timestamp, "Withdraw time not reached" );
        require(user.withdrawTime == 0, "This ID already withdrawed");
        user.withdrawTime = block.timestamp;
        user.claimed = true;
         pool.totalStakedToken = pool.totalStakedToken - (user.stakeAmount);
        (pool.stakeToken).transfer(msg.sender, user.stakeAmount);
       
        emit withdrawTokens(msg.sender, user.stakeAmount, user.withdrawTime);
    }

    function claimReward(uint256 _poolID,uint256 _stakeID) public {
        UserInfo storage user = userDetails[_poolID][_stakeID];
        require(user.staker == msg.sender," invalid user ID");
        uint256 rewardAmount = pendingReward(_poolID,_stakeID);
        if(block.timestamp > user.rewardEndTime){
            user.lastClaim = user.rewardEndTime;
        } else{   user.lastClaim = block.timestamp; }
        user.rewardAmount += rewardAmount;
        CollarToken.transfer(msg.sender, rewardAmount); 

        emit RewardClaimed(msg.sender,_stakeID, rewardAmount, user.lastClaim);
    }

    function pendingReward(uint256 _poolID, uint256 _stakeID) public view returns(uint256 Reward) {
        UserInfo storage user = userDetails[_poolID][_stakeID];
        require(user.unstakeTime == 0, "ID unstaked");
        uint256[3] memory localVar;
        if(user.lastClaim < user.rewardEndTime){
            localVar[2] = block.timestamp;
            if(block.timestamp > user.rewardEndTime){ localVar[2] = user.rewardEndTime; }
            
            localVar[0] = (localVar[2]) - (user.lastClaim);
            localVar[1] = (user.APY_percentage) * (1e16) / (stakeDays);
            Reward = user.stakeAmount * (localVar[0]) * (localVar[1]) / (100) / (1e16) / (86400);
        } else {
            Reward = 0;
        }
    }

    function adminDeposit(uint256 _tokenAmount) external onlyOwner {
        CollarToken.transferFrom(msg.sender, address(this), _tokenAmount);

        emit adminDeposits(msg.sender, _tokenAmount);
    }

    function emergenecy(address token, address to, uint256 amount)external onlyOwner{
        if(token == address(0x0)){
            require(payable(to).send(amount),"transaction failed");
        } else  {
            IERC20(token).transfer(to, amount);
        }
        emit emergencySafe(to, token, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_maxTokenStake","type":"uint256"},{"internalType":"address","name":"_CollarAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolID","type":"uint256"},{"indexed":false,"internalType":"address","name":"stakeToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"APYPercentage","type":"uint256"}],"name":"CreatePool","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"stakeID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimTime","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolID","type":"uint256"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"UpdatePoolStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"RewardDepositamount","type":"uint256"}],"name":"adminDeposits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"address","name":"tokenAddressss","type":"address"},{"indexed":false,"internalType":"uint256","name":"TokenAmount","type":"uint256"}],"name":"emergencySafe","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"setAPYPercentage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"stakeID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeTime","type":"uint256"}],"name":"stakeing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"stakeID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"UnstakeTime","type":"uint256"}],"name":"unstakeing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"withdrawToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"withdrawTime","type":"uint256"}],"name":"withdrawTokens","type":"event"},{"inputs":[],"name":"CollarToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"adminDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_stakeID","type":"uint256"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergenecy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_stakeID","type":"uint256"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"Reward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_stakeToken","type":"address"},{"internalType":"uint256","name":"_APYPercentage","type":"uint256"}],"name":"poolCreation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolID","type":"uint256"},{"internalType":"bool","name":"status","type":"bool"}],"name":"poolStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"internalType":"uint256","name":"_stakeDays","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeLimit","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":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_stakeID","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_CollarToken","type":"address"}],"name":"updateCollarToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_coolDownTime","type":"uint256"}],"name":"updateCoolDownTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTokenStake","type":"uint256"}],"name":"updateMaxTokenStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_APYpercentage","type":"uint256"}],"name":"updatePoolAPYpercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_poolID","type":"uint256"}],"name":"userStakeIDs","outputs":[{"internalType":"uint256[]","name":"stakeIDs","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"}],"name":"veiwPools","outputs":[{"components":[{"internalType":"uint256","name":"poolID","type":"uint256"},{"internalType":"contract IERC20","name":"stakeToken","type":"address"},{"internalType":"uint256","name":"APYpercentage","type":"uint256"},{"internalType":"uint256","name":"poolStakeID","type":"uint256"},{"internalType":"uint256","name":"totalStakedToken","type":"uint256"},{"internalType":"bool","name":"UnActive","type":"bool"}],"internalType":"struct CollarStake.poolInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_stakeID","type":"uint256"}],"name":"viewUserDetails","outputs":[{"components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"uint256","name":"poolID","type":"uint256"},{"internalType":"uint256","name":"stakeID","type":"uint256"},{"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"internalType":"uint256","name":"stakeTime","type":"uint256"},{"internalType":"uint256","name":"unstakeTime","type":"uint256"},{"internalType":"uint256","name":"withdrawTime","type":"uint256"},{"internalType":"uint256","name":"stakingDays","type":"uint256"},{"internalType":"uint256","name":"APY_percentage","type":"uint256"},{"internalType":"uint256","name":"lastClaim","type":"uint256"},{"internalType":"uint256","name":"rewardEndTime","type":"uint256"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"internalType":"struct CollarStake.UserInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolID","type":"uint256"},{"internalType":"uint256","name":"_stakeID","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405261016d600355620d2f0060055534801561001d57600080fd5b50604051611b3f380380611b3f83398101604081905261003c916100b1565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055600280546004939093556001600160a01b03909116610100026001600160a81b03199092169190911790556100ee565b600080604083850312156100c457600080fd5b825160208401519092506001600160a01b03811681146100e357600080fd5b809150509250929050565b611a42806100fd6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80637930b3ca116100c3578063a638f2e21161007c578063a638f2e214610334578063aa21a54314610347578063d2ce0db21461035a578063da98b54214610363578063e36cf9c714610376578063f2fde38b1461038957600080fd5b80637930b3ca1461026f57806386bb8f37146102d45780638da5cb5b146102e75780639902d7bd146102f85780639e2c8a5b14610301578063a2cbdf811461031457600080fd5b806345ef79af1161011557806345ef79af146102015780635c507ace1461020a5780635c975abb1461021d57806367aa8b9514610233578063692b69ae146102465780637693e4791461024f57600080fd5b8063042ccb821461015d57806308687794146101725780631879d5aa146101855780631f95819a146101985780633185c0bd146101cd578063441a3e70146101ee575b600080fd5b61017061016b3660046116a7565b61039c565b005b6101706101803660046116a7565b6103f7565b6101706101933660046116a7565b6104d9565b6002546101b09061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101e06101db3660046116c0565b61052b565b6040519081526020016101c4565b6101706101fc3660046116c0565b61065a565b6101e060045481565b6101706102183660046116fe565b6108ab565b60025460ff1660405190151581526020016101c4565b610170610241366004611748565b610a0f565b6101e060065481565b61026261025d366004611778565b610af5565b6040516101c491906117a2565b61028261027d3660046116a7565b610b6b565b6040516101c49190815181526020808301516001600160a01b03169082015260408083015190820152606080830151908201526080808301519082015260a09182015115159181019190915260c00190565b6101706102e23660046116c0565b610c16565b6000546001600160a01b03166101b0565b6101e060035481565b61017061030f3660046116c0565b610d61565b6103276103223660046116c0565b610f45565b6040516101c491906117e6565b610170610342366004611882565b611073565b6101706103553660046118ae565b61134a565b6101e060055481565b610170610371366004611778565b611415565b6101706103843660046116c0565b6114f7565b6101706103973660046118ae565b611593565b6000546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c6906118d0565b60405180910390fd5b60025460ff16156103f25760405162461bcd60e51b81526004016103c690611905565b600455565b6000546001600160a01b031633146104215760405162461bcd60e51b81526004016103c6906118d0565b6002546040516323b872dd60e01b8152336004820152306024820152604481018390526101009091046001600160a01b0316906323b872dd906064016020604051808303816000875af115801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a0919061192f565b5060405181815233907fca0fce8fec7e0fe5ae14829b105a07688abef2f30c4be5663eb131471b01758b9060200160405180910390a250565b6000546001600160a01b031633146105035760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156105265760405162461bcd60e51b81526004016103c690611905565b600555565b600082815260076020908152604080832084845290915281206005810154156105845760405162461bcd60e51b815260206004820152600b60248201526a1251081d5b9cdd185ad95960aa1b60448201526064016103c6565b61058c611689565b81600a01548260090154101561064d57428160026020020152600a8201544211156105bc57600a82015460408201525b600982015460408201516105d09190611962565b815260035460088301546105eb90662386f26fc10000611975565b6105f59190611994565b60208201819052815160038401546201518092662386f26fc100009260649261061e9190611975565b6106289190611975565b6106329190611994565b61063c9190611994565b6106469190611994565b9250610652565b600092505b505092915050565b60008281526007602090815260408083208484528252808320858452600990925290912081546001600160a01b031633146106a75760405162461bcd60e51b81526004016103c6906119b6565b81600501546000036106fb5760405162461bcd60e51b815260206004820152601b60248201527f55736572206e6f7420756e7374616b652074686520746f6b656e73000000000060448201526064016103c6565b42600554836005015461070e91906119e0565b1061075b5760405162461bcd60e51b815260206004820152601960248201527f57697468647261772074696d65206e6f7420726561636865640000000000000060448201526064016103c6565b6006820154156107ad5760405162461bcd60e51b815260206004820152601a60248201527f5468697320494420616c7265616479207769746864726177656400000000000060448201526064016103c6565b426006830155600c8201805460ff19166001179055600382015460048201546107d69190611962565b6004828101919091556001820154600384015460405163a9059cbb60e01b8152339381019390935260248301526001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610835573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610859919061192f565b506003820154600683015460405133927f4c1d1fdebe46d255ef3bfcbd19dbe80241f155dfb8de9fdacc068866c96f64649261089d92918252602082015260400190565b60405180910390a250505050565b6000546001600160a01b031633146108d55760405162461bcd60e51b81526004016103c6906118d0565b6001600160a01b03831661094e576040516001600160a01b0383169082156108fc029083906000818181858888f193505050506109495760405162461bcd60e51b81526020600482015260126024820152711d1c985b9cd858dd1a5bdb8819985a5b195960721b60448201526064016103c6565b6109c3565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af115801561099d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c1919061192f565b505b604080516001600160a01b038581168252602082018490528416917f060e6aa0bdd60ccd3ca3598c98bc44dbf98ea56d5abf8f1b587015ccbcb31a9291015b60405180910390a2505050565b6000546001600160a01b03163314610a395760405162461bcd60e51b81526004016103c6906118d0565b60025460ff1615610a5c5760405162461bcd60e51b81526004016103c690611905565b60008281526009602052604090208054610aa95760405162461bcd60e51b815260206004820152600e60248201526d141bdbdb08139bdd08199bdd5b9960921b60448201526064016103c6565b60058101805460ff191683151590811790915560408051858152602081019290925233917f5e4a3ec3e741ff104a7847b3a874e7d043517cc216fbd1bd944604c3567ffd7a9101610a02565b6001600160a01b0382166000908152600860209081526040808320848452825291829020805483518184028101840190945280845260609392830182828015610b5d57602002820191906000526020600020905b815481526020019060010190808311610b49575b505050505090505b92915050565b610baf6040518060c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000151581525090565b50600090815260096020908152604091829020825160c0810184528154815260018201546001600160a01b031692810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460ff16151560a082015290565b6000828152600760209081526040808320848452909152902080546001600160a01b03163314610c585760405162461bcd60e51b81526004016103c6906119b6565b6000610c64848461052b565b905081600a0154421115610c8157600a8201546009830155610c88565b4260098301555b8082600b016000828254610c9c91906119e0565b909155505060025460405163a9059cbb60e01b8152336004820152602481018390526101009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a919061192f565b50600982015460408051858152602081018490529081019190915233907f812be816db82c66cd18ca8457005cd84689642d8ac4d38599cc6af444a2dc72a9060600161089d565b600260015403610db35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c6565b600260018190555460ff1615610ddb5760405162461bcd60e51b81526004016103c690611905565b600082815260076020908152604080832084845290915290206004810154610e385760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081cdd185ad948125160821b60448201526064016103c6565b4281600a01541115610e665760405162461bcd60e51b815260206004820152600060248201526044016103c6565b600581015415610eb85760405162461bcd60e51b815260206004820152601a60248201527f7573657220616c726561647920636c61696d207468697320494400000000000060448201526064016103c6565b80546001600160a01b03163314610ee15760405162461bcd60e51b81526004016103c6906119b6565b610eeb8383610c16565b4260058201819055600382015460408051858152602081019290925281019190915233907f2e38d96499ef6255dfc32e83e3a35290125aa298dc293e96634690fc3e32bc8f9060600160405180910390a250506001805550565b610fbb604051806101a0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b5060009182526007602081815260408085209385529281529282902082516101a08101845281546001600160a01b031681526001820154948101949094526002810154928401929092526003820154606084015260048201546080840152600582015460a0840152600682015460c084015281015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b810154610160830152600c015460ff16151561018082015290565b6002600154036110c55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c6565b600260018190555460ff16156110ed5760405162461bcd60e51b81526004016103c690611905565b6000821180156110fe575060045482105b6111435760405162461bcd60e51b81526020600482015260166024820152751a5b98dbdc9c9958dd081d1bdad95b88185b5bdd5b9d60521b60448201526064016103c6565b6000838152600960205260409020600581015460ff161561119b5760405162461bcd60e51b8152602060048201526012602482015271706f6f6c206973206e6f742061637469766560701b60448201526064016103c6565b6003810180549060006111ad836119f3565b9091555050600084815260076020908152604080832060038086018054865291909352922080546001600160a01b03191633178155915460028301556001820186905581018490554260048201819055600982015561120f8362015180611975565b61121990426119e0565b600a8201556002820154600882015560078101839055600482015461123f9085906119e0565b6004838101919091553360008181526008602090815260408083208a845282528083206003880154815460018082018455928652939094209092019290925585015490516323b872dd60e01b815292830191909152306024830152604482018690526001600160a01b0316906323b872dd906064016020604051808303816000875af11580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f7919061192f565b5060038201546040805191825260208201869052429082015233907f7e0bbb001c489e06bafe1cd05aa13423a1ba2df2176528366777299a91417f1c9060600160405180910390a2505060018055505050565b6000546001600160a01b031633146113745760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156113975760405162461bcd60e51b81526004016103c690611905565b6001600160a01b0381166113ed5760405162461bcd60e51b815260206004820152601c60248201527f436f6c6c6172206973206e6f742061207a65726f20616464726573730000000060448201526064016103c6565b600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b0316331461143f5760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156114625760405162461bcd60e51b81526004016103c690611905565b60068054906000611472836119f3565b9091555050600680546000908152600960209081526040918290206001810180546001600160a01b0319166001600160a01b03881690811790915560028201869055935480825583519081529182019390935290810183905233907fb309b1df4a2dca378ea4c78b8bd65b336b9a2984718dcf7573827734ff77113290606001610a02565b6000546001600160a01b031633146115215760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156115445760405162461bcd60e51b81526004016103c690611905565b6000828152600960209081526040918290206002810184905582518581529182018490529133917f2a5a44de32bf68dba00586f4e66a9002d8132de942fbb217478c4e4b322d44b79101610a02565b6000546001600160a01b031633146115bd5760405162461bcd60e51b81526004016103c6906118d0565b6115c6816115c9565b50565b6001600160a01b03811661162e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60405180606001604052806003906020820280368337509192915050565b6000602082840312156116b957600080fd5b5035919050565b600080604083850312156116d357600080fd5b50508035926020909101359150565b80356001600160a01b03811681146116f957600080fd5b919050565b60008060006060848603121561171357600080fd5b61171c846116e2565b925061172a602085016116e2565b9150604084013590509250925092565b80151581146115c657600080fd5b6000806040838503121561175b57600080fd5b82359150602083013561176d8161173a565b809150509250929050565b6000806040838503121561178b57600080fd5b611794836116e2565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156117da578351835292840192918401916001016117be565b50909695505050505050565b81516001600160a01b031681526101a081016020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401518184015250610140808401518184015250610160808401518184015250610180808401516106528285018215159052565b60008060006060848603121561189757600080fd5b505081359360208301359350604090920135919050565b6000602082840312156118c057600080fd5b6118c9826116e2565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60006020828403121561194157600080fd5b81516118c98161173a565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6557610b6561194c565b600081600019048311821515161561198f5761198f61194c565b500290565b6000826119b157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526010908201526f081a5b9d985b1a59081d5cd95c88125160821b604082015260600190565b80820180821115610b6557610b6561194c565b600060018201611a0557611a0561194c565b506001019056fea26469706673582212205cbe9da82fde1bbb01172eaaab0b80a384cae92fd79da24bc53caf00c3ebb5fd64736f6c6343000810003300000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000009783b81438c24848f85848f8df31845097341771

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c80637930b3ca116100c3578063a638f2e21161007c578063a638f2e214610334578063aa21a54314610347578063d2ce0db21461035a578063da98b54214610363578063e36cf9c714610376578063f2fde38b1461038957600080fd5b80637930b3ca1461026f57806386bb8f37146102d45780638da5cb5b146102e75780639902d7bd146102f85780639e2c8a5b14610301578063a2cbdf811461031457600080fd5b806345ef79af1161011557806345ef79af146102015780635c507ace1461020a5780635c975abb1461021d57806367aa8b9514610233578063692b69ae146102465780637693e4791461024f57600080fd5b8063042ccb821461015d57806308687794146101725780631879d5aa146101855780631f95819a146101985780633185c0bd146101cd578063441a3e70146101ee575b600080fd5b61017061016b3660046116a7565b61039c565b005b6101706101803660046116a7565b6103f7565b6101706101933660046116a7565b6104d9565b6002546101b09061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101e06101db3660046116c0565b61052b565b6040519081526020016101c4565b6101706101fc3660046116c0565b61065a565b6101e060045481565b6101706102183660046116fe565b6108ab565b60025460ff1660405190151581526020016101c4565b610170610241366004611748565b610a0f565b6101e060065481565b61026261025d366004611778565b610af5565b6040516101c491906117a2565b61028261027d3660046116a7565b610b6b565b6040516101c49190815181526020808301516001600160a01b03169082015260408083015190820152606080830151908201526080808301519082015260a09182015115159181019190915260c00190565b6101706102e23660046116c0565b610c16565b6000546001600160a01b03166101b0565b6101e060035481565b61017061030f3660046116c0565b610d61565b6103276103223660046116c0565b610f45565b6040516101c491906117e6565b610170610342366004611882565b611073565b6101706103553660046118ae565b61134a565b6101e060055481565b610170610371366004611778565b611415565b6101706103843660046116c0565b6114f7565b6101706103973660046118ae565b611593565b6000546001600160a01b031633146103cf5760405162461bcd60e51b81526004016103c6906118d0565b60405180910390fd5b60025460ff16156103f25760405162461bcd60e51b81526004016103c690611905565b600455565b6000546001600160a01b031633146104215760405162461bcd60e51b81526004016103c6906118d0565b6002546040516323b872dd60e01b8152336004820152306024820152604481018390526101009091046001600160a01b0316906323b872dd906064016020604051808303816000875af115801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a0919061192f565b5060405181815233907fca0fce8fec7e0fe5ae14829b105a07688abef2f30c4be5663eb131471b01758b9060200160405180910390a250565b6000546001600160a01b031633146105035760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156105265760405162461bcd60e51b81526004016103c690611905565b600555565b600082815260076020908152604080832084845290915281206005810154156105845760405162461bcd60e51b815260206004820152600b60248201526a1251081d5b9cdd185ad95960aa1b60448201526064016103c6565b61058c611689565b81600a01548260090154101561064d57428160026020020152600a8201544211156105bc57600a82015460408201525b600982015460408201516105d09190611962565b815260035460088301546105eb90662386f26fc10000611975565b6105f59190611994565b60208201819052815160038401546201518092662386f26fc100009260649261061e9190611975565b6106289190611975565b6106329190611994565b61063c9190611994565b6106469190611994565b9250610652565b600092505b505092915050565b60008281526007602090815260408083208484528252808320858452600990925290912081546001600160a01b031633146106a75760405162461bcd60e51b81526004016103c6906119b6565b81600501546000036106fb5760405162461bcd60e51b815260206004820152601b60248201527f55736572206e6f7420756e7374616b652074686520746f6b656e73000000000060448201526064016103c6565b42600554836005015461070e91906119e0565b1061075b5760405162461bcd60e51b815260206004820152601960248201527f57697468647261772074696d65206e6f7420726561636865640000000000000060448201526064016103c6565b6006820154156107ad5760405162461bcd60e51b815260206004820152601a60248201527f5468697320494420616c7265616479207769746864726177656400000000000060448201526064016103c6565b426006830155600c8201805460ff19166001179055600382015460048201546107d69190611962565b6004828101919091556001820154600384015460405163a9059cbb60e01b8152339381019390935260248301526001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610835573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610859919061192f565b506003820154600683015460405133927f4c1d1fdebe46d255ef3bfcbd19dbe80241f155dfb8de9fdacc068866c96f64649261089d92918252602082015260400190565b60405180910390a250505050565b6000546001600160a01b031633146108d55760405162461bcd60e51b81526004016103c6906118d0565b6001600160a01b03831661094e576040516001600160a01b0383169082156108fc029083906000818181858888f193505050506109495760405162461bcd60e51b81526020600482015260126024820152711d1c985b9cd858dd1a5bdb8819985a5b195960721b60448201526064016103c6565b6109c3565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af115801561099d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c1919061192f565b505b604080516001600160a01b038581168252602082018490528416917f060e6aa0bdd60ccd3ca3598c98bc44dbf98ea56d5abf8f1b587015ccbcb31a9291015b60405180910390a2505050565b6000546001600160a01b03163314610a395760405162461bcd60e51b81526004016103c6906118d0565b60025460ff1615610a5c5760405162461bcd60e51b81526004016103c690611905565b60008281526009602052604090208054610aa95760405162461bcd60e51b815260206004820152600e60248201526d141bdbdb08139bdd08199bdd5b9960921b60448201526064016103c6565b60058101805460ff191683151590811790915560408051858152602081019290925233917f5e4a3ec3e741ff104a7847b3a874e7d043517cc216fbd1bd944604c3567ffd7a9101610a02565b6001600160a01b0382166000908152600860209081526040808320848452825291829020805483518184028101840190945280845260609392830182828015610b5d57602002820191906000526020600020905b815481526020019060010190808311610b49575b505050505090505b92915050565b610baf6040518060c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000151581525090565b50600090815260096020908152604091829020825160c0810184528154815260018201546001600160a01b031692810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460ff16151560a082015290565b6000828152600760209081526040808320848452909152902080546001600160a01b03163314610c585760405162461bcd60e51b81526004016103c6906119b6565b6000610c64848461052b565b905081600a0154421115610c8157600a8201546009830155610c88565b4260098301555b8082600b016000828254610c9c91906119e0565b909155505060025460405163a9059cbb60e01b8152336004820152602481018390526101009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a919061192f565b50600982015460408051858152602081018490529081019190915233907f812be816db82c66cd18ca8457005cd84689642d8ac4d38599cc6af444a2dc72a9060600161089d565b600260015403610db35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c6565b600260018190555460ff1615610ddb5760405162461bcd60e51b81526004016103c690611905565b600082815260076020908152604080832084845290915290206004810154610e385760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081cdd185ad948125160821b60448201526064016103c6565b4281600a01541115610e665760405162461bcd60e51b815260206004820152600060248201526044016103c6565b600581015415610eb85760405162461bcd60e51b815260206004820152601a60248201527f7573657220616c726561647920636c61696d207468697320494400000000000060448201526064016103c6565b80546001600160a01b03163314610ee15760405162461bcd60e51b81526004016103c6906119b6565b610eeb8383610c16565b4260058201819055600382015460408051858152602081019290925281019190915233907f2e38d96499ef6255dfc32e83e3a35290125aa298dc293e96634690fc3e32bc8f9060600160405180910390a250506001805550565b610fbb604051806101a0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b5060009182526007602081815260408085209385529281529282902082516101a08101845281546001600160a01b031681526001820154948101949094526002810154928401929092526003820154606084015260048201546080840152600582015460a0840152600682015460c084015281015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b810154610160830152600c015460ff16151561018082015290565b6002600154036110c55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c6565b600260018190555460ff16156110ed5760405162461bcd60e51b81526004016103c690611905565b6000821180156110fe575060045482105b6111435760405162461bcd60e51b81526020600482015260166024820152751a5b98dbdc9c9958dd081d1bdad95b88185b5bdd5b9d60521b60448201526064016103c6565b6000838152600960205260409020600581015460ff161561119b5760405162461bcd60e51b8152602060048201526012602482015271706f6f6c206973206e6f742061637469766560701b60448201526064016103c6565b6003810180549060006111ad836119f3565b9091555050600084815260076020908152604080832060038086018054865291909352922080546001600160a01b03191633178155915460028301556001820186905581018490554260048201819055600982015561120f8362015180611975565b61121990426119e0565b600a8201556002820154600882015560078101839055600482015461123f9085906119e0565b6004838101919091553360008181526008602090815260408083208a845282528083206003880154815460018082018455928652939094209092019290925585015490516323b872dd60e01b815292830191909152306024830152604482018690526001600160a01b0316906323b872dd906064016020604051808303816000875af11580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f7919061192f565b5060038201546040805191825260208201869052429082015233907f7e0bbb001c489e06bafe1cd05aa13423a1ba2df2176528366777299a91417f1c9060600160405180910390a2505060018055505050565b6000546001600160a01b031633146113745760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156113975760405162461bcd60e51b81526004016103c690611905565b6001600160a01b0381166113ed5760405162461bcd60e51b815260206004820152601c60248201527f436f6c6c6172206973206e6f742061207a65726f20616464726573730000000060448201526064016103c6565b600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b0316331461143f5760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156114625760405162461bcd60e51b81526004016103c690611905565b60068054906000611472836119f3565b9091555050600680546000908152600960209081526040918290206001810180546001600160a01b0319166001600160a01b03881690811790915560028201869055935480825583519081529182019390935290810183905233907fb309b1df4a2dca378ea4c78b8bd65b336b9a2984718dcf7573827734ff77113290606001610a02565b6000546001600160a01b031633146115215760405162461bcd60e51b81526004016103c6906118d0565b60025460ff16156115445760405162461bcd60e51b81526004016103c690611905565b6000828152600960209081526040918290206002810184905582518581529182018490529133917f2a5a44de32bf68dba00586f4e66a9002d8132de942fbb217478c4e4b322d44b79101610a02565b6000546001600160a01b031633146115bd5760405162461bcd60e51b81526004016103c6906118d0565b6115c6816115c9565b50565b6001600160a01b03811661162e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60405180606001604052806003906020820280368337509192915050565b6000602082840312156116b957600080fd5b5035919050565b600080604083850312156116d357600080fd5b50508035926020909101359150565b80356001600160a01b03811681146116f957600080fd5b919050565b60008060006060848603121561171357600080fd5b61171c846116e2565b925061172a602085016116e2565b9150604084013590509250925092565b80151581146115c657600080fd5b6000806040838503121561175b57600080fd5b82359150602083013561176d8161173a565b809150509250929050565b6000806040838503121561178b57600080fd5b611794836116e2565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156117da578351835292840192918401916001016117be565b50909695505050505050565b81516001600160a01b031681526101a081016020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401518184015250610140808401518184015250610160808401518184015250610180808401516106528285018215159052565b60008060006060848603121561189757600080fd5b505081359360208301359350604090920135919050565b6000602082840312156118c057600080fd5b6118c9826116e2565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60006020828403121561194157600080fd5b81516118c98161173a565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6557610b6561194c565b600081600019048311821515161561198f5761198f61194c565b500290565b6000826119b157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526010908201526f081a5b9d985b1a59081d5cd95c88125160821b604082015260600190565b80820180821115610b6557610b6561194c565b600060018201611a0557611a0561194c565b506001019056fea26469706673582212205cbe9da82fde1bbb01172eaaab0b80a384cae92fd79da24bc53caf00c3ebb5fd64736f6c63430008100033

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

00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000009783b81438c24848f85848f8df31845097341771

-----Decoded View---------------
Arg [0] : _maxTokenStake (uint256): 1000000000000000000000
Arg [1] : _CollarAddress (address): 0x9783B81438C24848f85848f8df31845097341771

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Arg [1] : 0000000000000000000000009783b81438c24848f85848f8df31845097341771


Deployed Bytecode Sourcemap

3333:8592:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5949:132;;;;;;:::i;:::-;;:::i;:::-;;11390:204;;;;;;:::i;:::-;;:::i;6384:132::-;;;;;;:::i;:::-;;:::i;3401:25::-;;;;;;;;-1:-1:-1;;;;;3401:25:0;;;;;;-1:-1:-1;;;;;376:32:1;;;358:51;;346:2;331:18;3401:25:0;;;;;;;;10636:746;;;;;;:::i;:::-;;:::i;:::-;;;819:25:1;;;807:2;792:18;10636:746:0;673:177:1;9210:806:0;;;;;;:::i;:::-;;:::i;3470:25::-;;;;;;11602:320;;;;;;:::i;:::-;;:::i;2792:78::-;2855:7;;;;2792:78;;1627:14:1;;1620:22;1602:41;;1590:2;1575:18;2792:78:0;1462:187:1;7157:292:0;;;;;;:::i;:::-;;:::i;3549:26::-;;;;;;5775:166;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5647:120::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;3202:13:1;;3184:32;;3276:4;3264:17;;;3258:24;-1:-1:-1;;;;;3254:50:1;3232:20;;;3225:80;3361:4;3349:17;;;3343:24;3321:20;;;3314:54;3424:4;3412:17;;;3406:24;3384:20;;;3377:54;3487:4;3475:17;;;3469:24;3447:20;;;3440:54;3292:3;3552:17;;;3546:24;3539:32;3532:40;3510:20;;;3503:70;;;;3171:3;3156:19;;2987:592;10024:604:0;;;;;;:::i;:::-;;:::i;1602:79::-;1640:7;1667:6;-1:-1:-1;;;;;1667:6:0;1602:79;;3433:30;;;;;;8600:602;;;;;;:::i;:::-;;:::i;5485:154::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7457:1135::-;;;;;;:::i;:::-;;:::i;6524:214::-;;;;;;:::i;:::-;;:::i;3502:40::-;;;;;;6746:403;;;;;;:::i;:::-;;:::i;6089:287::-;;;;;;:::i;:::-;;:::i;1816:109::-;;;;;;:::i;:::-;;:::i;5949:132::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;;;;;;;;;2923:7:::1;::::0;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;6046:10:::2;:27:::0;5949:132::o;11390:204::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;11464:11:::1;::::0;:65:::1;::::0;-1:-1:-1;;;11464:65:0;;11489:10:::1;11464:65;::::0;::::1;6522:34:1::0;11509:4:0::1;6572:18:1::0;;;6565:43;6624:18;;;6617:34;;;11464:11:0::1;::::0;;::::1;-1:-1:-1::0;;;;;11464:11:0::1;::::0;:24:::1;::::0;6457:18:1;;11464:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11547:39:0::1;::::0;819:25:1;;;11561:10:0::1;::::0;11547:39:::1;::::0;807:2:1;792:18;11547:39:0::1;;;;;;;11390:204:::0;:::o;6384:132::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;2923:7:::1;::::0;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;6480:12:::2;:28:::0;6384:132::o;10636:746::-;10714:14;10765:20;;;:11;:20;;;;;;;;:30;;;;;;;;10814:16;;;;:21;10806:45;;;;-1:-1:-1;;;10806:45:0;;7114:2:1;10806:45:0;;;7096:21:1;7153:2;7133:18;;;7126:30;-1:-1:-1;;;7172:18:1;;;7165:41;7223:18;;10806:45:0;6912:335:1;10806:45:0;10862:26;;:::i;:::-;10919:4;:18;;;10902:4;:14;;;:35;10899:476;;;10967:15;10953:8;10962:1;10953:11;;;:29;11018:18;;;;11000:15;:36;10997:77;;;11053:18;;;;11039:11;;;:32;10997:77;11133:14;;;;11117:11;;;;11116:32;;11133:14;11116:32;:::i;:::-;11102:46;;11211:9;;11178:19;;;;11177:30;;11202:4;11177:30;:::i;:::-;:44;;;;:::i;:::-;11163:11;;;:58;;;11265:11;;11245:16;;;;11314:5;;11305:4;;11297:3;;11245:32;;11265:11;11245:32;:::i;:::-;:48;;;;:::i;:::-;:56;;;;:::i;:::-;:65;;;;:::i;:::-;:75;;;;:::i;:::-;11236:84;;10899:476;;;11362:1;11353:10;;10899:476;10730:652;;10636:746;;;;:::o;9210:806::-;9282:21;9306:20;;;:11;:20;;;;;;;;:30;;;;;;;;9371:20;;;:11;:20;;;;;;9410:11;;-1:-1:-1;;;;;9410:11:0;9425:10;9410:25;9402:53;;;;-1:-1:-1;;;9402:53:0;;;;;;;:::i;:::-;9474:4;:16;;;9494:1;9474:21;9466:60;;;;-1:-1:-1;;;9466:60:0;;8591:2:1;9466:60:0;;;8573:21:1;8630:2;8610:18;;;8603:30;8669:29;8649:18;;;8642:57;8716:18;;9466:60:0;8389:351:1;9466:60:0;9581:15;9565:12;;9545:4;:16;;;:33;;;;:::i;:::-;:51;9537:90;;;;-1:-1:-1;;;9537:90:0;;9077:2:1;9537:90:0;;;9059:21:1;9116:2;9096:18;;;9089:30;9155:27;9135:18;;;9128:55;9200:18;;9537:90:0;8875:349:1;9537:90:0;9646:17;;;;:22;9638:61;;;;-1:-1:-1;;;9638:61:0;;9431:2:1;9638:61:0;;;9413:21:1;9470:2;9450:18;;;9443:30;9509:28;9489:18;;;9482:56;9555:18;;9638:61:0;9229:350:1;9638:61:0;9730:15;9710:17;;;:35;9756:12;;;:19;;-1:-1:-1;;9756:19:0;9771:4;9756:19;;;9836:16;;;;9811:21;;;;:42;;9836:16;9811:42;:::i;:::-;9787:21;;;;:66;;;;9865:15;;;;9903:16;;;;9864:56;;-1:-1:-1;;;9864:56:0;;9891:10;9864:56;;;9758:51:1;;;;9825:18;;;9818:34;-1:-1:-1;;;;;9865:15:0;;9864:26;;9731:18:1;;9864:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9972:16:0;;;;9990:17;;;;9945:63;;9960:10;;9945:63;;;;10037:25:1;;;10093:2;10078:18;;10071:34;10025:2;10010:18;;9863:248;9945:63:0;;;;;;;;9271:745;;9210:806;;:::o;11602:320::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11696:21:0;::::1;11693:174;;11741:24;::::0;-1:-1:-1;;;;;11741:16:0;::::1;::::0;:24;::::1;;;::::0;11758:6;;11741:24:::1;::::0;;;11758:6;11741:16;:24;::::1;;;;;;11733:54;;;::::0;-1:-1:-1;;;11733:54:0;;10318:2:1;11733:54:0::1;::::0;::::1;10300:21:1::0;10357:2;10337:18;;;10330:30;-1:-1:-1;;;10376:18:1;;;10369:48;10434:18;;11733:54:0::1;10116:342:1::0;11733:54:0::1;11693:174;;;11821:34;::::0;-1:-1:-1;;;11821:34:0;;-1:-1:-1;;;;;9776:32:1;;;11821:34:0::1;::::0;::::1;9758:51:1::0;9825:18;;;9818:34;;;11821:22:0;::::1;::::0;::::1;::::0;9731:18:1;;11821:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11693:174;11882:32;::::0;;-1:-1:-1;;;;;9776:32:1;;;9758:51;;9840:2;9825:18;;9818:34;;;11882:32:0;::::1;::::0;::::1;::::0;9731:18:1;11882:32:0::1;;;;;;;;11602:320:::0;;;:::o;7157:292::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;2923:7:::1;::::0;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;7250:21:::2;7274:19:::0;;;:11:::2;:19;::::0;;;;7312:11;;7304:41:::2;;;::::0;-1:-1:-1;;;7304:41:0;;10665:2:1;7304:41:0::2;::::0;::::2;10647:21:1::0;10704:2;10684:18;;;10677:30;-1:-1:-1;;;10723:18:1;;;10716:44;10777:18;;7304:41:0::2;10463:338:1::0;7304:41:0::2;7356:13;::::0;::::2;:23:::0;;-1:-1:-1;;7356:23:0::2;::::0;::::2;;::::0;;::::2;::::0;;;7397:44:::2;::::0;;10974:25:1;;;11030:2;11015:18;;11008:50;;;;7414:10:0::2;::::0;7397:44:::2;::::0;10947:18:1;7397:44:0::2;10806:258:1::0;5775:166:0;-1:-1:-1;;;;;5898:17:0;;;;;;:7;:17;;;;;;;;:26;;;;;;;;;5891:42;;;;;;;;;;;;;;;;;5854:25;;5891:42;;;5898:26;5891:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5775:166;;;;;:::o;5647:120::-;5705:15;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5705:15:0;-1:-1:-1;5739:20:0;;;;:11;:20;;;;;;;;;5732:27;;;;;;;;;;;;;;;-1:-1:-1;;;;;5732:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5647:120::o;10024:604::-;10097:21;10121:20;;;:11;:20;;;;;;;;:30;;;;;;;;10170:11;;-1:-1:-1;;;;;10170:11:0;10185:10;10170:25;10162:53;;;;-1:-1:-1;;;10162:53:0;;;;;;;:::i;:::-;10226:20;10249:31;10263:7;10271:8;10249:13;:31::i;:::-;10226:54;;10312:4;:18;;;10294:15;:36;10291:146;;;10363:18;;;;10346:14;;;:35;10291:146;;;10419:15;10402:14;;;:32;10291:146;10468:12;10447:4;:17;;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;10491:11:0;;:46;;-1:-1:-1;;;10491:46:0;;10512:10;10491:46;;;9758:51:1;9825:18;;;9818:34;;;10491:11:0;;;;-1:-1:-1;;;;;10491:11:0;;:20;;9731:18:1;;10491:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10605:14:0;;;;10556:64;;;11271:25:1;;;11327:2;11312:18;;11305:34;;;11355:18;;;11348:34;;;;10570:10:0;;10556:64;;11259:2:1;11244:18;10556:64:0;11069:319:1;8600:602:0;2296:1;2442:7;;:19;2434:63;;;;-1:-1:-1;;;2434:63:0;;11595:2:1;2434:63:0;;;11577:21:1;11634:2;11614:18;;;11607:30;11673:33;11653:18;;;11646:61;11724:18;;2434:63:0;11393:355:1;2434:63:0;2296:1;2508:7;:18;;;2923:7;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;8698:21:::2;8722:20:::0;;;:11:::2;:20;::::0;;;;;;;:30;;;;;;;;8771:14:::2;::::0;::::2;::::0;8763:48:::2;;;::::0;-1:-1:-1;;;8763:48:0;;11955:2:1;8763:48:0::2;::::0;::::2;11937:21:1::0;11994:2;11974:18;;;11967:30;-1:-1:-1;;;12013:18:1;;;12006:46;12069:18;;8763:48:0::2;11753:340:1::0;8763:48:0::2;8852:15;8830:4;:18;;;:37;;8822:49;;;::::0;-1:-1:-1;;;8822:49:0;;12300:2:1;8822:49:0::2;::::0;::::2;12282:21:1::0;-1:-1:-1;12319:18:1;;;12312:29;12358:18;;8822:49:0::2;12098:284:1::0;8822:49:0::2;8890:16;::::0;::::2;::::0;:21;8882:60:::2;;;::::0;-1:-1:-1;;;8882:60:0;;12589:2:1;8882:60:0::2;::::0;::::2;12571:21:1::0;12628:2;12608:18;;;12601:30;12667:28;12647:18;;;12640:56;12713:18;;8882:60:0::2;12387:350:1::0;8882:60:0::2;8961:11:::0;;-1:-1:-1;;;;;8961:11:0::2;8976:10;8961:25;8953:53;;;;-1:-1:-1::0;;;8953:53:0::2;;;;;;;:::i;:::-;9017:30;9030:7;9038:8;9017:11;:30::i;:::-;9077:15;9058:16;::::0;::::2;:34:::0;;;9160:16:::2;::::0;::::2;::::0;9127:67:::2;::::0;;11271:25:1;;;11327:2;11312:18;;11305:34;;;;11355:18;;11348:34;;;;9138:10:0::2;::::0;9127:67:::2;::::0;11259:2:1;11244:18;9127:67:0::2;;;;;;;-1:-1:-1::0;;2252:1:0;2549:22;;-1:-1:-1;8600:602:0:o;5485:154::-;5567:15;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5567:15:0;-1:-1:-1;5601:20:0;;;;:11;:20;;;;;;;;:30;;;;;;;;;;5594:37;;;;;;;;;-1:-1:-1;;;;;5594:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5485:154::o;7457:1135::-;2296:1;2442:7;;:19;2434:63;;;;-1:-1:-1;;;2434:63:0;;11595:2:1;2434:63:0;;;11577:21:1;11634:2;11614:18;;;11607:30;11673:33;11653:18;;;11646:61;11724:18;;2434:63:0;11393:355:1;2434:63:0;2296:1;2508:7;:18;;;2923:7;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;7601:1:::2;7586:12;:16;:45;;;;;7621:10;;7606:12;:25;7586:45;7577:80;;;::::0;-1:-1:-1;;;7577:80:0;;12944:2:1;7577:80:0::2;::::0;::::2;12926:21:1::0;12983:2;12963:18;;;12956:30;-1:-1:-1;;;13002:18:1;;;12995:52;13064:18;;7577:80:0::2;12742:346:1::0;7577:80:0::2;7668:21;7692:20:::0;;;:11:::2;:20;::::0;;;;7732:13:::2;::::0;::::2;::::0;::::2;;7731:14;7723:44;;;::::0;-1:-1:-1;;;7723:44:0;;13295:2:1;7723:44:0::2;::::0;::::2;13277:21:1::0;13334:2;13314:18;;;13307:30;-1:-1:-1;;;13353:18:1;;;13346:48;13411:18;;7723:44:0::2;13093:342:1::0;7723:44:0::2;7778:16;::::0;::::2;:18:::0;;;:16:::2;:18;::::0;::::2;:::i;:::-;::::0;;;-1:-1:-1;;7807:21:0::2;7831:20:::0;;;:11:::2;:20;::::0;;;;;;;7852:16:::2;::::0;;::::2;::::0;;7831:38;;;;;;;;7880:24;;-1:-1:-1;;;;;;7880:24:0::2;7894:10;7880:24;::::0;;7930:16;;7915:12:::2;::::0;::::2;:31:::0;7880:24;7957:11;::::2;:21:::0;;;7989:16;::::2;:31:::0;;;8048:15:::2;8031:14;::::0;::::2;:32:::0;;;8074:14:::2;::::0;::::2;:32:::0;8158:20:::2;:10:::0;8172:5:::2;8158:20;:::i;:::-;8139:40;::::0;:15:::2;:40;:::i;:::-;8117:18;::::0;::::2;:63:::0;8213:18:::2;::::0;::::2;::::0;8191:19:::2;::::0;::::2;:40:::0;8242:16:::2;::::0;::::2;:29:::0;;;8306:21:::2;::::0;::::2;::::0;:38:::2;::::0;8331:12;;8306:38:::2;:::i;:::-;8282:21;::::0;;::::2;:62:::0;;;;8363:10:::2;8355:19;::::0;;;:7:::2;:19;::::0;;;;;;;:28;;;;;;;;8398:16:::2;::::0;::::2;::::0;8355:60;;::::2;::::0;;::::2;::::0;;;;;;;;;;;::::2;::::0;;;;8429:15;::::2;::::0;8428:71;;-1:-1:-1;;;8428:71:0;;;;::::2;6522:34:1::0;;;;8479:4:0::2;6572:18:1::0;;;6565:43;6624:18;;;6617:34;;;-1:-1:-1;;;;;8429:15:0::2;::::0;8428:30:::2;::::0;6457:18:1;;8428:71:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8536:16:0::2;::::0;::::2;::::0;8515:69:::2;::::0;;11271:25:1;;;11327:2;11312:18;;11305:34;;;8568:15:0::2;11355:18:1::0;;;11348:34;8524:10:0::2;::::0;8515:69:::2;::::0;11259:2:1;11244:18;8515:69:0::2;;;;;;;-1:-1:-1::0;;2252:1:0;2549:22;;-1:-1:-1;;;7457:1135:0:o;6524:214::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;2923:7:::1;::::0;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6625:28:0;::::2;6617:68;;;::::0;-1:-1:-1;;;6617:68:0;;13782:2:1;6617:68:0::2;::::0;::::2;13764:21:1::0;13821:2;13801:18;;;13794:30;13860;13840:18;;;13833:58;13908:18;;6617:68:0::2;13580:352:1::0;6617:68:0::2;6696:11;:34:::0;;-1:-1:-1;;;;;6696:34:0;;::::2;;;-1:-1:-1::0;;;;;;6696:34:0;;::::2;::::0;;;::::2;::::0;;6524:214::o;6746:403::-;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;2923:7:::1;::::0;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;6857:11:::2;:13:::0;;;:11:::2;:13;::::0;::::2;:::i;:::-;::::0;;;-1:-1:-1;;6917:11:0::2;::::0;;6881:21:::2;6905:24:::0;;;:11:::2;:24;::::0;;;;;;;;6940:15:::2;::::0;::::2;:37:::0;;-1:-1:-1;;;;;;6940:37:0::2;-1:-1:-1::0;;;;;6940:37:0;::::2;::::0;;::::2;::::0;;;6988:18:::2;::::0;::::2;:35:::0;;;7048:11;;7034:25;;;7077:64;;14139:25:1;;;14180:18;;;14173:60;;;;14249:18;;;14242:34;;;7088:10:0::2;::::0;7077:64:::2;::::0;14127:2:1;14112:18;7077:64:0::2;13937:345:1::0;6089:287:0;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;2923:7:::1;::::0;::::1;;2922:8;2914:37;;;;-1:-1:-1::0;;;2914:37:0::1;;;;;;;:::i;:::-;6207:21:::2;6231:20:::0;;;:11:::2;:20;::::0;;;;;;;;6262:18:::2;::::0;::::2;:35:::0;;;6315:53;;10037:25:1;;;10078:18;;;10071:34;;;6231:20:0;6332:10:::2;::::0;6315:53:::2;::::0;10010:18:1;6315:53:0::2;9863:248:1::0;1816:109:0;1729:6;;-1:-1:-1;;;;;1729:6:0;1142:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;1889:28:::1;1908:8;1889:18;:28::i;:::-;1816:109:::0;:::o;1933:229::-;-1:-1:-1;;;;;2007:22:0;;1999:73;;;;-1:-1:-1;;;1999:73:0;;14489:2:1;1999:73:0;;;14471:21:1;14528:2;14508:18;;;14501:30;14567:34;14547:18;;;14540:62;-1:-1:-1;;;14618:18:1;;;14611:36;14664:19;;1999:73:0;14287:402:1;1999:73:0;2109:6;;;2088:38;;-1:-1:-1;;;;;2088:38:0;;;;2109:6;;;2088:38;;;2137:6;:17;;-1:-1:-1;;;;;;2137:17:0;-1:-1:-1;;;;;2137:17:0;;;;;;;;;;1933:229::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;420:248::-;488:6;496;549:2;537:9;528:7;524:23;520:32;517:52;;;565:1;562;555:12;517:52;-1:-1:-1;;588:23:1;;;658:2;643:18;;;630:32;;-1:-1:-1;420:248:1:o;855:173::-;923:20;;-1:-1:-1;;;;;972:31:1;;962:42;;952:70;;1018:1;1015;1008:12;952:70;855:173;;;:::o;1033:328::-;1110:6;1118;1126;1179:2;1167:9;1158:7;1154:23;1150:32;1147:52;;;1195:1;1192;1185:12;1147:52;1218:29;1237:9;1218:29;:::i;:::-;1208:39;;1266:38;1300:2;1289:9;1285:18;1266:38;:::i;:::-;1256:48;;1351:2;1340:9;1336:18;1323:32;1313:42;;1033:328;;;;;:::o;1654:118::-;1740:5;1733:13;1726:21;1719:5;1716:32;1706:60;;1762:1;1759;1752:12;1777:309;1842:6;1850;1903:2;1891:9;1882:7;1878:23;1874:32;1871:52;;;1919:1;1916;1909:12;1871:52;1955:9;1942:23;1932:33;;2015:2;2004:9;2000:18;1987:32;2028:28;2050:5;2028:28;:::i;:::-;2075:5;2065:15;;;1777:309;;;;;:::o;2091:254::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;2335:2;2320:18;;;;2307:32;;-1:-1:-1;;;2091:254:1:o;2350:632::-;2521:2;2573:21;;;2643:13;;2546:18;;;2665:22;;;2492:4;;2521:2;2744:15;;;;2718:2;2703:18;;;2492:4;2787:169;2801:6;2798:1;2795:13;2787:169;;;2862:13;;2850:26;;2931:15;;;;2896:12;;;;2823:1;2816:9;2787:169;;;-1:-1:-1;2973:3:1;;2350:632;-1:-1:-1;;;;;;2350:632:1:o;3901:1158::-;4117:13;;-1:-1:-1;;;;;3650:31:1;3638:44;;4085:3;4070:19;;4198:4;4190:6;4186:17;4180:24;4173:4;4162:9;4158:20;4151:54;4261:4;4253:6;4249:17;4243:24;4236:4;4225:9;4221:20;4214:54;4324:4;4316:6;4312:17;4306:24;4299:4;4288:9;4284:20;4277:54;4387:4;4379:6;4375:17;4369:24;4362:4;4351:9;4347:20;4340:54;4450:4;4442:6;4438:17;4432:24;4425:4;4414:9;4410:20;4403:54;4513:4;4505:6;4501:17;4495:24;4488:4;4477:9;4473:20;4466:54;4576:4;4568:6;4564:17;4558:24;4551:4;4540:9;4536:20;4529:54;4602:6;4662:2;4654:6;4650:15;4644:22;4639:2;4628:9;4624:18;4617:50;;4686:6;4746:2;4738:6;4734:15;4728:22;4723:2;4712:9;4708:18;4701:50;;4770:6;4830:2;4822:6;4818:15;4812:22;4807:2;4796:9;4792:18;4785:50;;4854:6;4914:2;4906:6;4902:15;4896:22;4891:2;4880:9;4876:18;4869:50;;4938:6;4991:2;4983:6;4979:15;4973:22;5004:49;5049:2;5038:9;5034:18;5020:12;1436:13;1429:21;1417:34;;1366:91;5064:316;5141:6;5149;5157;5210:2;5198:9;5189:7;5185:23;5181:32;5178:52;;;5226:1;5223;5216:12;5178:52;-1:-1:-1;;5249:23:1;;;5319:2;5304:18;;5291:32;;-1:-1:-1;5370:2:1;5355:18;;;5342:32;;5064:316;-1:-1:-1;5064:316:1:o;5385:186::-;5444:6;5497:2;5485:9;5476:7;5472:23;5468:32;5465:52;;;5513:1;5510;5503:12;5465:52;5536:29;5555:9;5536:29;:::i;:::-;5526:39;5385:186;-1:-1:-1;;;5385:186:1:o;5576:356::-;5778:2;5760:21;;;5797:18;;;5790:30;5856:34;5851:2;5836:18;;5829:62;5923:2;5908:18;;5576:356::o;5937:340::-;6139:2;6121:21;;;6178:2;6158:18;;;6151:30;-1:-1:-1;;;6212:2:1;6197:18;;6190:46;6268:2;6253:18;;5937:340::o;6662:245::-;6729:6;6782:2;6770:9;6761:7;6757:23;6753:32;6750:52;;;6798:1;6795;6788:12;6750:52;6830:9;6824:16;6849:28;6871:5;6849:28;:::i;7384:127::-;7445:10;7440:3;7436:20;7433:1;7426:31;7476:4;7473:1;7466:15;7500:4;7497:1;7490:15;7516:128;7583:9;;;7604:11;;;7601:37;;;7618:18;;:::i;7649:168::-;7689:7;7755:1;7751;7747:6;7743:14;7740:1;7737:21;7732:1;7725:9;7718:17;7714:45;7711:71;;;7762:18;;:::i;:::-;-1:-1:-1;7802:9:1;;7649:168::o;7822:217::-;7862:1;7888;7878:132;;7932:10;7927:3;7923:20;7920:1;7913:31;7967:4;7964:1;7957:15;7995:4;7992:1;7985:15;7878:132;-1:-1:-1;8024:9:1;;7822:217::o;8044:340::-;8246:2;8228:21;;;8285:2;8265:18;;;8258:30;-1:-1:-1;;;8319:2:1;8304:18;;8297:46;8375:2;8360:18;;8044:340::o;8745:125::-;8810:9;;;8831:10;;;8828:36;;;8844:18;;:::i;13440:135::-;13479:3;13500:17;;;13497:43;;13520:18;;:::i;:::-;-1:-1:-1;13567:1:1;13556:13;;13440:135::o

Swarm Source

ipfs://5cbe9da82fde1bbb01172eaaab0b80a384cae92fd79da24bc53caf00c3ebb5fd

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.