Sponsored Link:   trade.io - The Future of Crypto Trading - A Better, Faster, Smarter Crypto Exchange - Pre-Register Now!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 643 txns
Token Contract: SoccerAllStars (SAS)
 Latest 25 txns from a total Of 643 transactions

TxHash Age From To Value [TxFee]
0xc3d203f36889389d1ea1668eea94ac446193c9c70f3e98c1c4d0606e4251a5d4131 days 19 hrs ago0x7c377b7bce53a5cef88458b2cbbe11c3babe16da  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440 Ether0.000197395
0x1443b28d1365b2e8022b62c0c388ab6eed2ab20db34612faf904350e573ed7df141 days 6 hrs ago0x36e058332ae39efad2315776b9c844e30d07388b  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440 Ether0.000118595
0xf9365894705a6da01f0702e002436e64823e5d75490e43a1bbca6f9c9970486b143 days 13 hrs ago0x59384e4da596f15f154089a2e242ed50dd9db4f7  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.021388887117621 Ether0.00094876
0x92e4c1fbe684424b8307db72455d45a22a45f5fc6805dc45791175c274bb93d2143 days 13 hrs ago0x59384e4da596f15f154089a2e242ed50dd9db4f7  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.09945832509694 Ether0.0023655
0xe7701dc89f8bc7b1ea1d112a030590315f82b2d3e6490ee781b52cf98514a3bd143 days 21 hrs ago0x5e9b3ca9168127016aecd32b958bfbba722877e9  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440 Ether0.000060684
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e7144 days 26 mins ago0x1ed45acba1c716c8fbe88aa35d27842fb612e20a  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.159547716630463 Ether0.000556975
0xcad12e09af982dcb28cb76a52db90b5638baf2c8fe28eea14586965ffd495c5a144 days 29 mins ago0x1ed45acba1c716c8fbe88aa35d27842fb612e20a  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.159547716630463 Ether0.00045
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def144 days 22 hrs ago0x3130259deedb3052e24fad9d5e1f490cb8cccaa0  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.098919584310887 Ether0.00111395
0x288b4175f54a6e2b1c4f111fa0fd024f33680a8e0d402817e49417ac8f541307144 days 22 hrs ago0xa3b61695e46432e5cccd0427ad956fa146379d08  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.002150537634408 Ether0.000047438
0x08fa732de158d639c52acbb85043eab1410f3b4330219727ba82b5e60e233c09144 days 22 hrs ago0xa3b61695e46432e5cccd0427ad956fa146379d08  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.002150537634408 Ether0.000047438
0x85074fbfa5da4bfe85054303f797eb4ff6ee37994de6e9e02e357555666d5c50144 days 23 hrs ago0xa3b61695e46432e5cccd0427ad956fa146379d08  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.002150537634408 Ether0.000047438
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e82144 days 23 hrs ago0x36e058332ae39efad2315776b9c844e30d07388b  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.021388887117621 Ether0.000556845
0x63a5a8a123485bcfbe429f2ed9120c716551fb0903cce61dee2c2e47894f0219144 days 23 hrs ago0x327bfb6286026bd1a017ba6693e0f47c8b98731b  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.045997606704562 Ether0.002784225
0xdb45c1e536138ca9a3024a36b6506ef146af60f83996baa21d0995744ea0142c144 days 23 hrs ago0x576edaa88129ba71825225bb1a9f88805acb34c3  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.098919584310887 Ether0.000556975
0xf2045f925fb182a709b810d71a71b4e418646466d5251302e7e41db55e0bd334144 days 23 hrs ago0xe55bf01b61b5c28c191d4bbf40111f0a287cc41c  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000118595
0x6edfd1c0b7195cb95a72269eb2d96ed3063a766aba23ab1111c6b8e02595dd3f144 days 23 hrs ago0x1f2672e17fd7ec4b52b7f40d41ec5c477fe85c0c  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.03 Ether0.001427148
0x99da9728e70f5c16c7476e16bc7812bb6b1b4bbc3db12917cacf45ca52042723144 days 23 hrs ago0x62d5be95c330b512b35922e347319afd708da981  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000403223
0xb036de4f372843288952bbfdc302958f8641b3957e8862eb782e47ad67a2236e144 days 23 hrs ago0x36e058332ae39efad2315776b9c844e30d07388b  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000593965
0x1694ce698aeb09633495be47b073b43b94300f94cfddf0d49dad68dbe8d3793f144 days 23 hrs ago0x36e058332ae39efad2315776b9c844e30d07388b  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000118595
0xa9f024fee20b2f86ac0b02860f8501a803a61a2c3e08522a8c36d830659a839b144 days 23 hrs ago0xa3b61695e46432e5cccd0427ad956fa146379d08  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.002150537634408 Ether0.000047438
0x20c2e1a3b51ff74fa855261afda9c950f0eb27bb34ed5641867f93ac9c6c7c1a144 days 23 hrs ago0xe55bf01b61b5c28c191d4bbf40111f0a287cc41c  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000118595
0xf252e432c7f320ab8eed28d1f24c66282f133a72672e93f0a6f3f203469a90ed144 days 23 hrs ago0xbace3371fd1e65dd0255ddef233bd16bfa374db2  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.004624812117007 Ether0.00023719
0x921af3dcb44f4426a6b9556abe09266a05c84576a635c704501c00d2ae3491b3144 days 23 hrs ago0x62d5be95c330b512b35922e347319afd708da981  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000403223
0xd0cb563d57e7f2656851cc0a67ff029e14d97acc5fdea550dbd463bc23d5e87b144 days 23 hrs ago0xe55bf01b61b5c28c191d4bbf40111f0a287cc41c  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.004624812117007 Ether0.000118595
0xcd0bbbfedf72a65ee36e21e570ff16402a2c0644612c9d3a906f07c44456857c144 days 23 hrs ago0xbd6a9d2c44b571f33ee2192bd2d46aba2866405a  IN   0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440.009945832509694 Ether0.000831551
[ 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
0xe7701dc89f8bc7b1ea1d112a030590315f82b2d3e6490ee781b52cf98514a3bd5155442143 days 21 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x5e9b3ca9168127016aecd32b958bfbba722877e94.803097800799843305 Ether
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e75154809144 days 26 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x576edaa88129ba71825225bb1a9f88805acb34c30.134020081969589651 Ether
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e75154809144 days 26 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x305ce3ca65d9b84b8561b0055ecaefeba2217fc80.004786431498913914 Ether
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e75154809144 days 26 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x62d5be95c330b512b35922e347319afd708da9810.003190954332609276 Ether
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e75154809144 days 26 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440xa85cf0c62b9bc37bcbaa04b07b410a682d24b7ed0.001595477166304638 Ether
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e75154809144 days 26 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x7c377b7bce53a5cef88458b2cbbe11c3babe16da0.001595477166304638 Ether
0x3045f4983e3924dd6888a948a4018eb6588e16dae46b729893e90196bd6cb1e75154809144 days 26 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x5c0e6e718ae3f5cfe5e1807d42916f056e2cbad50.003190954332609276 Ether
0xcad12e09af982dcb28cb76a52db90b5638baf2c8fe28eea14586965ffd495c5a5154795144 days 29 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x305ce3ca65d9b84b8561b0055ecaefeba2217fc80.004786431498913914 Ether
0xcad12e09af982dcb28cb76a52db90b5638baf2c8fe28eea14586965ffd495c5a5154795144 days 29 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x62d5be95c330b512b35922e347319afd708da9810.003190954332609276 Ether
0xcad12e09af982dcb28cb76a52db90b5638baf2c8fe28eea14586965ffd495c5a5154795144 days 29 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440xa85cf0c62b9bc37bcbaa04b07b410a682d24b7ed0.001595477166304638 Ether
0xcad12e09af982dcb28cb76a52db90b5638baf2c8fe28eea14586965ffd495c5a5154795144 days 29 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x7c377b7bce53a5cef88458b2cbbe11c3babe16da0.001595477166304638 Ether
0xcad12e09af982dcb28cb76a52db90b5638baf2c8fe28eea14586965ffd495c5a5154795144 days 29 mins ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x5c0e6e718ae3f5cfe5e1807d42916f056e2cbad50.003190954332609276 Ether
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def5149371144 days 22 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x305ce3ca65d9b84b8561b0055ecaefeba2217fc80.083092450821145593 Ether
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def5149371144 days 22 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x1f2672e17fd7ec4b52b7f40d41ec5c477fe85c0c0.002967587529326625 Ether
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def5149371144 days 22 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x62d5be95c330b512b35922e347319afd708da9810.00197839168621775 Ether
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def5149371144 days 22 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x305ce3ca65d9b84b8561b0055ecaefeba2217fc80.000989195843108875 Ether
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def5149371144 days 22 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x7c377b7bce53a5cef88458b2cbbe11c3babe16da0.000989195843108875 Ether
0x4adba9af8f41c8c9ca6df8d6c9311aeeb2251e26dc2fa3391dfe2cbc435e7def5149371144 days 22 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x8da4f82dc4d03c5421bb2087f858750c650d85710.00197839168621775 Ether
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e825149252144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440xbd6a9d2c44b571f33ee2192bd2d46aba2866405a0.017966665178802214 Ether
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e825149252144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440xbace3371fd1e65dd0255ddef233bd16bfa374db20.000641666613528648 Ether
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e825149252144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440xe55bf01b61b5c28c191d4bbf40111f0a287cc41c0.000427777742352432 Ether
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e825149252144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x36e058332ae39efad2315776b9c844e30d07388b0.000213888871176216 Ether
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e825149252144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x8e72c069b8745b1592d7d12b12a57a1c879ac8430.000213888871176216 Ether
0x06772c09469e946633698d0c6810e6c7380005ab2a7edf8c39fe9a88517a6e825149252144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x4e848cb280ba065f44e64f923a78a52141033f090.000427777742352432 Ether
0x63a5a8a123485bcfbe429f2ed9120c716551fb0903cce61dee2c2e47894f02195149249144 days 23 hrs ago0x89b5eaec2702ab0ff33ca397b3e66c7d925d51440x1f2672e17fd7ec4b52b7f40d41ec5c477fe85c0c0.038637989631832699 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: Soccer
Compiler Version: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

contract Soccer {
  using SafeMath for uint256;
  /*** EVENTS ***/
  /// @dev The Birth event is fired whenever a new collectible comes into existence.
  event Birth(uint256 tokenId, uint256 startPrice);
  /// @dev The TokenSold event is fired whenever a token is sold.
  event TokenSold(uint256 indexed tokenId, uint256 price, address prevOwner, address winner);
  // ERC721 Transfer
  event Transfer(address indexed from, address indexed to, uint256 tokenId);
  // ERC721 Approval
  event Approval(address indexed owner, address indexed approved, uint256 tokenId);

  /*** CONSTANTS ***/

  string public constant NAME = "SoccerAllStars";
  string public constant SYMBOL = "SAS";

  /*** STORAGE ***/
  struct Token {
    address owner;
    uint256 price;
  }
  mapping (uint256 => Token) collectibleIdx;
  mapping (uint256 => address[3]) mapToLastOwners;
  mapping (uint256 => address) collectibleIndexToApproved;
  uint256[] private tokens;

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

  uint16 constant NATION_INDEX = 1000;
  uint32 constant CLUB_INDEX = 1000000;

  uint256 private constant PROMO_CREATION_LIMIT = 50000;
  uint256 public promoCreatedCount;

  uint256 constant PLAYER_PRICE = 1 finney;
  uint256 constant CLUB_PRICE = 10 finney;
  uint256 constant NATION_PRICE = 100 finney;

  /*** CONSTRUCTOR ***/
  function Soccer() public {
    ceoAddress = msg.sender;
    cooAddress = msg.sender;
  }
  
  function getTotalSupply() public view returns (uint) {
    return tokens.length;
  }
  
  function getInitialPriceOfToken(uint _tokenId) public pure returns (uint) {
    if (_tokenId > CLUB_INDEX)
      return PLAYER_PRICE;
    if (_tokenId > NATION_INDEX)
      return CLUB_PRICE;
    return NATION_PRICE;
  }

  function getNextPrice(uint price, uint _tokenId) public pure returns (uint) {
    if (price < 0.05 ether)
      return price.mul(200).div(93); //x2
    if (price < 0.5 ether)
      return price.mul(150).div(93); //x1.5
    if (price < 2 ether)
      return price.mul(130).div(93); //x1.3
    return price.mul(120).div(93); //x1.2
  }

  function buyToken(uint _tokenId) public payable {
    require(!isContract(msg.sender));
    
    Token memory token = collectibleIdx[_tokenId];
    address oldOwner = address(0);
    uint256 sellingPrice;
    if (token.owner == address(0)) {
        sellingPrice = getInitialPriceOfToken(_tokenId);
        token = Token({
            owner: msg.sender,
            price: sellingPrice
        });
    } else {
        oldOwner = token.owner;
        sellingPrice = token.price;
        require(oldOwner != msg.sender);
    }
    require(msg.value >= sellingPrice);
    
    address[3] storage lastOwners = mapToLastOwners[_tokenId];
    uint256 payment = _handle(_tokenId, sellingPrice, lastOwners);

    // Transfers the Token
    token.owner = msg.sender;
    token.price = getNextPrice(sellingPrice, _tokenId);
    mapToLastOwners[_tokenId] = _addLastOwner(lastOwners, oldOwner);

    collectibleIdx[_tokenId] = token;
    if (oldOwner != address(0)) {
      // Payment for old owner
      oldOwner.transfer(payment);
      // clear any previously approved ownership exchange
      delete collectibleIndexToApproved[_tokenId];
    } else {
      Birth(_tokenId, sellingPrice);
      tokens.push(_tokenId);
    }

    TokenSold(_tokenId, sellingPrice, oldOwner, msg.sender);
    Transfer(oldOwner, msg.sender, _tokenId);

    // refund when paid too much
    uint256 purchaseExcess = msg.value.sub(sellingPrice);
    if (purchaseExcess > 0) {
        msg.sender.transfer(purchaseExcess);
    }
  }

function _handle(uint256 _tokenId, uint256 sellingPrice, address[3] lastOwners) private returns (uint256) {
    uint256 pPrice = sellingPrice.div(100);
    uint256 tax = pPrice.mul(7); // initial dev cut = 7%
    if (_tokenId > CLUB_INDEX) {
        uint256 clubId = _tokenId % CLUB_INDEX;
        Token storage clubToken = collectibleIdx[clubId];
        if (clubToken.owner != address(0)) {
            uint256 clubTax = pPrice.mul(2); // 2% club tax;
            tax += clubTax;
            clubToken.owner.transfer(clubTax);
        }

        uint256 nationId = clubId % NATION_INDEX;
        Token storage nationToken = collectibleIdx[nationId];
        if (nationToken.owner != address(0)) {
            tax += pPrice; // 1% nation tax;
            nationToken.owner.transfer(pPrice);
        }
    } else if (_tokenId > NATION_INDEX) {
        nationId = _tokenId % NATION_INDEX;
        nationToken = collectibleIdx[nationId];
        if (nationToken.owner != address(0)) {
            tax += pPrice; // 1% nation tax;
            nationToken.owner.transfer(pPrice);
        }
    }

    //Pay tax to the previous 3 owners
    uint256 lastOwnerTax;
    if (lastOwners[0] != address(0)) {
      tax += pPrice; // 1% 3rd payment
      lastOwners[0].transfer(pPrice);
    }
    if (lastOwners[1] != address(0)) {
      lastOwnerTax = pPrice.mul(2); // 2% 2nd payment
      tax += lastOwnerTax;
      lastOwners[1].transfer(lastOwnerTax);
    }
    if (lastOwners[2] != address(0)) {
      lastOwnerTax = pPrice.mul(3); // 3% 1st payment
      tax += lastOwnerTax;
      lastOwners[2].transfer(lastOwnerTax);
    }

    return sellingPrice.sub(tax);
}

function _addLastOwner(address[3] lastOwners, address oldOwner) pure private returns (address[3]) {
    lastOwners[0] = lastOwners[1];
    lastOwners[1] = lastOwners[2];
    lastOwners[2] = oldOwner;
    return lastOwners;
}
  /*** ACCESS MODIFIERS ***/
  /// @dev Access modifier for CEO-only functionality
  modifier onlyCEO() {
    require(msg.sender == ceoAddress);
    _;
  }

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

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

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

    collectibleIndexToApproved[_tokenId] = _to;

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

  /// @dev Creates a new promo collectible with the given name, with given _price and assignes it to an address.
  function createPromoCollectible(uint256 tokenId, address _owner, uint256 _price) public onlyCLevel {
    Token memory token = collectibleIdx[tokenId];
    require(token.owner == address(0));
    require(promoCreatedCount < PROMO_CREATION_LIMIT);

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

    if (_price <= 0) {
      _price = getInitialPriceOfToken(tokenId);
    }

    promoCreatedCount++;
    token = Token({
        owner: collectibleOwner,
        price: _price
    });
    collectibleIdx[tokenId] = token;
    Birth(tokenId, _price);
    tokens.push(tokenId);

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

  }

  bool isChangePriceLocked = false;
  // allows owners of tokens to decrease the price of them or if there is no owner the coo can do it
  function changePrice(uint256 _tokenId, uint256 newPrice) public {
    require((_owns(msg.sender, _tokenId) && !isChangePriceLocked) || (_owns(address(0), _tokenId) && msg.sender == cooAddress));
    Token storage token = collectibleIdx[_tokenId];
    require(newPrice < token.price);
    token.price = newPrice;
    collectibleIdx[_tokenId] = token;
  }
  function unlockPriceChange() public onlyCLevel {
    isChangePriceLocked = false;
  }
  function lockPriceChange() public onlyCLevel {
    isChangePriceLocked = true;
  }

  /// @notice Returns all the relevant information about a specific collectible.
  /// @param _tokenId The tokenId of the collectible of interest.
  function getToken(uint256 _tokenId) public view returns (uint256 tokenId, uint256 sellingPrice, address owner, uint256 nextSellingPrice) {
    tokenId = _tokenId;
    Token storage token = collectibleIdx[_tokenId];
    sellingPrice = token.price;
    if (sellingPrice == 0)
      sellingPrice = getInitialPriceOfToken(_tokenId);
    owner = token.owner;
    nextSellingPrice = getNextPrice(sellingPrice, _tokenId);
  }

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

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

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

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


  function priceOf(uint256 _tokenId) public view returns (uint256 price) {
    Token storage token = collectibleIdx[_tokenId];
    if (token.owner == address(0)) {
        price = getInitialPriceOfToken(_tokenId);
    } else {
        price = token.price;
    }
  }

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

    ceoAddress = _newCEO;
  }

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

    cooAddress = _newCOO;
  }

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

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

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

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

    _transfer(oldOwner, newOwner, _tokenId);
  }

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

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

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

    _transfer(_from, _to, _tokenId);
  }

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

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

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

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

  /// 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 result) {
      uint256 totalTokens = tokens.length;
      uint256 tokenIndex;
      uint256 tokenId;
      result = 0;
      for (tokenIndex = 0; tokenIndex < totalTokens; tokenIndex++) {
        tokenId = tokens[tokenIndex];
        if (collectibleIdx[tokenId].owner == _owner) {
          result = result.add(1);
        }
      }
      return result;
  }

  /// @dev Assigns ownership of a specific Collectible to an address.
  function _transfer(address _from, address _to, uint256 _tokenId) private {
    //transfer ownership
    collectibleIdx[_tokenId].owner = _to;

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

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


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

      uint256 tokenIndex;
      uint256 tokenId;
      for (tokenIndex = 0; tokenIndex < totalTokens; tokenIndex++) {
        tokenId = tokens[tokenIndex];
        if (collectibleIdx[tokenId].owner == _owner) {
          result[resultIndex] = tokenId;
          resultIndex = resultIndex.add(1);
        }
      }
      return result;
    }
  }

    /* Util */
  function isContract(address addr) private view returns (bool) {
    uint size;
    assembly { size := extcodesize(addr) } // solium-disable-line
    return size > 0;
  }
}



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":"promoCreatedCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ceoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"buyToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getInitialPriceOfToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"unlockPriceChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lockPriceChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"result","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"ownerTokens","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"price","type":"uint256"},{"name":"_tokenId","type":"uint256"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createPromoCollectible","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":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"newPrice","type":"uint256"}],"name":"changePrice","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":"getTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getToken","outputs":[{"name":"tokenId","type":"uint256"},{"name":"sellingPrice","type":"uint256"},{"name":"owner","type":"address"},{"name":"nextSellingPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"startPrice","type":"uint256"}],"name":"Birth","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"winner","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
60606040526007805460ff19169055341561001957600080fd5b60048054600160a060020a033316600160a060020a03199182168117909255600580549091169091179055611866806100536000396000f3006060604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305e45546811461016e57806306fdde0314610193578063095ea7b31461021d5780630a0f8168146102415780630b7e9c44146102705780631051db341461028f57806323b872dd146102b657806327d7874c146102de5780632ba73c15146102fd5780632d296bf11461031c57806343a7f7491461032757806353acb23f1461033d5780636352211e146103505780636eb5ad4f1461036657806370a08231146103795780638462151c14610398578063915082641461040a57806395d89b4114610423578063a3f4df7e14610436578063a9059cbb14610449578063ad731de71461046b578063b047fb5014610490578063b2e6ceeb146104a3578063b3de019c146104b9578063b9186d7d146104d2578063c4e41b22146104e8578063e4b50cb8146104fb578063f76f8d781461054e575b600080fd5b341561017957600080fd5b610181610561565b60405190815260200160405180910390f35b341561019e57600080fd5b6101a6610567565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e25780820151838201526020016101ca565b50505050905090810190601f16801561020f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022857600080fd5b61023f600160a060020a03600435166024356105a9565b005b341561024c57600080fd5b610254610628565b604051600160a060020a03909116815260200160405180910390f35b341561027b57600080fd5b61023f600160a060020a0360043516610637565b341561029a57600080fd5b6102a2610679565b604051901515815260200160405180910390f35b34156102c157600080fd5b61023f600160a060020a036004358116906024351660443561067e565b34156102e957600080fd5b61023f600160a060020a03600435166106cc565b341561030857600080fd5b61023f600160a060020a036004351661071e565b61023f600435610770565b341561033257600080fd5b610181600435610afb565b341561034857600080fd5b61023f610b3e565b341561035b57600080fd5b610254600435610b80565b341561037157600080fd5b61023f610bb4565b341561038457600080fd5b610181600160a060020a0360043516610bf9565b34156103a357600080fd5b6103b7600160a060020a0360043516610c71565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103f65780820151838201526020016103de565b505050509050019250505060405180910390f35b341561041557600080fd5b610181600435602435610d83565b341561042e57600080fd5b6101a6610e28565b341561044157600080fd5b6101a6610e69565b341561045457600080fd5b61023f600160a060020a0360043516602435610ea0565b341561047657600080fd5b61023f600435600160a060020a0360243516604435610ed8565b341561049b57600080fd5b610254611075565b34156104ae57600080fd5b61023f600435611084565b34156104c457600080fd5b61023f6004356024356110f1565b34156104dd57600080fd5b61018160043561119b565b34156104f357600080fd5b6101816111d8565b341561050657600080fd5b6105116004356111de565b6040518085815260200184815260200183600160a060020a0316600160a060020a0316815260200182815260200194505050505060405180910390f35b341561055957600080fd5b6101a661122b565b60065481565b61056f61172d565b60408051908101604052600e81527f536f63636572416c6c5374617273000000000000000000000000000000000000602082015290505b90565b6105b33382611262565b15156105be57600080fd5b600081815260026020526040908190208054600160a060020a031916600160a060020a038581169182179092559133909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b600454600160a060020a031681565b60045433600160a060020a0390811691161480610662575060055433600160a060020a039081169116145b151561066d57600080fd5b61067681611289565b50565b600190565b6106888382611262565b151561069357600080fd5b61069d8282611314565b15156106a857600080fd5b6106b182611334565b15156106bc57600080fd5b6106c7838383611342565b505050565b60045433600160a060020a039081169116146106e757600080fd5b600160a060020a03811615156106fc57600080fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b60045433600160a060020a0390811691161461073957600080fd5b600160a060020a038116151561074e57600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b61077861173f565b6000806000806000610789336113de565b1561079357600080fd5b600087815260208190526040908190209080519081016040528154600160a060020a031681526001909101546020820152955060009450848651600160a060020a0316141561080b576107e587610afb565b935060408051908101604052600160a060020a0333168152602081018590529550610837565b855194508560200151935033600160a060020a031685600160a060020a03161415151561083757600080fd5b348490101561084557600080fd5b60016000888152602001908152602001600020925061089f87858560038060200260405190810160405291906060830182845b8154600160a060020a031681526001909101906020018083116108785750505050506113e6565b600160a060020a033316875291506108b78488610d83565b60208701526108fe836003606060405190810160405291906060830182845b8154600160a060020a031681526001909101906020018083116108d657505050505086611689565b6000888152600160205260409020610917916003611756565b506000878152602081905260409020869081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550600160a060020a038516156109b257600160a060020a03851682156108fc0283604051600060405180830381858888f19350505050151561099157600080fd5b60008781526002602052604090208054600160a060020a0319169055610a0e565b7f52de1b99e2a2ea05a5f0172a69113edb62e0063b92a251f693a7233a5a3a3133878560405191825260208201526040908101905180910390a160038054600181016109fe83826117b0565b5060009182526020909120018790555b867fb45b7a510d22eabde36919bed5551eccad687e7b55e2d2aa3033dc0786a9877b858733604051928352600160a060020a039182166020840152166040808301919091526060909101905180910390a233600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8960405190815260200160405180910390a3610ab6348563ffffffff6116c316565b90506000811115610af257600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610af257600080fd5b50505050505050565b6000620f4240821115610b16575066038d7ea4c68000610b39565b6103e8821115610b2e5750662386f26fc10000610b39565b5067016345785d8a00005b919050565b60045433600160a060020a0390811691161480610b69575060055433600160a060020a039081169116145b1515610b7457600080fd5b6007805460ff19169055565b60008181526020819052604081208054600160a060020a03161515610ba457600080fd5b54600160a060020a031692915050565b60045433600160a060020a0390811691161480610bdf575060055433600160a060020a039081169116145b1515610bea57600080fd5b6007805460ff19166001179055565b60035460009081805b82821015610c69576003805483908110610c1857fe5b600091825260208083209091015480835290829052604090912054909150600160a060020a039081169086161415610c5e57610c5b84600163ffffffff6116d516565b93505b600190910190610c02565b505050919050565b610c7961172d565b6000610c8361172d565b600080600080610c9288610bf9565b9550851515610cc2576000604051805910610caa5750595b90808252806020026020018201604052509650610d78565b85604051805910610cd05750595b90808252806020026020018201604052509450610ceb6111d8565b935060009250600091505b83821015610d74576003805483908110610d0c57fe5b600091825260208083209091015480835290829052604090912054909150600160a060020a039081169089161415610d695780858481518110610d4b57fe5b60209081029091010152610d6683600163ffffffff6116d516565b92505b600190910190610cf6565b8496505b505050505050919050565b600066b1a2bc2ec50000831015610dbd57610db6605d610daa8560c863ffffffff6116eb16565b9063ffffffff61171616565b9050610e22565b6706f05b59d3b20000831015610de357610db6605d610daa85609663ffffffff6116eb16565b671bc16d674ec80000831015610e0957610db6605d610daa85608263ffffffff6116eb16565b610e1f605d610daa85607863ffffffff6116eb16565b90505b92915050565b610e3061172d565b60408051908101604052600381527f53415300000000000000000000000000000000000000000000000000000000006020820152905090565b60408051908101604052600e81527f536f63636572416c6c5374617273000000000000000000000000000000000000602082015281565b610eaa3382611262565b1515610eb557600080fd5b610ebe82611334565b1515610ec957600080fd5b610ed4338383611342565b5050565b610ee061173f565b60045460009033600160a060020a0390811691161480610f0e575060055433600160a060020a039081169116145b1515610f1957600080fd5b600085815260208190526040908190209080519081016040528154600160a060020a031681526001909101546020820152915060008251600160a060020a031614610f6357600080fd5b60065461c3509010610f7457600080fd5b5082600160a060020a0381161515610f945750600554600160a060020a03165b60008311610fa857610fa585610afb565b92505b600680546001019055604080519081016040908152600160a060020a0383168252602080830186905260008881529081905220909250829081518154600160a060020a031916600160a060020a03919091161781556020820151600190910155507f52de1b99e2a2ea05a5f0172a69113edb62e0063b92a251f693a7233a5a3a3133858460405191825260208201526040908101905180910390a1600380546001810161105583826117b0565b506000918252602082200186905561106e908287611342565b5050505050565b600554600160a060020a031681565b60008181526020819052604081208054339290600160a060020a031615156110ab57600080fd5b508054600160a060020a03166110c083611334565b15156110cb57600080fd5b6110d58385611314565b15156110e057600080fd5b6110eb818486611342565b50505050565b60006110fd3384611262565b801561110c575060075460ff16155b80611137575061111d600084611262565b8015611137575060055433600160a060020a039081169116145b151561114257600080fd5b5060008281526020819052604090206001810154821061116157600080fd5b600180820192835560009384526020849052604090932090548154600160a060020a031916600160a060020a039091161781559054910155565b60008181526020819052604081208054600160a060020a031615156111ca576111c383610afb565b91506111d2565b806001015491505b50919050565b60035490565b6000818152602081905260408120600181015483929091819083151561120a5761120786610afb565b93505b8054600160a060020a031692506112218487610d83565b9150509193509193565b60408051908101604052600381527f5341530000000000000000000000000000000000000000000000000000000000602082015281565b60008181526020819052604090208054600160a060020a03848116911614905b5092915050565b600160a060020a03811615156112d757600454600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156112d257600080fd5b610676565b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f19350505050151561067657600080fd5b600090815260026020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b60008181526020819052604090208054600160a060020a031916600160a060020a03848116919091179091558316156113925760008181526002602052604090208054600160a060020a03191690555b81600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b6000903b1190565b600080808080808080806114018b606463ffffffff61171616565b975061141488600763ffffffff6116eb16565b9650620f42408c11156114f757620f42408c06600081815260208190526040902080549197509550600160a060020a0316156114945761145b88600263ffffffff6116eb16565b855497810197909450600160a060020a031684156108fc0285604051600060405180830381858888f19350505050151561149457600080fd5b6103e88606600081815260208190526040902080549194509250600160a060020a0316156114f257815496880196600160a060020a031688156108fc0289604051600060405180830381858888f1935050505015156114f257600080fd5b61155f565b6103e88c111561155f576103e88c06600081815260208190526040902080549194509250600160a060020a03161561155f57815496880196600160a060020a031688156108fc0289604051600060405180830381858888f19350505050151561155f57600080fd5b60008a51600160a060020a0316146115a757958701958951600160a060020a031688156108fc0289604051600060405180830381858888f1935050505015156115a757600080fd5b600060208b0151600160a060020a031614611608576115cd88600263ffffffff6116eb16565b96870196905060208a0151600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561160857600080fd5b600060408b0151600160a060020a0316146116695761162e88600363ffffffff6116eb16565b96870196905060408a0151600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561166957600080fd5b6116798b8863ffffffff6116c316565b9c9b505050505050505050505050565b6116916117d4565b6020830151600160a060020a031683526040830151600160a060020a0390811660208501529190911660408301525090565b6000828211156116cf57fe5b50900390565b6000828201838110156116e457fe5b9392505050565b6000808315156116fe5760009150611282565b5082820282848281151561170e57fe5b04146116e457fe5b600080828481151561172457fe5b04949350505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b82600381019282156117a0579160200282015b828111156117a05782518254600160a060020a031916600160a060020a039190911617825560209290920191600190910190611769565b506117ac9291506117fc565b5090565b8154818355818115116106c7576000838152602090206106c7918101908301611820565b60606040519081016040526003815b6000815260001990910190602001816117e35790505090565b6105a691905b808211156117ac578054600160a060020a0319168155600101611802565b6105a691905b808211156117ac57600081556001016118265600a165627a7a723058201646eef852006a12a821b19b14971fb2973789b8e16fca28eab45b7ce05068490029

   Swarm Source:
bzzr://1646eef852006a12a821b19b14971fb2973789b8e16fca28eab45b7ce0506849

 

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.