ETH Price: $3,598.63 (+5.00%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Change Minimum N...116794212021-01-18 13:04:571446 days ago1610975097IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0024183280
Transfer115253322020-12-25 21:50:451470 days ago1608933045IN
NEST Protocol: nToken Oracle Auction
0.0000001 ETH0.00100848
Transfer115253152020-12-25 21:46:371470 days ago1608932797IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0008440
Auction Success111963222020-11-05 9:14:591520 days ago1604567699IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0232599126
Auction Success111939512020-11-05 0:25:051521 days ago1604535905IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0172826219
Auction Success111939462020-11-05 0:24:131521 days ago1604535853IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0172821719.00000145
Auction Success111939452020-11-05 0:24:051521 days ago1604535845IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0172826219.00000145
Auction Success111939382020-11-05 0:22:131521 days ago1604535733IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0180103119.8
Auction Success111905392020-11-04 12:01:371521 days ago1604491297IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0254691328
Auction Success111905372020-11-04 12:01:201521 days ago1604491280IN
NEST Protocol: nToken Oracle Auction
0 ETH0.024559227
Auction Success111905352020-11-04 12:00:571521 days ago1604491257IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0239227926.3
Continue Auction111614142020-10-31 0:26:021526 days ago1604103962IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0023110720.65284137
Continue Auction111583992020-10-30 13:25:311526 days ago1604064331IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0100710990.00000437
Start An Auction111583672020-10-30 13:20:171526 days ago1604064017IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0244148899
Auction Success111368342020-10-27 6:01:581530 days ago1603778518IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0163730118
Continue Auction111180002020-10-24 8:30:471532 days ago1603528247IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0017079616.5
Continue Auction111179932020-10-24 8:30:241532 days ago1603528224IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0018465616.5
Continue Auction111165202020-10-24 3:12:051533 days ago1603509125IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0063790457.00000437
Start An Auction111165132020-10-24 3:10:301533 days ago1603509030IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0140577457.00000437
Auction Success111035162020-10-22 3:20:071535 days ago1603336807IN
NEST Protocol: nToken Oracle Auction
0 ETH0.06094467.00000145
Continue Auction110908672020-10-20 4:33:411537 days ago1603168421IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0029495326.35
Auction Success110900242020-10-20 1:33:061537 days ago1603157586IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0172826219.00000134
Continue Auction110877242020-10-19 17:07:341537 days ago1603127254IN
NEST Protocol: nToken Oracle Auction
0 ETH0.002686224
Continue Auction110865652020-10-19 13:03:381537 days ago1603112618IN
NEST Protocol: nToken Oracle Auction
0 ETH0.01511149135
Continue Auction110865232020-10-19 12:53:591537 days ago1603112039IN
NEST Protocol: nToken Oracle Auction
0 ETH0.0055793549.84375
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
111963222020-11-05 9:14:591520 days ago1604567699
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111939512020-11-05 0:25:051521 days ago1604535905
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111939462020-11-05 0:24:131521 days ago1604535853
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111939452020-11-05 0:24:051521 days ago1604535845
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111939382020-11-05 0:22:131521 days ago1604535733
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111905392020-11-04 12:01:371521 days ago1604491297
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111905372020-11-04 12:01:201521 days ago1604491280
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111905352020-11-04 12:00:571521 days ago1604491257
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111368342020-10-27 6:01:581530 days ago1603778518
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
111035162020-10-22 3:20:071535 days ago1603336807
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
110900242020-10-20 1:33:061537 days ago1603157586
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
110825192020-10-18 22:07:151538 days ago1603058835
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
110808562020-10-18 16:03:471538 days ago1603037027
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
110351702020-10-11 16:03:111545 days ago1602432191
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
110085042020-10-07 12:08:571549 days ago1602072537
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109996942020-10-06 3:11:471551 days ago1601953907
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109991532020-10-06 1:06:331551 days ago1601946393
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109987902020-10-05 23:44:361551 days ago1601941476
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109940862020-10-05 6:26:311552 days ago1601879191
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109930252020-10-05 2:16:551552 days ago1601864215
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109929682020-10-05 2:06:061552 days ago1601863566
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109910682020-10-04 18:51:351552 days ago1601837495
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109909042020-10-04 18:14:451552 days ago1601835285
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109904702020-10-04 16:35:291552 days ago1601829329
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
109545652020-09-29 1:52:391558 days ago1601344359
NEST Protocol: nToken Oracle Auction
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nest_NToken_TokenAuction

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-28
*/

pragma solidity 0.6.0;

/**
 * @title Auction NToken contract 
 * @dev Auction for listing and generating NToken
 */
contract Nest_NToken_TokenAuction {
    using SafeMath for uint256;
    using address_make_payable for address;
    using SafeERC20 for ERC20;
    
    Nest_3_VoteFactory _voteFactory;                            //  Voting contract
    Nest_NToken_TokenMapping _tokenMapping;                     //  NToken mapping contract
    ERC20 _nestToken;                                           //  NestToken
    Nest_3_OfferPrice _offerPrice;                              //  Price contract
    address _destructionAddress;                                //  Destruction contract address
    uint256 _duration = 5 days;                                 //  Auction duration
    uint256 _minimumNest = 100000 ether;                        //  Minimum auction amount
    uint256 _tokenNum = 1;                                      //  Auction token number
    uint256 _incentiveRatio = 50;                               //  Incentive ratio
    uint256 _minimumInterval = 10000 ether;                     //  Minimum auction interval
    mapping(address => AuctionInfo) _auctionList;               //  Auction list
    mapping(address => bool) _tokenBlackList;                   //  Auction blacklist
    struct AuctionInfo {
        uint256 endTime;                                        //  End time 
        uint256 auctionValue;                                   //  Auction price
        address latestAddress;                                  //  Highest auctioneer
        uint256 latestAmount;                                   //  Lastest auction amount 
    }
    address[] _allAuction;                                      //  Auction list array
    
    /**
    * @dev Initialization method
    * @param voteFactory Voting contract address
    */
    constructor (address voteFactory) public {
        Nest_3_VoteFactory voteFactoryMap = Nest_3_VoteFactory(address(voteFactory));
        _voteFactory = voteFactoryMap;
        _tokenMapping = Nest_NToken_TokenMapping(address(voteFactoryMap.checkAddress("nest.nToken.tokenMapping")));
        _nestToken = ERC20(address(voteFactoryMap.checkAddress("nest")));
        _destructionAddress = address(voteFactoryMap.checkAddress("nest.v3.destruction"));
        _offerPrice = Nest_3_OfferPrice(address(voteFactoryMap.checkAddress("nest.v3.offerPrice")));
    }
    
    /**
    * @dev Reset voting contract
    * @param voteFactory Voting contract address
    */
    function changeMapping(address voteFactory) public onlyOwner {
        Nest_3_VoteFactory voteFactoryMap = Nest_3_VoteFactory(address(voteFactory));
        _voteFactory = voteFactoryMap;
        _tokenMapping = Nest_NToken_TokenMapping(address(voteFactoryMap.checkAddress("nest.nToken.tokenMapping")));
        _nestToken = ERC20(address(voteFactoryMap.checkAddress("nest")));
        _destructionAddress = address(voteFactoryMap.checkAddress("nest.v3.destruction"));
        _offerPrice = Nest_3_OfferPrice(address(voteFactoryMap.checkAddress("nest.v3.offerPrice")));
    }
    
    /**
    * @dev Initiating auction
    * @param token Auction token address
    * @param auctionAmount Initial auction amount
    */
    function startAnAuction(address token, uint256 auctionAmount) public {
        require(_tokenMapping.checkTokenMapping(token) == address(0x0), "Token already exists");
        require(_auctionList[token].endTime == 0, "Token is on sale");
        require(auctionAmount >= _minimumNest, "AuctionAmount less than the minimum auction amount");
        require(_nestToken.transferFrom(address(msg.sender), address(this), auctionAmount), "Authorization failed");
        require(!_tokenBlackList[token]);
        // Verification
        ERC20 tokenERC20 = ERC20(token);
        tokenERC20.safeTransferFrom(address(msg.sender), address(this), 1);
        require(tokenERC20.balanceOf(address(this)) >= 1);
        tokenERC20.safeTransfer(address(msg.sender), 1);
        AuctionInfo memory thisAuction = AuctionInfo(now.add(_duration), auctionAmount, address(msg.sender), auctionAmount);
        _auctionList[token] = thisAuction;
        _allAuction.push(token);
    }
    
    /**
    * @dev Auction
    * @param token Auction token address 
    * @param auctionAmount Auction amount
    */
    function continueAuction(address token, uint256 auctionAmount) public {
        require(now <= _auctionList[token].endTime && _auctionList[token].endTime != 0, "Auction closed");
        require(auctionAmount > _auctionList[token].auctionValue, "Insufficient auction amount");
        uint256 subAuctionAmount = auctionAmount.sub(_auctionList[token].auctionValue);
        require(subAuctionAmount >= _minimumInterval);
        uint256 excitation = subAuctionAmount.mul(_incentiveRatio).div(100);
        require(_nestToken.transferFrom(address(msg.sender), address(this), auctionAmount), "Authorization failed");
        require(_nestToken.transfer(_auctionList[token].latestAddress, _auctionList[token].auctionValue.add(excitation)), "Transfer failure");
        // Update auction information
        _auctionList[token].auctionValue = auctionAmount;
        _auctionList[token].latestAddress = address(msg.sender);
        _auctionList[token].latestAmount = _auctionList[token].latestAmount.add(subAuctionAmount.sub(excitation));
    }
    
    /**
    * @dev Listing
    * @param token Auction token address
    */
    function auctionSuccess(address token) public {
        Nest_3_TokenAbonus nestAbonus = Nest_3_TokenAbonus(_voteFactory.checkAddress("nest.v3.tokenAbonus"));
        uint256 nowTime = now;
        uint256 nextTime = nestAbonus.getNextTime();
        uint256 timeLimit = nestAbonus.checkTimeLimit();
        uint256 getAbonusTimeLimit = nestAbonus.checkGetAbonusTimeLimit();
        require(!(nowTime >= nextTime.sub(timeLimit) && nowTime <= nextTime.sub(timeLimit).add(getAbonusTimeLimit)), "Not time to auctionSuccess");
        require(nowTime > _auctionList[token].endTime && _auctionList[token].endTime != 0, "Token is on sale");
        //  Initialize NToken
        Nest_NToken nToken = new Nest_NToken(strConcat("NToken", getAddressStr(_tokenNum)), strConcat("N", getAddressStr(_tokenNum)), address(_voteFactory), address(_auctionList[token].latestAddress));
        //  Auction NEST destruction
        require(_nestToken.transfer(_destructionAddress, _auctionList[token].latestAmount), "Transfer failure");
        //  Add NToken mapping
        _tokenMapping.addTokenMapping(token, address(nToken));
        //  Initialize charging parameters
        _offerPrice.addPriceCost(token);
        _tokenNum = _tokenNum.add(1);
    }
    
    function strConcat(string memory _a, string memory _b) public pure returns (string memory){
        bytes memory _ba = bytes(_a);
        bytes memory _bb = bytes(_b);
        string memory ret = new string(_ba.length + _bb.length);
        bytes memory bret = bytes(ret);
        uint k = 0;
        for (uint i = 0; i < _ba.length; i++) {
            bret[k++] = _ba[i];
        } 
        for (uint i = 0; i < _bb.length; i++) {
            bret[k++] = _bb[i];
        } 
        return string(ret);
    } 
    
    // Convert to 4-digit string
    function getAddressStr(uint256 iv) public pure returns (string memory) {
        bytes memory buf = new bytes(64);
        uint256 index = 0;
        do {
            buf[index++] = byte(uint8(iv % 10 + 48));
            iv /= 10;
        } while (iv > 0 || index < 4);
        bytes memory str = new bytes(index);
        for(uint256 i = 0; i < index; ++i) {
            str[i] = buf[index - i - 1];
        }
        return string(str);
    }
    
    // Check auction duration
    function checkDuration() public view returns(uint256) {
        return _duration;
    }
    
    // Check minimum auction amount
    function checkMinimumNest() public view returns(uint256) {
        return _minimumNest;
    }
    
    // Check initiated number of auction tokens
    function checkAllAuctionLength() public view returns(uint256) {
        return _allAuction.length;
    }
    
    // View auctioned token addresses
    function checkAuctionTokenAddress(uint256 num) public view returns(address) {
        return _allAuction[num];
    }
    
    // View auction blacklist
    function checkTokenBlackList(address token) public view returns(bool) {
        return _tokenBlackList[token];
    }
    
    // View auction token information
    function checkAuctionInfo(address token) public view returns(uint256 endTime, uint256 auctionValue, address latestAddress) {
        AuctionInfo memory info = _auctionList[token];
        return (info.endTime, info.auctionValue, info.latestAddress);
    }
    
    // View token number
    function checkTokenNum() public view returns (uint256) {
        return _tokenNum;
    }
    
    // Modify auction duration
    function changeDuration(uint256 num) public onlyOwner {
        _duration = num.mul(1 days);
    }
    
    // Modify minimum auction amount
    function changeMinimumNest(uint256 num) public onlyOwner {
        _minimumNest = num;
    }
    
    // Modify auction blacklist
    function changeTokenBlackList(address token, bool isBlack) public onlyOwner {
        _tokenBlackList[token] = isBlack;
    }
    
    // Administrator only
    modifier onlyOwner(){
        require(_voteFactory.checkOwners(msg.sender), "No authority");
        _;
    }
    
}

// Bonus logic contract
interface Nest_3_TokenAbonus {
    // View next bonus time 
    function getNextTime() external view returns (uint256);
    // View bonus period 
    function checkTimeLimit() external view returns (uint256);
    // View duration of triggering calculation of bonus
    function checkGetAbonusTimeLimit() external view returns (uint256);
}

//  voting contract 
interface Nest_3_VoteFactory {
    //  Check address 
	function checkAddress(string calldata name) external view returns (address contractAddress);
	//  check whether the administrator 
	function checkOwners(address man) external view returns (bool);
}

/**
 * @title NToken contract 
 * @dev Include standard erc20 method, mining method, and mining data 
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Nest_NToken is IERC20 {
    using SafeMath for uint256;
    
    mapping (address => uint256) private _balances;                                 //  Balance ledger 
    mapping (address => mapping (address => uint256)) private _allowed;             //  Approval ledger 
    uint256 private _totalSupply = 0 ether;                                         //  Total supply 
    string public name;                                                             //  Token name 
    string public symbol;                                                           //  Token symbol 
    uint8 public decimals = 18;                                                     //  Precision
    uint256 public _createBlock;                                                    //  Create block number
    uint256 public _recentlyUsedBlock;                                              //  Recently used block number
    Nest_3_VoteFactory _voteFactory;                                                //  Voting factory contract
    address _bidder;                                                                //  Owner
    
    /**
    * @dev Initialization method
    * @param _name Token name
    * @param _symbol Token symbol
    * @param voteFactory Voting factory contract address
    * @param bidder Successful bidder address
    */
    constructor (string memory _name, string memory _symbol, address voteFactory, address bidder) public {
    	name = _name;                                                               
    	symbol = _symbol;
    	_createBlock = block.number;
    	_recentlyUsedBlock = block.number;
    	_voteFactory = Nest_3_VoteFactory(address(voteFactory));
    	_bidder = bidder;
    }
    
    /**
    * @dev Reset voting contract method
    * @param voteFactory Voting contract address
    */
    function changeMapping (address voteFactory) public onlyOwner {
    	_voteFactory = Nest_3_VoteFactory(address(voteFactory));
    }
    
    /**
    * @dev Additional issuance
    * @param value Additional issuance amount
    */
    function increaseTotal(uint256 value) public {
        address offerMain = address(_voteFactory.checkAddress("nest.nToken.offerMain"));
        require(address(msg.sender) == offerMain, "No authority");
        _balances[offerMain] = _balances[offerMain].add(value);
        _totalSupply = _totalSupply.add(value);
        _recentlyUsedBlock = block.number;
    }

    /**
    * @dev Check the total amount of tokens
    * @return Total supply
    */
    function totalSupply() override public view returns (uint256) {
        return _totalSupply;
    }

    /**
    * @dev Check address balance
    * @param owner Address to be checked
    * @return Return the balance of the corresponding address
    */
    function balanceOf(address owner) override public view returns (uint256) {
        return _balances[owner];
    }
    
    /**
    * @dev Check block information
    * @return createBlock Initial block number
    * @return recentlyUsedBlock Recently mined and issued block
    */
    function checkBlockInfo() public view returns(uint256 createBlock, uint256 recentlyUsedBlock) {
        return (_createBlock, _recentlyUsedBlock);
    }

    /**
     * @dev Check owner's approved allowance to the spender
     * @param owner Approving address
     * @param spender Approved address
     * @return Approved amount
     */
    function allowance(address owner, address spender) override public view returns (uint256) {
        return _allowed[owner][spender];
    }

    /**
    * @dev Transfer method
    * @param to Transfer target
    * @param value Transfer amount
    * @return Whether the transfer is successful
    */
    function transfer(address to, uint256 value) override public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approval method
     * @param spender Approval target
     * @param value Approval amount
     * @return Whether the approval is successful
     */
    function approve(address spender, uint256 value) override public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens when approved
     * @param from Transfer-out account address
     * @param to Transfer-in account address
     * @param value Transfer amount
     * @return Whether approved transfer is successful
     */
    function transferFrom(address from, address to, uint256 value) override public returns (bool) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;
    }

    /**
     * @dev Increase the allowance
     * @param spender Approval target
     * @param addedValue Amount to increase
     * @return whether increase is successful
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the allowance
     * @param spender Approval target
     * @param subtractedValue Amount to decrease
     * @return Whether decrease is successful
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
    * @dev Transfer method
    * @param to Transfer target
    * @param value Transfer amount
    */
    function _transfer(address from, address to, uint256 value) internal {
        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }
    
    /**
    * @dev Check the creator
    * @return Creator address
    */
    function checkBidder() public view returns(address) {
        return _bidder;
    }
    
    /**
    * @dev Transfer creator
    * @param bidder New creator address
    */
    function changeBidder(address bidder) public {
        require(address(msg.sender) == _bidder);
        _bidder = bidder; 
    }
    
    // Administrator only
    modifier onlyOwner(){
        require(_voteFactory.checkOwners(msg.sender));
        _;
    }
}

// NToken mapping contract
interface Nest_NToken_TokenMapping {
    //  Add mapping
    function addTokenMapping(address token, address nToken) external;
    function checkTokenMapping(address token) external view returns (address);
}

// Price contract
interface Nest_3_OfferPrice {
    function addPriceCost(address tokenAddress) external;
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library address_make_payable {
   function make_payable(address x) internal pure returns (address payable) {
      return address(uint160(x));
   }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(ERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(ERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(ERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(ERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }
    function callOptionalReturn(ERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"voteFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"auctionSuccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"changeDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"voteFactory","type":"address"}],"name":"changeMapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"changeMinimumNest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"isBlack","type":"bool"}],"name":"changeTokenBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkAllAuctionLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"checkAuctionInfo","outputs":[{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"auctionValue","type":"uint256"},{"internalType":"address","name":"latestAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"checkAuctionTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMinimumNest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"checkTokenBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkTokenNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"auctionAmount","type":"uint256"}],"name":"continueAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"iv","type":"uint256"}],"name":"getAddressStr","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"auctionAmount","type":"uint256"}],"name":"startAnAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_a","type":"string"},{"internalType":"string","name":"_b","type":"string"}],"name":"strConcat","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

60806040526206978060055569152d02c7e14af68000006006556001600755603260085569021e19e0c9bab24000006009553480156200003e57600080fd5b506040516200346938038062003469833981810160405260208110156200006457600080fd5b5051600080546001600160a01b0319166001600160a01b038316908117909155604080516347f3bf4360e11b8152602060048201819052601860248301527f6e6573742e6e546f6b656e2e746f6b656e4d617070696e67000000000000000060448301529151849392638fe77e869260648082019391829003018186803b158015620000ef57600080fd5b505afa15801562000104573d6000803e3d6000fd5b505050506040513d60208110156200011b57600080fd5b5051600180546001600160a01b0319166001600160a01b03928316179055604080516347f3bf4360e11b8152602060048083018290526024830152631b995cdd60e21b6044830152915192841692638fe77e8692606480840193919291829003018186803b1580156200018d57600080fd5b505afa158015620001a2573d6000803e3d6000fd5b505050506040513d6020811015620001b957600080fd5b5051600280546001600160a01b0319166001600160a01b03928316179055604080516347f3bf4360e11b8152602060048201819052601360248301527f6e6573742e76332e6465737472756374696f6e000000000000000000000000006044830152915192841692638fe77e8692606480840193919291829003018186803b1580156200024557600080fd5b505afa1580156200025a573d6000803e3d6000fd5b505050506040513d60208110156200027157600080fd5b5051600480546001600160a01b0319166001600160a01b03928316178155604080516347f3bf4360e11b8152602092810183905260126024820152716e6573742e76332e6f66666572507269636560701b6044820152905192841692638fe77e8692606480840193919291829003018186803b158015620002f157600080fd5b505afa15801562000306573d6000803e3d6000fd5b505050506040513d60208110156200031d57600080fd5b5051600380546001600160a01b0319166001600160a01b0390921691909117905550613118905080620003516000396000f3fe60806040523480156200001157600080fd5b5060043610620001185760003560e01c8063ac39cfb011620000a5578063dea8cf02116200006f578063dea8cf021462000398578063fa7ad00414620003a2578063fc4d781a14620003d1578063ff74927b14620003db5762000118565b8063ac39cfb014620002e1578063ae6c67e2146200031e578063b594f086146200036e578063c90ebff8146200038e5762000118565b806350831cb211620000e757806350831cb21462000244578063580776c71462000260578063719838811462000289578063a781e7f814620002b85762000118565b8063137a40df146200011d5780631a0ed68214620001b5578063210f7af614620001d75780634cc27a5f1462000213575b600080fd5b6200013d600480360360208110156200013557600080fd5b503562000511565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620001795781810151838201526020016200015f565b50505050905090810190601f168015620001a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b620001d560048036036020811015620001cd57600080fd5b503562000614565b005b620001f760048036036020811015620001ef57600080fd5b5035620006d4565b604080516001600160a01b039092168252519081900360200190f35b620001d5600480360360408110156200022b57600080fd5b506001600160a01b0381351690602001351515620006ff565b6200024e620007e5565b60408051918252519081900360200190f35b620001d5600480360360208110156200027857600080fd5b50356001600160a01b0316620007eb565b620001d560048036036040811015620002a157600080fd5b506001600160a01b03813516906020013562000e8a565b620001d560048036036020811015620002d057600080fd5b50356001600160a01b031662001258565b6200030a60048036036020811015620002f957600080fd5b50356001600160a01b0316620015e5565b604080519115158252519081900360200190f35b62000347600480360360208110156200033657600080fd5b50356001600160a01b031662001603565b6040805193845260208401929092526001600160a01b031682820152519081900360600190f35b620001d5600480360360208110156200038657600080fd5b503562001669565b6200024e6200173f565b6200024e62001745565b620001d560048036036040811015620003ba57600080fd5b506001600160a01b0381351690602001356200174b565b6200024e62001b52565b6200013d60048036036040811015620003f357600080fd5b8101906020810181356401000000008111156200040f57600080fd5b8201836020820111156200042257600080fd5b803590602001918460018302840111640100000000831117156200044557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156200049957600080fd5b820183602082011115620004ac57600080fd5b80359060200191846001830284011164010000000083111715620004cf57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062001b58945050505050565b60408051818152606081810183529182919060208201818038833901905050905060005b600a840660300160f81b8282806001019350815181106200055257fe5b60200101906001600160f81b031916908160001a905350600a8404935060008411806200057f5750600481105b62000535576060816040519080825280601f01601f191660200182016040528015620005b2576020820181803883390190505b50905060005b828110156200060b578360018285030381518110620005d357fe5b602001015160f81c60f81b828281518110620005eb57fe5b60200101906001600160f81b031916908160001a905350600101620005b8565b50949350505050565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b1580156200066057600080fd5b505afa15801562000675573d6000803e3d6000fd5b505050506040513d60208110156200068c57600080fd5b5051620006cf576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b600655565b6000600c8281548110620006e457fe5b6000918252602090912001546001600160a01b031692915050565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b1580156200074b57600080fd5b505afa15801562000760573d6000803e3d6000fd5b505050506040513d60208110156200077757600080fd5b5051620007ba576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60055490565b60008054604080516347f3bf4360e11b815260206004820181905260136024830152726e6573742e76332e746f6b656e41626f6e757360681b604483015291516001600160a01b0390931692638fe77e8692606480840193919291829003018186803b1580156200085b57600080fd5b505afa15801562000870573d6000803e3d6000fd5b505050506040513d60208110156200088757600080fd5b505160408051637711e85760e01b8152905191925042916000916001600160a01b03851691637711e85791600480820192602092909190829003018186803b158015620008d357600080fd5b505afa158015620008e8573d6000803e3d6000fd5b505050506040513d6020811015620008ff57600080fd5b505160408051632cc3eb5360e01b815290519192506000916001600160a01b03861691632cc3eb53916004808301926020929190829003018186803b1580156200094857600080fd5b505afa1580156200095d573d6000803e3d6000fd5b505050506040513d60208110156200097457600080fd5b505160408051633a97a7cb60e21b815290519192506000916001600160a01b0387169163ea5e9f2c916004808301926020929190829003018186803b158015620009bd57600080fd5b505afa158015620009d2573d6000803e3d6000fd5b505050506040513d6020811015620009e957600080fd5b50519050620009ff838363ffffffff62001c5a16565b841015801562000a32575062000a2e8162000a21858563ffffffff62001c5a16565b9063ffffffff62001ca516565b8411155b1562000a85576040805162461bcd60e51b815260206004820152601a60248201527f4e6f742074696d6520746f2061756374696f6e53756363657373000000000000604482015290519081900360640190fd5b6001600160a01b0386166000908152600a60205260409020548411801562000ac457506001600160a01b0386166000908152600a602052604090205415155b62000b09576040805162461bcd60e51b815260206004820152601060248201526f546f6b656e206973206f6e2073616c6560801b604482015290519081900360640190fd5b600062000b4160405180604001604052806006815260200165272a37b5b2b760d11b81525062000b3b60075462000511565b62001b58565b62000b6c604051806040016040528060018152602001602760f91b81525062000b3b60075462000511565b600080546001600160a01b038b81168352600a60205260409283902060020154925191811692169062000b9f9062002162565b6001600160a01b0380841660408301528216606082015260808082528551908201528451819060208083019160a084019189019080838360005b8381101562000bf357818101518382015260200162000bd9565b50505050905090810190601f16801562000c215780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101562000c5657818101518382015260200162000c3c565b50505050905090810190601f16801562000c845780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f08015801562000caa573d6000803e3d6000fd5b50600254600480546001600160a01b038b81166000908152600a6020908152604080832060030154815163a9059cbb60e01b8152958516968601969096526024850195909552935195965093169363a9059cbb93604480840194938390030190829087803b15801562000d1c57600080fd5b505af115801562000d31573d6000803e3d6000fd5b505050506040513d602081101562000d4857600080fd5b505162000d8f576040805162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c75726560801b604482015290519081900360640190fd5b600154604080516306e0e25960e11b81526001600160a01b038a81166004830152848116602483015291519190921691630dc1c4b291604480830192600092919082900301818387803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b50506003546040805163aca97d6d60e01b81526001600160a01b038c81166004830152915191909216935063aca97d6d9250602480830192600092919082900301818387803b15801562000e4e57600080fd5b505af115801562000e63573d6000803e3d6000fd5b505060075462000e7e92509050600163ffffffff62001ca516565b60075550505050505050565b6001600160a01b0382166000908152600a6020526040902054421180159062000eca57506001600160a01b0382166000908152600a602052604090205415155b62000f0d576040805162461bcd60e51b815260206004820152600e60248201526d105d58dd1a5bdb8818db1bdcd95960921b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a6020526040902060010154811162000f7d576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742061756374696f6e20616d6f756e740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600a602052604081206001015462000fac90839063ffffffff62001c5a16565b905060095481101562000fbe57600080fd5b600062000fea606462000fdd6008548562001d0090919063ffffffff16565b9063ffffffff62001d5e16565b600254604080516323b872dd60e01b81523360048201523060248201526044810187905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b1580156200104857600080fd5b505af11580156200105d573d6000803e3d6000fd5b505050506040513d60208110156200107457600080fd5b5051620010bf576040805162461bcd60e51b8152602060048201526014602482015273105d5d1a1bdc9a5e985d1a5bdb8819985a5b195960621b604482015290519081900360640190fd5b600280546001600160a01b038681166000908152600a60205260409020928301546001909301549181169263a9059cbb92911690620010ff908562001ca5565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156200114f57600080fd5b505af115801562001164573d6000803e3d6000fd5b505050506040513d60208110156200117b57600080fd5b5051620011c2576040805162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c75726560801b604482015290519081900360640190fd5b6001600160a01b0384166000908152600a602052604090206001810184905560020180546001600160a01b03191633179055620012336200120a838363ffffffff62001c5a16565b6001600160a01b0386166000908152600a60205260409020600301549063ffffffff62001ca516565b6001600160a01b039094166000908152600a6020526040902060030193909355505050565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b158015620012a457600080fd5b505afa158015620012b9573d6000803e3d6000fd5b505050506040513d6020811015620012d057600080fd5b505162001313576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117909155604080516347f3bf4360e11b8152602060048201819052601860248301527f6e6573742e6e546f6b656e2e746f6b656e4d617070696e67000000000000000060448301529151849392638fe77e869260648082019391829003018186803b1580156200139c57600080fd5b505afa158015620013b1573d6000803e3d6000fd5b505050506040513d6020811015620013c857600080fd5b5051600180546001600160a01b0319166001600160a01b03928316179055604080516347f3bf4360e11b8152602060048083018290526024830152631b995cdd60e21b6044830152915192841692638fe77e8692606480840193919291829003018186803b1580156200143a57600080fd5b505afa1580156200144f573d6000803e3d6000fd5b505050506040513d60208110156200146657600080fd5b5051600280546001600160a01b0319166001600160a01b03928316179055604080516347f3bf4360e11b815260206004820181905260136024830152723732b9ba173b19973232b9ba393ab1ba34b7b760691b6044830152915192841692638fe77e8692606480840193919291829003018186803b158015620014e857600080fd5b505afa158015620014fd573d6000803e3d6000fd5b505050506040513d60208110156200151457600080fd5b5051600480546001600160a01b0319166001600160a01b03928316178155604080516347f3bf4360e11b8152602092810183905260126024820152716e6573742e76332e6f66666572507269636560701b6044820152905192841692638fe77e8692606480840193919291829003018186803b1580156200159457600080fd5b505afa158015620015a9573d6000803e3d6000fd5b505050506040513d6020811015620015c057600080fd5b5051600380546001600160a01b0319166001600160a01b039092169190911790555050565b6001600160a01b03166000908152600b602052604090205460ff1690565b60008060006200161262002170565b505050506001600160a01b039081166000908152600a602090815260409182902082516080810184528154808252600183015493820184905260028301549095169381018490526003909101546060909101529192565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b158015620016b557600080fd5b505afa158015620016ca573d6000803e3d6000fd5b505050506040513d6020811015620016e157600080fd5b505162001724576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b62001739816201518063ffffffff62001d0016565b60055550565b60065490565b60075490565b6001546040805163323442c360e11b81526001600160a01b038581166004830152915160009390921691636468858691602480820192602092909190829003018186803b1580156200179c57600080fd5b505afa158015620017b1573d6000803e3d6000fd5b505050506040513d6020811015620017c857600080fd5b50516001600160a01b0316146200181d576040805162461bcd60e51b8152602060048201526014602482015273546f6b656e20616c72656164792065786973747360601b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a6020526040902054156200187c576040805162461bcd60e51b815260206004820152601060248201526f546f6b656e206973206f6e2073616c6560801b604482015290519081900360640190fd5b600654811015620018bf5760405162461bcd60e51b8152600401808060200182810382526032815260200180620030876032913960400191505060405180910390fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156200191a57600080fd5b505af11580156200192f573d6000803e3d6000fd5b505050506040513d60208110156200194657600080fd5b505162001991576040805162461bcd60e51b8152602060048201526014602482015273105d5d1a1bdc9a5e985d1a5bdb8819985a5b195960621b604482015290519081900360640190fd5b6001600160a01b0382166000908152600b602052604090205460ff1615620019b857600080fd5b81620019d76001600160a01b0382163330600163ffffffff62001da216565b604080516370a0823160e01b815230600482015290516001916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801562001a2257600080fd5b505afa15801562001a37573d6000803e3d6000fd5b505050506040513d602081101562001a4e57600080fd5b5051101562001a5c57600080fd5b62001a796001600160a01b03821633600163ffffffff62001e0416565b62001a8362002170565b604051806080016040528062001aa56005544262001ca590919063ffffffff16565b81526020808201869052336040808401919091526060928301969096526001600160a01b039687166000818152600a835287812085518155928501516001808501919091559785015160028401805491909a166001600160a01b0319918216179099559390920151600390910155600c805495860181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790930180549094169092179092555050565b600c5490565b6060808390506060839050606081518351016040519080825280601f01601f19166020018201604052801562001b95576020820181803883390190505b509050806000805b855181101562001bf25785818151811062001bb457fe5b602001015160f81c60f81b83838060010194508151811062001bd257fe5b60200101906001600160f81b031916908160001a90535060010162001b9d565b5060005b845181101562001c4b5784818151811062001c0d57fe5b602001015160f81c60f81b83838060010194508151811062001c2b57fe5b60200101906001600160f81b031916908160001a90535060010162001bf6565b50919450505050505b92915050565b600062001c9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001e5d565b9392505050565b60008282018381101562001c9e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008262001d115750600062001c54565b8282028284828162001d1f57fe5b041462001c9e5760405162461bcd60e51b8152600401808060200182810382526021815260200180620030666021913960400191505060405180910390fd5b600062001c9e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062001ef8565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905262001dfe90859062001f61565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905262001e5890849062001f61565b505050565b6000818484111562001ef05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562001eb457818101518382015260200162001e9a565b50505050905090810190601f16801562001ee25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818362001f4a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831562001eb457818101518382015260200162001e9a565b50600083858162001f5757fe5b0495945050505050565b62001f75826001600160a01b031662002125565b62001fc7576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310620020075780518252601f19909201916020918201910162001fe6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200206b576040519150601f19603f3d011682016040523d82523d6000602084013e62002070565b606091505b509150915081620020c8576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b80511562001dfe57808060200190516020811015620020e657600080fd5b505162001dfe5760405162461bcd60e51b815260040180806020018281038252602a815260200180620030b9602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906200215a57508115155b949350505050565b610ec480620021a283390190565b6040518060800160405280600081526020016000815260200160006001600160a01b0316815260200160008152509056fe608060405260006002556005805460ff191660121790553480156200002357600080fd5b5060405162000ec438038062000ec4833981810160405260808110156200004957600080fd5b81019080805160405193929190846401000000008211156200006a57600080fd5b9083019060208201858111156200008057600080fd5b82516401000000008111828201881017156200009b57600080fd5b82525081516020918201929091019080838360005b83811015620000ca578181015183820152602001620000b0565b50505050905090810190601f168015620000f85780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011c57600080fd5b9083019060208201858111156200013257600080fd5b82516401000000008111828201881017156200014d57600080fd5b82525081516020918201929091019080838360005b838110156200017c57818101518382015260200162000162565b50505050905090810190601f168015620001aa5780820380516001836020036101000a031916815260200191505b506040908152602082810151929091015186519294509250620001d39160039187019062000228565b508251620001e990600490602086019062000228565b50436006819055600755600880546001600160a01b039384166001600160a01b0319918216179091556009805492909316911617905550620002cd9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026b57805160ff19168380011785556200029b565b828001600101855582156200029b579182015b828111156200029b5782518255916020019190600101906200027e565b50620002a9929150620002ad565b5090565b620002ca91905b80821115620002a95760008155600101620002b4565b90565b610be780620002dd6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063500788d5116100a257806395d89b411161007157806395d89b4114610332578063a457c2d71461033a578063a781e7f814610366578063a9059cbb1461038c578063dd62ed3e146103b857610116565b8063500788d5146102c657806370a08231146102ce57806381fa5431146102f457806392c088711461031157610116565b806318160ddd116100e957806318160ddd1461021a57806323b872dd1461022257806328e6a33f14610258578063313ce5671461027c578063395093511461029a57610116565b806306fdde031461011b578063095ea7b3146101985780630c462a36146101d8578063161b058b146101f2575b600080fd5b6101236103e6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610474565b604080519115158252519081900360200190f35b6101e06104f0565b60408051918252519081900360200190f35b6102186004803603602081101561020857600080fd5b50356001600160a01b03166104f6565b005b6101e061052f565b6101c46004803603606081101561023857600080fd5b506001600160a01b03813581169160208101359091169060400135610535565b6102606105fe565b604080516001600160a01b039092168252519081900360200190f35b61028461060d565b6040805160ff9092168252519081900360200190f35b6101c4600480360360408110156102b057600080fd5b506001600160a01b038135169060200135610616565b6101e06106c4565b6101e0600480360360208110156102e457600080fd5b50356001600160a01b03166106ca565b6102186004803603602081101561030a57600080fd5b50356106e5565b61031961082e565b6040805192835260208301919091528051918290030190f35b610123610838565b6101c46004803603604081101561035057600080fd5b506001600160a01b038135169060200135610893565b6102186004803603602081101561037c57600080fd5b50356001600160a01b03166108dc565b6101c4600480360360408110156103a257600080fd5b506001600160a01b03813516906020013561097e565b6101e0600480360360408110156103ce57600080fd5b506001600160a01b0381358116916020013516610994565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561046c5780601f106104415761010080835404028352916020019161046c565b820191906000526020600020905b81548152906001019060200180831161044f57829003601f168201915b505050505081565b60006001600160a01b03831661048957600080fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60065481565b6009546001600160a01b0316331461050d57600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60025490565b6001600160a01b0383166000908152600160209081526040808320338452909152812054610569908363ffffffff6109bf16565b6001600160a01b0385166000908152600160209081526040808320338452909152902055610598848484610a08565b6001600160a01b0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6009546001600160a01b031690565b60055460ff1681565b60006001600160a01b03831661062b57600080fd5b3360009081526001602090815260408083206001600160a01b038716845290915290205461065f908363ffffffff610ac016565b3360008181526001602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60075481565b6001600160a01b031660009081526020819052604090205490565b600854604080516347f3bf4360e11b815260206004820181905260156024830152743732b9ba17372a37b5b2b71737b33332b926b0b4b760591b604483015291516000936001600160a01b031692638fe77e869260648082019391829003018186803b15801561075457600080fd5b505afa158015610768573d6000803e3d6000fd5b505050506040513d602081101561077e57600080fd5b50519050336001600160a01b038216146107ce576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b6001600160a01b0381166000908152602081905260409020546107f7908363ffffffff610ac016565b6001600160a01b038216600090815260208190526040902055600254610823908363ffffffff610ac016565b600255505043600755565b6006546007549091565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561046c5780601f106104415761010080835404028352916020019161046c565b60006001600160a01b0383166108a857600080fd5b3360009081526001602090815260408083206001600160a01b038716845290915290205461065f908363ffffffff6109bf16565b6008546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b15801561092757600080fd5b505afa15801561093b573d6000803e3d6000fd5b505050506040513d602081101561095157600080fd5b505161095c57600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600061098b338484610a08565b50600192915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610a0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b1a565b9392505050565b6001600160a01b038316600090815260208190526040902054610a31908263ffffffff6109bf16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610a66908263ffffffff610ac016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610a01576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115610ba95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b6e578181015183820152602001610b56565b50505050905090810190601f168015610b9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fea2646970667358221220732ed18cfb08aa8ddce47e3df3862d172ea4dcb0bc2be56c6b5c9a2c5af587cb64736f6c63430006000033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7741756374696f6e416d6f756e74206c657373207468616e20746865206d696e696d756d2061756374696f6e20616d6f756e745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122077fbc4c43be639771459c32f3318282a620b89dd6d1b33464e078d434d771da164736f6c63430006000033000000000000000000000000a628845c523975493da88ac3641a803e92fa5d54

Deployed Bytecode

0x60806040523480156200001157600080fd5b5060043610620001185760003560e01c8063ac39cfb011620000a5578063dea8cf02116200006f578063dea8cf021462000398578063fa7ad00414620003a2578063fc4d781a14620003d1578063ff74927b14620003db5762000118565b8063ac39cfb014620002e1578063ae6c67e2146200031e578063b594f086146200036e578063c90ebff8146200038e5762000118565b806350831cb211620000e757806350831cb21462000244578063580776c71462000260578063719838811462000289578063a781e7f814620002b85762000118565b8063137a40df146200011d5780631a0ed68214620001b5578063210f7af614620001d75780634cc27a5f1462000213575b600080fd5b6200013d600480360360208110156200013557600080fd5b503562000511565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620001795781810151838201526020016200015f565b50505050905090810190601f168015620001a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b620001d560048036036020811015620001cd57600080fd5b503562000614565b005b620001f760048036036020811015620001ef57600080fd5b5035620006d4565b604080516001600160a01b039092168252519081900360200190f35b620001d5600480360360408110156200022b57600080fd5b506001600160a01b0381351690602001351515620006ff565b6200024e620007e5565b60408051918252519081900360200190f35b620001d5600480360360208110156200027857600080fd5b50356001600160a01b0316620007eb565b620001d560048036036040811015620002a157600080fd5b506001600160a01b03813516906020013562000e8a565b620001d560048036036020811015620002d057600080fd5b50356001600160a01b031662001258565b6200030a60048036036020811015620002f957600080fd5b50356001600160a01b0316620015e5565b604080519115158252519081900360200190f35b62000347600480360360208110156200033657600080fd5b50356001600160a01b031662001603565b6040805193845260208401929092526001600160a01b031682820152519081900360600190f35b620001d5600480360360208110156200038657600080fd5b503562001669565b6200024e6200173f565b6200024e62001745565b620001d560048036036040811015620003ba57600080fd5b506001600160a01b0381351690602001356200174b565b6200024e62001b52565b6200013d60048036036040811015620003f357600080fd5b8101906020810181356401000000008111156200040f57600080fd5b8201836020820111156200042257600080fd5b803590602001918460018302840111640100000000831117156200044557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156200049957600080fd5b820183602082011115620004ac57600080fd5b80359060200191846001830284011164010000000083111715620004cf57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062001b58945050505050565b60408051818152606081810183529182919060208201818038833901905050905060005b600a840660300160f81b8282806001019350815181106200055257fe5b60200101906001600160f81b031916908160001a905350600a8404935060008411806200057f5750600481105b62000535576060816040519080825280601f01601f191660200182016040528015620005b2576020820181803883390190505b50905060005b828110156200060b578360018285030381518110620005d357fe5b602001015160f81c60f81b828281518110620005eb57fe5b60200101906001600160f81b031916908160001a905350600101620005b8565b50949350505050565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b1580156200066057600080fd5b505afa15801562000675573d6000803e3d6000fd5b505050506040513d60208110156200068c57600080fd5b5051620006cf576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b600655565b6000600c8281548110620006e457fe5b6000918252602090912001546001600160a01b031692915050565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b1580156200074b57600080fd5b505afa15801562000760573d6000803e3d6000fd5b505050506040513d60208110156200077757600080fd5b5051620007ba576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60055490565b60008054604080516347f3bf4360e11b815260206004820181905260136024830152726e6573742e76332e746f6b656e41626f6e757360681b604483015291516001600160a01b0390931692638fe77e8692606480840193919291829003018186803b1580156200085b57600080fd5b505afa15801562000870573d6000803e3d6000fd5b505050506040513d60208110156200088757600080fd5b505160408051637711e85760e01b8152905191925042916000916001600160a01b03851691637711e85791600480820192602092909190829003018186803b158015620008d357600080fd5b505afa158015620008e8573d6000803e3d6000fd5b505050506040513d6020811015620008ff57600080fd5b505160408051632cc3eb5360e01b815290519192506000916001600160a01b03861691632cc3eb53916004808301926020929190829003018186803b1580156200094857600080fd5b505afa1580156200095d573d6000803e3d6000fd5b505050506040513d60208110156200097457600080fd5b505160408051633a97a7cb60e21b815290519192506000916001600160a01b0387169163ea5e9f2c916004808301926020929190829003018186803b158015620009bd57600080fd5b505afa158015620009d2573d6000803e3d6000fd5b505050506040513d6020811015620009e957600080fd5b50519050620009ff838363ffffffff62001c5a16565b841015801562000a32575062000a2e8162000a21858563ffffffff62001c5a16565b9063ffffffff62001ca516565b8411155b1562000a85576040805162461bcd60e51b815260206004820152601a60248201527f4e6f742074696d6520746f2061756374696f6e53756363657373000000000000604482015290519081900360640190fd5b6001600160a01b0386166000908152600a60205260409020548411801562000ac457506001600160a01b0386166000908152600a602052604090205415155b62000b09576040805162461bcd60e51b815260206004820152601060248201526f546f6b656e206973206f6e2073616c6560801b604482015290519081900360640190fd5b600062000b4160405180604001604052806006815260200165272a37b5b2b760d11b81525062000b3b60075462000511565b62001b58565b62000b6c604051806040016040528060018152602001602760f91b81525062000b3b60075462000511565b600080546001600160a01b038b81168352600a60205260409283902060020154925191811692169062000b9f9062002162565b6001600160a01b0380841660408301528216606082015260808082528551908201528451819060208083019160a084019189019080838360005b8381101562000bf357818101518382015260200162000bd9565b50505050905090810190601f16801562000c215780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101562000c5657818101518382015260200162000c3c565b50505050905090810190601f16801562000c845780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f08015801562000caa573d6000803e3d6000fd5b50600254600480546001600160a01b038b81166000908152600a6020908152604080832060030154815163a9059cbb60e01b8152958516968601969096526024850195909552935195965093169363a9059cbb93604480840194938390030190829087803b15801562000d1c57600080fd5b505af115801562000d31573d6000803e3d6000fd5b505050506040513d602081101562000d4857600080fd5b505162000d8f576040805162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c75726560801b604482015290519081900360640190fd5b600154604080516306e0e25960e11b81526001600160a01b038a81166004830152848116602483015291519190921691630dc1c4b291604480830192600092919082900301818387803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b50506003546040805163aca97d6d60e01b81526001600160a01b038c81166004830152915191909216935063aca97d6d9250602480830192600092919082900301818387803b15801562000e4e57600080fd5b505af115801562000e63573d6000803e3d6000fd5b505060075462000e7e92509050600163ffffffff62001ca516565b60075550505050505050565b6001600160a01b0382166000908152600a6020526040902054421180159062000eca57506001600160a01b0382166000908152600a602052604090205415155b62000f0d576040805162461bcd60e51b815260206004820152600e60248201526d105d58dd1a5bdb8818db1bdcd95960921b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a6020526040902060010154811162000f7d576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742061756374696f6e20616d6f756e740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600a602052604081206001015462000fac90839063ffffffff62001c5a16565b905060095481101562000fbe57600080fd5b600062000fea606462000fdd6008548562001d0090919063ffffffff16565b9063ffffffff62001d5e16565b600254604080516323b872dd60e01b81523360048201523060248201526044810187905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b1580156200104857600080fd5b505af11580156200105d573d6000803e3d6000fd5b505050506040513d60208110156200107457600080fd5b5051620010bf576040805162461bcd60e51b8152602060048201526014602482015273105d5d1a1bdc9a5e985d1a5bdb8819985a5b195960621b604482015290519081900360640190fd5b600280546001600160a01b038681166000908152600a60205260409020928301546001909301549181169263a9059cbb92911690620010ff908562001ca5565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156200114f57600080fd5b505af115801562001164573d6000803e3d6000fd5b505050506040513d60208110156200117b57600080fd5b5051620011c2576040805162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c75726560801b604482015290519081900360640190fd5b6001600160a01b0384166000908152600a602052604090206001810184905560020180546001600160a01b03191633179055620012336200120a838363ffffffff62001c5a16565b6001600160a01b0386166000908152600a60205260409020600301549063ffffffff62001ca516565b6001600160a01b039094166000908152600a6020526040902060030193909355505050565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b158015620012a457600080fd5b505afa158015620012b9573d6000803e3d6000fd5b505050506040513d6020811015620012d057600080fd5b505162001313576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117909155604080516347f3bf4360e11b8152602060048201819052601860248301527f6e6573742e6e546f6b656e2e746f6b656e4d617070696e67000000000000000060448301529151849392638fe77e869260648082019391829003018186803b1580156200139c57600080fd5b505afa158015620013b1573d6000803e3d6000fd5b505050506040513d6020811015620013c857600080fd5b5051600180546001600160a01b0319166001600160a01b03928316179055604080516347f3bf4360e11b8152602060048083018290526024830152631b995cdd60e21b6044830152915192841692638fe77e8692606480840193919291829003018186803b1580156200143a57600080fd5b505afa1580156200144f573d6000803e3d6000fd5b505050506040513d60208110156200146657600080fd5b5051600280546001600160a01b0319166001600160a01b03928316179055604080516347f3bf4360e11b815260206004820181905260136024830152723732b9ba173b19973232b9ba393ab1ba34b7b760691b6044830152915192841692638fe77e8692606480840193919291829003018186803b158015620014e857600080fd5b505afa158015620014fd573d6000803e3d6000fd5b505050506040513d60208110156200151457600080fd5b5051600480546001600160a01b0319166001600160a01b03928316178155604080516347f3bf4360e11b8152602092810183905260126024820152716e6573742e76332e6f66666572507269636560701b6044820152905192841692638fe77e8692606480840193919291829003018186803b1580156200159457600080fd5b505afa158015620015a9573d6000803e3d6000fd5b505050506040513d6020811015620015c057600080fd5b5051600380546001600160a01b0319166001600160a01b039092169190911790555050565b6001600160a01b03166000908152600b602052604090205460ff1690565b60008060006200161262002170565b505050506001600160a01b039081166000908152600a602090815260409182902082516080810184528154808252600183015493820184905260028301549095169381018490526003909101546060909101529192565b6000546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b158015620016b557600080fd5b505afa158015620016ca573d6000803e3d6000fd5b505050506040513d6020811015620016e157600080fd5b505162001724576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b62001739816201518063ffffffff62001d0016565b60055550565b60065490565b60075490565b6001546040805163323442c360e11b81526001600160a01b038581166004830152915160009390921691636468858691602480820192602092909190829003018186803b1580156200179c57600080fd5b505afa158015620017b1573d6000803e3d6000fd5b505050506040513d6020811015620017c857600080fd5b50516001600160a01b0316146200181d576040805162461bcd60e51b8152602060048201526014602482015273546f6b656e20616c72656164792065786973747360601b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a6020526040902054156200187c576040805162461bcd60e51b815260206004820152601060248201526f546f6b656e206973206f6e2073616c6560801b604482015290519081900360640190fd5b600654811015620018bf5760405162461bcd60e51b8152600401808060200182810382526032815260200180620030876032913960400191505060405180910390fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156200191a57600080fd5b505af11580156200192f573d6000803e3d6000fd5b505050506040513d60208110156200194657600080fd5b505162001991576040805162461bcd60e51b8152602060048201526014602482015273105d5d1a1bdc9a5e985d1a5bdb8819985a5b195960621b604482015290519081900360640190fd5b6001600160a01b0382166000908152600b602052604090205460ff1615620019b857600080fd5b81620019d76001600160a01b0382163330600163ffffffff62001da216565b604080516370a0823160e01b815230600482015290516001916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801562001a2257600080fd5b505afa15801562001a37573d6000803e3d6000fd5b505050506040513d602081101562001a4e57600080fd5b5051101562001a5c57600080fd5b62001a796001600160a01b03821633600163ffffffff62001e0416565b62001a8362002170565b604051806080016040528062001aa56005544262001ca590919063ffffffff16565b81526020808201869052336040808401919091526060928301969096526001600160a01b039687166000818152600a835287812085518155928501516001808501919091559785015160028401805491909a166001600160a01b0319918216179099559390920151600390910155600c805495860181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790930180549094169092179092555050565b600c5490565b6060808390506060839050606081518351016040519080825280601f01601f19166020018201604052801562001b95576020820181803883390190505b509050806000805b855181101562001bf25785818151811062001bb457fe5b602001015160f81c60f81b83838060010194508151811062001bd257fe5b60200101906001600160f81b031916908160001a90535060010162001b9d565b5060005b845181101562001c4b5784818151811062001c0d57fe5b602001015160f81c60f81b83838060010194508151811062001c2b57fe5b60200101906001600160f81b031916908160001a90535060010162001bf6565b50919450505050505b92915050565b600062001c9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001e5d565b9392505050565b60008282018381101562001c9e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008262001d115750600062001c54565b8282028284828162001d1f57fe5b041462001c9e5760405162461bcd60e51b8152600401808060200182810382526021815260200180620030666021913960400191505060405180910390fd5b600062001c9e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062001ef8565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905262001dfe90859062001f61565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905262001e5890849062001f61565b505050565b6000818484111562001ef05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562001eb457818101518382015260200162001e9a565b50505050905090810190601f16801562001ee25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818362001f4a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831562001eb457818101518382015260200162001e9a565b50600083858162001f5757fe5b0495945050505050565b62001f75826001600160a01b031662002125565b62001fc7576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310620020075780518252601f19909201916020918201910162001fe6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200206b576040519150601f19603f3d011682016040523d82523d6000602084013e62002070565b606091505b509150915081620020c8576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b80511562001dfe57808060200190516020811015620020e657600080fd5b505162001dfe5760405162461bcd60e51b815260040180806020018281038252602a815260200180620030b9602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906200215a57508115155b949350505050565b610ec480620021a283390190565b6040518060800160405280600081526020016000815260200160006001600160a01b0316815260200160008152509056fe608060405260006002556005805460ff191660121790553480156200002357600080fd5b5060405162000ec438038062000ec4833981810160405260808110156200004957600080fd5b81019080805160405193929190846401000000008211156200006a57600080fd5b9083019060208201858111156200008057600080fd5b82516401000000008111828201881017156200009b57600080fd5b82525081516020918201929091019080838360005b83811015620000ca578181015183820152602001620000b0565b50505050905090810190601f168015620000f85780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011c57600080fd5b9083019060208201858111156200013257600080fd5b82516401000000008111828201881017156200014d57600080fd5b82525081516020918201929091019080838360005b838110156200017c57818101518382015260200162000162565b50505050905090810190601f168015620001aa5780820380516001836020036101000a031916815260200191505b506040908152602082810151929091015186519294509250620001d39160039187019062000228565b508251620001e990600490602086019062000228565b50436006819055600755600880546001600160a01b039384166001600160a01b0319918216179091556009805492909316911617905550620002cd9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026b57805160ff19168380011785556200029b565b828001600101855582156200029b579182015b828111156200029b5782518255916020019190600101906200027e565b50620002a9929150620002ad565b5090565b620002ca91905b80821115620002a95760008155600101620002b4565b90565b610be780620002dd6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063500788d5116100a257806395d89b411161007157806395d89b4114610332578063a457c2d71461033a578063a781e7f814610366578063a9059cbb1461038c578063dd62ed3e146103b857610116565b8063500788d5146102c657806370a08231146102ce57806381fa5431146102f457806392c088711461031157610116565b806318160ddd116100e957806318160ddd1461021a57806323b872dd1461022257806328e6a33f14610258578063313ce5671461027c578063395093511461029a57610116565b806306fdde031461011b578063095ea7b3146101985780630c462a36146101d8578063161b058b146101f2575b600080fd5b6101236103e6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610474565b604080519115158252519081900360200190f35b6101e06104f0565b60408051918252519081900360200190f35b6102186004803603602081101561020857600080fd5b50356001600160a01b03166104f6565b005b6101e061052f565b6101c46004803603606081101561023857600080fd5b506001600160a01b03813581169160208101359091169060400135610535565b6102606105fe565b604080516001600160a01b039092168252519081900360200190f35b61028461060d565b6040805160ff9092168252519081900360200190f35b6101c4600480360360408110156102b057600080fd5b506001600160a01b038135169060200135610616565b6101e06106c4565b6101e0600480360360208110156102e457600080fd5b50356001600160a01b03166106ca565b6102186004803603602081101561030a57600080fd5b50356106e5565b61031961082e565b6040805192835260208301919091528051918290030190f35b610123610838565b6101c46004803603604081101561035057600080fd5b506001600160a01b038135169060200135610893565b6102186004803603602081101561037c57600080fd5b50356001600160a01b03166108dc565b6101c4600480360360408110156103a257600080fd5b506001600160a01b03813516906020013561097e565b6101e0600480360360408110156103ce57600080fd5b506001600160a01b0381358116916020013516610994565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561046c5780601f106104415761010080835404028352916020019161046c565b820191906000526020600020905b81548152906001019060200180831161044f57829003601f168201915b505050505081565b60006001600160a01b03831661048957600080fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60065481565b6009546001600160a01b0316331461050d57600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60025490565b6001600160a01b0383166000908152600160209081526040808320338452909152812054610569908363ffffffff6109bf16565b6001600160a01b0385166000908152600160209081526040808320338452909152902055610598848484610a08565b6001600160a01b0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6009546001600160a01b031690565b60055460ff1681565b60006001600160a01b03831661062b57600080fd5b3360009081526001602090815260408083206001600160a01b038716845290915290205461065f908363ffffffff610ac016565b3360008181526001602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60075481565b6001600160a01b031660009081526020819052604090205490565b600854604080516347f3bf4360e11b815260206004820181905260156024830152743732b9ba17372a37b5b2b71737b33332b926b0b4b760591b604483015291516000936001600160a01b031692638fe77e869260648082019391829003018186803b15801561075457600080fd5b505afa158015610768573d6000803e3d6000fd5b505050506040513d602081101561077e57600080fd5b50519050336001600160a01b038216146107ce576040805162461bcd60e51b815260206004820152600c60248201526b4e6f20617574686f7269747960a01b604482015290519081900360640190fd5b6001600160a01b0381166000908152602081905260409020546107f7908363ffffffff610ac016565b6001600160a01b038216600090815260208190526040902055600254610823908363ffffffff610ac016565b600255505043600755565b6006546007549091565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561046c5780601f106104415761010080835404028352916020019161046c565b60006001600160a01b0383166108a857600080fd5b3360009081526001602090815260408083206001600160a01b038716845290915290205461065f908363ffffffff6109bf16565b6008546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b15801561092757600080fd5b505afa15801561093b573d6000803e3d6000fd5b505050506040513d602081101561095157600080fd5b505161095c57600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600061098b338484610a08565b50600192915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610a0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b1a565b9392505050565b6001600160a01b038316600090815260208190526040902054610a31908263ffffffff6109bf16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610a66908263ffffffff610ac016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610a01576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115610ba95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b6e578181015183820152602001610b56565b50505050905090810190601f168015610b9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fea2646970667358221220732ed18cfb08aa8ddce47e3df3862d172ea4dcb0bc2be56c6b5c9a2c5af587cb64736f6c63430006000033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7741756374696f6e416d6f756e74206c657373207468616e20746865206d696e696d756d2061756374696f6e20616d6f756e745361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122077fbc4c43be639771459c32f3318282a620b89dd6d1b33464e078d434d771da164736f6c63430006000033

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

000000000000000000000000a628845c523975493da88ac3641a803e92fa5d54

-----Decoded View---------------
Arg [0] : voteFactory (address): 0xa628845c523975493DA88Ac3641a803E92fa5d54

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a628845c523975493da88ac3641a803e92fa5d54


Deployed Bytecode Sourcemap

123:9566:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;123:9566:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7403:456;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7403:456:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7403:456:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9263:94;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9263:94:0;;:::i;:::-;;8353:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8353:118:0;;:::i;:::-;;;;-1:-1:-1;;;;;8353:118:0;;;;;;;;;;;;;;9402:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9402:127:0;;;;;;;;;;:::i;7902:89::-;;;:::i;:::-;;;;;;;;;;;;;;;;5569:1254;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5569:1254:0;-1:-1:-1;;;;;5569:1254:0;;:::i;4428:1050::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4428:1050:0;;;;;;;;:::i;2581:582::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2581:582:0;-1:-1:-1;;;;;2581:582:0;;:::i;8514:118::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8514:118:0;-1:-1:-1;;;;;8514:118:0;;:::i;:::-;;;;;;;;;;;;;;;;;;8683:258;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8683:258:0;-1:-1:-1;;;;;8683:258:0;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;8683:258:0;;;;;;;;;;;;;;9113:100;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9113:100:0;;:::i;8040:95::-;;;:::i;8979:90::-;;;:::i;3316:977::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3316:977:0;;;;;;;;:::i;8196:106::-;;;:::i;6835:521::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6835:521:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6835:521:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6835:521:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6835:521:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6835:521:0;;;;;;;;-1:-1:-1;6835:521:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;6835:521:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6835:521:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6835:521:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6835:521:0;;-1:-1:-1;6835:521:0;;-1:-1:-1;;;;;6835:521:0:i;7403:456::-;7514:2;7504:13;;;;;7459;7504;;;;;7459;;;7504;;;;21:6:-1;;104:10;7504:13:0;87:34:-1;135:17;;-1:-1;;7485:32:0;-1:-1:-1;7528:13:0;7556:122;7605:2;7600;:7;7610:2;7600:12;7589:25;;7574:3;7578:7;;;;;;7574:12;;;;;;;;;;;:40;-1:-1:-1;;;;;7574:40:0;;;;;;;;-1:-1:-1;7635:2:0;7629:8;;;;7662:1;7657:2;:6;:19;;;;7675:1;7667:5;:9;7657:19;7556:122;;7688:16;7717:5;7707:16;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;7707:16:0;87:34:-1;135:17;;-1:-1;7707:16:0;-1:-1:-1;7688:35:0;-1:-1:-1;7738:9:0;7734:89;7757:5;7753:1;:9;7734:89;;;7793:3;7809:1;7805;7797:5;:9;:13;7793:18;;;;;;;;;;;;;;;;7784:3;7788:1;7784:6;;;;;;;;;;;:27;-1:-1:-1;;;;;7784:27:0;;;;;;;;-1:-1:-1;7764:3:0;;7734:89;;;-1:-1:-1;7847:3:0;7403:456;-1:-1:-1;;;;7403:456:0:o;9263:94::-;9607:12;;:36;;;-1:-1:-1;;;9607:36:0;;9632:10;9607:36;;;;;;-1:-1:-1;;;;;9607:12:0;;;;:24;;:36;;;;;;;;;;;;;;;:12;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;9607:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9607:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9607:36:0;9599:61;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;;;;9331:12:::1;:18:::0;9263:94::o;8353:118::-;8420:7;8447:11;8459:3;8447:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8447:16:0;;8353:118;-1:-1:-1;;8353:118:0:o;9402:127::-;9607:12;;:36;;;-1:-1:-1;;;9607:36:0;;9632:10;9607:36;;;;;;-1:-1:-1;;;;;9607:12:0;;;;:24;;:36;;;;;;;;;;;;;;;:12;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;9607:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9607:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9607:36:0;9599:61;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9489:22:0;;;::::1;;::::0;;;:15:::1;:22;::::0;;;;:32;;-1:-1:-1;;9489:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9402:127::o;7902:89::-;7974:9;;7902:89;:::o;5569:1254::-;5626:29;5677:12;;:48;;;-1:-1:-1;;;5677:48:0;;;;;;;;;;;;;;-1:-1:-1;;;5677:48:0;;;;;;-1:-1:-1;;;;;5677:12:0;;;;:25;;:48;;;;;;;;;;;;;:12;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;5677:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5677:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5677:48:0;5788:24;;;-1:-1:-1;;;5788:24:0;;;;5677:48;;-1:-1:-1;5755:3:0;;5737:15;;-1:-1:-1;;;;;5788:22:0;;;;;:24;;;;;5677:48;;5788:24;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;5788:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5788:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5788:24:0;5843:27;;;-1:-1:-1;;;5843:27:0;;;;5788:24;;-1:-1:-1;5823:17:0;;-1:-1:-1;;;;;5843:25:0;;;;;:27;;;;;5788:24;;5843:27;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;5843:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5843:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5843:27:0;5910:36;;;-1:-1:-1;;;5910:36:0;;;;5843:27;;-1:-1:-1;5881:26:0;;-1:-1:-1;;;;;5910:34:0;;;;;:36;;;;;5843:27;;5910:36;;;;;;;:34;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;5910:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5910:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5910:36:0;;-1:-1:-1;5978:23:0;:8;5991:9;5978:23;:12;:23;:::i;:::-;5967:7;:34;;:96;;;;-1:-1:-1;6016:47:0;6044:18;6016:23;:8;6029:9;6016:23;:12;:23;:::i;:::-;:27;:47;:27;:47;:::i;:::-;6005:7;:58;;5967:96;5965:99;5957:138;;;;;-1:-1:-1;;;5957:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6124:19:0;;;;;;:12;:19;;;;;:27;6114:37;;:73;;;;-1:-1:-1;;;;;;6155:19:0;;;;;;:12;:19;;;;;:27;:32;;6114:73;6106:102;;;;;-1:-1:-1;;;6106:102:0;;;;;;;;;;;;-1:-1:-1;;;6106:102:0;;;;;;;;;;;;;;;6250:18;6287:45;;;;;;;;;;;;;;-1:-1:-1;;;6287:45:0;;;6307:24;6321:9;;6307:13;:24::i;:::-;6287:9;:45::i;:::-;6334:40;;;;;;;;;;;;;;-1:-1:-1;;;6334:40:0;;;6349:24;6363:9;;6349:13;:24::i;6334:40::-;6384:12;;;-1:-1:-1;;;;;6407:19:0;;;;;:12;:19;;;;;;;:33;;;6271:171;;6384:12;;;;6407:33;;6271:171;;;:::i;:::-;-1:-1:-1;;;;;6271:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6271:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6271:171:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6271:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6499:10:0;;6519:19;;;-1:-1:-1;;;;;6540:19:0;;;6499:10;6540:19;;;:12;:19;;;;;;;;:32;;;6499:74;;-1:-1:-1;;;6499:74:0;;6519:19;;;6499:74;;;;;;;;;;;;;;;;6250:192;;-1:-1:-1;6499:10:0;;;:19;;:74;;;;;6540:19;6499:74;;;;;;;:10;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;6499:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6499:74:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6499:74:0;6491:103;;;;;-1:-1:-1;;;6491:103:0;;;;;;;;;;;;-1:-1:-1;;;6491:103:0;;;;;;;;;;;;;;;6637:13;;:53;;;-1:-1:-1;;;6637:53:0;;-1:-1:-1;;;;;6637:53:0;;;;;;;;;;;;;;;;:13;;;;;:29;;:53;;;;;:13;;:53;;;;;;;:13;;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;6637:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6745:11:0;;:31;;;-1:-1:-1;;;6745:31:0;;-1:-1:-1;;;;;6745:31:0;;;;;;;;;:11;;;;;-1:-1:-1;6745:24:0;;-1:-1:-1;6745:31:0;;;;;:11;;:31;;;;;;;:11;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;6745:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6799:9:0;;:16;;-1:-1:-1;6799:9:0;-1:-1:-1;6813:1:0;6799:16;:13;:16;:::i;:::-;6787:9;:28;-1:-1:-1;;;;;;;5569:1254:0:o;4428:1050::-;-1:-1:-1;;;;;4524:19:0;;;;;;:12;:19;;;;;:27;4517:3;:34;;;;:70;;-1:-1:-1;;;;;;4555:19:0;;;;;;:12;:19;;;;;:27;:32;;4517:70;4509:97;;;;;-1:-1:-1;;;4509:97:0;;;;;;;;;;;;-1:-1:-1;;;4509:97:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4641:19:0;;;;;;:12;:19;;;;;:32;;;4625:48;;4617:88;;;;;-1:-1:-1;;;4617:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4761:19:0;;4716:24;4761:19;;;:12;:19;;;;;:32;;;4743:51;;:13;;:51;:17;:51;:::i;:::-;4716:78;;4833:16;;4813;:36;;4805:45;;;;;;4861:18;4882:46;4924:3;4882:37;4903:15;;4882:16;:20;;:37;;;;:::i;:::-;:41;:46;:41;:46;:::i;:::-;4947:10;;:74;;;-1:-1:-1;;;4947:74:0;;4979:10;4947:74;;;;5000:4;4947:74;;;;;;;;;;;;4861:67;;-1:-1:-1;;;;;;4947:10:0;;;;:23;;:74;;;;;;;;;;;;;;;:10;;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;4947:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4947:74:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4947:74:0;4939:107;;;;;-1:-1:-1;;;4939:107:0;;;;;;;;;;;;-1:-1:-1;;;4939:107:0;;;;;;;;;;;;;;;5065:10;;;-1:-1:-1;;;;;5085:19:0;;;5065:10;5085:19;;;:12;:19;;;;;:33;;;;5065:10;5120:32;;;;5065:10;;;;:19;;5085:33;;;5120:48;;5157:10;5120:36;:48::i;:::-;5065:104;;;;;;;;;;;;;-1:-1:-1;;;;;5065:104:0;-1:-1:-1;;;;;5065:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5065:104:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5065:104:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5065:104:0;5057:133;;;;;-1:-1:-1;;;5057:133:0;;;;;;;;;;;;-1:-1:-1;;;5057:133:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5240:19:0;;;;;;:12;:19;;;;;:32;;;:48;;;5299:33;;:55;;-1:-1:-1;;;;;;5299:55:0;5343:10;5299:55;;;5400:70;5437:32;:16;5458:10;5437:32;:20;:32;:::i;:::-;-1:-1:-1;;;;;5400:19:0;;;;;;:12;:19;;;;;:32;;;;:70;:36;:70;:::i;:::-;-1:-1:-1;;;;;5365:19:0;;;;;;;:12;:19;;;;;:32;;:105;;;;-1:-1:-1;;;4428:1050:0:o;2581:582::-;9607:12;;:36;;;-1:-1:-1;;;9607:36:0;;9632:10;9607:36;;;;;;-1:-1:-1;;;;;9607:12:0;;;;:24;;:36;;;;;;;;;;;;;;;:12;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;9607:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9607:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9607:36:0;9599:61;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;;;;2653:33:::1;2740:29:::0;;-1:-1:-1;;;;;;2740:29:0::1;-1:-1:-1::0;;;;;2740:29:0;::::1;::::0;;::::1;::::0;;;2829:55:::1;::::0;;-1:-1:-1;;;2829:55:0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;2740:29;;;2829:27:::1;::::0;:55;;;;;;;;;;;2740:29;2829:55;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;2829:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2829:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;2829:55:0;2780:13:::1;:106:::0;;-1:-1:-1;;;;;;2780:106:0::1;-1:-1:-1::0;;;;;2780:106:0;;::::1;;::::0;;2924:35:::1;::::0;;-1:-1:-1;;;2924:35:0;;2829:55:::1;2924:35;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;2924:35:0;;;;;;:27;;::::1;::::0;::::1;::::0;:35;;;;;2829:55;;2924:35;;;;;;:27;:35;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;2924:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2924:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;2924:35:0;2897:10:::1;:64:::0;;-1:-1:-1;;;;;;2897:64:0::1;-1:-1:-1::0;;;;;2897:64:0;;::::1;;::::0;;3002:50:::1;::::0;;-1:-1:-1;;;3002:50:0;;2924:35:::1;3002:50;::::0;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;3002:50:0;;;;;;:27;;::::1;::::0;::::1;::::0;:50;;;;;2924:35;;3002:50;;;;;;:27;:50;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;3002:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3002:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;3002:50:0;2972:19:::1;:81:::0;;-1:-1:-1;;;;;;2972:81:0::1;-1:-1:-1::0;;;;;2972:81:0;;::::1;;::::0;;3104:49:::1;::::0;;-1:-1:-1;;;3104:49:0;;3002:50:::1;3104:49:::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;3104:49:0;;;;;;:27;;::::1;::::0;::::1;::::0;:49;;;;;3002:50;;3104:49;;;;;;:27;:49;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;3104:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3104:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;3104:49:0;3064:11:::1;:91:::0;;-1:-1:-1;;;;;;3064:91:0::1;-1:-1:-1::0;;;;;3064:91:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;2581:582:0:o;8514:118::-;-1:-1:-1;;;;;8602:22:0;8578:4;8602:22;;;:15;:22;;;;;;;;;8514:118::o;8683:258::-;8744:15;8761:20;8783:21;8817:23;;:::i;:::-;-1:-1:-1;;;;;;;;;8843:19:0;;;;;;;:12;:19;;;;;;;;;8817:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8683:258::o;9113:100::-;9607:12;;:36;;;-1:-1:-1;;;9607:36:0;;9632:10;9607:36;;;;;;-1:-1:-1;;;;;9607:12:0;;;;:24;;:36;;;;;;;;;;;;;;;:12;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;9607:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9607:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9607:36:0;9599:61;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;-1:-1:-1;;;9599:61:0;;;;;;;;;;;;;;;9190:15:::1;:3:::0;9198:6:::1;9190:15;:7;:15;:::i;:::-;9178:9;:27:::0;-1:-1:-1;9113:100:0:o;8040:95::-;8115:12;;8040:95;:::o;8979:90::-;9052:9;;8979:90;:::o;3316:977::-;3404:13;;:38;;;-1:-1:-1;;;3404:38:0;;-1:-1:-1;;;;;3404:38:0;;;;;;;;;3454:3;;3404:13;;;;:31;;:38;;;;;;;;;;;;;;;:13;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;3404:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3404:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3404:38:0;-1:-1:-1;;;;;3404:54:0;;3396:87;;;;;-1:-1:-1;;;3396:87:0;;;;;;;;;;;;-1:-1:-1;;;3396:87:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:19:0;;;;;;:12;:19;;;;;:27;:32;3494:61;;;;;-1:-1:-1;;;3494:61:0;;;;;;;;;;;;-1:-1:-1;;;3494:61:0;;;;;;;;;;;;;;;3591:12;;3574:13;:29;;3566:92;;;;-1:-1:-1;;;3566:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:10;;:74;;;-1:-1:-1;;;3677:74:0;;3709:10;3677:74;;;;3730:4;3677:74;;;;;;;;;;;;-1:-1:-1;;;;;3677:10:0;;;;:23;;:74;;;;;;;;;;;;;;;:10;;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;3677:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3677:74:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3677:74:0;3669:107;;;;;-1:-1:-1;;;3669:107:0;;;;;;;;;;;;-1:-1:-1;;;3669:107:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3796:22:0;;;;;;:15;:22;;;;;;;;3795:23;3787:32;;;;;;3880:5;3897:66;-1:-1:-1;;;;;3897:27:0;;3933:10;3954:4;3961:1;3897:66;:27;:66;:::i;:::-;3982:35;;;-1:-1:-1;;;3982:35:0;;4011:4;3982:35;;;;;;4021:1;;-1:-1:-1;;;;;3982:20:0;;;;;:35;;;;;;;;;;;;;;;:20;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;3982:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3982:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3982:35:0;:40;;3974:49;;;;;;4034:47;-1:-1:-1;;;;;4034:23:0;;4066:10;4079:1;4034:47;:23;:47;:::i;:::-;4092:30;;:::i;:::-;4125:82;;;;;;;;4137:18;4145:9;;4137:3;:7;;:18;;;;:::i;:::-;4125:82;;;;;;;;;4180:10;4125:82;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4218:19:0;;;-1:-1:-1;4218:19:0;;;:12;:19;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4218:33:0;;;;;;;;;;;;;;;;;4262:11;27:10:-1;;23:18;;;45:23;;4262::0;;;;;;;;;;;;;;;;;;-1:-1:-1;;3316:977:0:o;8196:106::-;8276:11;:18;8196:106;:::o;6835:521::-;6911:13;6936:16;6961:2;6936:28;;6975:16;7000:2;6975:28;;7014:17;7058:3;:10;7045:3;:10;:23;7034:35;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;7034:35:0;87:34:-1;135:17;;-1:-1;7034:35:0;-1:-1:-1;7014:55:0;-1:-1:-1;7014:55:0;7121:6;;7142:83;7163:3;:10;7159:1;:14;7142:83;;;7207:3;7211:1;7207:6;;;;;;;;;;;;;;;;7195:4;7200:3;;;;;;7195:9;;;;;;;;;;;:18;-1:-1:-1;;;;;7195:18:0;;;;;;;;-1:-1:-1;7175:3:0;;7142:83;;;-1:-1:-1;7241:6:0;7236:83;7257:3;:10;7253:1;:14;7236:83;;;7301:3;7305:1;7301:6;;;;;;;;;;;;;;;;7289:4;7294:3;;;;;;7289:9;;;;;;;;;;;:18;-1:-1:-1;;;;;7289:18:0;;;;;;;;-1:-1:-1;7269:3:0;;7236:83;;;-1:-1:-1;7344:3:0;;-1:-1:-1;;;;;6835:521:0;;;;;:::o;18554:136::-;18612:7;18639:43;18643:1;18646;18639:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;18632:50;18554:136;-1:-1:-1;;;18554:136:0:o;18367:181::-;18425:7;18457:5;;;18481:6;;;;18473:46;;;;;-1:-1:-1;;;18473:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18894:248;18952:7;18976:6;18972:47;;-1:-1:-1;19006:1:0;18999:8;;18972:47;19041:5;;;19045:1;19041;:5;:1;19065:5;;;;;:10;19057:56;;;;-1:-1:-1;;;19057:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19148:132;19206:7;19233:39;19237:1;19240;19233:39;;;;;;;;;;;;;;;;;:3;:39::i;20222:203::-;20348:68;;;-1:-1:-1;;;;;20348:68:0;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;20348:68:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;20322:95:0;;20341:5;;20322:18;:95::i;:::-;20222:203;;;;:::o;20039:175::-;20147:58;;;-1:-1:-1;;;;;20147:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;20147:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;20121:85:0;;20140:5;;20121:18;:85::i;:::-;20039:175;;;:::o;18696:192::-;18782:7;18818:12;18810:6;;;;18802:29;;;;-1:-1:-1;;;18802:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18802:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18854:5:0;;;18696:192::o;19286:189::-;19372:7;19407:12;19400:5;19392:28;;;;-1:-1:-1;;;19392:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;19392:28:0;;19431:9;19447:1;19443;:5;;;;;;;19286:189;-1:-1:-1;;;;;19286:189:0:o;21414:448::-;21501:27;21509:5;-1:-1:-1;;;;;21501:25:0;;:27::i;:::-;21493:71;;;;;-1:-1:-1;;;21493:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21576:12;21590:23;21625:5;-1:-1:-1;;;;;21617:19:0;21637:4;21617:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;21617:25:0;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;21575:67:0;;;;21661:7;21653:52;;;;;-1:-1:-1;;;21653:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21720:17;;:21;21716:139;;21777:10;21766:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21766:30:0;21758:85;;;;-1:-1:-1;;;21758:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22568:317;22628:4;22794:20;;22694:66;22834:23;;;;;;:42;;-1:-1:-1;22861:15:0;;;22834:42;22826:51;22568:317;-1:-1:-1;;;;22568:317:0:o;123:9566::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;123:9566:0;;;;;;;;;;:::o

Swarm Source

ipfs://77fbc4c43be639771459c32f3318282a620b89dd6d1b33464e078d434d771da1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

NEST nToken oracle auction contract address.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.