ETH Price: $3,117.45 (-0.14%)

Contract

0x3A299cEb5fcC7784dd25e56Be826c77F96275DeB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Promo Tea...51690512018-02-28 3:19:182456 days ago1519787958IN
0x3A299cEb...F96275DeB
0 ETH0.000427614
Create Promo Tea...51690472018-02-28 3:18:012456 days ago1519787881IN
0x3A299cEb...F96275DeB
0 ETH0.000426844
Create Promo Tea...51690462018-02-28 3:17:372456 days ago1519787857IN
0x3A299cEb...F96275DeB
0 ETH0.000427614
Purchase51585572018-02-26 8:21:342458 days ago1519633294IN
0x3A299cEb...F96275DeB
0.5 ETH0.000157992
Create Promo Tea...51579262018-02-26 5:39:482458 days ago1519623588IN
0x3A299cEb...F96275DeB
0 ETH0.000427354
Create Promo Tea...51579252018-02-26 5:39:372458 days ago1519623577IN
0x3A299cEb...F96275DeB
0 ETH0.00042714
Create Promo Tea...51579232018-02-26 5:38:532458 days ago1519623533IN
0x3A299cEb...F96275DeB
0 ETH0.000428634
Create Promo Tea...51579172018-02-26 5:37:292458 days ago1519623449IN
0x3A299cEb...F96275DeB
0 ETH0.000426844
Create Promo Tea...51579172018-02-26 5:37:292458 days ago1519623449IN
0x3A299cEb...F96275DeB
0 ETH0.000426334
Create Promo Tea...51579142018-02-26 5:36:442458 days ago1519623404IN
0x3A299cEb...F96275DeB
0 ETH0.000427614
Create Promo Tea...51579112018-02-26 5:36:022458 days ago1519623362IN
0x3A299cEb...F96275DeB
0 ETH0.000427864
Create Promo Tea...51579092018-02-26 5:35:212458 days ago1519623321IN
0x3A299cEb...F96275DeB
0 ETH0.00042714
Create Promo Tea...51579082018-02-26 5:35:152458 days ago1519623315IN
0x3A299cEb...F96275DeB
0 ETH0.00042694
Create Promo Tea...51579072018-02-26 5:35:012458 days ago1519623301IN
0x3A299cEb...F96275DeB
0 ETH0.000484344
Purchase51453852018-02-24 2:26:502460 days ago1519439210IN
0x3A299cEb...F96275DeB
0.5 ETH0.0043116488
Purchase51453802018-02-24 2:25:252460 days ago1519439125IN
0x3A299cEb...F96275DeB
0.5 ETH0.0042237366
Purchase51453792018-02-24 2:24:202460 days ago1519439060IN
0x3A299cEb...F96275DeB
0.5 ETH0.0006399610
Purchase51453762018-02-24 2:23:202460 days ago1519439000IN
0x3A299cEb...F96275DeB
0.5 ETH0.0049276977
Purchase51453642018-02-24 2:20:572460 days ago1519438857IN
0x3A299cEb...F96275DeB
0.5 ETH0.0035197855
Purchase51453582018-02-24 2:18:472460 days ago1519438727IN
0x3A299cEb...F96275DeB
0.5 ETH0.0007899610
Purchase51453562018-02-24 2:18:222460 days ago1519438702IN
0x3A299cEb...F96275DeB
0.5 ETH0.0042237366
Purchase51453382018-02-24 2:14:262460 days ago1519438466IN
0x3A299cEb...F96275DeB
0.5 ETH0.000045732
Purchase51453302018-02-24 2:13:282460 days ago1519438408IN
0x3A299cEb...F96275DeB
0.5 ETH0.000236983
Purchase51453272018-02-24 2:12:502460 days ago1519438370IN
0x3A299cEb...F96275DeB
0.5 ETH0.0026238341
Purchase51453212018-02-24 2:10:202460 days ago1519438220IN
0x3A299cEb...F96275DeB
0.5 ETH0.000045732
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
51585572018-02-26 8:21:342458 days ago1519633294
0x3A299cEb...F96275DeB
0.5 ETH
51453852018-02-24 2:26:502460 days ago1519439210
0x3A299cEb...F96275DeB
0.5 ETH
51453802018-02-24 2:25:252460 days ago1519439125
0x3A299cEb...F96275DeB
0.5 ETH
51453792018-02-24 2:24:202460 days ago1519439060
0x3A299cEb...F96275DeB
0.5 ETH
51453762018-02-24 2:23:202460 days ago1519439000
0x3A299cEb...F96275DeB
0.5 ETH
51453642018-02-24 2:20:572460 days ago1519438857
0x3A299cEb...F96275DeB
0.5 ETH
51453582018-02-24 2:18:472460 days ago1519438727
0x3A299cEb...F96275DeB
0.5 ETH
51453562018-02-24 2:18:222460 days ago1519438702
0x3A299cEb...F96275DeB
0.5 ETH
51453302018-02-24 2:13:282460 days ago1519438408
0x3A299cEb...F96275DeB
0.5 ETH
51453272018-02-24 2:12:502460 days ago1519438370
0x3A299cEb...F96275DeB
0.5 ETH
51453112018-02-24 2:07:572460 days ago1519438077
0x3A299cEb...F96275DeB
0.5 ETH
51453072018-02-24 2:05:492460 days ago1519437949
0x3A299cEb...F96275DeB
0.5 ETH
51452872018-02-24 2:00:032460 days ago1519437603
0x3A299cEb...F96275DeB
0.5 ETH
51452842018-02-24 1:58:332460 days ago1519437513
0x3A299cEb...F96275DeB
0.5 ETH
51452772018-02-24 1:57:312460 days ago1519437451
0x3A299cEb...F96275DeB
0.5 ETH
51452682018-02-24 1:55:382460 days ago1519437338
0x3A299cEb...F96275DeB
0.5 ETH
51452602018-02-24 1:54:012460 days ago1519437241
0x3A299cEb...F96275DeB
0.5 ETH
51433842018-02-23 18:20:212460 days ago1519410021
0x3A299cEb...F96275DeB
3 ETH
51431152018-02-23 17:10:542460 days ago1519405854
0x3A299cEb...F96275DeB
2 ETH
51417532018-02-23 11:32:032460 days ago1519385523
0x3A299cEb...F96275DeB
2 ETH
51417012018-02-23 11:18:402460 days ago1519384720
0x3A299cEb...F96275DeB
2 ETH
51415612018-02-23 10:45:032460 days ago1519382703
0x3A299cEb...F96275DeB
2 ETH
51415592018-02-23 10:44:442460 days ago1519382684
0x3A299cEb...F96275DeB
2 ETH
51415492018-02-23 10:41:352460 days ago1519382495
0x3A299cEb...F96275DeB
2 ETH
51414132018-02-23 10:10:362460 days ago1519380636
0x3A299cEb...F96275DeB
2 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoT

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-02-22
*/

pragma solidity ^0.4.18; // solhint-disable-line
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
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;
  }
}

/// @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 CryptoT is ERC721 {

  /*** EVENTS ***/

  /// @dev The Birth event is fired whenever a new person comes into existence.
  event Birth(uint256 tokenId, string name, 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);

  /// @dev Transfer event as defined in current draft of ERC721.
  ///  ownership is assigned, including births.
  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 = "CryptoT"; // solhint-disable-line
  string public constant SYMBOL = "CryptoT"; // solhint-disable-line

  uint256 private startingPrice = 1 ether;
  uint256 private constant PROMO_CREATION_LIMIT = 50000;

  /*** STORAGE ***/

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

  // @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 PersonIDs to an address that has been approved to call
  ///  transferFrom(). Each Person can only have one approved address for transfer
  ///  at any time. A zero value means no approval is outstanding.
  mapping (uint256 => address) public teamIndexToApproved;

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

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

  uint256 public promoCreatedCount = 0;

  /*** DATATYPES ***/
  struct Team {
    string name;
  }

  Team[] private teams;

  /*** 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 CryptoT() 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));

    teamIndexToApproved[_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 Team with the given name, with given _price and assignes it to an address.
  function createPromoTeam(address _owner, string _name, uint256 _price) public onlyCOO {

    require(promoCreatedCount < PROMO_CREATION_LIMIT);

    address teamOwner = _owner;

    if (teamOwner == address(0)) {
      teamOwner = cooAddress;
    }

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

    promoCreatedCount++;
    _createTeam(_name, teamOwner, _price);

  }

  /// @notice Returns all the relevant information about a specific team.
  /// @param _tokenId The tokenId of the team of interest.
  function getTeam(uint256 _tokenId) public view returns (
    string teamName,
    uint256 sellingPrice,
    address owner
  ) {
    Team storage team = teams[_tokenId];
    teamName = team.name;
    sellingPrice = teamIndexToPrice[_tokenId];
    owner = teamIndexToOwner[_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 = teamIndexToOwner[_tokenId];
    require(owner != address(0));
  }

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

    uint256 sellingPrice = teamIndexToPrice[_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 purchaseExcess = SafeMath.sub(msg.value, sellingPrice);

    teamIndexToPrice[_tokenId] = SafeMath.add(sellingPrice , 1 ether);

    _transfer(oldOwner, newOwner, _tokenId);

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

    TokenSold(_tokenId, sellingPrice, teamIndexToPrice[_tokenId], oldOwner, newOwner, teams[_tokenId].name);

    msg.sender.transfer(purchaseExcess);
  }

  function priceOf(uint256 _tokenId) public view returns (uint256 price) {
    return teamIndexToPrice[_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 = teamIndexToOwner[_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 celebrity 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 teams array looking for Team's 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 totalTeams = totalSupply();
      uint256 resultIndex = 0;

      uint256 teamId;
      for (teamId = 0; teamId <= totalTeams; teamId++) {
        if (teamIndexToOwner[teamId] == _owner) {
          result[resultIndex] = teamId;
          resultIndex++;
        }
      }
      return result;
    }
  }

  /// For querying totalSupply of token
  /// @dev Required for ERC-721 compliance.
  function totalSupply() public view returns (uint256 total) {
    return teams.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 teamIndexToApproved[_tokenId] == _to;
  }

  /// For creating team
  function _createTeam(string _name, address _owner, uint256 _price) private {

    Team memory _team = Team({
      name: _name
    });

    uint256 newTeamId = teams.push(_team) - 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(newTeamId == uint256(uint32(newTeamId)));

    Birth(newTeamId, _name, _owner);

    teamIndexToPrice[newTeamId] = _price;

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

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

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

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

    // Emit the transfer event.
    Transfer(_from, _to, _tokenId);
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getTeam","outputs":[{"name":"teamName","type":"string"},{"name":"sellingPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"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":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":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":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_name","type":"string"},{"name":"_price","type":"uint256"}],"name":"createPromoTeam","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":"","type":"uint256"}],"name":"teamIndexToApproved","outputs":[{"name":"","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":"","type":"uint256"}],"name":"teamIndexToOwner","outputs":[{"name":"","type":"address"}],"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":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":"_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":"owner","type":"address"}],"name":"Birth","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"}],"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"}]

6060604052670de0b6b3a76400006000556000600755341561002057600080fd5b60058054600160a060020a033316600160a060020a031991821681179092556006805490911690911790556111118061005a6000396000f30060606040526004361061013c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416628e0f1b811461014157806305e45546146101e657806306fdde031461020b578063095ea7b3146102955780630a0f8168146102b95780631051db34146102e857806318160ddd1461030f57806323b872dd1461032257806327d7874c1461034a5780632ba73c15146103695780633e3d38fc146103885780636352211e146103e95780636720dc95146103ff57806370a08231146104155780637525cd90146104345780638462151c1461044a57806395d89b411461020b578063a3f4df7e146104bc578063a9059cbb146104cf578063b047fb50146104f1578063b2e6ceeb14610504578063b9186d7d1461051a578063efef39a114610530578063f76f8d78146104bc575b600080fd5b341561014c57600080fd5b61015760043561053b565b60405160208101839052600160a060020a038216604082015260608082528190810185818151815260200191508051906020019080838360005b838110156101a9578082015183820152602001610191565b50505050905090810190601f1680156101d65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156101f157600080fd5b6101f9610631565b60405190815260200160405180910390f35b341561021657600080fd5b61021e610637565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025a578082015183820152602001610242565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a057600080fd5b6102b7600160a060020a0360043516602435610679565b005b34156102c457600080fd5b6102cc610705565b604051600160a060020a03909116815260200160405180910390f35b34156102f357600080fd5b6102fb610714565b604051901515815260200160405180910390f35b341561031a57600080fd5b6101f9610719565b341561032d57600080fd5b6102b7600160a060020a036004358116906024351660443561071f565b341561035557600080fd5b6102b7600160a060020a036004351661076d565b341561037457600080fd5b6102b7600160a060020a03600435166107cc565b341561039357600080fd5b6102b760048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061082b92505050565b34156103f457600080fd5b6102cc6004356108a2565b341561040a57600080fd5b6102cc6004356108cb565b341561042057600080fd5b6101f9600160a060020a03600435166108e6565b341561043f57600080fd5b6102cc600435610901565b341561045557600080fd5b610469600160a060020a036004351661091c565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104a8578082015183820152602001610490565b505050509050019250505060405180910390f35b34156104c757600080fd5b61021e6109fd565b34156104da57600080fd5b6102b7600160a060020a0360043516602435610a34565b34156104fc57600080fd5b6102cc610a6c565b341561050f57600080fd5b6102b7600435610a7b565b341561052557600080fd5b6101f9600435610ac9565b6102b7600435610adb565b610543610f94565b600080600060088581548110151561055757fe5b90600052602060002090019050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105fc5780601f106105d1576101008083540402835291602001916105fc565b820191906000526020600020905b8154815290600101906020018083116105df57829003601f168201915b50505060009788525050600460209081526040808820546001909252909620549096600160a060020a03909116945092505050565b60075481565b61063f610f94565b60408051908101604052600781527f43727970746f5400000000000000000000000000000000000000000000000000602082015290505b90565b6106833382610cf8565b151561068e57600080fd5b60008181526003602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038581169182179092559133909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b600554600160a060020a031681565b600190565b60085490565b6107298382610cf8565b151561073457600080fd5b61073e8282610d18565b151561074957600080fd5b61075282610d38565b151561075d57600080fd5b610768838383610d46565b505050565b60055433600160a060020a0390811691161461078857600080fd5b600160a060020a038116151561079d57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055433600160a060020a039081169116146107e757600080fd5b600160a060020a03811615156107fc57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065460009033600160a060020a0390811691161461084957600080fd5b60075461c350901061085a57600080fd5b5082600160a060020a038116151561087a5750600654600160a060020a03165b600082116108885760005491505b60078054600101905561089c838284610e37565b50505050565b600081815260016020526040902054600160a060020a03168015156108c657600080fd5b919050565b600360205260009081526040902054600160a060020a031681565b600160a060020a031660009081526002602052604090205490565b600160205260009081526040902054600160a060020a031681565b610924610f94565b600061092e610f94565b600080600061093c876108e6565b945084151561096c5760006040518059106109545750595b908082528060200260200182016040525095506109f3565b8460405180591061097a5750595b90808252806020026020018201604052509350610995610719565b925060009150600090505b8281116109ef57600081815260016020526040902054600160a060020a03888116911614156109e757808483815181106109d657fe5b602090810290910101526001909101905b6001016109a0565b8395505b5050505050919050565b60408051908101604052600781527f43727970746f5400000000000000000000000000000000000000000000000000602082015281565b610a3e3382610cf8565b1515610a4957600080fd5b610a5282610d38565b1515610a5d57600080fd5b610a68338383610d46565b5050565b600654600160a060020a031681565b6000818152600160205260409020543390600160a060020a0316610a9e82610d38565b1515610aa957600080fd5b610ab38284610d18565b1515610abe57600080fd5b610768818385610d46565b60009081526004602052604090205490565b6000818152600160209081526040808320546004909252822054600160a060020a039182169233928316841415610b1157600080fd5b610b1a83610d38565b1515610b2557600080fd5b3482901015610b3357600080fd5b610b3d3483610f6c565b9050610b5182670de0b6b3a7640000610f7e565b600086815260046020526040902055610b6b848487610d46565b30600160a060020a031684600160a060020a0316141515610bb757600160a060020a03841682156108fc0283604051600060405180830381858888f193505050501515610bb757600080fd5b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f85836004600089815260200190815260200160002054878760088b815481101515610bfe57fe5b60009182526020909120016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e083019084908015610cad5780601f10610c8257610100808354040283529160200191610cad565b820191906000526020600020905b815481529060010190602001808311610c9057829003601f168201915b505097505050505050505060405180910390a1600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610cf157600080fd5b5050505050565b600090815260016020526040902054600160a060020a0390811691161490565b600090815260036020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b600160a060020a038083166000818152600260209081526040808320805460019081019091558684529091529020805473ffffffffffffffffffffffffffffffffffffffff19169091179055831615610de257600160a060020a0383166000908152600260209081526040808320805460001901905583835260039091529020805473ffffffffffffffffffffffffffffffffffffffff191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610e3f610fa6565b6000602060405190810160405285815260088054919350600191808301610e668382610fbf565b60009283526020909220859101815181908051610e87929160200190610fe3565b50505003905063ffffffff81168114610e9f57600080fd5b7fb3b0cf861f168bcdb275c69da97b2543631552ba562628aa3c7317d4a6089ef2818686604051838152600160a060020a038216604082015260606020820181815290820184818151815260200191508051906020019080838360005b83811015610f14578082015183820152602001610efc565b50505050905090810190601f168015610f415780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a16000818152600460205260408120849055610cf1908583610d46565b600082821115610f7857fe5b50900390565b600082820183811015610f8d57fe5b9392505050565b60206040519081016040526000815290565b602060405190810160405280610fba610f94565b905290565b81548183558181151161076857600083815260209020610768918101908301611061565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061102457805160ff1916838001178555611051565b82800160010185558215611051579182015b82811115611051578251825591602001919060010190611036565b5061105d929150611084565b5090565b61067691905b8082111561105d57600061107b828261109e565b50600101611067565b61067691905b8082111561105d576000815560010161108a565b50805460018160011615610100020316600290046000825580601f106110c457506110e2565b601f0160209004906000526020600020908101906110e29190611084565b505600a165627a7a72305820126fbf1a6af902b463e5d3df64d7457a613e7519f0d7e3109a3a8b13f93231f10029

Deployed Bytecode

0x60606040526004361061013c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416628e0f1b811461014157806305e45546146101e657806306fdde031461020b578063095ea7b3146102955780630a0f8168146102b95780631051db34146102e857806318160ddd1461030f57806323b872dd1461032257806327d7874c1461034a5780632ba73c15146103695780633e3d38fc146103885780636352211e146103e95780636720dc95146103ff57806370a08231146104155780637525cd90146104345780638462151c1461044a57806395d89b411461020b578063a3f4df7e146104bc578063a9059cbb146104cf578063b047fb50146104f1578063b2e6ceeb14610504578063b9186d7d1461051a578063efef39a114610530578063f76f8d78146104bc575b600080fd5b341561014c57600080fd5b61015760043561053b565b60405160208101839052600160a060020a038216604082015260608082528190810185818151815260200191508051906020019080838360005b838110156101a9578082015183820152602001610191565b50505050905090810190601f1680156101d65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156101f157600080fd5b6101f9610631565b60405190815260200160405180910390f35b341561021657600080fd5b61021e610637565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025a578082015183820152602001610242565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a057600080fd5b6102b7600160a060020a0360043516602435610679565b005b34156102c457600080fd5b6102cc610705565b604051600160a060020a03909116815260200160405180910390f35b34156102f357600080fd5b6102fb610714565b604051901515815260200160405180910390f35b341561031a57600080fd5b6101f9610719565b341561032d57600080fd5b6102b7600160a060020a036004358116906024351660443561071f565b341561035557600080fd5b6102b7600160a060020a036004351661076d565b341561037457600080fd5b6102b7600160a060020a03600435166107cc565b341561039357600080fd5b6102b760048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061082b92505050565b34156103f457600080fd5b6102cc6004356108a2565b341561040a57600080fd5b6102cc6004356108cb565b341561042057600080fd5b6101f9600160a060020a03600435166108e6565b341561043f57600080fd5b6102cc600435610901565b341561045557600080fd5b610469600160a060020a036004351661091c565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104a8578082015183820152602001610490565b505050509050019250505060405180910390f35b34156104c757600080fd5b61021e6109fd565b34156104da57600080fd5b6102b7600160a060020a0360043516602435610a34565b34156104fc57600080fd5b6102cc610a6c565b341561050f57600080fd5b6102b7600435610a7b565b341561052557600080fd5b6101f9600435610ac9565b6102b7600435610adb565b610543610f94565b600080600060088581548110151561055757fe5b90600052602060002090019050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105fc5780601f106105d1576101008083540402835291602001916105fc565b820191906000526020600020905b8154815290600101906020018083116105df57829003601f168201915b50505060009788525050600460209081526040808820546001909252909620549096600160a060020a03909116945092505050565b60075481565b61063f610f94565b60408051908101604052600781527f43727970746f5400000000000000000000000000000000000000000000000000602082015290505b90565b6106833382610cf8565b151561068e57600080fd5b60008181526003602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038581169182179092559133909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b600554600160a060020a031681565b600190565b60085490565b6107298382610cf8565b151561073457600080fd5b61073e8282610d18565b151561074957600080fd5b61075282610d38565b151561075d57600080fd5b610768838383610d46565b505050565b60055433600160a060020a0390811691161461078857600080fd5b600160a060020a038116151561079d57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055433600160a060020a039081169116146107e757600080fd5b600160a060020a03811615156107fc57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065460009033600160a060020a0390811691161461084957600080fd5b60075461c350901061085a57600080fd5b5082600160a060020a038116151561087a5750600654600160a060020a03165b600082116108885760005491505b60078054600101905561089c838284610e37565b50505050565b600081815260016020526040902054600160a060020a03168015156108c657600080fd5b919050565b600360205260009081526040902054600160a060020a031681565b600160a060020a031660009081526002602052604090205490565b600160205260009081526040902054600160a060020a031681565b610924610f94565b600061092e610f94565b600080600061093c876108e6565b945084151561096c5760006040518059106109545750595b908082528060200260200182016040525095506109f3565b8460405180591061097a5750595b90808252806020026020018201604052509350610995610719565b925060009150600090505b8281116109ef57600081815260016020526040902054600160a060020a03888116911614156109e757808483815181106109d657fe5b602090810290910101526001909101905b6001016109a0565b8395505b5050505050919050565b60408051908101604052600781527f43727970746f5400000000000000000000000000000000000000000000000000602082015281565b610a3e3382610cf8565b1515610a4957600080fd5b610a5282610d38565b1515610a5d57600080fd5b610a68338383610d46565b5050565b600654600160a060020a031681565b6000818152600160205260409020543390600160a060020a0316610a9e82610d38565b1515610aa957600080fd5b610ab38284610d18565b1515610abe57600080fd5b610768818385610d46565b60009081526004602052604090205490565b6000818152600160209081526040808320546004909252822054600160a060020a039182169233928316841415610b1157600080fd5b610b1a83610d38565b1515610b2557600080fd5b3482901015610b3357600080fd5b610b3d3483610f6c565b9050610b5182670de0b6b3a7640000610f7e565b600086815260046020526040902055610b6b848487610d46565b30600160a060020a031684600160a060020a0316141515610bb757600160a060020a03841682156108fc0283604051600060405180830381858888f193505050501515610bb757600080fd5b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f85836004600089815260200190815260200160002054878760088b815481101515610bfe57fe5b60009182526020909120016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e083019084908015610cad5780601f10610c8257610100808354040283529160200191610cad565b820191906000526020600020905b815481529060010190602001808311610c9057829003601f168201915b505097505050505050505060405180910390a1600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610cf157600080fd5b5050505050565b600090815260016020526040902054600160a060020a0390811691161490565b600090815260036020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b600160a060020a038083166000818152600260209081526040808320805460019081019091558684529091529020805473ffffffffffffffffffffffffffffffffffffffff19169091179055831615610de257600160a060020a0383166000908152600260209081526040808320805460001901905583835260039091529020805473ffffffffffffffffffffffffffffffffffffffff191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610e3f610fa6565b6000602060405190810160405285815260088054919350600191808301610e668382610fbf565b60009283526020909220859101815181908051610e87929160200190610fe3565b50505003905063ffffffff81168114610e9f57600080fd5b7fb3b0cf861f168bcdb275c69da97b2543631552ba562628aa3c7317d4a6089ef2818686604051838152600160a060020a038216604082015260606020820181815290820184818151815260200191508051906020019080838360005b83811015610f14578082015183820152602001610efc565b50505050905090810190601f168015610f415780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a16000818152600460205260408120849055610cf1908583610d46565b600082821115610f7857fe5b50900390565b600082820183811015610f8d57fe5b9392505050565b60206040519081016040526000815290565b602060405190810160405280610fba610f94565b905290565b81548183558181151161076857600083815260209020610768918101908301611061565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061102457805160ff1916838001178555611051565b82800160010185558215611051579182015b82811115611051578251825591602001919060010190611036565b5061105d929150611084565b5090565b61067691905b8082111561105d57600061107b828261109e565b50600101611067565b61067691905b8082111561105d576000815560010161108a565b50805460018160011615610100020316600290046000825580601f106110c457506110e2565b601f0160209004906000526020600020908101906110e29190611084565b505600a165627a7a72305820126fbf1a6af902b463e5d3df64d7457a613e7519f0d7e3109a3a8b13f93231f10029

Swarm Source

bzzr://126fbf1a6af902b463e5d3df64d7457a613e7519f0d7e3109a3a8b13f93231f1

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.