ETH Price: $2,005.85 (-0.62%)

Contract

0x5c8951C94b059900D05b10D592b44C78574196c5
 

Overview

ETH Balance

0.003655294206308944 ETH

Eth Value

$7.33 (@ $2,005.85/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Purchase73649132019-03-14 3:58:212205 days ago1552535901IN
0x5c8951C9...8574196c5
0.0045 ETH0.000512757
Purchase73649102019-03-14 3:57:382205 days ago1552535858IN
0x5c8951C9...8574196c5
0.0045 ETH0.000617757
Purchase57794102018-06-13 3:08:062479 days ago1528859286IN
0x5c8951C9...8574196c5
0.0045 ETH0.000407757
Purchase57794072018-06-13 3:06:452479 days ago1528859205IN
0x5c8951C9...8574196c5
0.0045 ETH0.0008790112
Purchase57792992018-06-13 2:37:442479 days ago1528857464IN
0x5c8951C9...8574196c5
0.0022 ETH0.0007325110
Purchase53416182018-03-29 7:02:462555 days ago1522306966IN
0x5c8951C9...8574196c5
0.0022 ETH0.000407757
Purchase53416182018-03-29 7:02:462555 days ago1522306966IN
0x5c8951C9...8574196c5
0.0022 ETH0.000617757
Purchase53320672018-03-27 16:21:082556 days ago1522167668IN
0x5c8951C9...8574196c5
0.0268 ETH0.000514347
Purchase53320672018-03-27 16:21:082556 days ago1522167668IN
0x5c8951C9...8574196c5
0.0145 ETH0.000159637
Purchase53320652018-03-27 16:20:542556 days ago1522167654IN
0x5c8951C9...8574196c5
0.0022 ETH0.000159637
Purchase53320292018-03-27 16:12:102556 days ago1522167130IN
0x5c8951C9...8574196c5
0.0045 ETH0.000407757
Purchase53320282018-03-27 16:12:032556 days ago1522167123IN
0x5c8951C9...8574196c5
0.0022 ETH0.000512757
Purchase53320142018-03-27 16:08:092556 days ago1522166889IN
0x5c8951C9...8574196c5
0.0145 ETH0.000659259
Purchase53320112018-03-27 16:07:332556 days ago1522166853IN
0x5c8951C9...8574196c5
0.0022 ETH0.000366255
Purchase53320012018-03-27 16:04:552556 days ago1522166695IN
0x5c8951C9...8574196c5
0.0022 ETH0.000407757
Purchase53319912018-03-27 16:01:312556 days ago1522166491IN
0x5c8951C9...8574196c5
0.0022 ETH0.000441255
Purchase53250172018-03-26 11:41:572558 days ago1522064517IN
0x5c8951C9...8574196c5
0.001 ETH0.000465857
Purchase53225732018-03-26 1:58:522558 days ago1522029532IN
0x5c8951C9...8574196c5
0.001 ETH0.000360857
Purchase53225732018-03-26 1:58:522558 days ago1522029532IN
0x5c8951C9...8574196c5
0.001 ETH0.000535857
Purchase53225722018-03-26 1:58:132558 days ago1522029493IN
0x5c8951C9...8574196c5
0.001 ETH0.000360857
Purchase53225712018-03-26 1:58:052558 days ago1522029485IN
0x5c8951C9...8574196c5
0.001 ETH0.000640857
Payout53215172018-03-25 21:51:432558 days ago1522014703IN
0x5c8951C9...8574196c5
0 ETH0.000124814
Create Promo Cit...53214202018-03-25 21:26:262558 days ago1522013186IN
0x5c8951C9...8574196c5
0 ETH0.000580774
Create Promo Cit...53214142018-03-25 21:25:132558 days ago1522013113IN
0x5c8951C9...8574196c5
0 ETH0.000582314
Create Promo Cit...53213912018-03-25 21:20:002558 days ago1522012800IN
0x5c8951C9...8574196c5
0 ETH0.000580264
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-73649132019-03-14 3:58:212205 days ago1552535901
0x5c8951C9...8574196c5
0.00006786 ETH
-73649132019-03-14 3:58:212205 days ago1552535901
0x5c8951C9...8574196c5
0.00421052 ETH
-73649102019-03-14 3:57:382205 days ago1552535858
0x5c8951C9...8574196c5
0.00006786 ETH
-73649102019-03-14 3:57:382205 days ago1552535858
0x5c8951C9...8574196c5
0.00421052 ETH
Transfer57794102018-06-13 3:08:062479 days ago1528859286
0x5c8951C9...8574196c5
0.00006786 ETH
Transfer57794102018-06-13 3:08:062479 days ago1528859286
0x5c8951C9...8574196c5
0.00421052 ETH
Transfer57794072018-06-13 3:06:452479 days ago1528859205
0x5c8951C9...8574196c5
0.00006786 ETH
Transfer57794072018-06-13 3:06:452479 days ago1528859205
0x5c8951C9...8574196c5
0.00421052 ETH
Transfer57792992018-06-13 2:37:442479 days ago1528857464
0x5c8951C9...8574196c5
0.00009473 ETH
Transfer57792992018-06-13 2:37:442479 days ago1528857464
0x5c8951C9...8574196c5
0.00199999 ETH
Transfer53416182018-03-29 7:02:462555 days ago1522306966
0x5c8951C9...8574196c5
0.00009473 ETH
Transfer53416182018-03-29 7:02:462555 days ago1522306966
0x5c8951C9...8574196c5
0.00199999 ETH
Transfer53416182018-03-29 7:02:462555 days ago1522306966
0x5c8951C9...8574196c5
0.00009473 ETH
Transfer53416182018-03-29 7:02:462555 days ago1522306966
0x5c8951C9...8574196c5
0.00199999 ETH
Transfer53320672018-03-27 16:21:082556 days ago1522167668
0x5c8951C9...8574196c5
0.00002375 ETH
Transfer53320672018-03-27 16:21:082556 days ago1522167668
0x5c8951C9...8574196c5
0.02543743 ETH
Transfer53320292018-03-27 16:12:102556 days ago1522167130
0x5c8951C9...8574196c5
0.00006786 ETH
Transfer53320292018-03-27 16:12:102556 days ago1522167130
0x5c8951C9...8574196c5
0.00421052 ETH
Transfer53320282018-03-27 16:12:032556 days ago1522167123
0x5c8951C9...8574196c5
0.00009473 ETH
Transfer53320282018-03-27 16:12:032556 days ago1522167123
0x5c8951C9...8574196c5
0.00199999 ETH
Transfer53320142018-03-27 16:08:092556 days ago1522166889
0x5c8951C9...8574196c5
0.01006786 ETH
Transfer53320142018-03-27 16:08:092556 days ago1522166889
0x5c8951C9...8574196c5
0.00421052 ETH
Transfer53320112018-03-27 16:07:332556 days ago1522166853
0x5c8951C9...8574196c5
0.00009473 ETH
Transfer53320112018-03-27 16:07:332556 days ago1522166853
0x5c8951C9...8574196c5
0.00199999 ETH
Transfer53320012018-03-27 16:04:552556 days ago1522166695
0x5c8951C9...8574196c5
0.00009473 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherCityToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.18; // solhint-disable-line

/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
/// @author Dieter Shirley <[email protected]> (https://github.com/dete)
contract ERC721 {
  // Required methods
  function approve(address _to, uint256 _tokenId) public;
  function balanceOf(address _owner) public view returns (uint256 balance);
  function implementsERC721() public pure returns (bool);
  function ownerOf(uint256 _tokenId) public view returns (address addr);
  function takeOwnership(uint256 _tokenId) public;
  function totalSupply() public view returns (uint256 total);
  function transferFrom(address _from, address _to, uint256 _tokenId) public;
  function transfer(address _to, uint256 _tokenId) public;

  event Transfer(address indexed from, address indexed to, uint256 tokenId);
  event Approval(address indexed owner, address indexed approved, uint256 tokenId);

  // Optional
  // function name() public view returns (string name);
  // function symbol() public view returns (string symbol);
  // function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256 tokenId);
  // function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl);
}


contract EtherCityToken is ERC721 {

  /*** EVENTS ***/

  /// @dev The CityCreated event is fired whenever a new city comes into existence.
  event CityCreated(uint256 tokenId, string name, string country, address owner);

  /// @dev The TokenSold event is fired whenever a token is sold.
  event TokenSold(uint256 tokenId, uint256 oldPrice, uint256 newPrice, address prevOwner, address winner, string name, string country);

  /// @dev Transfer event as defined in current draft of ERC721.
  ///  ownership is assigned, including create event.
  event Transfer(address from, address to, uint256 tokenId);

  /*** CONSTANTS ***/

  /// @notice Name and symbol of the non fungible token, as defined in ERC721.
  string public constant NAME = "EtherCities"; // solhint-disable-line
  string public constant SYMBOL = "EtherCityToken"; // solhint-disable-line

  uint256 private startingPrice = 0.001 ether;
  uint256 private constant PROMO_CREATION_LIMIT = 5000;
  uint256 private firstStepLimit =  0.005 ether;
  uint256 private secondStepLimit = 0.055 ether;
  uint256 private thirdStepLimit = 0.5 ether;
  uint256 private fourthStepLimit = 10.0 ether;

  /*** STORAGE ***/

  /// @dev A mapping from city IDs to the address that owns them. All cities have
  ///  some valid owner address.
  mapping (uint256 => address) public cityIndexToOwner;

  // @dev A mapping from owner address to count of tokens that address owns.
  //  Used internally inside balanceOf() to resolve ownership count.
  mapping (address => uint256) private ownershipTokenCount;

  /// @dev A mapping from CityIDs to an address that has been approved to call
  ///  transferFrom(). Each City can only have one approved address for transfer
  ///  at any time. A zero value means no approval is outstanding.
  mapping (uint256 => address) public cityIndexToApproved;

  // @dev A mapping from CityIDs to the price of the token.
  mapping (uint256 => uint256) private cityIndexToPrice;

  // The addresses of the accounts (or contracts) that can execute actions within each roles.
  address public ceoAddress;
  address public cooAddress;

  uint256 public promoCreatedCount;

  /*** DATATYPES ***/
  struct City {
    string name;
    string country;
  }

  City[] private cities;

  /*** 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
    );
    _;
  }

  /*** CONSTRUCTOR ***/
  function EtherCityToken() public {
    ceoAddress = msg.sender;
    cooAddress = msg.sender;
  }

  /*** PUBLIC FUNCTIONS ***/
  /// @notice Grant another address the right to transfer token via takeOwnership() and transferFrom().
  /// @param _to The address to be granted transfer approval. Pass address(0) to
  ///  clear all approvals.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function approve(
    address _to,
    uint256 _tokenId
  ) public {
    // Caller must own token.
    require(_owns(msg.sender, _tokenId));

    cityIndexToApproved[_tokenId] = _to;

    Approval(msg.sender, _to, _tokenId);
  }

  /// For querying balance of a particular account
  /// @param _owner The address for balance query
  /// @dev Required for ERC-721 compliance.
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return ownershipTokenCount[_owner];
  }

  /// @dev Creates a new promo City with the given name, country and price and assignes it to an address.
  function createPromoCity(address _owner, string _name, string _country, uint256 _price) public onlyCOO {
    require(promoCreatedCount < PROMO_CREATION_LIMIT);

    address cityOwner = _owner;
    if (cityOwner == address(0)) {
      cityOwner = cooAddress;
    }

    if (_price <= 0) {
      _price = startingPrice;
    }

    promoCreatedCount++;
    _createCity(_name, _country, cityOwner, _price);
  }

  /// @dev Creates a new City with the given name and country.
  function createContractCity(string _name, string _country) public onlyCOO {
    _createCity(_name, _country, address(this), startingPrice);
  }

  /// @notice Returns all the relevant information about a specific city.
  /// @param _tokenId The tokenId of the city of interest.
  function getCity(uint256 _tokenId) public view returns (
    string cityName,
    string country,
    uint256 sellingPrice,
    address owner
  ) {
    City storage city = cities[_tokenId];
    cityName = city.name;
    country = city.country;
    sellingPrice = cityIndexToPrice[_tokenId];
    owner = cityIndexToOwner[_tokenId];
  }

  function implementsERC721() public pure returns (bool) {
    return true;
  }

  /// @dev Required for ERC-721 compliance.
  function name() public pure returns (string) {
    return NAME;
  }

  /// For querying owner of token
  /// @param _tokenId The tokenID for owner inquiry
  /// @dev Required for ERC-721 compliance.
  function ownerOf(uint256 _tokenId)
    public
    view
    returns (address owner)
  {
    owner = cityIndexToOwner[_tokenId];
    require(owner != address(0));
  }

  function payout(address _to) public onlyCLevel {
    _payout(_to);
  }

  // Allows someone to send ether and obtain the token
  function purchase(uint256 _tokenId) public payable {
    address oldOwner = cityIndexToOwner[_tokenId];
    address newOwner = msg.sender;

    uint256 sellingPrice = cityIndexToPrice[_tokenId];

    // Making sure token owner is not sending to self
    require(oldOwner != newOwner);

    // Safety check to prevent against an unexpected 0x0 default.
    require(_addressNotNull(newOwner));

    // Making sure sent amount is greater than or equal to the sellingPrice
    require(msg.value >= sellingPrice);

    uint256 payment = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 95), 100));
    uint256 purchaseExcess = SafeMath.sub(msg.value, sellingPrice);

    // Update prices
    if (sellingPrice < firstStepLimit) {
      // first stage
      cityIndexToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 200), 95);
    } else if (sellingPrice < secondStepLimit) {
      // second stage
      cityIndexToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 135), 95);
    } else if (sellingPrice < thirdStepLimit) {
      // third stage
      cityIndexToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 125), 95);
    } else if (sellingPrice < fourthStepLimit) {
      // fourth stage
      cityIndexToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 118), 95);
    } else {
      // final stage
      cityIndexToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 113), 95);
    }

    _transfer(oldOwner, newOwner, _tokenId);

    // Pay previous tokenOwner if owner is not contract
    if (oldOwner != address(this)) {
      oldOwner.transfer(payment); //(1-0.05)
    }

    TokenSold(_tokenId, sellingPrice, cityIndexToPrice[_tokenId], oldOwner, newOwner, cities[_tokenId].name, cities[_tokenId].country);

    msg.sender.transfer(purchaseExcess);
  }

  function priceOf(uint256 _tokenId) public view returns (uint256 price) {
    return cityIndexToPrice[_tokenId];
  }

  /// @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));

    ceoAddress = _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));

    cooAddress = _newCOO;
  }

  /// @dev Required for ERC-721 compliance.
  function symbol() public pure returns (string) {
    return SYMBOL;
  }

  /// @notice Allow pre-approved user to take ownership of a token
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function takeOwnership(uint256 _tokenId) public {
    address newOwner = msg.sender;
    address oldOwner = cityIndexToOwner[_tokenId];

    // Safety check to prevent against an unexpected 0x0 default.
    require(_addressNotNull(newOwner));

    // Making sure transfer is approved
    require(_approved(newOwner, _tokenId));

    _transfer(oldOwner, newOwner, _tokenId);
  }

  /// @param _owner The owner whose city tokens we are interested in.
  /// @dev This method MUST NEVER be called by smart contract code. First, it's fairly
  ///  expensive (it walks the entire Cities array looking for cities belonging to owner),
  ///  but it also returns a dynamic array, which is only supported for web3 calls, and
  ///  not contract-to-contract calls.
  function tokensOfOwner(address _owner) public view returns(uint256[] ownerTokens) {
    uint256 tokenCount = balanceOf(_owner);
    if (tokenCount == 0) {
        // Return an empty array
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](tokenCount);
      uint256 totalCities = totalSupply();
      uint256 resultIndex = 0;

      uint256 cityId;
      for (cityId = 0; cityId <= totalCities; cityId++) {
        if (cityIndexToOwner[cityId] == _owner) {
          result[resultIndex] = cityId;
          resultIndex++;
        }
      }
      return result;
    }
  }

  /// For querying totalSupply of token
  /// @dev Required for ERC-721 compliance.
  function totalSupply() public view returns (uint256 total) {
    return cities.length;
  }

  /// Owner initates the transfer of the token to another account
  /// @param _to The address for the token to be transferred to.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function transfer(
    address _to,
    uint256 _tokenId
  ) public {
    require(_owns(msg.sender, _tokenId));
    require(_addressNotNull(_to));

    _transfer(msg.sender, _to, _tokenId);
  }

  /// Third-party initiates transfer of token from address _from to address _to
  /// @param _from The address for the token to be transferred from.
  /// @param _to The address for the token to be transferred to.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function transferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  ) public {
    require(_owns(_from, _tokenId));
    require(_approved(_to, _tokenId));
    require(_addressNotNull(_to));

    _transfer(_from, _to, _tokenId);
  }

  /*** PRIVATE FUNCTIONS ***/
  /// Safety check on _to address to prevent against an unexpected 0x0 default.
  function _addressNotNull(address _to) private pure returns (bool) {
    return _to != address(0);
  }

  /// For checking approval of transfer for address _to
  function _approved(address _to, uint256 _tokenId) private view returns (bool) {
    return cityIndexToApproved[_tokenId] == _to;
  }

  /// For creating City
  function _createCity(string _name, string _country, address _owner, uint256 _price) private {
    City memory _city = City({
      name: _name,
      country: _country
    });
    uint256 newCityId = cities.push(_city) - 1;

    // It's probably never going to happen, 4 billion tokens are A LOT, but
    // let's just be 100% sure we never let this happen.
    require(newCityId == uint256(uint32(newCityId)));

    CityCreated(newCityId, _name, _country, _owner);

    cityIndexToPrice[newCityId] = _price;

    // This will assign ownership, and also emit the Transfer event as
    // per ERC721 draft
    _transfer(address(0), _owner, newCityId);
  }

  /// Check for token ownership
  function _owns(address claimant, uint256 _tokenId) private view returns (bool) {
    return claimant == cityIndexToOwner[_tokenId];
  }

  /// For paying out balance on contract
  function _payout(address _to) private {
    if (_to == address(0)) {
      ceoAddress.transfer(this.balance);
    } else {
      _to.transfer(this.balance);
    }
  }

  function _withdrawFunds(address _to, uint256 amount) private {
    require(this.balance >= amount);
    if (_to == address(0)) {
      ceoAddress.transfer(amount);
    } else {
      _to.transfer(amount);
    }
  }

  /// @dev Assigns ownership of a specific City to an address.
  function _transfer(address _from, address _to, uint256 _tokenId) private {
    // Since the number of cities is capped to 2^32 we can't overflow this
    ownershipTokenCount[_to]++;
    //transfer ownership
    cityIndexToOwner[_tokenId] = _to;

    // When creating new cities _from is 0x0, but we can't account that address.
    if (_from != address(0)) {
      ownershipTokenCount[_from]--;
      // clear any previously approved ownership exchange
      delete cityIndexToApproved[_tokenId];
    }

    // Emit the transfer event.
    Transfer(_from, _to, _tokenId);
  }
}
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 Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"promoCreatedCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cityIndexToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"ownerTokens","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_name","type":"string"},{"name":"_country","type":"string"},{"name":"_price","type":"uint256"}],"name":"createPromoCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","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":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_country","type":"string"}],"name":"createContractCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getCity","outputs":[{"name":"cityName","type":"string"},{"name":"country","type":"string"},{"name":"sellingPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cityIndexToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"country","type":"string"},{"indexed":false,"name":"owner","type":"address"}],"name":"CityCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"winner","type":"address"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"country","type":"string"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

606060405266038d7ea4c680006000556611c37937e0800060015566c3663566a580006002556706f05b59d3b20000600355678ac7230489e80000600455341561004857600080fd5b33600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061241e806100d96000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e455461461015957806306fdde0314610182578063095ea7b3146102105780630a0f8168146102525780630b7e9c44146102a75780631051db34146102e057806318160ddd1461030d57806321ac5aba1461033657806323b872dd1461039957806327d7874c146103fa5780632ba73c15146104335780636352211e1461046c57806370a08231146104cf5780638462151c1461051c57806395d89b41146105aa5780639b6234b514610638578063a3f4df7e14610700578063a9059cbb1461078e578063b047fb50146107d0578063b2e6ceeb14610825578063b9186d7d14610848578063cc4691251461087f578063d71306511461091f578063e561f28a14610a61578063efef39a114610ac4578063f76f8d7814610adc575b600080fd5b341561016457600080fd5b61016c610b6a565b6040518082815260200191505060405180910390f35b341561018d57600080fd5b610195610b70565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021b57600080fd5b610250600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bb3565b005b341561025d57600080fd5b610265610c83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102de600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ca9565b005b34156102eb57600080fd5b6102f3610d69565b604051808215151515815260200191505060405180910390f35b341561031857600080fd5b610320610d72565b6040518082815260200191505060405180910390f35b341561034157600080fd5b6103576004808035906020019091905050610d7f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103a457600080fd5b6103f8600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610db2565b005b341561040557600080fd5b610431600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e00565b005b341561043e57600080fd5b61046a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610edc565b005b341561047757600080fd5b61048d6004808035906020019091905050610fb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104da57600080fd5b610506600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611031565b6040518082815260200191505060405180910390f35b341561052757600080fd5b610553600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561059657808201518184015260208101905061057b565b505050509050019250505060405180910390f35b34156105b557600080fd5b6105bd6111b1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105fd5780820151818401526020810190506105e2565b50505050905090810190601f16801561062a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064357600080fd5b6106fe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506111f4565b005b341561070b57600080fd5b6107136112f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610753578082015181840152602081019050610738565b50505050905090810190601f1680156107805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561079957600080fd5b6107ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611330565b005b34156107db57600080fd5b6107e3611368565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083057600080fd5b610846600480803590602001909190505061138e565b005b341561085357600080fd5b6108696004808035906020019091905050611403565b6040518082815260200191505060405180910390f35b341561088a57600080fd5b61091d600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611420565b005b341561092a57600080fd5b610940600480803590602001909190505061148e565b6040518080602001806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b838110156109bc5780820151818401526020810190506109a1565b50505050905090810190601f1680156109e95780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b83811015610a22578082015181840152602081019050610a07565b50505050905090810190601f168015610a4f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415610a6c57600080fd5b610a826004808035906020019091905050611654565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ada6004808035906020019091905050611687565b005b3415610ae757600080fd5b610aef611b58565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b2f578082015181840152602081019050610b14565b50505050905090810190601f168015610b5c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600b5481565b610b78612232565b6040805190810160405280600b81526020017f4574686572436974696573000000000000000000000000000000000000000000815250905090565b610bbd3382611b91565b1515610bc857600080fd5b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d525750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610d5d57600080fd5b610d6681611bfd565b50565b60006001905090565b6000600c80549050905090565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dbc8382611b91565b1515610dc757600080fd5b610dd18282611d0b565b1515610ddc57600080fd5b610de582611d77565b1515610df057600080fd5b610dfb838383611db0565b505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e9857600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f7457600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561102c57600080fd5b919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611082612246565b600061108c612246565b600080600061109a87611031565b945060008514156110cc5760006040518059106110b45750595b908082528060200260200182016040525095506111a7565b846040518059106110da5750595b908082528060200260200182016040525093506110f5610d72565b925060009150600090505b82811115156111a3578673ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111965780848381518110151561117f57fe5b906020019060200201818152505081806001019250505b8080600101915050611100565b8395505b5050505050919050565b6111b9612232565b6040805190810160405280600e81526020017f457468657243697479546f6b656e000000000000000000000000000000000000815250905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b611388600b5410151561126457600080fd5b849050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112c257600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b6000821115156112d25760005491505b600b600081548092919060010191905055506112f084848385611fb2565b5050505050565b6040805190810160405280600b81526020017f457468657243697469657300000000000000000000000000000000000000000081525081565b61133a3382611b91565b151561134557600080fd5b61134e82611d77565b151561135957600080fd5b611364338383611db0565b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803391506005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506113d382611d77565b15156113de57600080fd5b6113e88284611d0b565b15156113f357600080fd5b6113fe818385611db0565b505050565b600060086000838152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147c57600080fd5b61148a828230600054611fb2565b5050565b611496612232565b61149e612232565b6000806000600c868154811015156114b257fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561155a5780601f1061152f5761010080835404028352916020019161155a565b820191906000526020600020905b81548152906001019060200180831161153d57829003601f168201915b50505050509450806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115f95780601f106115ce576101008083540402835291602001916115f9565b820191906000526020600020905b8154815290600101906020018083116115dc57829003601f168201915b50505050509350600860008781526020019081526020016000205492506005600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060006005600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450339350600860008781526020019081526020016000205492508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561171957600080fd5b61172284611d77565b151561172d57600080fd5b82341015151561173c57600080fd5b61175161174a84605f6121c3565b60646121fe565b915061175d3484612219565b905060015483101561179a5761177e6117778460c86121c3565b605f6121fe565b600860008881526020019081526020016000208190555061187b565b6002548310156117d5576117b96117b28460876121c3565b605f6121fe565b600860008881526020019081526020016000208190555061187a565b600354831015611810576117f46117ed84607d6121c3565b605f6121fe565b6008600088815260200190815260200160002081905550611879565b60045483101561184b5761182f6118288460766121c3565b605f6121fe565b6008600088815260200190815260200160002081905550611878565b6118606118598460716121c3565b605f6121fe565b60086000888152602001908152602001600020819055505b5b5b5b611886858588611db0565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156118fc578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156118fb57600080fd5b5b7fe04cb5380b60ce357c7194674509996c1f8cda0f586c12ca17ea299513d332e18684600860008a8152602001908152602001600020548888600c8c81548110151561194457fe5b9060005260206000209060020201600001600c8d81548110151561196457fe5b9060005260206000209060020201600101604051808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611a785780601f10611a4d57610100808354040283529160200191611a78565b820191906000526020600020905b815481529060010190602001808311611a5b57829003601f168201915b5050838103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611afb5780601f10611ad057610100808354040283529160200191611afb565b820191906000526020600020905b815481529060010190602001808311611ade57829003601f168201915b5050995050505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611b5057600080fd5b505050505050565b6040805190810160405280600e81526020017f457468657243697479546f6b656e00000000000000000000000000000000000081525081565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cb057600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611cab57600080fd5b611d08565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611d0757600080fd5b5b50565b60008273ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515611f0e57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506007600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b611fba61225a565b600060408051908101604052808781526020018681525091506001600c8054806001018281611fe99190612280565b91600052602060002090600202016000859091909150600082015181600001908051906020019061201b9291906122b2565b5060208201518160010190805190602001906120389291906122b2565b5050500390508063ffffffff168114151561205257600080fd5b7f439973f11dc99eb930c837e8af0ecebb740324ac8eecd86b5a9c357381ba4b89818787876040518085815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156120f35780820151818401526020810190506120d8565b50505050905090810190601f1680156121205780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561215957808201518184015260208101905061213e565b50505050905090810190601f1680156121865780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a18260086000838152602001908152602001600020819055506121bb60008583611db0565b505050505050565b60008060008414156121d857600091506121f7565b82840290508284828115156121e957fe5b041415156121f357fe5b8091505b5092915050565b600080828481151561220c57fe5b0490508091505092915050565b600082821115151561222757fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b604080519081016040528061226d612332565b815260200161227a612332565b81525090565b8154818355818115116122ad576002028160020283600052602060002091820191016122ac9190612346565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122f357805160ff1916838001178555612321565b82800160010185558215612321579182015b82811115612320578251825591602001919060010190612305565b5b50905061232e9190612385565b5090565b602060405190810160405280600081525090565b61238291905b8082111561237e576000808201600061236591906123aa565b60018201600061237591906123aa565b5060020161234c565b5090565b90565b6123a791905b808211156123a357600081600090555060010161238b565b5090565b90565b50805460018160011615610100020316600290046000825580601f106123d057506123ef565b601f0160209004906000526020600020908101906123ee9190612385565b5b505600a165627a7a7230582004691dc0cbcf609801bde91490a9188d2cc016e9a20bee7d6205e35f4595ff4e0029

Deployed Bytecode

0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e455461461015957806306fdde0314610182578063095ea7b3146102105780630a0f8168146102525780630b7e9c44146102a75780631051db34146102e057806318160ddd1461030d57806321ac5aba1461033657806323b872dd1461039957806327d7874c146103fa5780632ba73c15146104335780636352211e1461046c57806370a08231146104cf5780638462151c1461051c57806395d89b41146105aa5780639b6234b514610638578063a3f4df7e14610700578063a9059cbb1461078e578063b047fb50146107d0578063b2e6ceeb14610825578063b9186d7d14610848578063cc4691251461087f578063d71306511461091f578063e561f28a14610a61578063efef39a114610ac4578063f76f8d7814610adc575b600080fd5b341561016457600080fd5b61016c610b6a565b6040518082815260200191505060405180910390f35b341561018d57600080fd5b610195610b70565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021b57600080fd5b610250600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bb3565b005b341561025d57600080fd5b610265610c83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102de600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ca9565b005b34156102eb57600080fd5b6102f3610d69565b604051808215151515815260200191505060405180910390f35b341561031857600080fd5b610320610d72565b6040518082815260200191505060405180910390f35b341561034157600080fd5b6103576004808035906020019091905050610d7f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103a457600080fd5b6103f8600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610db2565b005b341561040557600080fd5b610431600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e00565b005b341561043e57600080fd5b61046a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610edc565b005b341561047757600080fd5b61048d6004808035906020019091905050610fb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104da57600080fd5b610506600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611031565b6040518082815260200191505060405180910390f35b341561052757600080fd5b610553600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561059657808201518184015260208101905061057b565b505050509050019250505060405180910390f35b34156105b557600080fd5b6105bd6111b1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105fd5780820151818401526020810190506105e2565b50505050905090810190601f16801561062a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064357600080fd5b6106fe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506111f4565b005b341561070b57600080fd5b6107136112f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610753578082015181840152602081019050610738565b50505050905090810190601f1680156107805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561079957600080fd5b6107ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611330565b005b34156107db57600080fd5b6107e3611368565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083057600080fd5b610846600480803590602001909190505061138e565b005b341561085357600080fd5b6108696004808035906020019091905050611403565b6040518082815260200191505060405180910390f35b341561088a57600080fd5b61091d600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611420565b005b341561092a57600080fd5b610940600480803590602001909190505061148e565b6040518080602001806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b838110156109bc5780820151818401526020810190506109a1565b50505050905090810190601f1680156109e95780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b83811015610a22578082015181840152602081019050610a07565b50505050905090810190601f168015610a4f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415610a6c57600080fd5b610a826004808035906020019091905050611654565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ada6004808035906020019091905050611687565b005b3415610ae757600080fd5b610aef611b58565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b2f578082015181840152602081019050610b14565b50505050905090810190601f168015610b5c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600b5481565b610b78612232565b6040805190810160405280600b81526020017f4574686572436974696573000000000000000000000000000000000000000000815250905090565b610bbd3382611b91565b1515610bc857600080fd5b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d525750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610d5d57600080fd5b610d6681611bfd565b50565b60006001905090565b6000600c80549050905090565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dbc8382611b91565b1515610dc757600080fd5b610dd18282611d0b565b1515610ddc57600080fd5b610de582611d77565b1515610df057600080fd5b610dfb838383611db0565b505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e9857600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f7457600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561102c57600080fd5b919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611082612246565b600061108c612246565b600080600061109a87611031565b945060008514156110cc5760006040518059106110b45750595b908082528060200260200182016040525095506111a7565b846040518059106110da5750595b908082528060200260200182016040525093506110f5610d72565b925060009150600090505b82811115156111a3578673ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111965780848381518110151561117f57fe5b906020019060200201818152505081806001019250505b8080600101915050611100565b8395505b5050505050919050565b6111b9612232565b6040805190810160405280600e81526020017f457468657243697479546f6b656e000000000000000000000000000000000000815250905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b611388600b5410151561126457600080fd5b849050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112c257600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b6000821115156112d25760005491505b600b600081548092919060010191905055506112f084848385611fb2565b5050505050565b6040805190810160405280600b81526020017f457468657243697469657300000000000000000000000000000000000000000081525081565b61133a3382611b91565b151561134557600080fd5b61134e82611d77565b151561135957600080fd5b611364338383611db0565b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803391506005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506113d382611d77565b15156113de57600080fd5b6113e88284611d0b565b15156113f357600080fd5b6113fe818385611db0565b505050565b600060086000838152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147c57600080fd5b61148a828230600054611fb2565b5050565b611496612232565b61149e612232565b6000806000600c868154811015156114b257fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561155a5780601f1061152f5761010080835404028352916020019161155a565b820191906000526020600020905b81548152906001019060200180831161153d57829003601f168201915b50505050509450806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115f95780601f106115ce576101008083540402835291602001916115f9565b820191906000526020600020905b8154815290600101906020018083116115dc57829003601f168201915b50505050509350600860008781526020019081526020016000205492506005600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060006005600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450339350600860008781526020019081526020016000205492508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561171957600080fd5b61172284611d77565b151561172d57600080fd5b82341015151561173c57600080fd5b61175161174a84605f6121c3565b60646121fe565b915061175d3484612219565b905060015483101561179a5761177e6117778460c86121c3565b605f6121fe565b600860008881526020019081526020016000208190555061187b565b6002548310156117d5576117b96117b28460876121c3565b605f6121fe565b600860008881526020019081526020016000208190555061187a565b600354831015611810576117f46117ed84607d6121c3565b605f6121fe565b6008600088815260200190815260200160002081905550611879565b60045483101561184b5761182f6118288460766121c3565b605f6121fe565b6008600088815260200190815260200160002081905550611878565b6118606118598460716121c3565b605f6121fe565b60086000888152602001908152602001600020819055505b5b5b5b611886858588611db0565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156118fc578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156118fb57600080fd5b5b7fe04cb5380b60ce357c7194674509996c1f8cda0f586c12ca17ea299513d332e18684600860008a8152602001908152602001600020548888600c8c81548110151561194457fe5b9060005260206000209060020201600001600c8d81548110151561196457fe5b9060005260206000209060020201600101604051808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611a785780601f10611a4d57610100808354040283529160200191611a78565b820191906000526020600020905b815481529060010190602001808311611a5b57829003601f168201915b5050838103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611afb5780601f10611ad057610100808354040283529160200191611afb565b820191906000526020600020905b815481529060010190602001808311611ade57829003601f168201915b5050995050505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611b5057600080fd5b505050505050565b6040805190810160405280600e81526020017f457468657243697479546f6b656e00000000000000000000000000000000000081525081565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cb057600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611cab57600080fd5b611d08565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611d0757600080fd5b5b50565b60008273ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515611f0e57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506007600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b611fba61225a565b600060408051908101604052808781526020018681525091506001600c8054806001018281611fe99190612280565b91600052602060002090600202016000859091909150600082015181600001908051906020019061201b9291906122b2565b5060208201518160010190805190602001906120389291906122b2565b5050500390508063ffffffff168114151561205257600080fd5b7f439973f11dc99eb930c837e8af0ecebb740324ac8eecd86b5a9c357381ba4b89818787876040518085815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156120f35780820151818401526020810190506120d8565b50505050905090810190601f1680156121205780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561215957808201518184015260208101905061213e565b50505050905090810190601f1680156121865780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a18260086000838152602001908152602001600020819055506121bb60008583611db0565b505050505050565b60008060008414156121d857600091506121f7565b82840290508284828115156121e957fe5b041415156121f357fe5b8091505b5092915050565b600080828481151561220c57fe5b0490508091505092915050565b600082821115151561222757fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b604080519081016040528061226d612332565b815260200161227a612332565b81525090565b8154818355818115116122ad576002028160020283600052602060002091820191016122ac9190612346565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122f357805160ff1916838001178555612321565b82800160010185558215612321579182015b82811115612320578251825591602001919060010190612305565b5b50905061232e9190612385565b5090565b602060405190810160405280600081525090565b61238291905b8082111561237e576000808201600061236591906123aa565b60018201600061237591906123aa565b5060020161234c565b5090565b90565b6123a791905b808211156123a357600081600090555060010161238b565b5090565b90565b50805460018160011615610100020316600290046000825580601f106123d057506123ef565b601f0160209004906000526020600020908101906123ee9190612385565b5b505600a165627a7a7230582004691dc0cbcf609801bde91490a9188d2cc016e9a20bee7d6205e35f4595ff4e0029

Swarm Source

bzzr://04691dc0cbcf609801bde91490a9188d2cc016e9a20bee7d6205e35f4595ff4e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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