ETH Price: $3,386.09 (+4.78%)

Token

CRYPTOSKETCHES (S̈)
 

Overview

Max Total Supply

80

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Filtered by Token Holder
satwomen.eth
Balance
1 S̈

Value
$0.00
0x31400d4673f4176df400424fef2b37ff4d9058d0
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SketchMarket

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-04-07
*/

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 Security Audit

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"}]

606060405260408051908101604052600e81527f43727970746f536b657463686573000000000000000000000000000000000000602082015260019080516200004d92916020019062000120565b5060008054600160a060020a03191633600160a060020a031617815560055560408051908101604052600e81527f43525950544f534b45544348455300000000000000000000000000000000000060208201526002908051620000b592916020019062000120565b506040805190810160405260038082527f53cc8800000000000000000000000000000000000000000000000000000000006020830152908051620000fe92916020019062000120565b506004805460ff19169055610177600d556611c37937e08000600e55620001c5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016357805160ff191683800117855562000193565b8280016001018555821562000193579182015b828111156200019357825182559160200191906001019062000176565b50620001a1929150620001a5565b5090565b620001c291905b80821115620001a15760008155600101620001ac565b90565b61252a80620001d56000396000f3006060604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101dc57806313b6c8a81461026657806318160ddd1461027e5780631feee4fd146102a3578063313ce567146102d55780633ccfd60b146102fe57806348bf8f39146103115780635a3b7e421461035e5780635fb1f1d714610371578063648236e3146103d757806367e94ae0146103f057806370a0823114610403578063757de5731461042257806383b5ff8b146104385780638b2ad32e1461044b5780638b906ca51461046a5780638da5cb5b1461047557806392fe76481461048857806394a1d75c1461049e57806395d89b41146104b4578063a099e61a146104c7578063ae9dc04c146104dd578063b413519214610502578063b98e276914610521578063be4b102a14610537578063c40ee48b1461054d578063cf7f12ea146105a3578063cfdac910146105c2578063d1ea2786146105e1578063d2718fbe146105fa578063d67ca59c14610616578063d947c8d11461062c578063da323c941461064e578063e0df0e6a14610778578063e210150914610797578063f2fde38b146107b6578063f83d14e6146107d5578063fb84da41146107e0575b600080fd5b34156101e757600080fd5b6101ef6107ff565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022b578082015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027157600080fd5b61027c60043561089d565b005b341561028957600080fd5b6102916108db565b60405190815260200160405180910390f35b34156102ae57600080fd5b6102b96004356108e1565b604051600160a060020a03909116815260200160405180910390f35b34156102e057600080fd5b6102e86108fc565b60405160ff909116815260200160405180910390f35b341561030957600080fd5b61027c610905565b341561031c57600080fd5b610327600435610950565b60405193151584526020840192909252600160a060020a031660408084019190915260608301919091526080909101905180910390f35b341561036957600080fd5b6101ef610987565b341561037c57600080fd5b6103846109f2565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103c35780820151838201526020016103ab565b505050509050019250505060405180910390f35b34156103e257600080fd5b61027c600435602435610b20565b34156103fb57600080fd5b610291610e4c565b341561040e57600080fd5b610291600160a060020a0360043516610e52565b341561042d57600080fd5b61027c600435610e64565b341561044357600080fd5b610291610ea3565b341561045657600080fd5b610384600160a060020a0360043516610ea9565b61027c600435611023565b341561048057600080fd5b6102b96111d9565b341561049357600080fd5b6102e86004356111e8565b34156104a957600080fd5b61027c6004356111fd565b34156104bf57600080fd5b6101ef61138f565b34156104d257600080fd5b6101ef6004356113fa565b34156104e857600080fd5b61027c600435602435600160a060020a0360443516611477565b341561050d57600080fd5b610291600160a060020a03600435166115df565b341561052c57600080fd5b61027c6004356115f1565b341561054257600080fd5b6102b9600435611717565b341561055857600080fd5b610563600435611732565b60405194151585526020850193909352600160a060020a0391821660408086019190915260608501919091529116608083015260a0909101905180910390f35b34156105ae57600080fd5b610291600160a060020a0360043516611770565b34156105cd57600080fd5b610384600160a060020a0360043516611806565b34156105ec57600080fd5b61027c6004356024356118e8565b341561060557600080fd5b61027c60043560ff60243516611a1a565b341561062157600080fd5b6101ef600435611a57565b341561063757600080fd5b61027c600160a060020a0360043516602435611ad4565b341561065957600080fd5b610664600435611d0c565b604051600160a060020a0380871660408301528516606082015260ff8416608082015260a0810183905260c0810182905260e08082528190602082019082018a818151815260200191508051906020019080838360005b838110156106d35780820151838201526020016106bb565b50505050905090810190601f1680156107005780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b8381101561073657808201518382015260200161071e565b50505050905090810190601f1680156107635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b341561078357600080fd5b610291600160a060020a0360043516611eff565b34156107a257600080fd5b610384600160a060020a0360043516611f11565b34156107c157600080fd5b61027c600160a060020a0360043516611feb565b61027c60043561203d565b61027c602460048035828101929082013591813591820191013561231a565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b820191906000526020600020905b81548152906001019060200180831161087857829003601f168201915b505050505081565b60005433600160a060020a039081169116146108b857600080fd5b6fffffffffffffffffffffffffffffffff811681146108d657600080fd5b600e55565b60055481565b600960205260009081526040902054600160a060020a031681565b60045460ff1681565b600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561094d57600080fd5b50565b601060205260009081526040902080546001820154600283015460039093015460ff909216929091600160a060020a039091169084565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b6109fa612451565b6000806000610a07612451565b600060055460001415610a3b576000604051805910610a235750595b90808252806020026020018201604052509550610b18565b600094506005549350600092505b838311610a79576000838152600f602052604090205460ff1615610a6e576001909401935b600190920191610a49565b841515610aa6576000604051805910610a2357505990808252806020026020018201604052509550610b18565b84604051805910610ab45750595b9080825280602002602001820160405250915060009050600092505b838311610b14576000838152600f602052604090205460ff1615610b095782828281518110610afb57fe5b602090810290910101526001015b600190920191610ad0565b8195505b505050505090565b60008060008060008087600554600014151515610b3c57600080fd5b6005548110610b4a57600080fd5b60008181526009602052604090205433600160a060020a03908116911614610b7157600080fd5b33600160a060020a0381166000908152600660205260408120549198509011610b9957600080fd5b6000898152601060205260408120600381015460028201549198509650600160a060020a031694508511610bcc57600080fd5b6fffffffffffffffffffffffffffffffff85168514610bea57600080fd5b6fffffffffffffffffffffffffffffffff88168814610c0857600080fd5b87851015610c1557600080fd5b60008981526009602090815260408083208054600160a060020a031916600160a060020a03898116918217909255908b168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a360a06040519081016040908152600080835260208084018d9052600160a060020a0388168385015260608401829052608084018290528c8252600f9052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a039092169190911790555060806040519081016040908152600080835260208084018d9052828401829052606084018290528c825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550610dce85612445565b600160a060020a038089166000818152601160205260408082208054868c03908101909155825485168352918190208054860190559396509450908616918b907f78faa82aad88666af86f80c39b2e8c838fd1c3b02666408ac27daad30301b1509089905190815260200160405180910390a4505050505050505050565b600e5481565b60066020526000908152604090205481565b60005433600160a060020a03908116911614610e7f57600080fd5b61ffff81168114610e8f57600080fd5b612710811115610e9e57600080fd5b600d55565b600d5481565b610eb1612451565b6000806000610ebe612451565b600060055460001415610ef2576000604051805910610eda5750595b90808252806020026020018201604052509550611019565b600094506005549350600092505b838311610f55576000838152600f602052604090205460ff168015610f3e5750600083815260096020526040902054600160a060020a038881169116145b15610f4a576001909401935b600190920191610f00565b841515610f82576000604051805910610eda57505990808252806020026020018201604052509550611019565b84604051805910610f905750595b9080825280602002602001820160405250915060009050600092505b838311611015576000838152600f602052604090205460ff168015610fea5750600083815260096020526040902054600160a060020a038881169116145b1561100a5782828281518110610ffc57fe5b602090810290910101526001015b600190920191610fac565b8195505b5050505050919050565b6005546000908190151561103657600080fd5b600554831061104457600080fd5b600083815260096020526040902054600160a060020a0316151561106757600080fd5b60008381526009602052604090205433600160a060020a039081169116141561108f57600080fd5b3491506000821161109f57600080fd5b6fffffffffffffffffffffffffffffffff821682146110bd57600080fd5b506000828152601060205260409020600381015482116110dc57600080fd5b6000816003015411156111125760038101546002820154600160a060020a03166000908152601160205260409020805490910190555b60806040519081016040908152600182526020808301869052600160a060020a033316828401526060830185905260008681526010909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550600160a060020a033316837f0da4e9222edcf4f027354f25851c7932ff2dd0af84b03e7a416da7fba6ecd0008460405190815260200160405180910390a3505050565b600054600160a060020a031681565b600b6020526000908152604090205460ff1681565b6005546000908190151561121057600080fd5b600554831061121e57600080fd5b600083815260096020526040902054600160a060020a0316151561124157600080fd5b60008381526009602052604090205433600160a060020a039081169116141561126957600080fd5b6000838152601060205260409020600281015490925033600160a060020a0390811691161461129757600080fd5b33600160a060020a0316837f46cbf8a5f7e81775c28a2fb74a25c4a145701b93c7d3d6795ce4f43a74965ab4846003015460405190815260200160405180910390a350600381015460806040519081016040908152600080835260208084018790528284018290526060840182905286825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561138a57600080fd5b505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b60076020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b6005548390151561148757600080fd5b600554811061149557600080fd5b60008181526009602052604090205433600160a060020a039081169116146114bc57600080fd5b600160a060020a03821615156114d157600080fd5b33600160a060020a031682600160a060020a0316141515156114f257600080fd5b60a06040519081016040908152600182526020808301879052600160a060020a033381168385015260608401879052851660808401526000878152600f909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a0392831617905583169050847f8d05f5b2a7f788598963ab2ff984557e36e132a53525cadc40d0a955df45b3b38560405190815260200160405180910390a350505050565b60116020526000908152604090205481565b6005548190151561160157600080fd5b600554811061160f57600080fd5b60008181526009602052604090205433600160a060020a0390811691161461163657600080fd5b60a0604051908101604090815260008083526020808401869052600160a060020a033316838501526060840182905260808401829052858252600f9052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a0390921691909117905550817fd494e64287726a39c3f65e4892dbb3c9ecc73f05da44d17b043ab340817a62d360405160405180910390a25050565b600a60205260009081526040902054600160a060020a031681565b600f602052600090815260409020805460018201546002830154600384015460049094015460ff909316939192600160a060020a0391821692911685565b600160a060020a03811660009081526006602052604081205481808083151561179c57600094506117fd565b505060055460009150815b8181116117f957600081815260096020526040902054600160a060020a0387811691161480156117e5575060008181526010602052604090205460ff165b156117f1576001909201915b6001016117a7565b8294505b50505050919050565b61180e612451565b6000611818612451565b600160a060020a0384166000908152600c602052604081205492508080841515611862576000604051805910610eda57505990808252806020026020018201604052509550611019565b846040518059106118705750595b90808252806020026020018201604052509350600554925060009150600090505b8281116118e0576000818152600a6020526040902054600160a060020a03888116911614156118d857808483815181106118c757fe5b602090810290910101526001909101905b600101611891565b839550611019565b600554829015156118f857600080fd5b600554811061190657600080fd5b60008181526009602052604090205433600160a060020a0390811691161461192d57600080fd5b60a06040519081016040908152600182526020808301869052600160a060020a0333168284015260608301859052600060808401819052868152600f909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a03909216919091179055506000837f8d05f5b2a7f788598963ab2ff984557e36e132a53525cadc40d0a955df45b3b38460405190815260200160405180910390a3505050565b60005433600160a060020a03908116911614611a3557600080fd5b6000918252600b6020526040909120805460ff191660ff909216919091179055565b60086020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b60055460009082901515611ae757600080fd5b6005548110611af557600080fd5b60008181526009602052604090205433600160a060020a03908116911614611b1c57600080fd5b600160a060020a0384161515611b3157600080fd5b600160a060020a03331660009081526006602052604081205411611b5457600080fd5b6000838152600f602052604090205460ff1615611b7457611b74836115f1565b60008381526009602090815260408083208054600160a060020a031916600160a060020a03898116918217909255339091168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a383600160a060020a031633600160a060020a0316847faecbdb5e16bc7979d2ad4ae978237d576b19dc558f55d90b83803a9811f6b0ee60405160405180910390a460008381526010602052604090206002810154909250600160a060020a0385811691161415611d06576003820154600160a060020a038516600090815260116020526040908190208054909201909155608090519081016040908152600080835260208084018790528284018290526060840182905286825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151600390910155505b50505050565b611d14612451565b611d1c612451565b6000806000806000600554600014151515611d3657600080fd5b6005548810611d4457600080fd5b600760008981526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611deb5780601f10611dc057610100808354040283529160200191611deb565b820191906000526020600020905b815481529060010190602001808311611dce57829003601f168201915b50505050509650600860008981526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505060009a8b525050600960209081526040808b2054600a8352818c2054600b8452828d205460108552838e20600390810154600f90965293909d20909201549a9c939b600160a060020a039182169b92909116995060ff1697509095509350915050565b600c6020526000908152604090205481565b611f19612451565b6000611f23612451565b600160a060020a03841660009081526006602052604081205492508080841515611f6d576000604051805910610eda57505990808252806020026020018201604052509550611019565b84604051805910611f7b5750595b90808252806020026020018201604052509350600554925060009150600090505b8281116118e057600081815260096020526040902054600160a060020a0388811691161415611fe35780848381518110611fd257fe5b602090810290910101526001909101905b600101611f9c565b60005433600160a060020a0390811691161461200657600080fd5b600160a060020a038116151561201b57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b6000818152600f6020526040812060055490913491819081908190151561206357600080fd5b600554871061207157600080fd5b855460ff16151561208157600080fd5b6004860154600160a060020a031615806120ab5750600486015433600160a060020a039081169116145b15156120b657600080fd5b60038601548510156120c757600080fd5b6fffffffffffffffffffffffffffffffff851685146120e557600080fd5b6000878152600960205260409020546002870154600160a060020a0390811691161461211057600080fd5b6002860154600160a060020a0316600081815260066020526040812054919550901161213b57600080fd5b60008781526009602090815260408083208054600160a060020a03338116600160a060020a031990921682179092559088168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a36121cb876115f1565b6121d485612445565b60008054600160a060020a03908116825260116020526040808320805485019055878216808452928190208054858b0390810190915593965092945033169189907f78faa82aad88666af86f80c39b2e8c838fd1c3b02666408ac27daad30301b1509089905190815260200160405180910390a4506000868152601060205260409020600281015433600160a060020a0390811691161415612311576003810154600160a060020a033316600090815260116020526040908190208054909201909155608090519081016040908152600080835260208084018b9052828401829052606084018290528a825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151600390910155505b50505050505050565b600e54341461232857600080fd5b610100831061233657600080fd5b62100000811061234557600080fd5b60008054600160a060020a03908116825260116020908152604080842080543401905560058054855260098352818520805433909516600160a060020a0319958616811790915581548652600a845282862080549095168117909455928452600c825280842080546001019055915483526007905290206123c7908585612463565b5060055460009081526008602052604090206123e4908383612463565b50600160a060020a033316600081815260066020526040908190208054600101905560055491907ff9a012001e2900f8bd52e83ced7f75ed41f4e8b1496492a92a9443dd26aced26905160405180910390a350506005805460010190555050565b600d5461271091020490565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106124a45782800160ff198235161785556124d1565b828001600101855582156124d1579182015b828111156124d15782358255916020019190600101906124b6565b506124dd9291506124e1565b5090565b6124fb91905b808211156124dd57600081556001016124e7565b905600a165627a7a72305820bda93a08d5a44f6ec4d4d3bc9e11c91c6c1813e371221de09eb2ac2eca0039100029

Deployed Bytecode

0x6060604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101dc57806313b6c8a81461026657806318160ddd1461027e5780631feee4fd146102a3578063313ce567146102d55780633ccfd60b146102fe57806348bf8f39146103115780635a3b7e421461035e5780635fb1f1d714610371578063648236e3146103d757806367e94ae0146103f057806370a0823114610403578063757de5731461042257806383b5ff8b146104385780638b2ad32e1461044b5780638b906ca51461046a5780638da5cb5b1461047557806392fe76481461048857806394a1d75c1461049e57806395d89b41146104b4578063a099e61a146104c7578063ae9dc04c146104dd578063b413519214610502578063b98e276914610521578063be4b102a14610537578063c40ee48b1461054d578063cf7f12ea146105a3578063cfdac910146105c2578063d1ea2786146105e1578063d2718fbe146105fa578063d67ca59c14610616578063d947c8d11461062c578063da323c941461064e578063e0df0e6a14610778578063e210150914610797578063f2fde38b146107b6578063f83d14e6146107d5578063fb84da41146107e0575b600080fd5b34156101e757600080fd5b6101ef6107ff565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022b578082015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027157600080fd5b61027c60043561089d565b005b341561028957600080fd5b6102916108db565b60405190815260200160405180910390f35b34156102ae57600080fd5b6102b96004356108e1565b604051600160a060020a03909116815260200160405180910390f35b34156102e057600080fd5b6102e86108fc565b60405160ff909116815260200160405180910390f35b341561030957600080fd5b61027c610905565b341561031c57600080fd5b610327600435610950565b60405193151584526020840192909252600160a060020a031660408084019190915260608301919091526080909101905180910390f35b341561036957600080fd5b6101ef610987565b341561037c57600080fd5b6103846109f2565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103c35780820151838201526020016103ab565b505050509050019250505060405180910390f35b34156103e257600080fd5b61027c600435602435610b20565b34156103fb57600080fd5b610291610e4c565b341561040e57600080fd5b610291600160a060020a0360043516610e52565b341561042d57600080fd5b61027c600435610e64565b341561044357600080fd5b610291610ea3565b341561045657600080fd5b610384600160a060020a0360043516610ea9565b61027c600435611023565b341561048057600080fd5b6102b96111d9565b341561049357600080fd5b6102e86004356111e8565b34156104a957600080fd5b61027c6004356111fd565b34156104bf57600080fd5b6101ef61138f565b34156104d257600080fd5b6101ef6004356113fa565b34156104e857600080fd5b61027c600435602435600160a060020a0360443516611477565b341561050d57600080fd5b610291600160a060020a03600435166115df565b341561052c57600080fd5b61027c6004356115f1565b341561054257600080fd5b6102b9600435611717565b341561055857600080fd5b610563600435611732565b60405194151585526020850193909352600160a060020a0391821660408086019190915260608501919091529116608083015260a0909101905180910390f35b34156105ae57600080fd5b610291600160a060020a0360043516611770565b34156105cd57600080fd5b610384600160a060020a0360043516611806565b34156105ec57600080fd5b61027c6004356024356118e8565b341561060557600080fd5b61027c60043560ff60243516611a1a565b341561062157600080fd5b6101ef600435611a57565b341561063757600080fd5b61027c600160a060020a0360043516602435611ad4565b341561065957600080fd5b610664600435611d0c565b604051600160a060020a0380871660408301528516606082015260ff8416608082015260a0810183905260c0810182905260e08082528190602082019082018a818151815260200191508051906020019080838360005b838110156106d35780820151838201526020016106bb565b50505050905090810190601f1680156107005780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b8381101561073657808201518382015260200161071e565b50505050905090810190601f1680156107635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b341561078357600080fd5b610291600160a060020a0360043516611eff565b34156107a257600080fd5b610384600160a060020a0360043516611f11565b34156107c157600080fd5b61027c600160a060020a0360043516611feb565b61027c60043561203d565b61027c602460048035828101929082013591813591820191013561231a565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b820191906000526020600020905b81548152906001019060200180831161087857829003601f168201915b505050505081565b60005433600160a060020a039081169116146108b857600080fd5b6fffffffffffffffffffffffffffffffff811681146108d657600080fd5b600e55565b60055481565b600960205260009081526040902054600160a060020a031681565b60045460ff1681565b600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561094d57600080fd5b50565b601060205260009081526040902080546001820154600283015460039093015460ff909216929091600160a060020a039091169084565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b6109fa612451565b6000806000610a07612451565b600060055460001415610a3b576000604051805910610a235750595b90808252806020026020018201604052509550610b18565b600094506005549350600092505b838311610a79576000838152600f602052604090205460ff1615610a6e576001909401935b600190920191610a49565b841515610aa6576000604051805910610a2357505990808252806020026020018201604052509550610b18565b84604051805910610ab45750595b9080825280602002602001820160405250915060009050600092505b838311610b14576000838152600f602052604090205460ff1615610b095782828281518110610afb57fe5b602090810290910101526001015b600190920191610ad0565b8195505b505050505090565b60008060008060008087600554600014151515610b3c57600080fd5b6005548110610b4a57600080fd5b60008181526009602052604090205433600160a060020a03908116911614610b7157600080fd5b33600160a060020a0381166000908152600660205260408120549198509011610b9957600080fd5b6000898152601060205260408120600381015460028201549198509650600160a060020a031694508511610bcc57600080fd5b6fffffffffffffffffffffffffffffffff85168514610bea57600080fd5b6fffffffffffffffffffffffffffffffff88168814610c0857600080fd5b87851015610c1557600080fd5b60008981526009602090815260408083208054600160a060020a031916600160a060020a03898116918217909255908b168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a360a06040519081016040908152600080835260208084018d9052600160a060020a0388168385015260608401829052608084018290528c8252600f9052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a039092169190911790555060806040519081016040908152600080835260208084018d9052828401829052606084018290528c825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550610dce85612445565b600160a060020a038089166000818152601160205260408082208054868c03908101909155825485168352918190208054860190559396509450908616918b907f78faa82aad88666af86f80c39b2e8c838fd1c3b02666408ac27daad30301b1509089905190815260200160405180910390a4505050505050505050565b600e5481565b60066020526000908152604090205481565b60005433600160a060020a03908116911614610e7f57600080fd5b61ffff81168114610e8f57600080fd5b612710811115610e9e57600080fd5b600d55565b600d5481565b610eb1612451565b6000806000610ebe612451565b600060055460001415610ef2576000604051805910610eda5750595b90808252806020026020018201604052509550611019565b600094506005549350600092505b838311610f55576000838152600f602052604090205460ff168015610f3e5750600083815260096020526040902054600160a060020a038881169116145b15610f4a576001909401935b600190920191610f00565b841515610f82576000604051805910610eda57505990808252806020026020018201604052509550611019565b84604051805910610f905750595b9080825280602002602001820160405250915060009050600092505b838311611015576000838152600f602052604090205460ff168015610fea5750600083815260096020526040902054600160a060020a038881169116145b1561100a5782828281518110610ffc57fe5b602090810290910101526001015b600190920191610fac565b8195505b5050505050919050565b6005546000908190151561103657600080fd5b600554831061104457600080fd5b600083815260096020526040902054600160a060020a0316151561106757600080fd5b60008381526009602052604090205433600160a060020a039081169116141561108f57600080fd5b3491506000821161109f57600080fd5b6fffffffffffffffffffffffffffffffff821682146110bd57600080fd5b506000828152601060205260409020600381015482116110dc57600080fd5b6000816003015411156111125760038101546002820154600160a060020a03166000908152601160205260409020805490910190555b60806040519081016040908152600182526020808301869052600160a060020a033316828401526060830185905260008681526010909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550600160a060020a033316837f0da4e9222edcf4f027354f25851c7932ff2dd0af84b03e7a416da7fba6ecd0008460405190815260200160405180910390a3505050565b600054600160a060020a031681565b600b6020526000908152604090205460ff1681565b6005546000908190151561121057600080fd5b600554831061121e57600080fd5b600083815260096020526040902054600160a060020a0316151561124157600080fd5b60008381526009602052604090205433600160a060020a039081169116141561126957600080fd5b6000838152601060205260409020600281015490925033600160a060020a0390811691161461129757600080fd5b33600160a060020a0316837f46cbf8a5f7e81775c28a2fb74a25c4a145701b93c7d3d6795ce4f43a74965ab4846003015460405190815260200160405180910390a350600381015460806040519081016040908152600080835260208084018790528284018290526060840182905286825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015160039091015550600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561138a57600080fd5b505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b60076020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b6005548390151561148757600080fd5b600554811061149557600080fd5b60008181526009602052604090205433600160a060020a039081169116146114bc57600080fd5b600160a060020a03821615156114d157600080fd5b33600160a060020a031682600160a060020a0316141515156114f257600080fd5b60a06040519081016040908152600182526020808301879052600160a060020a033381168385015260608401879052851660808401526000878152600f909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a0392831617905583169050847f8d05f5b2a7f788598963ab2ff984557e36e132a53525cadc40d0a955df45b3b38560405190815260200160405180910390a350505050565b60116020526000908152604090205481565b6005548190151561160157600080fd5b600554811061160f57600080fd5b60008181526009602052604090205433600160a060020a0390811691161461163657600080fd5b60a0604051908101604090815260008083526020808401869052600160a060020a033316838501526060840182905260808401829052858252600f9052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a0390921691909117905550817fd494e64287726a39c3f65e4892dbb3c9ecc73f05da44d17b043ab340817a62d360405160405180910390a25050565b600a60205260009081526040902054600160a060020a031681565b600f602052600090815260409020805460018201546002830154600384015460049094015460ff909316939192600160a060020a0391821692911685565b600160a060020a03811660009081526006602052604081205481808083151561179c57600094506117fd565b505060055460009150815b8181116117f957600081815260096020526040902054600160a060020a0387811691161480156117e5575060008181526010602052604090205460ff165b156117f1576001909201915b6001016117a7565b8294505b50505050919050565b61180e612451565b6000611818612451565b600160a060020a0384166000908152600c602052604081205492508080841515611862576000604051805910610eda57505990808252806020026020018201604052509550611019565b846040518059106118705750595b90808252806020026020018201604052509350600554925060009150600090505b8281116118e0576000818152600a6020526040902054600160a060020a03888116911614156118d857808483815181106118c757fe5b602090810290910101526001909101905b600101611891565b839550611019565b600554829015156118f857600080fd5b600554811061190657600080fd5b60008181526009602052604090205433600160a060020a0390811691161461192d57600080fd5b60a06040519081016040908152600182526020808301869052600160a060020a0333168284015260608301859052600060808401819052868152600f909152208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151816003015560808201516004919091018054600160a060020a031916600160a060020a03909216919091179055506000837f8d05f5b2a7f788598963ab2ff984557e36e132a53525cadc40d0a955df45b3b38460405190815260200160405180910390a3505050565b60005433600160a060020a03908116911614611a3557600080fd5b6000918252600b6020526040909120805460ff191660ff909216919091179055565b60086020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108955780601f1061086a57610100808354040283529160200191610895565b60055460009082901515611ae757600080fd5b6005548110611af557600080fd5b60008181526009602052604090205433600160a060020a03908116911614611b1c57600080fd5b600160a060020a0384161515611b3157600080fd5b600160a060020a03331660009081526006602052604081205411611b5457600080fd5b6000838152600f602052604090205460ff1615611b7457611b74836115f1565b60008381526009602090815260408083208054600160a060020a031916600160a060020a03898116918217909255339091168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a383600160a060020a031633600160a060020a0316847faecbdb5e16bc7979d2ad4ae978237d576b19dc558f55d90b83803a9811f6b0ee60405160405180910390a460008381526010602052604090206002810154909250600160a060020a0385811691161415611d06576003820154600160a060020a038516600090815260116020526040908190208054909201909155608090519081016040908152600080835260208084018790528284018290526060840182905286825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151600390910155505b50505050565b611d14612451565b611d1c612451565b6000806000806000600554600014151515611d3657600080fd5b6005548810611d4457600080fd5b600760008981526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611deb5780601f10611dc057610100808354040283529160200191611deb565b820191906000526020600020905b815481529060010190602001808311611dce57829003601f168201915b50505050509650600860008981526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505060009a8b525050600960209081526040808b2054600a8352818c2054600b8452828d205460108552838e20600390810154600f90965293909d20909201549a9c939b600160a060020a039182169b92909116995060ff1697509095509350915050565b600c6020526000908152604090205481565b611f19612451565b6000611f23612451565b600160a060020a03841660009081526006602052604081205492508080841515611f6d576000604051805910610eda57505990808252806020026020018201604052509550611019565b84604051805910611f7b5750595b90808252806020026020018201604052509350600554925060009150600090505b8281116118e057600081815260096020526040902054600160a060020a0388811691161415611fe35780848381518110611fd257fe5b602090810290910101526001909101905b600101611f9c565b60005433600160a060020a0390811691161461200657600080fd5b600160a060020a038116151561201b57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b6000818152600f6020526040812060055490913491819081908190151561206357600080fd5b600554871061207157600080fd5b855460ff16151561208157600080fd5b6004860154600160a060020a031615806120ab5750600486015433600160a060020a039081169116145b15156120b657600080fd5b60038601548510156120c757600080fd5b6fffffffffffffffffffffffffffffffff851685146120e557600080fd5b6000878152600960205260409020546002870154600160a060020a0390811691161461211057600080fd5b6002860154600160a060020a0316600081815260066020526040812054919550901161213b57600080fd5b60008781526009602090815260408083208054600160a060020a03338116600160a060020a031990921682179092559088168085526006909352818420805460001901905580845292819020805460019081019091557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a36121cb876115f1565b6121d485612445565b60008054600160a060020a03908116825260116020526040808320805485019055878216808452928190208054858b0390810190915593965092945033169189907f78faa82aad88666af86f80c39b2e8c838fd1c3b02666408ac27daad30301b1509089905190815260200160405180910390a4506000868152601060205260409020600281015433600160a060020a0390811691161415612311576003810154600160a060020a033316600090815260116020526040908190208054909201909155608090519081016040908152600080835260208084018b9052828401829052606084018290528a825260109052208151815460ff1916901515178155602082015181600101556040820151600282018054600160a060020a031916600160a060020a03929092169190911790556060820151600390910155505b50505050505050565b600e54341461232857600080fd5b610100831061233657600080fd5b62100000811061234557600080fd5b60008054600160a060020a03908116825260116020908152604080842080543401905560058054855260098352818520805433909516600160a060020a0319958616811790915581548652600a845282862080549095168117909455928452600c825280842080546001019055915483526007905290206123c7908585612463565b5060055460009081526008602052604090206123e4908383612463565b50600160a060020a033316600081815260066020526040908190208054600101905560055491907ff9a012001e2900f8bd52e83ced7f75ed41f4e8b1496492a92a9443dd26aced26905160405180910390a350506005805460010190555050565b600d5461271091020490565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106124a45782800160ff198235161785556124d1565b828001600101855582156124d1579182015b828111156124d15782358255916020019190600101906124b6565b506124dd9291506124e1565b5090565b6124fb91905b808211156124dd57600081556001016124e7565b905600a165627a7a72305820bda93a08d5a44f6ec4d4d3bc9e11c91c6c1813e371221de09eb2ac2eca0039100029

Swarm Source

bzzr://bda93a08d5a44f6ec4d4d3bc9e11c91c6c1813e371221de09eb2ac2eca003910
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.