Contract Overview
Balance: 4.00560187250651842 Ether
Ether Value: $815.66 (@ $203.63/ETH)
Transactions: 916 txns
Token Tracker: CryptoArts (XART)
 Latest 25 txns From a total of 916 Transactions

TxHash Age From To Value [TxFee]
0x64d31dc09128940f2626dcd26d08e7cc578ce55e63cf25c030bee66668c52c5051 days 18 hrs ago0xf72775e798510996541f27b9d7897a9e323f8f3a  IN   0x73b0ebea28f76be1368d578d13657354330472a90.276276376554003 Ether0.000174282792
0x923508d9d8bf91ddf35288a249b60b8ea6fe2d5009c26b810c31b32d58662ad551 days 18 hrs ago0xf72775e798510996541f27b9d7897a9e323f8f3a  IN   0x73b0ebea28f76be1368d578d13657354330472a90.061098363009871 Ether0.000135285792
0xc06970cbcf2e11ba67f4029d67bdb539aa324b78c23f5955a29b8fc1727121b851 days 18 hrs ago0xf72775e798510996541f27b9d7897a9e323f8f3a  IN   0x73b0ebea28f76be1368d578d13657354330472a90.04254256387354 Ether0.000173708606
0xd7f992db3db5a702e6c87036ef0efa44cf409609268afb286aaa0cb00307721a51 days 19 hrs ago0xf72775e798510996541f27b9d7897a9e323f8f3a  IN   0x73b0ebea28f76be1368d578d13657354330472a90.061098363009871 Ether0.0001675925
0x7a279e4e1725ffce2a1941839a63315d142cb0b772b04a6c6dad6d36c4fbfc2251 days 19 hrs ago0xf72775e798510996541f27b9d7897a9e323f8f3a  IN   0x73b0ebea28f76be1368d578d13657354330472a90.104023193319399 Ether0.0001675925
0x1bf288269087b102fe81c51e437c52f539b8ad88c315f30b5312b5091384084267 days 13 hrs ago0x55611b747af18e27ba99c251377912fcd96ea656  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000138717
0xef1cda77ac03a3539282ae46e448ed9f39b85b8f522a381f292c73e73e3f407272 days 18 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000124956
0xeaa5220c5497fa1f0c61916ce91d6f12a65bd67ef6ba6348a7781dc15a6155b572 days 18 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.00062478
0xfad41d8a71e6082c98152f81e89c0224bddc3b2b18a4812d811b3927f906534577 days 17 hrs ago0xe490d85b01bc481d81274629dec817a87854df95  IN   0x73b0ebea28f76be1368d578d13657354330472a90.207155532609768 Ether0.000082037
0x77b7ef0d24be866be907a28491cc9bb9adcc9d33d0c833fdedf5bd74ec0a7dce79 days 3 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.0000499824
0x80fb0c5a1f816fa7a33e5605f31ee950b412696883b8de8e79d95b1fc79f74a279 days 14 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000031239
0xfb7638a5b732970f898e20fce6e267592d0f0abd55930369b00cf470decb12cc79 days 15 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000031239
0x0e98f1f64ea894036738fbff64f8974be87a5a13f3cf9f355c6309f3cbd4006979 days 15 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000031239
0x9ad0f30eece5b8f340fae83b2b76ed98b3370bdb6a2449d2be5e035e9aac988579 days 15 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.0000999648
0x66caadb0f651b509bbf291f192e97c08b4b216a49db0b856aa824514418de60579 days 22 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.0001749384
0x88e08f5e63b29472ecf0b8fa2d60e8d55b2a42e160638208a978ef550f355d8679 days 22 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.0000999648
0x8095e92c0508d341c23a3e8154eefc6009553bdb52b8170e7948ea3a20f3ce9d79 days 22 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.0000968409
0x2e0c477473616115bafbb94d8624c4fefa0150cb1886f54240a56aaf819a3cd779 days 23 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.0001433409
0x3d320c5c571543624da62a8c34ecaa6e368902ae0b5d7b837c0d0780e2919d0384 days 23 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000184956
0xcae75420bc20471323032e1fa4d630edf9dc6cfda122881fa072c4ecc7e7f75487 days 18 hrs ago0x7b5263f47c96dfbb03a71443d29a2af18a130906  IN   0x73b0ebea28f76be1368d578d13657354330472a90.04254256387354 Ether0.0002781574
0xfff1d171b96ea4d5b980a3b312e1496ff46e74c7a180495bb814a6cf7712ad32137 days 19 hrs ago0x573a32458e3aac5bf42018cf78a7ddd5b6322c83  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000508629
0x7ef56b8e8d327bc0e909a0e6925a8b45885345580b0a0a7cb0f3b6d167c42a0a137 days 21 hrs ago0x573a32458e3aac5bf42018cf78a7ddd5b6322c83  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.00409055
0x2eb6486c4e9d22ca23e6719a2c42f2c69a648c5c007328619088e6b455a05073169 days 7 hrs ago0x83a283a8d70f6c415ecb4d160fc666abd2bd0aab  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.00031731
0xcb1bb47d4237fd1f00cdd4808fedcb3e5ac8491d2f497e7f3ff0416fc9f862dc169 days 7 hrs ago0x83a283a8d70f6c415ecb4d160fc666abd2bd0aab  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000253902
0xe42e561b7a20ff58e77afa169d0be55a008c0fc515aabf6069f11eeec4158c65229 days 13 hrs ago0xda3120867d1ac023ffe9e8b695c798180decbcc3  IN   0x73b0ebea28f76be1368d578d13657354330472a90.04254256387354 Ether0.000409055
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x64d31dc09128940f2626dcd26d08e7cc578ce55e63cf25c030bee66668c52c50624871951 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xf98a39456903cfde206603bdd1e1d4227dbe12430.259699793960763165 Ether
0x923508d9d8bf91ddf35288a249b60b8ea6fe2d5009c26b810c31b32d58662ad5624871351 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xda3120867d1ac023ffe9e8b695c798180decbcc30.057432461229279123 Ether
0xc06970cbcf2e11ba67f4029d67bdb539aa324b78c23f5955a29b8fc1727121b8624870951 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.039990010041127686 Ether
0xd7f992db3db5a702e6c87036ef0efa44cf409609268afb286aaa0cb00307721a624845751 days 19 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.057432461229279123 Ether
0x7a279e4e1725ffce2a1941839a63315d142cb0b772b04a6c6dad6d36c4fbfc22624845351 days 19 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xcdb100434095e0ec0cbbd8d0d77f114b8eece5410.0977818017202354 Ether
0xfad41d8a71e6082c98152f81e89c0224bddc3b2b18a4812d811b3927f9065345609511777 days 17 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xe317eb46da9d27aa3493b03ea0468ffd37ccc2e10.194726200653182062 Ether
0xcae75420bc20471323032e1fa4d630edf9dc6cfda122881fa072c4ecc7e7f754603568387 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.039990010041127686 Ether
0x7ef56b8e8d327bc0e909a0e6925a8b45885345580b0a0a7cb0f3b6d167c42a0a5743581137 days 21 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019388297872340425 Ether
0x2eb6486c4e9d22ca23e6719a2c42f2c69a648c5c007328619088e6b455a050735565216169 days 7 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x83a283a8d70f6c415ecb4d160fc666abd2bd0aab3.95 Ether
0xe42e561b7a20ff58e77afa169d0be55a008c0fc515aabf6069f11eeec4158c655210148229 days 13 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.039990010041127686 Ether
0x0f908f1f4609614d6b0b6f0e058d90e445a3dda9a6126231aab8ae62b01494215207452230 days 32 mins ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.039990010041127686 Ether
0xa031bcd44f896fd6115dc27d9a830787bc8a09b32fda1f1d94a6b87828d6d9e75207451230 days 32 mins ago0x73b0ebea28f76be1368d578d13657354330472a90x36620d5e333577688b1b5cc7606fb210d5d3baab0.027844895880488908 Ether
0x26763c641247283c029921dd4113329faed483b7eab596c98a98b11db10a478b5207447230 days 32 mins ago0x73b0ebea28f76be1368d578d13657354330472a90x36620d5e333577688b1b5cc7606fb210d5d3baab0.027844895880488908 Ether
0x392283cde29504c171417b1fbfb71419b3a02a610f3e6242812cf41e42f6a0245205029230 days 10 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.027844895880488908 Ether
0x697c8bc530dfd73cd4f1a8395d480f5fd20b3020eec9d3ca01acfa88d3db078b5203681230 days 15 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019388297872340425 Ether
0x3b72f07872706ec81e8deaa7c49877b61993bd8ae059426f4c29fa1785fdcb925203680230 days 15 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019388297872340425 Ether
0x4c478b4be57d8ddec96f5979fdb3b9fa0b59ec01eed3320742472f9770b7b6f05202959230 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x1de5125581ec31e9f710cb08b6a2506ab3fd69eb0.019388297872340425 Ether
0x33f2a1fce02eb0b935200d27e5f36109edfd7cc5e83c279401d9110e6e7adc095202954230 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x49f70c81a088df026cf87ba18db312eae9d4958c0.0135 Ether
0xd2c11ff69f8b7d5dc109ea67ea2ba5a50cde0fb6f3cce74e2b6b726521f561ea5202951230 days 18 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x0fa4776bb301809fc0040e2bf0aea56be56a78b20.0135 Ether
0x487e4549d406d3ac0fee6315d4b1b97f85c36c7a506790fe08da0d5cc06d5b1e5202909230 days 19 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xb03beb926a762a925da368a74caede7f238fdf100.0135 Ether
0x1887030c65ff00d35854d449df78ea8ec604be213174991e6e765955b9ac74055202794230 days 19 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x4a995e321796e2464081bdeb571af8bba6a075a80.0135 Ether
0x79ab23f5b16fff3a72dc461087d9ef89b94625a2e81aa9e14371c1ff0400414e5201501231 days 42 mins ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.039990010041127686 Ether
0x53bbf26d673b64c262fb3bcd6e81d2fb6ecee2fd7b1b5f9295a82e5035aad57a5201084231 days 2 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.039990010041127686 Ether
0xaf03fb78c67841aa209f6326594373c0d46703cfc421fd75bc1cdfbbb21761fe5183588234 days 1 hr ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.027844895880488908 Ether
0x5c32242b357d806b6dee92ca8b2db03e9b02a8b079a071468f612c77c64fb6fd5183568234 days 1 hr ago0x73b0ebea28f76be1368d578d13657354330472a90xdcbc5386974404752d607b5eca62c0e166a4a55c0.027844895880488908 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CryptoArtsToken
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;
// inspired by
// https://github.com/axiomzen/cryptokitties-bounty/blob/master/contracts/KittyAccessControl.sol

contract AccessControl {
  /// @dev The addresses of the accounts (or contracts) that can execute actions within each roles
  address public ceoAddress;
  address public cooAddress;

  /// @dev Keeps track whether the contract is paused. When that is true, most actions are blocked
  bool public paused = false;

  /// @dev The AccessControl constructor sets the original C roles of the contract to the sender account
  function AccessControl() public {
    ceoAddress = msg.sender;
    cooAddress = msg.sender;
  }

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

  /// @dev Access modifier for any CLevel functionality
  modifier onlyCLevel() {
    require(msg.sender == ceoAddress || msg.sender == cooAddress);
    _;
  }

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

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

  /// @dev Modifier to allow actions only when the contract IS NOT paused
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /// @dev Modifier to allow actions only when the contract IS paused
  modifier whenPaused {
    require(paused);
    _;
  }

  /// @dev Pause the smart contract. Only can be called by the CEO
  function pause() public onlyCEO whenNotPaused {
     paused = true;
  }

  /// @dev Unpauses the smart contract. Only can be called by the CEO
  function unpause() public onlyCEO whenPaused {
    paused = false;
  }
}


// https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/ERC721.sol
// https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/DetailedERC721.sol

/**
 * Interface for required functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 */
contract ERC721 {
    // Events
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);

    /// For querying totalSupply of token.
    function totalSupply() public view returns (uint256 _totalSupply);

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

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

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

    // NOT IMPLEMENTED
    // function getApproved(uint256 _tokenId) public view returns (address _approved);

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

    /// Owner initates the transfer of the token to another account.
    /// @param _to The address of the recipient, can be a user or contract.
    /// @param _tokenId The ID of the token to transfer.
    /// @dev Required for ERC-721 compliance.
    function transfer(address _to, uint256 _tokenId) public;

    ///
    function implementsERC721() public view returns (bool _implementsERC721);

    // EXTRA
    /// @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;
}

/**
 * Interface for optional functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 */
contract DetailedERC721 is ERC721 {
    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
    // function tokenMetadata(uint256 _tokenId) public view returns (string _infoUrl);
    // function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256 _tokenId);
}


contract CryptoArtsToken is AccessControl, DetailedERC721 {
  using SafeMath for uint256;

  /// @dev The TokenCreated event is fired whenever a new token is created.
  event TokenCreated(uint256 tokenId, string name, uint256 price, address owner);

  /// @dev The TokenSold event is fired whenever a token is sold.
  event TokenSold(uint256 indexed tokenId, string name, uint256 sellingPrice,
   uint256 newPrice, address indexed oldOwner, address indexed newOwner);


  /// @dev A mapping from tokenIds to the address that owns them. All tokens have
  ///  some valid owner address.
  mapping (uint256 => address) private tokenIdToOwner;

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

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


  struct Art {
    string name;
  }
  Art[] private arts;

  uint256 private startingPrice = 0.01 ether;
  bool private erc721Enabled = false;

  modifier onlyERC721() {
    require(erc721Enabled);
    _;
  }

  /// @dev Creates a new token with the given name and _price and assignes it to an _owner.
  function createToken(string _name, address _owner, uint256 _price) public onlyCLevel {
    require(_owner != address(0));
    require(_price >= startingPrice);

    _createToken(_name, _owner, _price);
  }

  /// @dev Creates a new token with the given name.
  function createToken(string _name) public onlyCLevel {
    _createToken(_name, address(this), startingPrice);
  }

  function _createToken(string _name, address _owner, uint256 _price) private {
    Art memory _art = Art({
      name: _name
    });
    uint256 newTokenId = arts.push(_art) - 1;
    tokenIdToPrice[newTokenId] = _price;

    TokenCreated(newTokenId, _name, _price, _owner);

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

  function getToken(uint256 _tokenId) public view returns (
    string _tokenName,
    uint256 _price,
    uint256 _nextPrice,
    address _owner
  ) {
    _tokenName = arts[_tokenId].name;
    _price = tokenIdToPrice[_tokenId];
    _nextPrice = nextPriceOf(_tokenId);
    _owner = tokenIdToOwner[_tokenId];
  }

  function getAllTokens() public view returns (
      uint256[],
      uint256[],
      address[]
  ) {
      uint256 total = totalSupply();
      uint256[] memory prices = new uint256[](total);
      uint256[] memory nextPrices = new uint256[](total);
      address[] memory owners = new address[](total);

      for (uint256 i = 0; i < total; i++) {
          prices[i] = tokenIdToPrice[i];
          nextPrices[i] = nextPriceOf(i);
          owners[i] = tokenIdToOwner[i];
      }

      return (prices, nextPrices, owners);
  }

  function tokensOf(address _owner) public view returns(uint256[]) {
    uint256 tokenCount = balanceOf(_owner);
    if (tokenCount == 0) {
        // Return an empty array
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](tokenCount);
      uint256 total = totalSupply();
      uint256 resultIndex = 0;

      for (uint256 i = 0; i < total; i++) {
        if (tokenIdToOwner[i] == _owner) {
          result[resultIndex] = i;
          resultIndex++;
        }
      }
      return result;
    }
  }

  /// @dev This function withdraws the contract owner's cut.
  /// Any amount may be withdrawn as there is no user funds.
  /// User funds are immediately sent to the old owner in `purchase`
  function withdrawBalance(address _to, uint256 _amount) public onlyCEO {
    require(_amount <= this.balance);

    if (_amount == 0) {
      _amount = this.balance;
    }

    if (_to == address(0)) {
      ceoAddress.transfer(_amount);
    } else {
      _to.transfer(_amount);
    }
  }

  // Send ether and obtain the token
  function purchase(uint256 _tokenId) public payable whenNotPaused {
    address oldOwner = ownerOf(_tokenId);
    address newOwner = msg.sender;
    uint256 sellingPrice = priceOf(_tokenId);

    // active tokens
    require(oldOwner != address(0));
    // maybe one day newOwner's logic allows this to happen
    require(newOwner != address(0));
    // don't buy from yourself
    require(oldOwner != newOwner);
    // don't sell to contracts
    // but even this doesn't prevent bad contracts to become an owner of a token
    require(!_isContract(newOwner));
    // another check to be sure that token is active
    require(sellingPrice > 0);
    // min required amount check
    require(msg.value >= sellingPrice);

    // transfer to the new owner
    _transfer(oldOwner, newOwner, _tokenId);
    // update fields before emitting an event
    tokenIdToPrice[_tokenId] = nextPriceOf(_tokenId);
    // emit event
    TokenSold(_tokenId, arts[_tokenId].name, sellingPrice, priceOf(_tokenId), oldOwner, newOwner);

    // extra ether which should be returned back to buyer
    uint256 excess = msg.value.sub(sellingPrice);
    // contract owner's cut which is left in contract and accesed by withdrawBalance
    uint256 contractCut = sellingPrice.mul(6).div(100); // 6%

    // no need to transfer if it's initial sell
    if (oldOwner != address(this)) {
      // transfer payment to seller minus the contract's cut
      oldOwner.transfer(sellingPrice.sub(contractCut));
    }

    // return extra ether
    if (excess > 0) {
      newOwner.transfer(excess);
    }
  }

  function priceOf(uint256 _tokenId) public view returns (uint256 _price) {
    return tokenIdToPrice[_tokenId];
  }

  uint256 private increaseLimit1 = 0.05 ether;
  uint256 private increaseLimit2 = 0.5 ether;
  uint256 private increaseLimit3 = 5 ether;

  function nextPriceOf(uint256 _tokenId) public view returns (uint256 _nextPrice) {
    uint256 price = priceOf(_tokenId);
    if (price < increaseLimit1) {
      return price.mul(135).div(94);
    } else if (price < increaseLimit2) {
      return price.mul(120).div(94);
    } else if (price < increaseLimit3) {
      return price.mul(118).div(94);
    } else {
      return price.mul(116).div(94);
    }
  }


  /*** ERC-721 ***/
  // Unlocks ERC721 behaviour, allowing for trading on third party platforms.
  function enableERC721() onlyCEO public {
    erc721Enabled = true;
  }

  function totalSupply() public view returns (uint256 _totalSupply) {
    _totalSupply = arts.length;
  }

  function balanceOf(address _owner) public view returns (uint256 _balance) {
    _balance = ownershipTokenCount[_owner];
  }

  function ownerOf(uint256 _tokenId) public view returns (address _owner) {
    _owner = tokenIdToOwner[_tokenId];
    // require(_owner != address(0));
  }

  function approve(address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
    require(_owns(msg.sender, _tokenId));

    tokenIdToApproved[_tokenId] = _to;

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

  function transferFrom(address _from, address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
    require(_to != address(0));
    require(_owns(_from, _tokenId));
    require(_approved(msg.sender, _tokenId));

    _transfer(_from, _to, _tokenId);
  }

  function transfer(address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
      require(_to != address(0));
      require(_owns(msg.sender, _tokenId));

      // Reassign ownership, clear pending approvals, emit Transfer event.
      _transfer(msg.sender, _to, _tokenId);
  }

  function implementsERC721() public view whenNotPaused returns (bool) {
    return erc721Enabled;
  }

  function takeOwnership(uint256 _tokenId) public whenNotPaused onlyERC721 {
    require(_approved(msg.sender, _tokenId));

    _transfer(tokenIdToOwner[_tokenId], msg.sender, _tokenId);
  }

  function name() public view returns (string _name) {
    _name = "CryptoArts";
  }

  function symbol() public view returns (string _symbol) {
    _symbol = "XART";
  }


  /*** PRIVATES ***/
  /// @dev Check for token ownership.
  function _owns(address _claimant, uint256 _tokenId) private view returns (bool) {
      return tokenIdToOwner[_tokenId] == _claimant;
  }

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

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

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

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

  /// @dev Checks if the address ia a contract or not
  function _isContract(address addr) private view returns (bool) {
    uint256 size;
    assembly { size := extcodesize(addr) }
    return size > 0;
  }
}


// https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
// v1.6.0

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

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","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":"_amount","type":"uint256"}],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","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":true,"inputs":[],"name":"getAllTokens","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"createToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"nextPriceOf","outputs":[{"name":"_nextPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":false,"inputs":[],"name":"enableERC721","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","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":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getToken","outputs":[{"name":"_tokenName","type":"string"},{"name":"_price","type":"uint256"},{"name":"_nextPrice","type":"uint256"},{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToApproved","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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"owner","type":"address"}],"name":"TokenCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"sellingPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"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"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600160146101000a81548160ff021916908315150217905550662386f26fc100006007556000600860006101000a81548160ff02191690831515021790555066b1a2bc2ec500006009556706f05b59d3b20000600a55674563918244f40000600b55336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506124e4806100f86000396000f30060606040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101fd5780630a0f81681461023f5780630cf20cc9146102945780631051db34146102d657806318160ddd1461030357806323b872dd1461032c57806327d7874c1461038d5780632a5c792a146103c65780632ba73c15146104c05780633f4ba83a146104f957806345576f941461050e5780635a3f26721461056b5780635ba9e48e146105f95780635c975abb146106305780636352211e1461065d57806370a08231146106c057806371dc761e1461070d57806373b4df05146107225780638456cb59146107a757806395d89b41146107bc578063a9059cbb1461084a578063b047fb501461088c578063b2e6ceeb146108e1578063b9186d7d14610904578063e4b50cb81461093b578063eb5653d714610a18578063efef39a114610a7b575b600080fd5b341561017a57600080fd5b610182610a93565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020857600080fd5b61023d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ad6565b005b341561024a57600080fd5b610252610bdd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029f57600080fd5b6102d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c02565b005b34156102e157600080fd5b6102e9610d87565b604051808215151515815260200191505060405180910390f35b341561030e57600080fd5b610316610dba565b6040518082815260200191505060405180910390f35b341561033757600080fd5b61038b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610dc7565b005b341561039857600080fd5b6103c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e74565b005b34156103d157600080fd5b6103d9610f4e565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610424578082015181840152602081019050610409565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561046657808201518184015260208101905061044b565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104a857808201518184015260208101905061048d565b50505050905001965050505050505060405180910390f35b34156104cb57600080fd5b6104f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110ef565b005b341561050457600080fd5b61050c6111ca565b005b341561051957600080fd5b610569600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061125d565b005b341561057657600080fd5b6105a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611320565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105e55780820151818401526020810190506105ca565b505050509050019250505060405180910390f35b341561060457600080fd5b61061a6004808035906020019091905050611456565b6040518082815260200191505060405180910390f35b341561063b57600080fd5b61064361153c565b604051808215151515815260200191505060405180910390f35b341561066857600080fd5b61067e600480803590602001909190505061154f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106cb57600080fd5b6106f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061158c565b6040518082815260200191505060405180910390f35b341561071857600080fd5b6107206115d5565b005b341561072d57600080fd5b6107a5600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061164d565b005b34156107b257600080fd5b6107ba61175d565b005b34156107c757600080fd5b6107cf6117f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080f5780820151818401526020810190506107f4565b50505050905090810190601f16801561083c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561085557600080fd5b61088a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611833565b005b341561089757600080fd5b61089f6118ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108ec57600080fd5b61090260048080359060200190919050506118f0565b005b341561090f57600080fd5b610925600480803590602001909190505061197d565b6040518082815260200191505060405180910390f35b341561094657600080fd5b61095c600480803590602001909190505061199a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b838110156109da5780820151818401526020810190506109bf565b50505050905090810190601f168015610a075780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a2357600080fd5b610a396004808035906020019091905050611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a916004808035906020019091905050611af0565b005b610a9b612306565b6040805190810160405280600a81526020017f43727970746f4172747300000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff16151515610af257600080fd5b600860009054906101000a900460ff161515610b0d57600080fd5b610b173382611e72565b1515610b2257600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c5d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111151515610c8357600080fd5b6000811415610ca7573073ffffffffffffffffffffffffffffffffffffffff163190505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d42576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d3d57600080fd5b610d83565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d8257600080fd5b5b5050565b6000600160149054906101000a900460ff16151515610da557600080fd5b600860009054906101000a900460ff16905090565b6000600680549050905090565b600160149054906101000a900460ff16151515610de357600080fd5b600860009054906101000a900460ff161515610dfe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e3a57600080fd5b610e448382611e72565b1515610e4f57600080fd5b610e593382611ede565b1515610e6457600080fd5b610e6f838383611f4a565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f0b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f5661231a565b610f5e61231a565b610f6661232e565b6000610f7061231a565b610f7861231a565b610f8061232e565b6000610f8a610dba565b945084604051805910610f9a5750595b9080825280602002602001820160405250935084604051805910610fbb5750595b9080825280602002602001820160405250925084604051805910610fdc5750595b90808252806020026020018201604052509150600090505b848110156110dc576003600082815260200190815260200160002054848281518110151561101e57fe5b906020019060200201818152505061103581611456565b838281518110151561104357fe5b90602001906020020181815250506002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561109357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ff4565b8383839750975097505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561118657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122557600080fd5b600160149054906101000a900460ff16151561124057600080fd5b6000600160146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113055750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561131057600080fd5b61131d8130600754612112565b50565b61132861231a565b600061133261231a565b60008060006113408761158c565b9450600085141561137257600060405180591061135a5750595b9080825280602002602001820160405250955061144c565b846040518059106113805750595b9080825280602002602001820160405250935061139b610dba565b925060009150600090505b82811015611448578673ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561143b5780848381518110151561142457fe5b906020019060200201818152505081806001019250505b80806001019150506113a6565b8395505b5050505050919050565b6000806114628361197d565b905060095481101561149c57611495605e61148760878461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b600a548110156114d4576114cd605e6114bf60788461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b600b5481101561150c57611505605e6114f760768461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b611533605e61152560748461228490919063ffffffff16565b6122bf90919063ffffffff16565b91505b50919050565b600160149054906101000a900460ff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163057600080fd5b6001600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116f55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561170057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561173c57600080fd5b600754811015151561174d57600080fd5b611758838383612112565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b857600080fd5b600160149054906101000a900460ff161515156117d457600080fd5b60018060146101000a81548160ff021916908315150217905550565b6117f8612306565b6040805190810160405280600481526020017f5841525400000000000000000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff1615151561184f57600080fd5b600860009054906101000a900460ff16151561186a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118a657600080fd5b6118b03382611e72565b15156118bb57600080fd5b6118c6338383611f4a565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff1615151561190c57600080fd5b600860009054906101000a900460ff16151561192757600080fd5b6119313382611ede565b151561193c57600080fd5b61197a6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383611f4a565b50565b600060036000838152602001908152602001600020549050919050565b6119a2612306565b60008060006006858154811015156119b657fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a585780601f10611a2d57610100808354040283529160200191611a58565b820191906000526020600020905b815481529060010190602001808311611a3b57829003601f168201915b5050505050935060036000868152602001908152602001600020549250611a7e85611456565b91506002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509193509193565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600160149054906101000a900460ff16151515611b1457600080fd5b611b1d8661154f565b9450339350611b2b8661197d565b9250600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611b6957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611ba557600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611be057600080fd5b611be9846122da565b151515611bf557600080fd5b600083111515611c0457600080fd5b823410151515611c1357600080fd5b611c1e858588611f4a565b611c2786611456565b60036000888152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16877fef3f7c55f619f7c9178e080691f6d9bc90a74668d32c107dea7c87da023c9a0f60068a815481101515611c9d57fe5b906000526020600020900160000187611cb58c61197d565b6040518080602001848152602001838152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611d4a5780601f10611d1f57610100808354040283529160200191611d4a565b820191906000526020600020905b815481529060010190602001808311611d2d57829003601f168201915b505094505050505060405180910390a4611d6d83346122ed90919063ffffffff16565b9150611d966064611d8860068661228490919063ffffffff16565b6122bf90919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611e20578473ffffffffffffffffffffffffffffffffffffffff166108fc611dfa83866122ed90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611e1f57600080fd5b5b6000821115611e6a578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611e6957600080fd5b5b505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156120a857600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b61211a612342565b6000602060405190810160405280868152509150600160068054806001018281612144919061235c565b916000526020600020900160008590919091506000820151816000019080519060200190612173929190612388565b5050500390508260036000838152602001908152602001600020819055507fd306967beeb39489cb6724748118d29c59bd0f0e17a5dd711b4f4d3dea3a1c478186858760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015612234578082015181840152602081019050612219565b50505050905090810190601f1680156122615780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a161227d60008583611f4a565b5050505050565b600080600084141561229957600091506122b8565b82840290508284828115156122aa57fe5b041415156122b457fe5b8091505b5092915050565b60008082848115156122cd57fe5b0490508091505092915050565b600080823b905060008111915050919050565b60008282111515156122fb57fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280612356612408565b81525090565b81548183558181151161238357818360005260206000209182019101612382919061241c565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123c957805160ff19168380011785556123f7565b828001600101855582156123f7579182015b828111156123f65782518255916020019190600101906123db565b5b509050612404919061244b565b5090565b602060405190810160405280600081525090565b61244891905b80821115612444576000808201600061243b9190612470565b50600101612422565b5090565b90565b61246d91905b80821115612469576000816000905550600101612451565b5090565b90565b50805460018160011615610100020316600290046000825580601f1061249657506124b5565b601f0160209004906000526020600020908101906124b4919061244b565b5b505600a165627a7a72305820f75947c10751da17b9f6cd9202d827b1ed0eca753a4ad9efc1812c60129bd36e0029

   Swarm Source:
bzzr://f75947c10751da17b9f6cd9202d827b1ed0eca753a4ad9efc1812c60129bd36e

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.