ETH Price: $3,667.15 (-5.56%)

Contract

0xB84c7a87be5473cE105AF1dD60Bf296769bed6D3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Rocket Launch69940442019-01-01 22:10:282177 days ago1546380628IN
0xB84c7a87...769bed6D3
0 ETH0.000142342
City Transfer Re...69940122019-01-01 22:00:372178 days ago1546380037IN
0xB84c7a87...769bed6D3
0 ETH0.000096222
City Transfer Re...69940092019-01-01 22:00:012178 days ago1546380001IN
0xB84c7a87...769bed6D3
0 ETH0.000096222
City Transfer Re...69940072019-01-01 21:59:412178 days ago1546379981IN
0xB84c7a87...769bed6D3
0 ETH0.000096222
City Transfer Re...69940002019-01-01 21:57:242178 days ago1546379844IN
0xB84c7a87...769bed6D3
0 ETH0.00005622
City Transfer Re...69939982019-01-01 21:57:012178 days ago1546379821IN
0xB84c7a87...769bed6D3
0 ETH0.000096092
City Transfer Re...69939972019-01-01 21:56:582178 days ago1546379818IN
0xB84c7a87...769bed6D3
0 ETH0.000096092
City Transfer Re...69939952019-01-01 21:56:472178 days ago1546379807IN
0xB84c7a87...769bed6D3
0 ETH0.000096092
City Transfer Re...69939912019-01-01 21:56:072178 days ago1546379767IN
0xB84c7a87...769bed6D3
0 ETH0.000096092
City Transfer Re...69939902019-01-01 21:56:022178 days ago1546379762IN
0xB84c7a87...769bed6D3
0 ETH0.000095962
City Transfer Re...69939862019-01-01 21:55:002178 days ago1546379700IN
0xB84c7a87...769bed6D3
0 ETH0.000096092
City Transfer Re...69939822019-01-01 21:53:322178 days ago1546379612IN
0xB84c7a87...769bed6D3
0 ETH0.000096092
City Transfer Re...69939812019-01-01 21:53:282178 days ago1546379608IN
0xB84c7a87...769bed6D3
0 ETH0.000095962
Discover Resourc...69939792019-01-01 21:52:402178 days ago1546379560IN
0xB84c7a87...769bed6D3
0 ETH0.000169442
Discover Resourc...69939762019-01-01 21:52:132178 days ago1546379533IN
0xB84c7a87...769bed6D3
0 ETH0.000169312
Discover Resourc...69939742019-01-01 21:51:282178 days ago1546379488IN
0xB84c7a87...769bed6D3
0 ETH0.000169082
Rocket Set Resou...69939432019-01-01 21:43:372178 days ago1546379017IN
0xB84c7a87...769bed6D3
0 ETH0.000062632
Rocket Set Resou...69939432019-01-01 21:43:372178 days ago1546379017IN
0xB84c7a87...769bed6D3
0 ETH0.000062762
Rocket Add Funds69939392019-01-01 21:42:152178 days ago1546378935IN
0xB84c7a87...769bed6D3
0 ETH0.000124112
Discover Resourc...64476802018-10-03 20:30:212268 days ago1538598621IN
0xB84c7a87...769bed6D3
0 ETH0.000458164
City Transfer Re...64476792018-10-03 20:30:182268 days ago1538598618IN
0xB84c7a87...769bed6D3
0 ETH0.0008826414
City Transfer Re...64476752018-10-03 20:29:372268 days ago1538598577IN
0xB84c7a87...769bed6D3
0 ETH0.0006726414
City Transfer Re...60513312018-07-29 12:51:452334 days ago1532868705IN
0xB84c7a87...769bed6D3
0 ETH0.000028811
City Transfer Re...58316492018-06-22 1:49:252371 days ago1529632165IN
0xB84c7a87...769bed6D3
0 ETH0.000072162.51
City Transfer Re...58265662018-06-21 4:54:082372 days ago1529556848IN
0xB84c7a87...769bed6D3
0 ETH0.000021560.75
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
69940442019-01-01 22:10:282177 days ago1546380628
0xB84c7a87...769bed6D3
0 ETH
69940122019-01-01 22:00:372178 days ago1546380037
0xB84c7a87...769bed6D3
0 ETH
69940122019-01-01 22:00:372178 days ago1546380037
0xB84c7a87...769bed6D3
0 ETH
69940092019-01-01 22:00:012178 days ago1546380001
0xB84c7a87...769bed6D3
0 ETH
69940092019-01-01 22:00:012178 days ago1546380001
0xB84c7a87...769bed6D3
0 ETH
69940072019-01-01 21:59:412178 days ago1546379981
0xB84c7a87...769bed6D3
0 ETH
69940072019-01-01 21:59:412178 days ago1546379981
0xB84c7a87...769bed6D3
0 ETH
69940002019-01-01 21:57:242178 days ago1546379844
0xB84c7a87...769bed6D3
0 ETH
69939982019-01-01 21:57:012178 days ago1546379821
0xB84c7a87...769bed6D3
0 ETH
69939982019-01-01 21:57:012178 days ago1546379821
0xB84c7a87...769bed6D3
0 ETH
69939972019-01-01 21:56:582178 days ago1546379818
0xB84c7a87...769bed6D3
0 ETH
69939972019-01-01 21:56:582178 days ago1546379818
0xB84c7a87...769bed6D3
0 ETH
69939952019-01-01 21:56:472178 days ago1546379807
0xB84c7a87...769bed6D3
0 ETH
69939952019-01-01 21:56:472178 days ago1546379807
0xB84c7a87...769bed6D3
0 ETH
69939912019-01-01 21:56:072178 days ago1546379767
0xB84c7a87...769bed6D3
0 ETH
69939912019-01-01 21:56:072178 days ago1546379767
0xB84c7a87...769bed6D3
0 ETH
69939902019-01-01 21:56:022178 days ago1546379762
0xB84c7a87...769bed6D3
0 ETH
69939902019-01-01 21:56:022178 days ago1546379762
0xB84c7a87...769bed6D3
0 ETH
69939862019-01-01 21:55:002178 days ago1546379700
0xB84c7a87...769bed6D3
0 ETH
69939862019-01-01 21:55:002178 days ago1546379700
0xB84c7a87...769bed6D3
0 ETH
69939822019-01-01 21:53:322178 days ago1546379612
0xB84c7a87...769bed6D3
0 ETH
69939822019-01-01 21:53:322178 days ago1546379612
0xB84c7a87...769bed6D3
0 ETH
69939812019-01-01 21:53:282178 days ago1546379608
0xB84c7a87...769bed6D3
0 ETH
69939812019-01-01 21:53:282178 days ago1546379608
0xB84c7a87...769bed6D3
0 ETH
69939792019-01-01 21:52:402178 days ago1546379560
0xB84c7a87...769bed6D3
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RocketsAndResources

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-18
*/

pragma solidity ^0.4.18;


contract InterfaceContentCreatorUniverse {
  function ownerOf(uint256 _tokenId) public view returns (address _owner);
  function priceOf(uint256 _tokenId) public view returns (uint256 price);
  function getNextPrice(uint price, uint _tokenId) public pure returns (uint);
  function lastSubTokenBuyerOf(uint tokenId) public view returns(address);
  function lastSubTokenCreatorOf(uint tokenId) public view returns(address);

  //
  function createCollectible(uint256 tokenId, uint256 _price, address creator, address owner) external ;
}

contract InterfaceYCC {
  function payForUpgrade(address user, uint price) external  returns (bool success);
  function mintCoinsForOldCollectibles(address to, uint256 amount, address universeOwner) external  returns (bool success);
  function tradePreToken(uint price, address buyer, address seller, uint burnPercent, address universeOwner) external;
  function payoutForMining(address user, uint amount) external;
  uint256 public totalSupply;
}

contract InterfaceMining {
  function createMineForToken(uint tokenId, uint level, uint xp, uint nextLevelBreak, uint blocknumber) external;
  function payoutMining(uint tokenId, address owner, address newOwner) external;
  function levelUpMining(uint tokenId) external;
}

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

contract Owned {
  // The addresses of the accounts (or contracts) that can execute actions within each roles.
  address public ceoAddress;
  address public cooAddress;
  address private newCeoAddress;
  address private newCooAddress;


  function Owned() public {
      ceoAddress = msg.sender;
      cooAddress = msg.sender;
  }

  /*** ACCESS MODIFIERS ***/
  /// @dev Access modifier for CEO-only functionality
  modifier onlyCEO() {
    require(msg.sender == ceoAddress);
    _;
  }

  /// @dev Access modifier for COO-only functionality
  modifier onlyCOO() {
    require(msg.sender == cooAddress);
    _;
  }

  /// Access modifier for contract owner only functionality
  modifier onlyCLevel() {
    require(
      msg.sender == ceoAddress ||
      msg.sender == cooAddress
    );
    _;
  }

  /// @dev Assigns a new address to act as the CEO. Only available to the current CEO.
  /// @param _newCEO The address of the new CEO
  function setCEO(address _newCEO) public onlyCEO {
    require(_newCEO != address(0));
    newCeoAddress = _newCEO;
  }

  /// @dev Assigns a new address to act as the COO. Only available to the current COO.
  /// @param _newCOO The address of the new COO
  function setCOO(address _newCOO) public onlyCEO {
    require(_newCOO != address(0));
    newCooAddress = _newCOO;
  }

  function acceptCeoOwnership() public {
      require(msg.sender == newCeoAddress);
      require(address(0) != newCeoAddress);
      ceoAddress = newCeoAddress;
      newCeoAddress = address(0);
  }

  function acceptCooOwnership() public {
      require(msg.sender == newCooAddress);
      require(address(0) != newCooAddress);
      cooAddress = newCooAddress;
      newCooAddress = address(0);
  }

  mapping (address => bool) public youCollectContracts;
  function addYouCollectContract(address contractAddress, bool active) public onlyCOO {
    youCollectContracts[contractAddress] = active;
  }
  modifier onlyYCC() {
    require(youCollectContracts[msg.sender]);
    _;
  }

  InterfaceYCC ycc;
  InterfaceContentCreatorUniverse yct;
  InterfaceMining ycm;
  function setMainYouCollectContractAddresses(address yccContract, address yctContract, address ycmContract, address[] otherContracts) public onlyCOO {
    ycc = InterfaceYCC(yccContract);
    yct = InterfaceContentCreatorUniverse(yctContract);
    ycm = InterfaceMining(ycmContract);
    youCollectContracts[yccContract] = true;
    youCollectContracts[yctContract] = true;
    youCollectContracts[ycmContract] = true;
    for (uint16 index = 0; index < otherContracts.length; index++) {
      youCollectContracts[otherContracts[index]] = true;
    }
  }
  function setYccContractAddress(address yccContract) public onlyCOO {
    ycc = InterfaceYCC(yccContract);
    youCollectContracts[yccContract] = true;
  }
  function setYctContractAddress(address yctContract) public onlyCOO {
    yct = InterfaceContentCreatorUniverse(yctContract);
    youCollectContracts[yctContract] = true;
  }
  function setYcmContractAddress(address ycmContract) public onlyCOO {
    ycm = InterfaceMining(ycmContract);
    youCollectContracts[ycmContract] = true;
  }

}

contract TransferInterfaceERC721YC {
  function transferToken(address to, uint256 tokenId) public returns (bool success);
}
contract TransferInterfaceERC20 {
  function transfer(address to, uint tokens) public returns (bool success);
}

// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ConsenSys/Tokens/blob/master/contracts/eip20/EIP20.sol
// ----------------------------------------------------------------------------
contract YouCollectBase is Owned {
  using SafeMath for uint256;

  event RedButton(uint value, uint totalSupply);

  // Payout
  function payout(address _to) public onlyCLevel {
    _payout(_to, this.balance);
  }
  function payout(address _to, uint amount) public onlyCLevel {
    if (amount>this.balance)
      amount = this.balance;
    _payout(_to, amount);
  }
  function _payout(address _to, uint amount) private {
    if (_to == address(0)) {
      ceoAddress.transfer(amount);
    } else {
      _to.transfer(amount);
    }
  }

  // ------------------------------------------------------------------------
  // Owner can transfer out any accidentally sent ERC20 tokens
  // ------------------------------------------------------------------------
  function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyCEO returns (bool success) {
      return TransferInterfaceERC20(tokenAddress).transfer(ceoAddress, tokens);
  }
}


contract InterfaceSpawn {
    uint public totalVotes;
    function getVotes(uint id) public view returns (uint _votes);
}

contract RocketsAndResources is YouCollectBase {
    InterfaceSpawn subcontinentDiscoveryVoting;

    event RocketLaunch(uint _rocketTokenId);
    event RocketAddFunds(uint _rocketTokenId, uint _res, uint _yccAmount, address _sender);
    event ResourcesDiscovered(uint _cityTokenId);
    event ResourcesTransfered(uint cityTokenId, uint _rocketTokenId, uint _res, uint _count);

    // ---------------------------
    // Configuration    
    bool public contractActive = false;

    uint discoveryCooldownMin = 1500;
    uint discoveryCooldownMax = 6000;
    uint discoveryPriceMin =  2000000000000000000000000;
    uint discoveryPriceMax = 25000000000000000000000000;

    uint rocketTravelTimeA = 10000;         // in resource-traveltime-formula A/x
    uint rocketTravelTimeMinBlocks = 24000; // added to traveltimes of resources
    uint rocketEarliestLaunchTime;
    // ---------------------------

    mapping (uint => uint) discoveryLastBlock;
    
    mapping (uint => uint[]) cityResourceRichness;  // eg [1, 6, 0, 0] --- gets added to resource-counts on discovery
    mapping (uint => uint[]) cityResourceCount;
    

    mapping (uint => uint[]) rocketResourceCount;
    mapping (uint => uint[]) rocketResourceYccFunds;
    mapping (uint => uint[]) rocketResourcePrices;

    mapping (uint => uint) rocketLaunchBlock;           // when owner launched the rocket
    mapping (uint => uint) rocketTravelTimeAtLaunch;    // when launched, we record the travel time (in case we change params in the formula)
    mapping (uint => uint) rocketTravelTimeIncrease;
    
    uint64 constant MAX_SUBCONTINENT_INDEX = 10000000000000;
    
    function RocketsAndResources() public {
        rocketEarliestLaunchTime = block.number + 36000; // earliest launch is 6 days after contract deploy
    }

    function setSubcontinentDiscoveryVotingContract(address spawnContract) public onlyCOO {
        subcontinentDiscoveryVoting = InterfaceSpawn(spawnContract);
    }

    function setContractActive(bool contractActive_) public onlyCOO {
        contractActive = contractActive_;
    }

    function setConfiguration(
        uint discoveryCooldownMin_,
        uint discoveryCooldownMax_,
        uint discoveryPriceMin_,
        uint discoveryPriceMax_,
        uint rocketEarliestLaunchTime_,
        uint rocketTravelTimeA_,
        uint rocketTravelTimeMinBlocks_
    ) public onlyYCC 
    {
        discoveryCooldownMin = discoveryCooldownMin_;
        discoveryCooldownMax = discoveryCooldownMax_;
        discoveryPriceMin = discoveryPriceMin_;
        discoveryPriceMax = discoveryPriceMax_;
        rocketEarliestLaunchTime = rocketEarliestLaunchTime_;
        rocketTravelTimeA = rocketTravelTimeA_;
        rocketTravelTimeMinBlocks = rocketTravelTimeMinBlocks_;
    }

    function setCityValues(uint[] cityTokenIds_, uint resourceLen_, uint[] resourceRichness_, uint[] resourceCounts_) public onlyYCC {
        uint len = cityTokenIds_.length;
        for (uint i = 0; i < len; i++) {
            uint city = cityTokenIds_[i];
            uint resourceBaseIdx = i * resourceLen_;
            cityResourceRichness[city] = new uint[](resourceLen_);
            cityResourceCount[city] = new uint[](resourceLen_);
            for (uint j = 0; j < resourceLen_; j++) {
                cityResourceRichness[city][j] = resourceRichness_[resourceBaseIdx + j];
                cityResourceCount[city][j] = resourceCounts_[resourceBaseIdx + j];
            }
        }
    }

    function setRocketValues(uint[] rocketTokenIds_, uint resourceLen_, uint[] resourceYccFunds_, uint[] resourcePrices_, uint[] resourceCounts_) public onlyYCC {
        uint len = rocketTokenIds_.length;
        for (uint i = 0; i < len; i++) {
            uint rocket = rocketTokenIds_[i];
            uint resourceBaseIdx = i * resourceLen_;
            rocketResourceCount[rocket] = new uint[](resourceLen_);
            rocketResourcePrices[rocket] = new uint[](resourceLen_);
            rocketResourceYccFunds[rocket] = new uint[](resourceLen_);
            for (uint j = 0; j < resourceLen_; j++) {
                rocketResourceCount[rocket][j] = resourceCounts_[resourceBaseIdx + j];
                rocketResourcePrices[rocket][j] = resourcePrices_[resourceBaseIdx + j];
                rocketResourceYccFunds[rocket][j] = resourceYccFunds_[resourceBaseIdx + j];
            }
        }
    }

    function getCityResources(uint cityTokenId_) public view returns (uint[] _resourceCounts) {
        _resourceCounts = cityResourceCount[cityTokenId_];
    }

    function getCityResourceRichness(uint cityTokenId_) public onlyYCC view returns (uint[] _resourceRichness) {
        _resourceRichness = cityResourceRichness[cityTokenId_];
    }

    function cityTransferResources(uint cityTokenId_, uint rocketTokenId_, uint res_, uint count_) public {
        require(contractActive);
        require(yct.ownerOf(cityTokenId_)==msg.sender);

        uint yccAmount = rocketResourcePrices[rocketTokenId_][res_] * count_;
        
        require(cityResourceCount[cityTokenId_][res_] >= count_);
        require(rocketResourceYccFunds[rocketTokenId_][res_] >= yccAmount);

        cityResourceCount[cityTokenId_][res_] -= count_;
        rocketResourceCount[rocketTokenId_][res_] += count_;
        rocketResourceYccFunds[rocketTokenId_][res_] -= yccAmount;

        ycc.payoutForMining(msg.sender, yccAmount);

        ResourcesTransfered(cityTokenId_, rocketTokenId_, res_, count_);
    }
    
    /*
        Resource Discovery
    */
    function discoveryCooldown(uint cityTokenId_) public view returns (uint _cooldownBlocks) {
        uint totalVotes = subcontinentDiscoveryVoting.totalVotes();
        if (totalVotes <= 0) 
            totalVotes = 1;
        uint range = discoveryCooldownMax-discoveryCooldownMin;
        uint subcontinentId = cityTokenId_ % MAX_SUBCONTINENT_INDEX;
        _cooldownBlocks = range - (subcontinentDiscoveryVoting.getVotes(subcontinentId).mul(range)).div(totalVotes) + discoveryCooldownMin;
    }
    function discoveryPrice(uint cityTokenId_) public view returns (uint _price) {
        uint totalVotes = subcontinentDiscoveryVoting.totalVotes();
        if (totalVotes <= 0) 
            totalVotes = 1;
        uint range = discoveryPriceMax-discoveryPriceMin;
        uint subcontinentId = cityTokenId_ % MAX_SUBCONTINENT_INDEX;
        _price = range - (subcontinentDiscoveryVoting.getVotes(subcontinentId).mul(range)).div(totalVotes) + discoveryPriceMin;
    }

    function discoveryBlocksUntilAllowed(uint cityTokenId_) public view returns (uint _blocks) {
        uint blockNextDiscoveryAllowed = discoveryLastBlock[cityTokenId_] + discoveryCooldown(cityTokenId_);
        if (block.number > blockNextDiscoveryAllowed) {
            _blocks = 0;
        } else {
            _blocks = blockNextDiscoveryAllowed - block.number;
        }
    }
    
    function discoverResources(uint cityTokenId_) public {
        require(contractActive);
        require(discoveryBlocksUntilAllowed(cityTokenId_) == 0);

        uint yccAmount = this.discoveryPrice(cityTokenId_);
        ycc.payForUpgrade(msg.sender, yccAmount);
        
        discoveryLastBlock[cityTokenId_] = block.number;
        
        uint resourceRichnessLen = cityResourceRichness[cityTokenId_].length;
        for (uint i = 0; i < resourceRichnessLen; i++) {
            cityResourceCount[cityTokenId_][i] += cityResourceRichness[cityTokenId_][i];
        }
        ResourcesDiscovered(cityTokenId_);
    }
    
    /*
        Rockets
    */
    function rocketTravelTimeByResource(uint rocketTokenId_, uint res_) public view returns (uint _blocks) {
        _blocks = rocketTravelTimeA * 6000 / rocketResourceCount[rocketTokenId_][res_];
    }
    function rocketTravelTime(uint rocketTokenId_) public view returns (uint _travelTimeBlocks) {
        _travelTimeBlocks = rocketTravelTimeMinBlocks + rocketTravelTimeIncrease[rocketTokenId_];
        
        uint resourceLen = rocketResourceCount[rocketTokenId_].length;
        for (uint i = 0; i < resourceLen; i++) {
            _travelTimeBlocks += rocketTravelTimeA * 6000 / rocketResourceCount[rocketTokenId_][i];
        }
    }
    function rocketBlocksUntilAllowedToLaunch() public view returns (uint _blocksUntilAllowed) {
        if (block.number > rocketEarliestLaunchTime) {
            _blocksUntilAllowed = 0;
        } else {
            _blocksUntilAllowed = rocketEarliestLaunchTime - block.number;
        }
    }
    function rocketIsLaunched(uint rocketTokenId_) public view returns (bool _isLaunched) { 
        _isLaunched = rocketLaunchBlock[rocketTokenId_] > 0;
    }
    function rocketArrivalTime(uint rocketTokenId_) public view returns (uint) {
        require(rocketLaunchBlock[rocketTokenId_] > 0);
        return rocketLaunchBlock[rocketTokenId_] + rocketTravelTimeAtLaunch[rocketTokenId_];
    }
    function increaseArrivalTime(uint rocketTokenId_, uint blocks) public onlyYCC {
        if (rocketLaunchBlock[rocketTokenId_] > 0)
            rocketTravelTimeAtLaunch[rocketTokenId_] = rocketTravelTimeAtLaunch[rocketTokenId_] + blocks;
        else
            rocketTravelTimeIncrease[rocketTokenId_] = rocketTravelTimeIncrease[rocketTokenId_] + blocks;
    }
    function decreaseArrivalTime(uint rocketTokenId_, uint blocks) public onlyYCC {
        if (rocketLaunchBlock[rocketTokenId_] > 0)
            rocketTravelTimeAtLaunch[rocketTokenId_] = rocketTravelTimeAtLaunch[rocketTokenId_] - blocks;
        else
            rocketTravelTimeIncrease[rocketTokenId_] = rocketTravelTimeIncrease[rocketTokenId_] - blocks;
    }
    function rocketTimeUntilMoon(uint rocketTokenId_) public view returns (uint _untilMoonBlocks) {
        uint arrivalTime = rocketArrivalTime(rocketTokenId_);
        if (block.number > arrivalTime) {
            _untilMoonBlocks = 0;
        } else {
            _untilMoonBlocks = arrivalTime - block.number;
        }
    }
    function rocketGetResourceValues(uint rocketTokenId_) public view returns (uint[] _yccAmounts, uint[] _resourcePrices, uint[] _resourceCounts) {
        _yccAmounts = rocketResourceYccFunds[rocketTokenId_];
        _resourcePrices = rocketResourcePrices[rocketTokenId_];
        _resourceCounts = rocketResourceCount[rocketTokenId_];
    }


    function rocketSetResourcePrice(uint rocketTokenId_, uint res_, uint yccPrice_) public {
        require(contractActive);
        require(yct.ownerOf(rocketTokenId_)==msg.sender);
        require(yccPrice_ > 0);
        rocketResourcePrices[rocketTokenId_][res_] = yccPrice_;
    }

    function rocketAddFunds(uint rocketTokenId_, uint res_, uint yccAmount_) public {
        require(contractActive);
        ycc.payForUpgrade(msg.sender, yccAmount_);
        rocketResourceYccFunds[rocketTokenId_][res_] += yccAmount_;

        RocketAddFunds(rocketTokenId_, res_, yccAmount_, msg.sender);
    }

    function rocketLaunch(uint rocketTokenId_) public {
        require(contractActive);
        require(block.number > rocketEarliestLaunchTime);
        require(yct.ownerOf(rocketTokenId_)==msg.sender);

        rocketLaunchBlock[rocketTokenId_] = block.number;
        rocketTravelTimeAtLaunch[rocketTokenId_] = rocketTravelTime(rocketTokenId_);

        RocketLaunch(rocketTokenId_);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"rocketBlocksUntilAllowedToLaunch","outputs":[{"name":"_blocksUntilAllowed","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ceoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rocketTokenId_","type":"uint256"},{"name":"res_","type":"uint256"},{"name":"yccPrice_","type":"uint256"}],"name":"rocketSetResourcePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rocketTokenId_","type":"uint256"}],"name":"rocketTravelTime","outputs":[{"name":"_travelTimeBlocks","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"amount","type":"uint256"}],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cityTokenId_","type":"uint256"}],"name":"discoverResources","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"youCollectContracts","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cityTokenId_","type":"uint256"}],"name":"discoveryCooldown","outputs":[{"name":"_cooldownBlocks","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cityTokenId_","type":"uint256"}],"name":"discoveryPrice","outputs":[{"name":"_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rocketTokenId_","type":"uint256"}],"name":"rocketArrivalTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"discoveryCooldownMin_","type":"uint256"},{"name":"discoveryCooldownMax_","type":"uint256"},{"name":"discoveryPriceMin_","type":"uint256"},{"name":"discoveryPriceMax_","type":"uint256"},{"name":"rocketEarliestLaunchTime_","type":"uint256"},{"name":"rocketTravelTimeA_","type":"uint256"},{"name":"rocketTravelTimeMinBlocks_","type":"uint256"}],"name":"setConfiguration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rocketTokenId_","type":"uint256"}],"name":"rocketLaunch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"yctContract","type":"address"}],"name":"setYctContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rocketTokenId_","type":"uint256"},{"name":"blocks","type":"uint256"}],"name":"decreaseArrivalTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"yccContract","type":"address"}],"name":"setYccContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"cityTokenId_","type":"uint256"}],"name":"discoveryBlocksUntilAllowed","outputs":[{"name":"_blocks","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spawnContract","type":"address"}],"name":"setSubcontinentDiscoveryVotingContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rocketTokenId_","type":"uint256"}],"name":"rocketIsLaunched","outputs":[{"name":"_isLaunched","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rocketTokenIds_","type":"uint256[]"},{"name":"resourceLen_","type":"uint256"},{"name":"resourceYccFunds_","type":"uint256[]"},{"name":"resourcePrices_","type":"uint256[]"},{"name":"resourceCounts_","type":"uint256[]"}],"name":"setRocketValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rocketTokenId_","type":"uint256"}],"name":"rocketGetResourceValues","outputs":[{"name":"_yccAmounts","type":"uint256[]"},{"name":"_resourcePrices","type":"uint256[]"},{"name":"_resourceCounts","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"},{"name":"active","type":"bool"}],"name":"addYouCollectContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptCooOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rocketTokenId_","type":"uint256"},{"name":"res_","type":"uint256"},{"name":"yccAmount_","type":"uint256"}],"name":"rocketAddFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ycmContract","type":"address"}],"name":"setYcmContractAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cityTokenIds_","type":"uint256[]"},{"name":"resourceLen_","type":"uint256"},{"name":"resourceRichness_","type":"uint256[]"},{"name":"resourceCounts_","type":"uint256[]"}],"name":"setCityValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractActive_","type":"bool"}],"name":"setContractActive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"cityTokenId_","type":"uint256"}],"name":"getCityResources","outputs":[{"name":"_resourceCounts","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cityTokenId_","type":"uint256"}],"name":"getCityResourceRichness","outputs":[{"name":"_resourceRichness","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cityTokenId_","type":"uint256"},{"name":"rocketTokenId_","type":"uint256"},{"name":"res_","type":"uint256"},{"name":"count_","type":"uint256"}],"name":"cityTransferResources","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cooAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"yccContract","type":"address"},{"name":"yctContract","type":"address"},{"name":"ycmContract","type":"address"},{"name":"otherContracts","type":"address[]"}],"name":"setMainYouCollectContractAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rocketTokenId_","type":"uint256"},{"name":"blocks","type":"uint256"}],"name":"increaseArrivalTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rocketTokenId_","type":"uint256"},{"name":"res_","type":"uint256"}],"name":"rocketTravelTimeByResource","outputs":[{"name":"_blocks","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptCeoOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rocketTokenId_","type":"uint256"}],"name":"rocketTimeUntilMoon","outputs":[{"name":"_untilMoonBlocks","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_rocketTokenId","type":"uint256"}],"name":"RocketLaunch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_rocketTokenId","type":"uint256"},{"indexed":false,"name":"_res","type":"uint256"},{"indexed":false,"name":"_yccAmount","type":"uint256"},{"indexed":false,"name":"_sender","type":"address"}],"name":"RocketAddFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_cityTokenId","type":"uint256"}],"name":"ResourcesDiscovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityTokenId","type":"uint256"},{"indexed":false,"name":"_rocketTokenId","type":"uint256"},{"indexed":false,"name":"_res","type":"uint256"},{"indexed":false,"name":"_count","type":"uint256"}],"name":"ResourcesTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"RedButton","type":"event"}]

60606040526008805460a060020a60ff02191690556105dc600955611770600a556a01a784379d99db42000000600b556a14adf4b7320334b9000000600c55612710600d55615dc0600e55341561005557600080fd5b60008054600160a060020a033316600160a060020a03199182168117909255600180549091169091179055618ca04301600f55612274806100976000396000f3006060604052600436106101d45763ffffffff60e060020a6000350416630761c57a81146101d95780630a0f8168146101fe5780630b7e9c441461022d5780630f8a88871461024e5780631136aa641461026a578063117de2fd1461028057806312f3d1e0146102a2578063172ce8d3146102b8578063229063fc146102eb578063255884ae1461030157806327d7874c146103175780632ba73c15146103365780632fffe0dd14610355578063319a30d41461036b5780633b20c3f314610393578063450a9105146103a95780635bd5e89c146103c85780635e25f96d146103e15780635ef505c01461040057806360ee66c91461041657806367669e291461043557806380a15ad91461044b57806380e039f91461056357806382a147cd1461065757806386f7993e1461067b578063927e434b1461068e57806392e18d9f146106aa57806394224066146106c9578063970388b5146107a157806397ea403d146107b9578063a7cc440e14610822578063aaa05e2014610838578063b047fb5014610857578063b4c5c9831461086a578063b6fef44c146108d6578063bb35f7ee146108ef578063dc39d06d14610908578063e289fcb61461092a578063f35ba5d31461093d578063f7749e3214610950575b600080fd5b34156101e457600080fd5b6101ec610966565b60405190815260200160405180910390f35b341561020957600080fd5b610211610985565b604051600160a060020a03909116815260200160405180910390f35b341561023857600080fd5b61024c600160a060020a0360043516610994565b005b341561025957600080fd5b61024c6004356024356044356109e1565b341561027557600080fd5b6101ec600435610ab9565b341561028b57600080fd5b61024c600160a060020a0360043516602435610b2e565b34156102ad57600080fd5b61024c600435610b91565b34156102c357600080fd5b6102d7600160a060020a0360043516610d67565b604051901515815260200160405180910390f35b34156102f657600080fd5b6101ec600435610d7c565b341561030c57600080fd5b6101ec600435610ea9565b341561032257600080fd5b61024c600160a060020a0360043516610f96565b341561034157600080fd5b61024c600160a060020a0360043516610fe8565b341561036057600080fd5b6101ec60043561103a565b341561037657600080fd5b61024c60043560243560443560643560843560a43560c435611075565b341561039e57600080fd5b61024c6004356110bc565b34156103b457600080fd5b61024c600160a060020a03600435166111cb565b34156103d357600080fd5b61024c600435602435611220565b34156103ec57600080fd5b61024c600160a060020a036004351661128f565b341561040b57600080fd5b6101ec6004356112e4565b341561042157600080fd5b61024c600160a060020a0360043516611320565b341561044057600080fd5b6102d760043561135d565b341561045657600080fd5b61024c600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061137095505050505050565b341561056e57600080fd5b610579600435611570565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156105c15780820151838201526020016105a9565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156106005780820151838201526020016105e8565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561063f578082015183820152602001610627565b50505050905001965050505050505060405180910390f35b341561066257600080fd5b61024c600160a060020a036004351660243515156116bb565b341561068657600080fd5b61024c611701565b341561069957600080fd5b61024c60043560243560443561175a565b34156106b557600080fd5b61024c600160a060020a0360043516611878565b34156106d457600080fd5b61024c600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506118cd95505050505050565b34156107ac57600080fd5b61024c6004351515611a4f565b34156107c457600080fd5b6107cf600435611a99565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561080e5780820151838201526020016107f6565b505050509050019250505060405180910390f35b341561082d57600080fd5b6107cf600435611b0a565b341561084357600080fd5b61024c600435602435604435606435611ba0565b341561086257600080fd5b610211611e29565b341561087557600080fd5b61024c60048035600160a060020a0390811691602480358316926044351691906084906064359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650611e3895505050505050565b34156108e157600080fd5b61024c600435602435611f35565b34156108fa57600080fd5b6101ec600435602435611fa2565b341561091357600080fd5b6102d7600160a060020a0360043516602435611fe0565b341561093557600080fd5b6102d7612083565b341561094857600080fd5b61024c612093565b341561095b57600080fd5b6101ec6004356120ec565b6000600f5443111561097a57506000610982565b43600f540390505b90565b600054600160a060020a031681565b60005433600160a060020a03908116911614806109bf575060015433600160a060020a039081169116145b15156109ca57600080fd5b6109de8130600160a060020a03163161210b565b50565b60085460a060020a900460ff1615156109f957600080fd5b600654600160a060020a033381169116636352211e8560006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610a4e57600080fd5b6102c65a03f11515610a5f57600080fd5b50505060405180519050600160a060020a0316141515610a7e57600080fd5b60008111610a8b57600080fd5b6000838152601560205260409020805482919084908110610aa857fe5b600091825260209091200155505050565b600081815260186020908152604080832054600e546013909352908320549101915b81811015610b27576000848152601360205260409020805482908110610afd57fe5b906000526020600020900154600d5461177002811515610b1957fe5b049290920191600101610adb565b5050919050565b60005433600160a060020a0390811691161480610b59575060015433600160a060020a039081169116145b1515610b6457600080fd5b30600160a060020a031631811115610b835750600160a060020a033016315b610b8d828261210b565b5050565b6000806000600860149054906101000a900460ff161515610bb157600080fd5b610bba846112e4565b15610bc457600080fd5b30600160a060020a031663255884ae8560006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610c1357600080fd5b6102c65a03f11515610c2457600080fd5b5050506040518051600554909450600160a060020a03169050638c9fcfe2338560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c9057600080fd5b6102c65a03f11515610ca157600080fd5b50505060405180515050506000838152601060209081526040808320439055601190915281205491505b81811015610d2e576000848152601160205260409020805482908110610ced57fe5b600091825260208083209091015486835260129091526040909120805483908110610d1457fe5b600091825260209091200180549091019055600101610ccb565b7fca246aed60d1b0f2ae3702e77ad71d2512ccc80b61b548bd6f5622232da9f9278460405190815260200160405180910390a150505050565b60046020526000908152604090205460ff1681565b600854600090819081908190600160a060020a0316630d15fd7782604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dcc57600080fd5b6102c65a03f11515610ddd57600080fd5b505050604051805193505060008311610df557600192505b5050600954600a5460085490829003916509184e72a000860691610e9c908590610e90908690600160a060020a031663ff9810998760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610e6957600080fd5b6102c65a03f11515610e7a57600080fd5b505050604051805191905063ffffffff61218416565b9063ffffffff6121ba16565b8303019350505050919050565b600854600090819081908190600160a060020a0316630d15fd7782604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ef957600080fd5b6102c65a03f11515610f0a57600080fd5b505050604051805193505060008311610f2257600192505b5050600b54600c5460085490829003916509184e72a000860691610e9c908590610e90908690600160a060020a031663ff9810998760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610e6957600080fd5b60005433600160a060020a03908116911614610fb157600080fd5b600160a060020a0381161515610fc657600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461100357600080fd5b600160a060020a038116151561101857600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b60008181526016602052604081205481901161105557600080fd5b506000908152601760209081526040808320546016909252909120540190565b600160a060020a03331660009081526004602052604090205460ff16151561109c57600080fd5b600996909655600a94909455600b92909255600c55600f55600d55600e55565b60085460a060020a900460ff1615156110d457600080fd5b600f5443116110e257600080fd5b600654600160a060020a033381169116636352211e8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561113757600080fd5b6102c65a03f1151561114857600080fd5b50505060405180519050600160a060020a031614151561116757600080fd5b600081815260166020526040902043905561118181610ab9565b60008281526017602052604090819020919091557fe85b2afcc47cc4d349d6d44e405b880c7e24429a9879594d89d0018e8f4946009082905190815260200160405180910390a150565b60015433600160a060020a039081169116146111e657600080fd5b60068054600160a060020a03909216600160a060020a0319909216821790556000908152600460205260409020805460ff19166001179055565b600160a060020a03331660009081526004602052604090205460ff16151561124757600080fd5b600082815260166020526040812054111561127657600082815260176020526040902080548290039055610b8d565b6000828152601860205260409020805482900390555050565b60015433600160a060020a039081169116146112aa57600080fd5b60058054600160a060020a03909216600160a060020a0319909216821790556000908152600460205260409020805460ff19166001179055565b6000806112f083610d7c565b6000848152601060205260409020540190504381901115611314576000915061131a565b43810391505b50919050565b60015433600160a060020a0390811691161461133b57600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b6000908152601660205260408120541190565b600160a060020a033316600090815260046020526040812054819081908190819060ff16151561139f57600080fd5b89519450600093505b84841015611564578984815181106113bc57fe5b9060200190602002015192508884029150886040518059106113db5750595b9080825280602002602001820160405250600084815260136020526040902090805161140b9291602001906121d1565b508860405180591061141a5750595b9080825280602002602001820160405250600084815260156020526040902090805161144a9291602001906121d1565b50886040518059106114595750595b908082528060200260200182016040525060008481526014602052604090209080516114899291602001906121d1565b50600090505b888110156115595785818301815181106114a557fe5b9060200190602002015160008481526013602052604090208054839081106114c957fe5b60009182526020909120015586828201815181106114e357fe5b90602001906020020151600084815260156020526040902080548390811061150757fe5b600091825260209091200155878282018151811061152157fe5b90602001906020020151600084815260146020526040902080548390811061154557fe5b60009182526020909120015560010161148f565b6001909301926113a8565b50505050505050505050565b61157861221c565b61158061221c565b61158861221c565b601460008581526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020905b8154815260200190600101908083116115d1575b505050505092506015600085815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561164957602002820191906000526020600020905b815481526020019060010190808311611635575b50505050509150601360008581526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156116ad57602002820191906000526020600020905b815481526020019060010190808311611699575b505050505090509193909250565b60015433600160a060020a039081169116146116d657600080fd5b600160a060020a03919091166000908152600460205260409020805460ff1916911515919091179055565b60035433600160a060020a0390811691161461171c57600080fd5b600354600160a060020a0316151561173357600080fd5b6003805460018054600160a060020a0319908116600160a060020a03841617909155169055565b60085460a060020a900460ff16151561177257600080fd5b600554600160a060020a0316638c9fcfe2338360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117d157600080fd5b6102c65a03f115156117e257600080fd5b50505060405180515050600083815260146020526040902080548291908490811061180957fe5b6000918252602090912001805490910190557f2e1dcc2ebc91e005071a543c3e5276f235e739935fc1dc08df0706366c64ea57838383336040519384526020840192909252604080840191909152600160a060020a0390911660608301526080909101905180910390a1505050565b60015433600160a060020a0390811691161461189357600080fd5b60078054600160a060020a03909216600160a060020a0319909216821790556000908152600460205260409020805460ff19166001179055565b600160a060020a033316600090815260046020526040812054819081908190819060ff1615156118fc57600080fd5b88519450600093505b84841015611a445788848151811061191957fe5b9060200190602002015192508784029150876040518059106119385750595b908082528060200260200182016040525060008481526011602052604090209080516119689291602001906121d1565b50876040518059106119775750595b908082528060200260200182016040525060008481526012602052604090209080516119a79291602001906121d1565b50600090505b87811015611a395786818301815181106119c357fe5b9060200190602002015160008481526011602052604090208054839081106119e757fe5b6000918252602090912001558582820181518110611a0157fe5b906020019060200201516000848152601260205260409020805483908110611a2557fe5b6000918252602090912001556001016119ad565b600190930192611905565b505050505050505050565b60015433600160a060020a03908116911614611a6a57600080fd5b6008805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b611aa161221c565b60126000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611afe57602002820191906000526020600020905b815481526020019060010190808311611aea575b50505050509050919050565b611b1261221c565b600160a060020a03331660009081526004602052604090205460ff161515611b3957600080fd5b60116000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611afe5760200282019190600052602060002090815481526020019060010190808311611aea5750505050509050919050565b60085460009060a060020a900460ff161515611bbb57600080fd5b600654600160a060020a033381169116636352211e8760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611c1057600080fd5b6102c65a03f11515611c2157600080fd5b50505060405180519050600160a060020a0316141515611c4057600080fd5b6000848152601560205260409020805483919085908110611c5d57fe5b906000526020600020900154029050816012600087815260200190815260200160002084815481101515611c8d57fe5b6000918252602090912001541015611ca457600080fd5b6000848152601460205260409020805482919085908110611cc157fe5b6000918252602090912001541015611cd857600080fd5b6000858152601260205260409020805483919085908110611cf557fe5b60009182526020808320909101805493909303909255858152601390915260409020805483919085908110611d2657fe5b600091825260208083209091018054909301909255858152601490915260409020805482919085908110611d5657fe5b60009182526020909120018054919091039055600554600160a060020a031663aa2796fd338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611dbf57600080fd5b6102c65a03f11515611dd057600080fd5b5050507fe69201b39f4f938b9ab028c6cfa6fedb755401f8302f88b761c31e5f8fa4f24d858585856040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050505050565b600154600160a060020a031681565b60015460009033600160a060020a03908116911614611e5657600080fd5b5060058054600160a060020a03808716600160a060020a0319928316811790935560068054878316908416811790915560078054928716929093168217909255600092835260046020526040808420805460ff1990811660019081179092559385528185208054851682179055918452832080549092161790555b81518161ffff161015611f2e57600160046000848461ffff1681518110611ef457fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600101611ed1565b5050505050565b600160a060020a03331660009081526004602052604090205460ff161515611f5c57600080fd5b6000828152601660205260408120541115611f8a576000828152601760205260409020805482019055610b8d565b60008281526018602052604090208054820190555050565b6000828152601360205260408120805483908110611fbc57fe5b906000526020600020900154600d5461177002811515611fd857fe5b049392505050565b6000805433600160a060020a03908116911614611ffc57600080fd5b60008054600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561206257600080fd5b6102c65a03f1151561207357600080fd5b5050506040518051949350505050565b60085460a060020a900460ff1681565b60025433600160a060020a039081169116146120ae57600080fd5b600254600160a060020a031615156120c557600080fd5b6002805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000806120f88361103a565b905080431115611314576000915061131a565b600160a060020a038216151561215357600054600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561214e57600080fd5b610b8d565b600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515610b8d57600080fd5b60008083151561219757600091506121b3565b508282028284828115156121a757fe5b04146121af57fe5b8091505b5092915050565b60008082848115156121c857fe5b04949350505050565b82805482825590600052602060002090810192821561220c579160200282015b8281111561220c5782518255916020019190600101906121f1565b5061221892915061222e565b5090565b60206040519081016040526000815290565b61098291905b8082111561221857600081556001016122345600a165627a7a72305820133c13a1ce989df8af2eb72992c56030bfb2ef61a51312e986fb7eddebed07930029

Deployed Bytecode

0x6060604052600436106101d45763ffffffff60e060020a6000350416630761c57a81146101d95780630a0f8168146101fe5780630b7e9c441461022d5780630f8a88871461024e5780631136aa641461026a578063117de2fd1461028057806312f3d1e0146102a2578063172ce8d3146102b8578063229063fc146102eb578063255884ae1461030157806327d7874c146103175780632ba73c15146103365780632fffe0dd14610355578063319a30d41461036b5780633b20c3f314610393578063450a9105146103a95780635bd5e89c146103c85780635e25f96d146103e15780635ef505c01461040057806360ee66c91461041657806367669e291461043557806380a15ad91461044b57806380e039f91461056357806382a147cd1461065757806386f7993e1461067b578063927e434b1461068e57806392e18d9f146106aa57806394224066146106c9578063970388b5146107a157806397ea403d146107b9578063a7cc440e14610822578063aaa05e2014610838578063b047fb5014610857578063b4c5c9831461086a578063b6fef44c146108d6578063bb35f7ee146108ef578063dc39d06d14610908578063e289fcb61461092a578063f35ba5d31461093d578063f7749e3214610950575b600080fd5b34156101e457600080fd5b6101ec610966565b60405190815260200160405180910390f35b341561020957600080fd5b610211610985565b604051600160a060020a03909116815260200160405180910390f35b341561023857600080fd5b61024c600160a060020a0360043516610994565b005b341561025957600080fd5b61024c6004356024356044356109e1565b341561027557600080fd5b6101ec600435610ab9565b341561028b57600080fd5b61024c600160a060020a0360043516602435610b2e565b34156102ad57600080fd5b61024c600435610b91565b34156102c357600080fd5b6102d7600160a060020a0360043516610d67565b604051901515815260200160405180910390f35b34156102f657600080fd5b6101ec600435610d7c565b341561030c57600080fd5b6101ec600435610ea9565b341561032257600080fd5b61024c600160a060020a0360043516610f96565b341561034157600080fd5b61024c600160a060020a0360043516610fe8565b341561036057600080fd5b6101ec60043561103a565b341561037657600080fd5b61024c60043560243560443560643560843560a43560c435611075565b341561039e57600080fd5b61024c6004356110bc565b34156103b457600080fd5b61024c600160a060020a03600435166111cb565b34156103d357600080fd5b61024c600435602435611220565b34156103ec57600080fd5b61024c600160a060020a036004351661128f565b341561040b57600080fd5b6101ec6004356112e4565b341561042157600080fd5b61024c600160a060020a0360043516611320565b341561044057600080fd5b6102d760043561135d565b341561045657600080fd5b61024c600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061137095505050505050565b341561056e57600080fd5b610579600435611570565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156105c15780820151838201526020016105a9565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156106005780820151838201526020016105e8565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561063f578082015183820152602001610627565b50505050905001965050505050505060405180910390f35b341561066257600080fd5b61024c600160a060020a036004351660243515156116bb565b341561068657600080fd5b61024c611701565b341561069957600080fd5b61024c60043560243560443561175a565b34156106b557600080fd5b61024c600160a060020a0360043516611878565b34156106d457600080fd5b61024c600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506118cd95505050505050565b34156107ac57600080fd5b61024c6004351515611a4f565b34156107c457600080fd5b6107cf600435611a99565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561080e5780820151838201526020016107f6565b505050509050019250505060405180910390f35b341561082d57600080fd5b6107cf600435611b0a565b341561084357600080fd5b61024c600435602435604435606435611ba0565b341561086257600080fd5b610211611e29565b341561087557600080fd5b61024c60048035600160a060020a0390811691602480358316926044351691906084906064359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650611e3895505050505050565b34156108e157600080fd5b61024c600435602435611f35565b34156108fa57600080fd5b6101ec600435602435611fa2565b341561091357600080fd5b6102d7600160a060020a0360043516602435611fe0565b341561093557600080fd5b6102d7612083565b341561094857600080fd5b61024c612093565b341561095b57600080fd5b6101ec6004356120ec565b6000600f5443111561097a57506000610982565b43600f540390505b90565b600054600160a060020a031681565b60005433600160a060020a03908116911614806109bf575060015433600160a060020a039081169116145b15156109ca57600080fd5b6109de8130600160a060020a03163161210b565b50565b60085460a060020a900460ff1615156109f957600080fd5b600654600160a060020a033381169116636352211e8560006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610a4e57600080fd5b6102c65a03f11515610a5f57600080fd5b50505060405180519050600160a060020a0316141515610a7e57600080fd5b60008111610a8b57600080fd5b6000838152601560205260409020805482919084908110610aa857fe5b600091825260209091200155505050565b600081815260186020908152604080832054600e546013909352908320549101915b81811015610b27576000848152601360205260409020805482908110610afd57fe5b906000526020600020900154600d5461177002811515610b1957fe5b049290920191600101610adb565b5050919050565b60005433600160a060020a0390811691161480610b59575060015433600160a060020a039081169116145b1515610b6457600080fd5b30600160a060020a031631811115610b835750600160a060020a033016315b610b8d828261210b565b5050565b6000806000600860149054906101000a900460ff161515610bb157600080fd5b610bba846112e4565b15610bc457600080fd5b30600160a060020a031663255884ae8560006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610c1357600080fd5b6102c65a03f11515610c2457600080fd5b5050506040518051600554909450600160a060020a03169050638c9fcfe2338560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c9057600080fd5b6102c65a03f11515610ca157600080fd5b50505060405180515050506000838152601060209081526040808320439055601190915281205491505b81811015610d2e576000848152601160205260409020805482908110610ced57fe5b600091825260208083209091015486835260129091526040909120805483908110610d1457fe5b600091825260209091200180549091019055600101610ccb565b7fca246aed60d1b0f2ae3702e77ad71d2512ccc80b61b548bd6f5622232da9f9278460405190815260200160405180910390a150505050565b60046020526000908152604090205460ff1681565b600854600090819081908190600160a060020a0316630d15fd7782604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dcc57600080fd5b6102c65a03f11515610ddd57600080fd5b505050604051805193505060008311610df557600192505b5050600954600a5460085490829003916509184e72a000860691610e9c908590610e90908690600160a060020a031663ff9810998760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610e6957600080fd5b6102c65a03f11515610e7a57600080fd5b505050604051805191905063ffffffff61218416565b9063ffffffff6121ba16565b8303019350505050919050565b600854600090819081908190600160a060020a0316630d15fd7782604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ef957600080fd5b6102c65a03f11515610f0a57600080fd5b505050604051805193505060008311610f2257600192505b5050600b54600c5460085490829003916509184e72a000860691610e9c908590610e90908690600160a060020a031663ff9810998760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610e6957600080fd5b60005433600160a060020a03908116911614610fb157600080fd5b600160a060020a0381161515610fc657600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461100357600080fd5b600160a060020a038116151561101857600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b60008181526016602052604081205481901161105557600080fd5b506000908152601760209081526040808320546016909252909120540190565b600160a060020a03331660009081526004602052604090205460ff16151561109c57600080fd5b600996909655600a94909455600b92909255600c55600f55600d55600e55565b60085460a060020a900460ff1615156110d457600080fd5b600f5443116110e257600080fd5b600654600160a060020a033381169116636352211e8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561113757600080fd5b6102c65a03f1151561114857600080fd5b50505060405180519050600160a060020a031614151561116757600080fd5b600081815260166020526040902043905561118181610ab9565b60008281526017602052604090819020919091557fe85b2afcc47cc4d349d6d44e405b880c7e24429a9879594d89d0018e8f4946009082905190815260200160405180910390a150565b60015433600160a060020a039081169116146111e657600080fd5b60068054600160a060020a03909216600160a060020a0319909216821790556000908152600460205260409020805460ff19166001179055565b600160a060020a03331660009081526004602052604090205460ff16151561124757600080fd5b600082815260166020526040812054111561127657600082815260176020526040902080548290039055610b8d565b6000828152601860205260409020805482900390555050565b60015433600160a060020a039081169116146112aa57600080fd5b60058054600160a060020a03909216600160a060020a0319909216821790556000908152600460205260409020805460ff19166001179055565b6000806112f083610d7c565b6000848152601060205260409020540190504381901115611314576000915061131a565b43810391505b50919050565b60015433600160a060020a0390811691161461133b57600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b6000908152601660205260408120541190565b600160a060020a033316600090815260046020526040812054819081908190819060ff16151561139f57600080fd5b89519450600093505b84841015611564578984815181106113bc57fe5b9060200190602002015192508884029150886040518059106113db5750595b9080825280602002602001820160405250600084815260136020526040902090805161140b9291602001906121d1565b508860405180591061141a5750595b9080825280602002602001820160405250600084815260156020526040902090805161144a9291602001906121d1565b50886040518059106114595750595b908082528060200260200182016040525060008481526014602052604090209080516114899291602001906121d1565b50600090505b888110156115595785818301815181106114a557fe5b9060200190602002015160008481526013602052604090208054839081106114c957fe5b60009182526020909120015586828201815181106114e357fe5b90602001906020020151600084815260156020526040902080548390811061150757fe5b600091825260209091200155878282018151811061152157fe5b90602001906020020151600084815260146020526040902080548390811061154557fe5b60009182526020909120015560010161148f565b6001909301926113a8565b50505050505050505050565b61157861221c565b61158061221c565b61158861221c565b601460008581526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020905b8154815260200190600101908083116115d1575b505050505092506015600085815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561164957602002820191906000526020600020905b815481526020019060010190808311611635575b50505050509150601360008581526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156116ad57602002820191906000526020600020905b815481526020019060010190808311611699575b505050505090509193909250565b60015433600160a060020a039081169116146116d657600080fd5b600160a060020a03919091166000908152600460205260409020805460ff1916911515919091179055565b60035433600160a060020a0390811691161461171c57600080fd5b600354600160a060020a0316151561173357600080fd5b6003805460018054600160a060020a0319908116600160a060020a03841617909155169055565b60085460a060020a900460ff16151561177257600080fd5b600554600160a060020a0316638c9fcfe2338360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117d157600080fd5b6102c65a03f115156117e257600080fd5b50505060405180515050600083815260146020526040902080548291908490811061180957fe5b6000918252602090912001805490910190557f2e1dcc2ebc91e005071a543c3e5276f235e739935fc1dc08df0706366c64ea57838383336040519384526020840192909252604080840191909152600160a060020a0390911660608301526080909101905180910390a1505050565b60015433600160a060020a0390811691161461189357600080fd5b60078054600160a060020a03909216600160a060020a0319909216821790556000908152600460205260409020805460ff19166001179055565b600160a060020a033316600090815260046020526040812054819081908190819060ff1615156118fc57600080fd5b88519450600093505b84841015611a445788848151811061191957fe5b9060200190602002015192508784029150876040518059106119385750595b908082528060200260200182016040525060008481526011602052604090209080516119689291602001906121d1565b50876040518059106119775750595b908082528060200260200182016040525060008481526012602052604090209080516119a79291602001906121d1565b50600090505b87811015611a395786818301815181106119c357fe5b9060200190602002015160008481526011602052604090208054839081106119e757fe5b6000918252602090912001558582820181518110611a0157fe5b906020019060200201516000848152601260205260409020805483908110611a2557fe5b6000918252602090912001556001016119ad565b600190930192611905565b505050505050505050565b60015433600160a060020a03908116911614611a6a57600080fd5b6008805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b611aa161221c565b60126000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611afe57602002820191906000526020600020905b815481526020019060010190808311611aea575b50505050509050919050565b611b1261221c565b600160a060020a03331660009081526004602052604090205460ff161515611b3957600080fd5b60116000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611afe5760200282019190600052602060002090815481526020019060010190808311611aea5750505050509050919050565b60085460009060a060020a900460ff161515611bbb57600080fd5b600654600160a060020a033381169116636352211e8760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611c1057600080fd5b6102c65a03f11515611c2157600080fd5b50505060405180519050600160a060020a0316141515611c4057600080fd5b6000848152601560205260409020805483919085908110611c5d57fe5b906000526020600020900154029050816012600087815260200190815260200160002084815481101515611c8d57fe5b6000918252602090912001541015611ca457600080fd5b6000848152601460205260409020805482919085908110611cc157fe5b6000918252602090912001541015611cd857600080fd5b6000858152601260205260409020805483919085908110611cf557fe5b60009182526020808320909101805493909303909255858152601390915260409020805483919085908110611d2657fe5b600091825260208083209091018054909301909255858152601490915260409020805482919085908110611d5657fe5b60009182526020909120018054919091039055600554600160a060020a031663aa2796fd338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611dbf57600080fd5b6102c65a03f11515611dd057600080fd5b5050507fe69201b39f4f938b9ab028c6cfa6fedb755401f8302f88b761c31e5f8fa4f24d858585856040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050505050565b600154600160a060020a031681565b60015460009033600160a060020a03908116911614611e5657600080fd5b5060058054600160a060020a03808716600160a060020a0319928316811790935560068054878316908416811790915560078054928716929093168217909255600092835260046020526040808420805460ff1990811660019081179092559385528185208054851682179055918452832080549092161790555b81518161ffff161015611f2e57600160046000848461ffff1681518110611ef457fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600101611ed1565b5050505050565b600160a060020a03331660009081526004602052604090205460ff161515611f5c57600080fd5b6000828152601660205260408120541115611f8a576000828152601760205260409020805482019055610b8d565b60008281526018602052604090208054820190555050565b6000828152601360205260408120805483908110611fbc57fe5b906000526020600020900154600d5461177002811515611fd857fe5b049392505050565b6000805433600160a060020a03908116911614611ffc57600080fd5b60008054600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561206257600080fd5b6102c65a03f1151561207357600080fd5b5050506040518051949350505050565b60085460a060020a900460ff1681565b60025433600160a060020a039081169116146120ae57600080fd5b600254600160a060020a031615156120c557600080fd5b6002805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000806120f88361103a565b905080431115611314576000915061131a565b600160a060020a038216151561215357600054600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561214e57600080fd5b610b8d565b600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515610b8d57600080fd5b60008083151561219757600091506121b3565b508282028284828115156121a757fe5b04146121af57fe5b8091505b5092915050565b60008082848115156121c857fe5b04949350505050565b82805482825590600052602060002090810192821561220c579160200282015b8281111561220c5782518255916020019190600101906121f1565b5061221892915061222e565b5090565b60206040519081016040526000815290565b61098291905b8082111561221857600081556001016122345600a165627a7a72305820133c13a1ce989df8af2eb72992c56030bfb2ef61a51312e986fb7eddebed07930029

Swarm Source

bzzr://133c13a1ce989df8af2eb72992c56030bfb2ef61a51312e986fb7eddebed0793

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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