Contract Overview
Balance: 0.11821 Ether
Ether Value: $21.09 (@ $178.44/ETH)
Transactions: 63 txns
Token Tracker: CRYPTOSKETCHES (S̈)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x00f9c7999a4e3ca89d153874d64774bed3b7440cat txn 0x9ced7d38bec50271dc9b1b39a532ec8810571c8ebf0582b8028c38d63e83efa8
Token Balance:
 Latest 25 transactions from a total of 63 transactions

TxHash Age From To Value [TxFee]
0x2b3a210fb88b7627a7364eea71b3b507c8f9fe340fba4b53475259ec510629df37 days 14 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00022344
0xec43607a21632a2e2786bb019e76d7c251c4314c818f3eb504d4b0e473482a7537 days 20 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.012179064
0x6683b112f3203422674c123e69a95da1cd178d8289cfaf631d25ebad922e50cb39 days 1 hr ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00067032
0xb7de691dc3d56e7d78edd32a6df0c029ec5a066183910a880d99aa680eb25d4c39 days 1 hr ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.009590352
0x1445a359549c92de1e0283330b691298b7d39cf381b2c5d1ba428708f7621ba946 days 4 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00044688
0xdb5363dbd56d7febe8233a3851775bea56c06c64bb1e6a9fb308e81b965e06b346 days 20 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.01254215
0x2a08b9ae5237c72d31d99b1f5d02b475936800eeac6268e70b49d7d9cfd65bef51 days 2 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.0011172
0x933788836a3e1f0f2c057747fe6399f14e72151485dad180e92f82b3ac5028ce51 days 2 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.01619422
0x4775dc645716e213c34ddbc48f0638274e1b94c1b5311db9a988f8c118249d3c118 days 20 hrs ago0x4dc3ee22f48616fed67e6a4e004540b9c214d21e  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.00021
0x006090e6053e15317ca2a8e4b37acf618b951de2bb02231743678da928996fa7179 days 20 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.0011172
0x7fa7678c63f8da68c4217f68b32ab180998561979d4123eba8eb15f5adeffa60179 days 20 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.020788344
0x60e4abf6acbcdd041179dd8a4ac38ce0550e834ae3b544a18f6dd1b1142d8a99179 days 23 hrs ago0x00f9c7999a4e3ca89d153874d64774bed3b7440c  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.00632502
0xda2c2e0808ab3534698d5bc13606a30e63d84709094332e93b255e2670a0bcc9180 days 14 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.000893248
0x90676665b2209d32797477917675d83a52742751761b37ba0ca3b183ddb0fe19180 days 15 hrs ago0x89f2420190d752a29671dad303446cdbe8c2193a  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.01030645
0x2ce06e1a0c07dbf381165a3e4c9dda95f77c67f7af888bb0972e141176c4ea10196 days 10 hrs ago0xd317f59ad2187f94c94c27414a2d95e2f8fc088c  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00012608
0x64a7ba8d3bada6f57a758787c39f8470a36815448e48eb1ffeaaf3eac3c37e5e196 days 10 hrs ago0xd317f59ad2187f94c94c27414a2d95e2f8fc088c  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00012608
0x86ef3d01a37165b94a8b93fd8508f08221d4dda2c7b3bdd53c842cd4d3532118196 days 10 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00012608
0x74d575eb727566994d2c5778bf4aeaacc89eaee137a03b83dca0b08ffb43b4d4196 days 10 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00012608
0x9047e184c00d826f94ecd65935e98ece415585091d1bf8139a04fea6ab0d9eae196 days 10 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00012608
0xf7465508d3a247257e1260b06cb08e6cfe833790c88231c4137625bbfd7b2bed196 days 10 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.000100864
0x872b994da3ef62d59ebc6a27f28d43c09b5e0d2d61f1a9c69906a949bd2eeebe199 days 8 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.0005586
0x584647e0de55887da8dec1c18a23e2410d45bb7b769d4cca29ce13f5dbbd76d1199 days 8 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.00409359224
0xc3779e884736809c473f7ba35640fc7d1d3189ede05d4c95862e7e4cb946a96d200 days 9 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00033516
0xb2656d4e8cdae173624b97d86b1d7cc6d15f75c9dcc642720cc9667956ca496f201 days 7 hrs ago0x572fc682f41fa69c2f32c5831f16787c7cc62e86  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90.005 Ether0.002438884
0xac137c544b51b4831cd41865946173b1bed4d96920dfcef06e2cc5ca5d6f3ad8203 days 11 hrs ago0x00f9c7999a4e3ca89d153874d64774bed3b7440c  IN   0x31c70e9a1bab16f47710e4b302c49998cfb36ef90 Ether0.00055828
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 3 Internal Transactions

ParentTxHash Block Age From To Value
0xdb7363b5a110a2017a42dfa2687045fc7926b01b85565a55f172a727e7111cfa5513989205 days 10 hrs ago0x31c70e9a1bab16f47710e4b302c49998cfb36ef90xe498901a6054aabc3a17b00524d43e0d4146b10c0.001 Ether
0x5b65070d891ded50237f5d3e540395a25bb109b1480e9c85c39d5431665e9cb25505443206 days 21 hrs ago0x31c70e9a1bab16f47710e4b302c49998cfb36ef90x572fc682f41fa69c2f32c5831f16787c7cc62e860.00001 Ether
0x0a278d79434722f474bd9b9bfc97fdd3c028869a6cb658e8308e1b5d47b6769a5397090225 days 7 hrs ago0x31c70e9a1bab16f47710e4b302c49998cfb36ef90x5621906ce5b7b91d73e94a974b62066a030c06c90.015 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

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



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.18;

/*

  Sketches:
  - can be created
  - can be traded: you make a bid, the other party can accept or you can withdraw the bid
  - can not be destroyed

*/

contract Ownable {
  address public owner;


  function Ownable() public {
    owner = msg.sender;
  }


  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  function transferOwnership(address newOwner) external onlyOwner {
    require(newOwner != address(0));
    owner = newOwner;
  }

}


contract SketchMarket is Ownable {
  // ERC-20 compatibility {
  string public standard = "CryptoSketches";
  string public name;
  string public symbol;
  uint8 public decimals;
  uint256 public totalSupply;

  mapping (address => uint256) public balanceOf;

  event Transfer(address indexed from, address indexed to, uint256 value);
  // }

  // Sketch storage {
  mapping(uint256 => string)  public sketchIndexToName;
  mapping(uint256 => string)  public sketchIndexToData;
  mapping(uint256 => address) public sketchIndexToHolder;
  mapping(uint256 => address) public sketchIndexToAuthor;
  mapping(uint256 => uint8)   public sketchIndexToOwnerFlag;

  mapping(address => uint256) public sketchAuthorCount;

  event SketchCreated(address indexed author, uint256 indexed sketchIndex);
  // }

  // Sketch trading {

  // Cut owner takes on each auction, measured in basis points (1/100 of a percent).
  // Values 0-10,000 map to 0%-100%
  uint256 public ownerCut;

  // Amount owner takes on each submission, measured in Wei.
  uint256 public listingFeeInWei;

  mapping (uint256 => Offer) public sketchIndexToOffer;
  mapping (uint256 => Bid) public sketchIndexToHighestBid;
  mapping (address => uint256) public accountToWithdrawableValue;

  event SketchTransfer(uint256 indexed sketchIndex, address indexed fromAddress, address indexed toAddress);
  event SketchOffered(uint256 indexed sketchIndex, uint256 minValue, address indexed toAddress);
  event SketchBidEntered(uint256 indexed sketchIndex, uint256 value, address indexed fromAddress);
  event SketchBidWithdrawn(uint256 indexed sketchIndex, uint256 value, address indexed fromAddress);
  event SketchBought(uint256 indexed sketchIndex, uint256 value, address indexed fromAddress, address indexed toAddress);
  event SketchNoLongerForSale(uint256 indexed sketchIndex);

  struct Offer {
    bool isForSale;
    uint256 sketchIndex;
    address seller;
    uint256 minValue;   // ETH
    address onlySellTo; // require a specific seller address
  }

  struct Bid {
    bool hasBid;
    uint256 sketchIndex;
    address bidder;
    uint256 value;
  }
  // }

  // -- Constructor (see also: Ownable)

  function SketchMarket() public payable {
    // ERC-20 token
    totalSupply = 0;
    name = "CRYPTOSKETCHES";
    symbol = "S̈";
    decimals = 0; // whole number; number of sketches owned

    // Trading parameters
    ownerCut = 375; // 3.75% cut to auctioneer
    listingFeeInWei = 5000000000000000; // 0.005 ETH, to discourage spam
  }

  function setOwnerCut(uint256 _ownerCut) external onlyOwner {
    require(_ownerCut == uint256(uint16(_ownerCut)));
    require(_ownerCut <= 10000);
    ownerCut = _ownerCut;
  }

  function setListingFeeInWei(uint256 _listingFeeInWei) external onlyOwner {
    require(_listingFeeInWei == uint256(uint128(_listingFeeInWei))); // length check
    listingFeeInWei = _listingFeeInWei;
  }

  // -- Creation and fetching methods

  function createSketch(string _name, string _data) external payable {
    require(msg.value == listingFeeInWei);
    require(bytes(_name).length < 256);     // limit name byte size to 255
    require(bytes(_data).length < 1048576); // limit drawing byte size to 1,048,576

    accountToWithdrawableValue[owner] += msg.value; // auctioneer gets paid

    sketchIndexToHolder[totalSupply] = msg.sender;
    sketchIndexToAuthor[totalSupply] = msg.sender;
    sketchAuthorCount[msg.sender]++;

    sketchIndexToName[totalSupply] = _name;
    sketchIndexToData[totalSupply] = _data;

    balanceOf[msg.sender]++;

    SketchCreated(msg.sender, totalSupply);

    totalSupply++;
  }

  function setOwnerFlag(uint256 index, uint8 _ownerFlag) external onlyOwner {
    sketchIndexToOwnerFlag[index] = _ownerFlag;
  }

  function getSketch(uint256 index) external view returns (string _name, string _data, address _holder, address _author, uint8 _ownerFlag, uint256 _highestBidValue, uint256 _offerMinValue) {
    require(totalSupply != 0);
    require(index < totalSupply);

    _name = sketchIndexToName[index];
    _data = sketchIndexToData[index];
    _holder = sketchIndexToHolder[index];
    _author = sketchIndexToAuthor[index];
    _ownerFlag = sketchIndexToOwnerFlag[index];
    _highestBidValue = sketchIndexToHighestBid[index].value;
    _offerMinValue = sketchIndexToOffer[index].minValue;
  }

  function getBidCountForSketchesWithHolder(address _holder) external view returns (uint256) {
    uint256 count = balanceOf[_holder];

    if (count == 0) {
      return 0;
    } else {
      uint256 result = 0;
      uint256 totalCount = totalSupply;
      uint256 sketchIndex;

      for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
        if ((sketchIndexToHolder[sketchIndex] == _holder) && sketchIndexToHighestBid[sketchIndex].hasBid) {
          result++;
        }
      }
      return result;
    }
  }

  function getSketchesOnOffer() external view returns (uint256[]) {
    if (totalSupply == 0) {
      return new uint256[](0);
    }

    uint256 count = 0;
    uint256 totalCount = totalSupply;
    uint256 sketchIndex;

    for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
      if (sketchIndexToOffer[sketchIndex].isForSale) {
        count++;
      }
    }

    if (count == 0) {
      return new uint256[](0);
    }

    uint256[] memory result = new uint256[](count);
    uint256 resultIndex = 0;

    for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
      if (sketchIndexToOffer[sketchIndex].isForSale) {
        result[resultIndex] = sketchIndex;
        resultIndex++;
      }
    }
    return result;
  }

  function getSketchesOnOfferWithHolder(address _holder) external view returns (uint256[]) {
    if (totalSupply == 0) {
      return new uint256[](0);
    }

    uint256 count = 0;
    uint256 totalCount = totalSupply;
    uint256 sketchIndex;

    for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
      if (sketchIndexToOffer[sketchIndex].isForSale && (sketchIndexToHolder[sketchIndex] == _holder)) {
        count++;
      }
    }

    if (count == 0) {
      return new uint256[](0);
    }

    uint256[] memory result = new uint256[](count);
    uint256 resultIndex = 0;

    for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
      if (sketchIndexToOffer[sketchIndex].isForSale && (sketchIndexToHolder[sketchIndex] == _holder)) {
        result[resultIndex] = sketchIndex;
        resultIndex++;
      }
    }
    return result;
  }

  function getSketchesWithHolder(address _holder) external view returns (uint256[]) {
    uint256 count = balanceOf[_holder];

    if (count == 0) {
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](count);
      uint256 totalCount = totalSupply;
      uint256 resultIndex = 0;
      uint256 sketchIndex;

      for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
        if (sketchIndexToHolder[sketchIndex] == _holder) {
          result[resultIndex] = sketchIndex;
          resultIndex++;
        }
      }
      return result;
    }
  }

  function getSketchesWithAuthor(address _author) external view returns (uint256[]) {
    uint256 count = sketchAuthorCount[_author];

    if (count == 0) {
      return new uint256[](0);      
    } else {
      uint256[] memory result = new uint256[](count);
      uint256 totalCount = totalSupply;
      uint256 resultIndex = 0;
      uint256 sketchIndex;

      for (sketchIndex = 0; sketchIndex <= totalCount; sketchIndex++) {
        if (sketchIndexToAuthor[sketchIndex] == _author) {
          result[resultIndex] = sketchIndex;
          resultIndex++;
        }
      }
      return result;
    }
  }

  // -- Trading methods

  modifier onlyHolderOf(uint256 sketchIndex) {
    require(totalSupply != 0);
    require(sketchIndex < totalSupply);
    require(sketchIndexToHolder[sketchIndex] == msg.sender);
    _;
 }

  // Transfer holdership without requiring payment
  function transferSketch(address to, uint256 sketchIndex) external onlyHolderOf(sketchIndex) {
    require(to != address(0));
    require(balanceOf[msg.sender] > 0);

    if (sketchIndexToOffer[sketchIndex].isForSale) {
      sketchNoLongerForSale(sketchIndex); // remove the offer
    }

    sketchIndexToHolder[sketchIndex] = to;
    balanceOf[msg.sender]--;
    balanceOf[to]++;

    Transfer(msg.sender, to, 1); // ERC-20
    SketchTransfer(sketchIndex, msg.sender, to);

    // If the recipient had bid for the Sketch, remove the bid and make it possible to refund its value
    Bid storage bid = sketchIndexToHighestBid[sketchIndex];
    if (bid.bidder == to) {
        accountToWithdrawableValue[to] += bid.value;
        sketchIndexToHighestBid[sketchIndex] = Bid(false, sketchIndex, 0x0, 0);
    }
  }

  // Withdraw Sketch from sale (NOTE: does not cancel bids, since bids must be withdrawn manually by bidders)
  function sketchNoLongerForSale(uint256 _sketchIndex) public onlyHolderOf(_sketchIndex) {
    sketchIndexToOffer[_sketchIndex] = Offer(false, _sketchIndex, msg.sender, 0, 0x0);
    SketchNoLongerForSale(_sketchIndex);
  }

  // Place a Sketch up for sale, to any buyer
  function offerSketchForSale(uint256 _sketchIndex, uint256 _minSalePriceInWei) public onlyHolderOf(_sketchIndex) {
    sketchIndexToOffer[_sketchIndex] = Offer(true, _sketchIndex, msg.sender, _minSalePriceInWei, 0x0);
    SketchOffered(_sketchIndex, _minSalePriceInWei, 0x0);
  }

  // Place a Sketch up for sale, but only to a specific buyer
  function offerSketchForSaleToAddress(uint256 _sketchIndex, uint256 _minSalePriceInWei, address _toAddress) public onlyHolderOf(_sketchIndex) {
    require(_toAddress != address(0));
    require(_toAddress != msg.sender);

    sketchIndexToOffer[_sketchIndex] = Offer(true, _sketchIndex, msg.sender, _minSalePriceInWei, _toAddress);
    SketchOffered(_sketchIndex, _minSalePriceInWei, _toAddress);
  }

  // Accept a bid for a Sketch that you own, receiving the amount for withdrawal at any time - note minPrice safeguard!
  function acceptBidForSketch(uint256 sketchIndex, uint256 minPrice) public onlyHolderOf(sketchIndex) {
    address seller = msg.sender;    
    require(balanceOf[seller] > 0);

    Bid storage bid = sketchIndexToHighestBid[sketchIndex];
    uint256 price = bid.value;
    address bidder = bid.bidder;

    require(price > 0);
    require(price == uint256(uint128(price))); // length check for computeCut(...)
    require(minPrice == uint256(uint128(minPrice))); // length check for computeCut(...)
    require(price >= minPrice); // you may be accepting a different bid than you think, but its value will be at least as high

    sketchIndexToHolder[sketchIndex] = bidder; // transfer actual holdership!
    balanceOf[seller]--; // update balances
    balanceOf[bidder]++;
    Transfer(seller, bidder, 1);

    sketchIndexToOffer[sketchIndex] = Offer(false, sketchIndex, bidder, 0, 0x0); // remove the offer    
    sketchIndexToHighestBid[sketchIndex] = Bid(false, sketchIndex, 0x0, 0); // remove the bid

    uint256 ownerProceeds = computeCut(price);
    uint256 holderProceeds = price - ownerProceeds;

    accountToWithdrawableValue[seller] += holderProceeds; // make profit available to seller for withdrawal
    accountToWithdrawableValue[owner] += ownerProceeds;   // make cut available to auctioneer for withdrawal

    SketchBought(sketchIndex, price, seller, bidder); // note that SketchNoLongerForSale event will not be fired
  }

  // Buy a Sketch that's up for sale now, provided you've matched the Offer price and it's not on offer to a specific buyer
  function buySketch(uint256 sketchIndex) external payable {      
    Offer storage offer = sketchIndexToOffer[sketchIndex];
    uint256 messageValue = msg.value;

    require(totalSupply != 0);
    require(sketchIndex < totalSupply);
    require(offer.isForSale);
    require(offer.onlySellTo == 0x0 || offer.onlySellTo == msg.sender);
    require(messageValue >= offer.minValue);
    require(messageValue == uint256(uint128(messageValue))); // length check for computeCut(...)
    require(offer.seller == sketchIndexToHolder[sketchIndex]); // the holder may have changed since an Offer was last put up

    address holder = offer.seller;
    require(balanceOf[holder] > 0);

    sketchIndexToHolder[sketchIndex] = msg.sender; // transfer actual holdership!
    balanceOf[holder]--; // update balances
    balanceOf[msg.sender]++;
    Transfer(holder, msg.sender, 1);

    sketchNoLongerForSale(sketchIndex); // remove the offer

    uint256 ownerProceeds = computeCut(messageValue);
    uint256 holderProceeds = messageValue - ownerProceeds;

    accountToWithdrawableValue[owner] += ownerProceeds;
    accountToWithdrawableValue[holder] += holderProceeds;

    SketchBought(sketchIndex, messageValue, holder, msg.sender);

    // Refund any bid the new buyer had placed for this Sketch.
    // Other bids have to stay put for continued consideration or until their values have been withdrawn.
    Bid storage bid = sketchIndexToHighestBid[sketchIndex];
    if (bid.bidder == msg.sender) {
        accountToWithdrawableValue[msg.sender] += bid.value;
        sketchIndexToHighestBid[sketchIndex] = Bid(false, sketchIndex, 0x0, 0); // remove the bid
    }
  }

  // Withdraw any value owed to:
  // (a) a buyer that withdraws their bid or invalidates it by purchasing a Sketch outright for its asking price
  // (b) a seller owed funds from the sale of a Sketch
  function withdraw() external {
      uint256 amount = accountToWithdrawableValue[msg.sender];
      // Zero the pending refund before transferring to prevent re-entrancy attacks
      accountToWithdrawableValue[msg.sender] = 0;
      msg.sender.transfer(amount);
  }

  // Enter a bid, regardless of whether the Sketch holder wishes to sell or not
  function enterBidForSketch(uint256 sketchIndex) external payable {
      require(totalSupply != 0);
      require(sketchIndex < totalSupply);
      require(sketchIndexToHolder[sketchIndex] != 0x0); // can't bid on "non-owned" Sketch (theoretically impossible anyway)
      require(sketchIndexToHolder[sketchIndex] != msg.sender); // can't bid on a Sketch that you own

      uint256 price = msg.value; // in wei

      require(price > 0); // can't bid zero
      require(price == uint256(uint128(price))); // length check for computeCut(...)      

      Bid storage existing = sketchIndexToHighestBid[sketchIndex];

      require(price > existing.value); // can't bid less than highest bid

      if (existing.value > 0) {
          // Place the amount from the previous highest bid into escrow for withdrawal at any time
          accountToWithdrawableValue[existing.bidder] += existing.value;
      }
      sketchIndexToHighestBid[sketchIndex] = Bid(true, sketchIndex, msg.sender, price);

      SketchBidEntered(sketchIndex, price, msg.sender);
  }

  function withdrawBidForSketch(uint256 sketchIndex) public {
    require(totalSupply != 0);
    require(sketchIndex < totalSupply);
    require(sketchIndexToHolder[sketchIndex] != 0x0); // can't bid on "non-owned" Sketch (theoretically impossible anyway)
    require(sketchIndexToHolder[sketchIndex] != msg.sender); // can't withdraw a bid for a Sketch that you own
      
    Bid storage bid = sketchIndexToHighestBid[sketchIndex];
    require(bid.bidder == msg.sender); // it has to be your bid

    SketchBidWithdrawn(sketchIndex, bid.value, msg.sender);

    uint256 amount = bid.value;
    sketchIndexToHighestBid[sketchIndex] = Bid(false, sketchIndex, 0x0, 0);

    // Refund the bid money directly
    msg.sender.transfer(amount);
  }

  function computeCut(uint256 price) internal view returns (uint256) {
    // NOTE: We don't use SafeMath (or similar) in this function because
    //  all of our entry functions carefully cap the maximum values for
    //  currency (at 128-bits), and ownerCut <= 10000. The result of this
    //  function is always guaranteed to be <= _price.
    return price * ownerCut / 10000;
  }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_listingFeeInWei","type":"uint256"}],"name":"setListingFeeInWei","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToHolder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToHighestBid","outputs":[{"name":"hasBid","type":"bool"},{"name":"sketchIndex","type":"uint256"},{"name":"bidder","type":"address"},{"name":"value","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSketchesOnOffer","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sketchIndex","type":"uint256"},{"name":"minPrice","type":"uint256"}],"name":"acceptBidForSketch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"listingFeeInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_ownerCut","type":"uint256"}],"name":"setOwnerCut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"getSketchesOnOfferWithHolder","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sketchIndex","type":"uint256"}],"name":"enterBidForSketch","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToOwnerFlag","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sketchIndex","type":"uint256"}],"name":"withdrawBidForSketch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sketchIndex","type":"uint256"},{"name":"_minSalePriceInWei","type":"uint256"},{"name":"_toAddress","type":"address"}],"name":"offerSketchForSaleToAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"accountToWithdrawableValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sketchIndex","type":"uint256"}],"name":"sketchNoLongerForSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToAuthor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToOffer","outputs":[{"name":"isForSale","type":"bool"},{"name":"sketchIndex","type":"uint256"},{"name":"seller","type":"address"},{"name":"minValue","type":"uint256"},{"name":"onlySellTo","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"getBidCountForSketchesWithHolder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_author","type":"address"}],"name":"getSketchesWithAuthor","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sketchIndex","type":"uint256"},{"name":"_minSalePriceInWei","type":"uint256"}],"name":"offerSketchForSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"_ownerFlag","type":"uint8"}],"name":"setOwnerFlag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sketchIndexToData","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"sketchIndex","type":"uint256"}],"name":"transferSketch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getSketch","outputs":[{"name":"_name","type":"string"},{"name":"_data","type":"string"},{"name":"_holder","type":"address"},{"name":"_author","type":"address"},{"name":"_ownerFlag","type":"uint8"},{"name":"_highestBidValue","type":"uint256"},{"name":"_offerMinValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"sketchAuthorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"getSketchesWithHolder","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sketchIndex","type":"uint256"}],"name":"buySketch","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_data","type":"string"}],"name":"createSketch","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"author","type":"address"},{"indexed":true,"name":"sketchIndex","type":"uint256"}],"name":"SketchCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sketchIndex","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"},{"indexed":true,"name":"toAddress","type":"address"}],"name":"SketchTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sketchIndex","type":"uint256"},{"indexed":false,"name":"minValue","type":"uint256"},{"indexed":true,"name":"toAddress","type":"address"}],"name":"SketchOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sketchIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"}],"name":"SketchBidEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sketchIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"}],"name":"SketchBidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sketchIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"},{"indexed":true,"name":"toAddress","type":"address"}],"name":"SketchBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sketchIndex","type":"uint256"}],"name":"SketchNoLongerForSale","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260408051908101604052600e81527f43727970746f536b657463686573000000000000000000000000000000000000602082015260019080516200004d92916020019062000120565b5060008054600160a060020a03191633600160a060020a031617815560055560408051908101604052600e81527f43525950544f534b45544348455300000000000000000000000000000000000060208201526002908051620000b592916020019062000120565b506040805190810160405260038082527f53cc8800000000000000000000000000000000000000000000000000000000006020830152908051620000fe92916020019062000120565b506004805460ff19169055610177600d556611c37937e08000600e55620001c5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016357805160ff191683800117855562000193565b8280016001018555821562000193579182015b828111156200019357825182559160200191906001019062000176565b50620001a1929150620001a5565b5090565b620001c291905b80821115620001a15760008155600101620001ac565b90565b61252a80620001d56000396000f3006060604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101dc57806313b6c8a81461026657806318160ddd1461027e5780631feee4fd146102a3578063313ce567146102d55780633ccfd60b146102fe57806348bf8f39146103115780635a3b7e421461035e5780635fb1f1d714610371578063648236e3146103d757806367e94ae0146103f057806370a0823114610403578063757de5731461042257806383b5ff8b146104385780638b2ad32e1461044b5780638b906ca51461046a5780638da5cb5b1461047557806392fe76481461048857806394a1d75c1461049e57806395d89b41146104b4578063a099e61a146104c7578063ae9dc04c146104dd578063b413519214610502578063b98e276914610521578063be4b102a14610537578063c40ee48b1461054d578063cf7f12ea146105a3578063cfdac910146105c2578063d1ea2786146105e1578063d2718fbe146105fa578063d67ca59c14610616578063d947c8d11461062c578063da323c941461064e578063e0df0e6a14610778578063e210150914610797578063f2fde38b146107b6578063f83d14e6146107d5578063fb84da41146107e0575b600080fd5b34156101e757600080fd5b6101ef6107ff565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022b578082015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027157600080fd5b61027c60043561089d565b005b341561028957600080fd5b6102916108db565b60405190815260200160405180910390f35b34156102ae57600080fd5b6102b96004356108e1565b604051600160a060020a03909116815260200160405180910390f35b34156102e057600080fd5b6102e86108fc565b60405160ff909116815260200160405180910390f35b341561030957600080fd5b61027c610905565b341561031c57600080fd5b610327600435610950565b60405193151584526020840192909252600160a060020a031660408084019190915260608301919091526080909101905180910390f35b341561036957600080fd5b6101ef610987565b341561037c57600080fd5b6103846109f2565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103c35780820151838201526020016103ab565b505050509050019250505060405180910390f35b34156103e257600080fd5b61027c600435602435610b20565b34156103fb57600080fd5b610291610e4c565b341561040e57600080fd5b610291600160a060020a0360043516610e52565b341561042d57600080fd5b61027c600435610e64565b341561044357600080fd5b610291610ea3565b341561045657600080fd5b610384600160a060020a0360043516610ea9565b61027c600435611023565b341561048057600080fd5b6102b96111d9565b341561049357600080fd5b6102e86004356111e8565b34156104a957600080fd5b61027c6004356111fd565b34156104bf57600080fd5b6101ef61138f565b34156104d257600080fd5b6101ef6004356113fa565b34156104e857600080fd5b61027c600435602435600160a060020a0360443516611477565b341561050d57600080fd5b610291600160a060020a03600435166115df565b341561052c57600080fd5b61027c6004356115f1565b341561054257600080fd5b6102b9600435611717565b341561055857600080fd5b610563600435611732565b60405194151585526020850193909352600160a060020a0391821660408086019190915260608501919091529116608083015260a0909101905180910390f35b34156105ae57600080fd5b610291600160a060020a0360043516611770565b34156105cd57600080fd5b610384600160a060020a0360043516611806565b34156105ec57600080fd5b61027c6004356024356118e8565b341561060557600080fd5b61027c60043560ff60243516611a1a565b341561062157600080fd5b6101ef600435611a57565b341561063757600080fd5b61027c600160a060020a0360043516602435611ad4565b341561065957600080fd5b610664600435611d0c565b604051600160a060020a0380871660408301528516606082015260ff8416608082015260a0810183905260c0810182905260e08082528190602082019082018a818151815260200191508051906020019080838360005b838110156106d35780820151838201526020016106bb565b50505050905090810190601f1680156107005780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b8381101561073657808201518382015260200161071e565b50505050905090810190601f1680156107635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b341561078357600080fd5b610291600160a060020a0360043516611eff565b34156107a257600080fd5b610384600160a060020a0360043516611f11565b34156107c157600080fd5b61027c600160a060020a0360043516611feb565b61027c60043561203d565b61027c602460048035828101929082013591813591820191013561231a565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b820191906000526020600020905b81548152906001019060200180831161087857829003601f168201915b505050505081565b60005433600160a060020a039081169116146108b857600080fd5b6fffffffffffffffffffffffffffffffff811681146108d657600080fd5b600e55565b60055481565b600960205260009081526040902054600160a060020a031681565b60045460ff1681565b600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561094d57600080fd5b50565b601060205260009081526040902080546001820154600283015460039093015460ff909216929091600160a060020a039091169084565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b6109fa612451565b6000806000610a07612451565b600060055460001415610a3b576000604051805910610a235750595b90808252806020026020018201604052509550610b18565b600094506005549350600092505b838311610a79576000838152600f602052604090205460ff1615610a6e576001909401935b600190920191610a49565b841515610aa6576000604051805910610a2357505990808252806020026020018201604052509550610b18565b84604051805910610ab45750595b9080825280602002602001820160405250915060009050600092505b838311610b14576000838152600f602052604090205460ff1615610b095782828281518110610afb57fe5b602090810290910101526001015b600190920191610ad0565b8195505b505050505090565b60008060008060008087600554600014151515610b3c57600080fd5b6005548110610b4a57600080fd5b60008181526009602052604090205433600160a060020a03908116911614610b7157600080fd5b33600160a060020a0381166000908152600660205260408120549198509011610b9957600080fd5b6000898152601060205260408120600381015460028201549198509650600160a060020a031694508511610bcc57600080fd5b6fffffffffffffffffffffffffffffffff85168514610bea57600080fd5b6fffffffffffffffffffffffffffffffff88168814610c0857600080fd5b87851015610c1557600080fd5b60008981526009602090815260408083208054600160a060020a031916600160a060020a03898116918217909255908b168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a360a06040519081016040908152600080835260208084018d9052600160a060020a0388168385015260608401829052608084018290528c8252600f9052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a039092169190911790555060806040519081016040908152600080835260208084018d9052828401829052606084018290528c825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550610dce85612445565b600160a060020a038089166000818152601160205260408082208054868c03908101909155825485168352918190208054860190559396509450908616918b907f78faa82aad88666af86f80c39b2e8c838fd1c3b02666408ac27daad30301b1509089905190815260200160405180910390a4505050505050505050565b600e5481565b60066020526000908152604090205481565b60005433600160a060020a03908116911614610e7f57600080fd5b61ffff81168114610e8f57600080fd5b612710811115610e9e57600080fd5b600d55565b600d5481565b610eb1612451565b6000806000610ebe612451565b600060055460001415610ef2576000604051805910610eda5750595b90808252806020026020018201604052509550611019565b600094506005549350600092505b838311610f55576000838152600f602052604090205460ff168015610f3e5750600083815260096020526040902054600160a060020a038881169116145b15610f4a576001909401935b600190920191610f00565b841515610f82576000604051805910610eda57505990808252806020026020018201604052509550611019565b84604051805910610f905750595b9080825280602002602001820160405250915060009050600092505b838311611015576000838152600f602052604090205460ff168015610fea5750600083815260096020526040902054600160a060020a038881169116145b1561100a5782828281518110610ffc57fe5b602090810290910101526001015b600190920191610fac565b8195505b5050505050919050565b6005546000908190151561103657600080fd5b600554831061104457600080fd5b600083815260096020526040902054600160a060020a0316151561106757600080fd5b60008381526009602052604090205433600160a060020a039081169116141561108f57600080fd5b3491506000821161109f57600080fd5b6fffffffffffffffffffffffffffffffff821682146110bd57600080fd5b506000828152601060205260409020600381015482116110dc57600080fd5b6000816003015411156111125760038101546002820154600160a060020a03166000908152601160205260409020805490910190555b60806040519081016040908152600182526020808301869052600160a060020a033316828401526060830185905260008681526010909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550600160a060020a033316837f0da4e9222edcf4f027354f25851c7932ff2dd0af84b03e7a416da7fba6ecd0008460405190815260200160405180910390a3505050565b600054600160a060020a031681565b600b6020526000908152604090205460ff1681565b6005546000908190151561121057600080fd5b600554831061121e57600080fd5b600083815260096020526040902054600160a060020a0316151561124157600080fd5b60008381526009602052604090205433600160a060020a039081169116141561126957600080fd5b6000838152601060205260409020600281015490925033600160a060020a0390811691161461129757600080fd5b33600160a060020a0316837f46cbf8a5f7e81775c28a2fb74a25c4a145701b93c7d3d6795ce4f43a74965ab4846003015460405190815260200160405180910390a350600381015460806040519081016040908152600080835260208084018790528284018290526060840182905286825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561138a57600080fd5b505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b60076020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b6005548390151561148757600080fd5b600554811061149557600080fd5b60008181526009602052604090205433600160a060020a039081169116146114bc57600080fd5b600160a060020a03821615156114d157600080fd5b33600160a060020a031682600160a060020a0316141515156114f257600080fd5b60a06040519081016040908152600182526020808301879052600160a060020a033381168385015260608401879052851660808401526000878152600f909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a0392831617905583169050847f8d05f5b2a7f788598963ab2ff984557e36e132a53525cadc40d0a955df45b3b38560405190815260200160405180910390a350505050565b60116020526000908152604090205481565b6005548190151561160157600080fd5b600554811061160f57600080fd5b60008181526009602052604090205433600160a060020a0390811691161461163657600080fd5b60a0604051908101604090815260008083526020808401869052600160a060020a033316838501526060840182905260808401829052858252600f9052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a0390921691909117905550817fd494e64287726a39c3f65e4892dbb3c9ecc73f05da44d17b043ab340817a62d360405160405180910390a25050565b600a60205260009081526040902054600160a060020a031681565b600f602052600090815260409020805460018201546002830154600384015460049094015460ff909316939192600160a060020a0391821692911685565b600160a060020a03811660009081526006602052604081205481808083151561179c57600094506117fd565b505060055460009150815b8181116117f957600081815260096020526040902054600160a060020a0387811691161480156117e5575060008181526010602052604090205460ff165b156117f1576001909201915b6001016117a7565b8294505b50505050919050565b61180e612451565b6000611818612451565b600160a060020a0384166000908152600c602052604081205492508080841515611862576000604051805910610eda57505990808252806020026020018201604052509550611019565b846040518059106118705750595b90808252806020026020018201604052509350600554925060009150600090505b8281116118e0576000818152600a6020526040902054600160a060020a03888116911614156118d857808483815181106118c757fe5b602090810290910101526001909101905b600101611891565b839550611019565b600554829015156118f857600080fd5b600554811061190657600080fd5b60008181526009602052604090205433600160a060020a0390811691161461192d57600080fd5b60a06040519081016040908152600182526020808301869052600160a060020a0333168284015260608301859052600060808401819052868152600f909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a03909216919091179055506000837f8d05f5b2a7f788598963ab2ff984557e36e132a53525cadc40d0a955df45b3b38460405190815260200160405180910390a3505050565b60005433600160a060020a03908116911614611a3557600080fd5b6000918252600b6020526040909120805460ff191660ff909216919091179055565b60086020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b60055460009082901515611ae757600080fd5b6005548110611af557600080fd5b60008181526009602052604090205433600160a060020a03908116911614611b1c57600080fd5b600160a060020a0384161515611b3157600080fd5b600160a060020a03331660009081526006602052604081205411611b5457600080fd5b6000838152600f602052604090205460ff1615611b7457611b74836115f1565b60008381526009602090815260408083208054600160a060020a031916600160a060020a03898116918217909255339091168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a383600160a060020a031633600160a060020a0316847faecbdb5e16bc7979d2ad4ae978237d576b19dc558f55d90b83803a9811f6b0ee60405160405180910390a460008381526010602052604090206002810154909250600160a060020a0385811691161415611d06576003820154600160a060020a038516600090815260116020526040908190208054909201909155608090519081016040908152600080835260208084018790528284018290526060840182905286825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151600390910155505b50505050565b611d14612451565b611d1c612451565b6000806000806000600554600014151515611d3657600080fd5b6005548810611d4457600080fd5b600760008981526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611deb5780601f10611dc057610100808354040283529160200191611deb565b820191906000526020600020905b815481529060010190602001808311611dce57829003601f168201915b50505050509650600860008981526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505060009a8b525050600960209081526040808b2054600a8352818c2054600b8452828d205460108552838e20600390810154600f90965293909d20909201549a9c939b600160a060020a039182169b92909116995060ff1697509095509350915050565b600c6020526000908152604090205481565b611f19612451565b6000611f23612451565b600160a060020a03841660009081526006602052604081205492508080841515611f6d576000604051805910610eda57505990808252806020026020018201604052509550611019565b84604051805910611f7b5750595b90808252806020026020018201604052509350600554925060009150600090505b8281116118e057600081815260096020526040902054600160a060020a0388811691161415611fe35780848381518110611fd257fe5b602090810290910101526001909101905b600101611f9c565b60005433600160a060020a0390811691161461200657600080fd5b600160a060020a038116151561201b57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b6000818152600f6020526040812060055490913491819081908190151561206357600080fd5b600554871061207157600080fd5b855460ff16151561208157600080fd5b6004860154600160a060020a031615806120ab5750600486015433600160a060020a039081169116145b15156120b657600080fd5b60038601548510156120c757600080fd5b6fffffffffffffffffffffffffffffffff851685146120e557600080fd5b6000878152600960205260409020546002870154600160a060020a0390811691161461211057600080fd5b6002860154600160a060020a0316600081815260066020526040812054919550901161213b57600080fd5b60008781526009602090815260408083208054600160a060020a03338116600160a060020a031990921682179092559088168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a36121cb876115f1565b6121d485612445565b60008054600160a060020a03908116825260116020526040808320805485019055878216808452928190208054858b0390810190915593965092945033169189907f78faa82aad88666af86f80c39b2e8c838fd1c3b02666408ac27daad30301b1509089905190815260200160405180910390a4506000868152601060205260409020600281015433600160a060020a0390811691161415612311576003810154600160a060020a033316600090815260116020526040908190208054909201909155608090519081016040908152600080835260208084018b9052828401829052606084018290528a825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151600390910155505b50505050505050565b600e54341461232857600080fd5b610100831061233657600080fd5b62100000811061234557600080fd5b60008054600160a060020a03908116825260116020908152604080842080543401905560058054855260098352818520805433909516600160a060020a0319958616811790915581548652600a845282862080549095168117909455928452600c825280842080546001019055915483526007905290206123c7908585612463565b5060055460009081526008602052604090206123e4908383612463565b50600160a060020a033316600081815260066020526040908190208054600101905560055491907ff9a012001e2900f8bd52e83ced7f75ed41f4e8b1496492a92a9443dd26aced26905160405180910390a350506005805460010190555050565b600d5461271091020490565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106124a45782800160ff198235161785556124d1565b828001600101855582156124d1579182015b828111156124d15782358255916020019190600101906124b6565b506124dd9291506124e1565b5090565b6124fb91905b808211156124dd57600081556001016124e7565b905600a165627a7a72305820bda93a08d5a44f6ec4d4d3bc9e11c91c6c1813e371221de09eb2ac2eca0039100029

   Swarm Source:
bzzr://bda93a08d5a44f6ec4d4d3bc9e11c91c6c1813e371221de09eb2ac2eca003910

 

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