Contract 0x445332F0719f9e66721536323A5D6a2677fE8080

 
 
Txn Hash
Method
Block
From
To
Value
0xfbc10041f9b524c18e4af7816038a901493f8c05fc371411e87eff643bcf4bc0Update Collar To...158744942022-11-01 10:09:5928 days 21 hrs agoENS Name collarquest.eth IN  0x445332f0719f9e66721536323a5d6a2677fe80800 Ether0.00027432 9.40798098
0x76b077faa4e53593c5e0f2ae1cfeb142256c3d0913c58ef4e751c89fffbfde0bPool Creation158688392022-10-31 15:08:3529 days 16 hrs agoENS Name collarquest.eth IN  0x445332f0719f9e66721536323a5d6a2677fe80800 Ether0.00265112 27.27076356
0xf405959a7cedb287949074ae2552e36a8e0b63264cea4d9f47cda389554074150x60806040154836252022-09-06 10:44:3684 days 21 hrs agoENS Name collarquest.eth IN  Create: CollarStake0 Ether0.01215748 7.39756788
[ Download CSV Export 
Parent Txn Hash Block From To Value
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

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
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.