Sponsored Link:   COVESTING - EU-based digital asset exchange. Aggregated liquidity. Algorithmic & Copy-trading features. 24/7 support. Get access!
Contract Overview
Balance: 3.957917655131518791 Ether
Ether Value: $2,046.01 (@ $516.94/ETH)
Transactions: 896 txns
Token Contract: CryptoArts (XART)
 Latest 25 txns from a total Of 896 transactions
View All

TxHash Age From To Value [TxFee]
0xfff1d171b96ea4d5b980a3b312e1496ff46e74c7a180495bb814a6cf7712ad3212 days 8 hrs ago0x573a32458e3aac5bf42018cf78a7ddd5b6322c83  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000508629
0x7ef56b8e8d327bc0e909a0e6925a8b45885345580b0a0a7cb0f3b6d167c42a0a12 days 10 hrs ago0x573a32458e3aac5bf42018cf78a7ddd5b6322c83  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.00409055
0x2eb6486c4e9d22ca23e6719a2c42f2c69a648c5c007328619088e6b455a0507343 days 20 hrs ago0x83a283a8d70f6c415ecb4d160fc666abd2bd0aab  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.00031731
0xcb1bb47d4237fd1f00cdd4808fedcb3e5ac8491d2f497e7f3ff0416fc9f862dc43 days 20 hrs ago0x83a283a8d70f6c415ecb4d160fc666abd2bd0aab  IN   0x73b0ebea28f76be1368d578d13657354330472a90 Ether0.000253902
0xe42e561b7a20ff58e77afa169d0be55a008c0fc515aabf6069f11eeec4158c65104 days 2 hrs ago0xda3120867d1ac023ffe9e8b695c798180decbcc3  IN   0x73b0ebea28f76be1368d578d13657354330472a90.04254256387354 Ether0.000409055
0x0f908f1f4609614d6b0b6f0e058d90e445a3dda9a6126231aab8ae62b0149421104 days 13 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.04254256387354 Ether0.000200433
0xa031bcd44f896fd6115dc27d9a830787bc8a09b32fda1f1d94a6b87828d6d9e7104 days 13 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.029622229660094 Ether0.000155433
0x26763c641247283c029921dd4113329faed483b7eab596c98a98b11db10a478b104 days 13 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.029622229660094 Ether0.000200433
0x392283cde29504c171417b1fbfb71419b3a02a610f3e6242812cf41e42f6a024104 days 23 hrs ago0x8982e2f3308366f2e04226daa604555dddb18503  IN   0x73b0ebea28f76be1368d578d13657354330472a90.029622229660094 Ether0.000133622
0x697c8bc530dfd73cd4f1a8395d480f5fd20b3020eec9d3ca01acfa88d3db078b105 days 4 hrs ago0x36620d5e333577688b1b5cc7606fb210d5d3baab  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.00066811
0x3b72f07872706ec81e8deaa7c49877b61993bd8ae059426f4c29fa1785fdcb92105 days 4 hrs ago0x36620d5e333577688b1b5cc7606fb210d5d3baab  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.00081811
0x14618dfe96ecfa9cf2ee981145c041a396ad14a7775f611f4eb27f069a5edd63105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000070071
0x0560e26cffd242a7f3e2491f86dd150d0a06425a218a995fa711a57f556ba4dd105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000070071
0xf899cac5c42dc2f8aca198ef53bff892394b4b9bbee1dd520966ae44d895f5ae105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000070071
0xf740d4b7d33f720bd4eee96fbf9fbad72a2a374619d54e4444a5eb1188227bb7105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.000070071
0x86867ba3df409e8189d2894a19ab5ba55421bbfa5d9ed6182e4e03e222c02318105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.000046714
0x22f30d6e63eb1451c4643dc8c59c1b473cd4d008e5cb0af4742c879104ad79a8105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000046714
0x4c478b4be57d8ddec96f5979fdb3b9fa0b59ec01eed3320742472f9770b7b6f0105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.020625848800362 Ether0.000103622
0x33f2a1fce02eb0b935200d27e5f36109edfd7cc5e83c279401d9110e6e7adc09105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000103622
0xd2c11ff69f8b7d5dc109ea67ea2ba5a50cde0fb6f3cce74e2b6b726521f561ea105 days 7 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000103622
0x487e4549d406d3ac0fee6315d4b1b97f85c36c7a506790fe08da0d5cc06d5b1e105 days 8 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000103622
0x1887030c65ff00d35854d449df78ea8ec604be213174991e6e765955b9ac7405105 days 8 hrs ago0x1de5125581ec31e9f710cb08b6a2506ab3fd69eb  IN   0x73b0ebea28f76be1368d578d13657354330472a90.014361702127659 Ether0.000327244
0xd50907abde06d96579f6ddb55db584b74b8d70a54271d819327df619ea2636bd105 days 8 hrs ago0xb03beb926a762a925da368a74caede7f238fdf10  IN   0x73b0ebea28f76be1368d578d13657354330472a90.01 Ether0.000296844
0x6aa6930bb12505a4ff5708be8fe3aa20eee5692d224114b60ee6ed46789aad8b105 days 8 hrs ago0x49f70c81a088df026cf87ba18db312eae9d4958c  IN   0x73b0ebea28f76be1368d578d13657354330472a90.01 Ether0.000445266
0xc8897a0c44e7f539301dce16e6d9b4f3a6bcec97691db0f5d14eea5086ce0b30105 days 8 hrs ago0x4a995e321796e2464081bdeb571af8bba6a075a8  IN   0x73b0ebea28f76be1368d578d13657354330472a90.01 Ether0.00059211
[ 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
0x7ef56b8e8d327bc0e909a0e6925a8b45885345580b0a0a7cb0f3b6d167c42a0a574358112 days 10 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019388297872340425 Ether
0x2eb6486c4e9d22ca23e6719a2c42f2c69a648c5c007328619088e6b455a05073556521643 days 20 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x83a283a8d70f6c415ecb4d160fc666abd2bd0aab3.95 Ether
0xe42e561b7a20ff58e77afa169d0be55a008c0fc515aabf6069f11eeec4158c655210148104 days 2 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.039990010041127686 Ether
0x0f908f1f4609614d6b0b6f0e058d90e445a3dda9a6126231aab8ae62b01494215207452104 days 13 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.039990010041127686 Ether
0xa031bcd44f896fd6115dc27d9a830787bc8a09b32fda1f1d94a6b87828d6d9e75207451104 days 13 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x36620d5e333577688b1b5cc7606fb210d5d3baab0.027844895880488908 Ether
0x26763c641247283c029921dd4113329faed483b7eab596c98a98b11db10a478b5207447104 days 13 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x36620d5e333577688b1b5cc7606fb210d5d3baab0.027844895880488908 Ether
0x392283cde29504c171417b1fbfb71419b3a02a610f3e6242812cf41e42f6a0245205029104 days 23 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.027844895880488908 Ether
0x697c8bc530dfd73cd4f1a8395d480f5fd20b3020eec9d3ca01acfa88d3db078b5203681105 days 4 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019388297872340425 Ether
0x3b72f07872706ec81e8deaa7c49877b61993bd8ae059426f4c29fa1785fdcb925203680105 days 4 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019388297872340425 Ether
0x4c478b4be57d8ddec96f5979fdb3b9fa0b59ec01eed3320742472f9770b7b6f05202959105 days 7 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x1de5125581ec31e9f710cb08b6a2506ab3fd69eb0.019388297872340425 Ether
0x33f2a1fce02eb0b935200d27e5f36109edfd7cc5e83c279401d9110e6e7adc095202954105 days 7 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x49f70c81a088df026cf87ba18db312eae9d4958c0.0135 Ether
0xd2c11ff69f8b7d5dc109ea67ea2ba5a50cde0fb6f3cce74e2b6b726521f561ea5202951105 days 7 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x0fa4776bb301809fc0040e2bf0aea56be56a78b20.0135 Ether
0x487e4549d406d3ac0fee6315d4b1b97f85c36c7a506790fe08da0d5cc06d5b1e5202909105 days 8 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xb03beb926a762a925da368a74caede7f238fdf100.0135 Ether
0x1887030c65ff00d35854d449df78ea8ec604be213174991e6e765955b9ac74055202794105 days 8 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x4a995e321796e2464081bdeb571af8bba6a075a80.0135 Ether
0x79ab23f5b16fff3a72dc461087d9ef89b94625a2e81aa9e14371c1ff0400414e5201501105 days 13 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.039990010041127686 Ether
0x53bbf26d673b64c262fb3bcd6e81d2fb6ecee2fd7b1b5f9295a82e5035aad57a5201084105 days 15 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xd09756eafbdd1e6b9ca226acadf750cb94f16c120.039990010041127686 Ether
0xaf03fb78c67841aa209f6326594373c0d46703cfc421fd75bc1cdfbbb21761fe5183588108 days 14 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.027844895880488908 Ether
0x5c32242b357d806b6dee92ca8b2db03e9b02a8b079a071468f612c77c64fb6fd5183568108 days 14 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xdcbc5386974404752d607b5eca62c0e166a4a55c0.027844895880488908 Ether
0xc2188e47fd0ded32128b39b0eb1b21beef4d062b7d4c6b69cee0584e137a4ac45183559108 days 14 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x8982e2f3308366f2e04226daa604555dddb185030.027844895880488908 Ether
0x18e8b8f378d03ddfefa697bbe1ea9a6af8f6087e16ba6f6174d523f5271988e55181681108 days 22 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x05f2c11996d73288abe8a31d8b593a693ff2e5d80.019388297872340425 Ether
0x197d1d6c8b4f5aa5aec3dbb41e5b055b8d9b438b67f7bf6a98925ea80d7acdbc5181636108 days 22 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90xba0b4ddf2f6d3e250a036761a23c4074075f127c0.019388297872340425 Ether
0x93a5496c1343dff986feeabb54d31d5d7d0eceb90c23f5337db4353bdb8fba715181631108 days 22 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x53562e8ecee54356dc89ad263a444528b34d6c800.027844895880488908 Ether
0x2a95569ab8851c723bba9a39e510150486adb79b988815fdb727d21dc769bfc25181609108 days 22 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x4a995e321796e2464081bdeb571af8bba6a075a80.019388297872340425 Ether
0xdc8d1e8461e802ad758838e1a6fc56d3f8abd3b65933288aaf30403ab256c8d75180384109 days 3 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x6f9f85c4e21b54592a8c746e2d20afbc4a40c0a70.0135 Ether
0xf263384db12f69578150158143440cc81f3bc72d25bc9c78e000a2363bbe0ef35179461109 days 7 hrs ago0x73b0ebea28f76be1368d578d13657354330472a90x6f9f85c4e21b54592a8c746e2d20afbc4a40c0a70.0135 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: CryptoArtsToken
Compiler Version: 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 txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.