ETH Price: $3,459.75 (-0.67%)
Gas: 2 Gwei

Contract

0x068696A3cf3c4676B65F1c9975dd094260109d02
 
Transaction Hash
Method
Block
From
To
Value
Offer Collectibl...201912342024-06-28 15:58:593 days ago1719590339IN
DADA Collectible: Ɖ Token
0 ETH0.00076758.31872232
Offer Collectibl...201912292024-06-28 15:57:593 days ago1719590279IN
DADA Collectible: Ɖ Token
0 ETH0.000790678.56873588
Offer Collectibl...201912262024-06-28 15:57:233 days ago1719590243IN
DADA Collectible: Ɖ Token
0 ETH0.00085749.29316874
Offer Collectibl...201912252024-06-28 15:57:113 days ago1719590231IN
DADA Collectible: Ɖ Token
0 ETH0.000812118.80224944
Offer Collectibl...201912132024-06-28 15:54:353 days ago1719590075IN
DADA Collectible: Ɖ Token
0 ETH0.000686567.44048953
Offer Collectibl...201912112024-06-28 15:54:113 days ago1719590051IN
DADA Collectible: Ɖ Token
0 ETH0.000696397.54699669
Offer Collectibl...201912092024-06-28 15:53:473 days ago1719590027IN
DADA Collectible: Ɖ Token
0 ETH0.000671237.27436799
Offer Collectibl...201912002024-06-28 15:51:593 days ago1719589919IN
DADA Collectible: Ɖ Token
0 ETH0.000721837.82276992
Offer Collectibl...201911962024-06-28 15:51:113 days ago1719589871IN
DADA Collectible: Ɖ Token
0 ETH0.000789778.55897822
Offer Collectibl...201911942024-06-28 15:50:473 days ago1719589847IN
DADA Collectible: Ɖ Token
0 ETH0.000813958.82222249
Offer Collectibl...201911912024-06-28 15:50:113 days ago1719589811IN
DADA Collectible: Ɖ Token
0 ETH0.000806588.74237715
Offer Collectibl...201346012024-06-20 18:03:1111 days ago1718906591IN
DADA Collectible: Ɖ Token
0 ETH0.0010490311.36870121
Offer Collectibl...200643842024-06-10 22:22:5921 days ago1718058179IN
DADA Collectible: Ɖ Token
0 ETH0.0012262613.29113775
Offer Collectibl...200642312024-06-10 21:51:3521 days ago1718056295IN
DADA Collectible: Ɖ Token
0 ETH0.00091679.93591544
Offer Collectibl...200642262024-06-10 21:50:3521 days ago1718056235IN
DADA Collectible: Ɖ Token
0 ETH0.000911269.87568859
Offer Collectibl...200642172024-06-10 21:48:3521 days ago1718056115IN
DADA Collectible: Ɖ Token
0 ETH0.000513979.79476948
Offer Collectibl...200642112024-06-10 21:47:2321 days ago1718056043IN
DADA Collectible: Ɖ Token
0 ETH0.0009665310.47461866
Transfer200640882024-06-10 21:22:4721 days ago1718054567IN
DADA Collectible: Ɖ Token
0 ETH0.0010723114.28837818
Withdraw197463222024-04-27 11:18:4765 days ago1714216727IN
DADA Collectible: Ɖ Token
0 ETH0.0003209110.41042326
Withdraw197462942024-04-27 11:13:1165 days ago1714216391IN
DADA Collectible: Ɖ Token
0 ETH0.000150726.85109856
Offer Collectibl...195926882024-04-05 23:03:1187 days ago1712358191IN
DADA Collectible: Ɖ Token
0 ETH0.0013096914.1953491
Offer Collectibl...194839932024-03-21 15:41:47102 days ago1711035707IN
DADA Collectible: Ɖ Token
0 ETH0.0018480533.56491972
Offer Collectibl...194688292024-03-19 12:35:11104 days ago1710851711IN
DADA Collectible: Ɖ Token
0 ETH0.0023563344.91516108
Offer Collectibl...194688272024-03-19 12:34:47104 days ago1710851687IN
DADA Collectible: Ɖ Token
0 ETH0.0043682747.34638613
Offer Collectibl...194688002024-03-19 12:29:23104 days ago1710851363IN
DADA Collectible: Ɖ Token
0 ETH0.0038858242.11180021
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
197463222024-04-27 11:18:4765 days ago1714216727
DADA Collectible: Ɖ Token
0.2 ETH
194179052024-03-12 8:48:23111 days ago1710233303
DADA Collectible: Ɖ Token
0.195 ETH
168332282023-03-15 12:14:59474 days ago1678882499
DADA Collectible: Ɖ Token
0.56 ETH
167153542023-02-26 22:24:11491 days ago1677450251
DADA Collectible: Ɖ Token
20.00247696 ETH
166959712023-02-24 4:54:35493 days ago1677214475
DADA Collectible: Ɖ Token
0.369 ETH
166411222023-02-16 11:54:35501 days ago1676548475
DADA Collectible: Ɖ Token
1.6349523 ETH
163140262023-01-01 19:31:59547 days ago1672601519
DADA Collectible: Ɖ Token
0.8 ETH
161816852022-12-14 8:16:35565 days ago1671005795
DADA Collectible: Ɖ Token
0.3 ETH
158546292022-10-29 15:32:59611 days ago1667057579
DADA Collectible: Ɖ Token
0.22 ETH
157613572022-10-16 14:44:59624 days ago1665931499
DADA Collectible: Ɖ Token
0.36 ETH
157116522022-10-09 16:12:47631 days ago1665331967
DADA Collectible: Ɖ Token
0.4138 ETH
156705052022-10-03 22:07:59637 days ago1664834879
DADA Collectible: Ɖ Token
0.1888 ETH
156138162022-09-25 23:57:47645 days ago1664150267
DADA Collectible: Ɖ Token
0.26969 ETH
156138122022-09-25 23:56:59645 days ago1664150219
DADA Collectible: Ɖ Token
0.2022 ETH
155186072022-09-12 3:20:31659 days ago1662952831
DADA Collectible: Ɖ Token
0.56969 ETH
155186022022-09-12 3:18:17659 days ago1662952697
DADA Collectible: Ɖ Token
0.2269 ETH
155177682022-09-12 0:04:42659 days ago1662941082
DADA Collectible: Ɖ Token
0.7628 ETH
154854222022-09-06 17:27:45664 days ago1662485265
DADA Collectible: Ɖ Token
0.53938 ETH
154134712022-08-26 5:15:10675 days ago1661490910
DADA Collectible: Ɖ Token
0.36969 ETH
152529332022-07-31 22:29:07701 days ago1659306547
DADA Collectible: Ɖ Token
0.69 ETH
150959792022-07-07 14:28:52725 days ago1657204132
DADA Collectible: Ɖ Token
0.25 ETH
145857682022-04-14 20:45:59809 days ago1649969159
DADA Collectible: Ɖ Token
1.01 ETH
143839652022-03-14 9:45:11840 days ago1647251111
DADA Collectible: Ɖ Token
0.37 ETH
143357382022-03-06 21:34:13848 days ago1646602453
DADA Collectible: Ɖ Token
0.44 ETH
142636772022-02-23 17:32:59859 days ago1645637579
DADA Collectible: Ɖ Token
1.99 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DadaCollectible

Compiler Version
v0.4.13+commit.fb4cb1a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-10-05
*/

pragma solidity ^0.4.13;

/**
 * This contract handles the actions for every collectible on DADA...
 */

contract DadaCollectible {

  // DADA's account
  address owner;


  // starts turned off to prepare the drawings before going public
  bool isExecutionAllowed = false;

  // ERC20 token standard attributes
  string public name;
  string public symbol;
  uint8 public decimals;
  uint256 public totalSupply;

  struct Offer {
      bool isForSale;
      uint drawingId;
      uint printIndex;
      address seller; 
      uint minValue;          // in ether
      address onlySellTo;     // specify to sell only to a specific person
      uint lastSellValue;
  }

  struct Bid {
      bool hasBid;
      uint drawingId;
      uint printIndex;
      address bidder;
      uint value;
  }

  struct Collectible{
    uint drawingId;
    string checkSum; // digest of the drawing, created using  SHA2
    uint totalSupply;
    uint nextPrintIndexToAssign;
    bool allPrintsAssigned;
    uint initialPrice;
    uint initialPrintIndex;
    string collectionName;
    uint authorUId; // drawing creator id 
    string scarcity; // denotes how scarce is the drawing
  }    

  // key: printIndex
  // the value is the user who owns that specific print
  mapping (uint => address) public DrawingPrintToAddress;
  
  // A record of collectibles that are offered for sale at a specific minimum value, 
  // and perhaps to a specific person, the key to access and offer is the printIndex.
  // since every single offer inside the Collectible struct will be tied to the main
  // drawingId that identifies that collectible.
  mapping (uint => Offer) public OfferedForSale;

  // A record of the highest collectible bid, the key to access a bid is the printIndex
  mapping (uint => Bid) public Bids;


  // "Hash" list of the different Collectibles available in the market place
  mapping (uint => Collectible) public drawingIdToCollectibles;

  mapping (address => uint) public pendingWithdrawals;

  mapping (address => uint256) public balances;

  // returns the balance of a particular account
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  } 

  // Events
  event Assigned(address indexed to, uint256 collectibleIndex, uint256 printIndex);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event CollectibleTransfer(address indexed from, address indexed to, uint256 collectibleIndex, uint256 printIndex);
  event CollectibleOffered(uint indexed collectibleIndex, uint indexed printIndex, uint minValue, address indexed toAddress, uint lastSellValue);
  event CollectibleBidEntered(uint indexed collectibleIndex, uint indexed printIndex, uint value, address indexed fromAddress);
  event CollectibleBidWithdrawn(uint indexed collectibleIndex, uint indexed printIndex, uint value, address indexed fromAddress);
  event CollectibleBought(uint indexed collectibleIndex, uint printIndex, uint value, address indexed fromAddress, address indexed toAddress);
  event CollectibleNoLongerForSale(uint indexed collectibleIndex, uint indexed printIndex);

  // The constructor is executed only when the contract is created in the blockchain.
  function DadaCollectible () { 
    // assigns the address of the account creating the contract as the 
    // "owner" of the contract. Since the contract doesn't have 
    // a "set" function for the owner attribute this value will be immutable. 
    owner = msg.sender;

    // Update total supply
    totalSupply = 16600;
    // Give to DADA all initial drawings
    balances[owner] = totalSupply;

    // Set the name for display purposes
    name = "DADA Collectible";
    // Set the symbol for display purposes
    symbol = "Ɖ";
    // Amount of decimals for display purposes
    decimals = 0;
  }

  // main business logic functions
  
  // buyer's functions
  function buyCollectible(uint drawingId, uint printIndex) payable {
    require(isExecutionAllowed);
    // requires the drawing id to actually exist
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) &&  (printIndex >= collectible.initialPrintIndex));
    Offer storage offer = OfferedForSale[printIndex];
    require(offer.drawingId != 0);
    require(offer.isForSale); // drawing actually for sale
    require(offer.onlySellTo == 0x0 || offer.onlySellTo == msg.sender);  // drawing can be sold to this user
    require(msg.value >= offer.minValue); // Didn't send enough ETH
    require(offer.seller == DrawingPrintToAddress[printIndex]); // Seller still owner of the drawing
    require(DrawingPrintToAddress[printIndex] != msg.sender);

    address seller = offer.seller;
    address buyer = msg.sender;

    DrawingPrintToAddress[printIndex] = buyer; // "gives" the print to the buyer

    // decrease by one the amount of prints the seller has of this particullar drawing
    balances[seller]--;
    // increase by one the amount of prints the buyer has of this particullar drawing
    balances[buyer]++;

    // launch the Transfered event
    Transfer(seller, buyer, 1);

    // transfer ETH to the seller
    // profit delta must be equal or greater than 1e-16 to be able to divide it
    // between the involved entities (art creator -> 30%, seller -> 60% and dada -> 10%)
    // profit percentages can't be lower than 1e-18 which is the lowest unit in ETH
    // equivalent to 1 wei.
    // if(offer.lastSellValue < msg.value && (msg.value - offer.lastSellValue) >= uint(0.0000000000000001) ){ commented because we're assuming values are expressed in  "weis", adjusting in relation to that
    if(offer.lastSellValue < msg.value && (msg.value - offer.lastSellValue) >= 100 ){ // assuming 100 (weis) wich is equivalent to 1e-16
      uint profit = msg.value - offer.lastSellValue;
      // seller gets base value plus 60% of the profit
      pendingWithdrawals[seller] += offer.lastSellValue + (profit*60/100); 
      // dada gets 10% of the profit
      // pendingWithdrawals[owner] += (profit*10/100);
      // dada receives 30% of the profit to give to the artist
      // pendingWithdrawals[owner] += (profit*30/100);
      // going manual for artist and dada percentages (30 + 10)
      pendingWithdrawals[owner] += (profit*40/100);
    }else{
      // if the seller doesn't make a profit of the sell he gets the 100% of the traded
      // value.
      pendingWithdrawals[seller] += msg.value;
    }
    makeCollectibleUnavailableToSale(buyer, drawingId, printIndex, msg.value);

    // launch the CollectibleBought event    
    CollectibleBought(drawingId, printIndex, msg.value, seller, buyer);

    // Check for the case where there is a bid from the new owner and refund it.
    // Any other bid can stay in place.
    Bid storage bid = Bids[printIndex];
    if (bid.bidder == buyer) {
      // Kill bid and refund value
      pendingWithdrawals[buyer] += bid.value;
      Bids[printIndex] = Bid(false, collectible.drawingId, printIndex, 0x0, 0);
    }
  }

  function alt_buyCollectible(uint drawingId, uint printIndex) payable {
    require(isExecutionAllowed);
    // requires the drawing id to actually exist
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) &&  (printIndex >= collectible.initialPrintIndex));
    Offer storage offer = OfferedForSale[printIndex];
    require(offer.drawingId == 0);
    
    require(msg.value >= collectible.initialPrice); // Didn't send enough ETH
    require(DrawingPrintToAddress[printIndex] == 0x0); // should be equal to a "null" address (0x0) since it shouldn't have an owner yet

    address seller = owner;
    address buyer = msg.sender;

    DrawingPrintToAddress[printIndex] = buyer; // "gives" the print to the buyer

    // decrease by one the amount of prints the seller has of this particullar drawing
    // commented while we decide what to do with balances for DADA
    balances[seller]--;
    // increase by one the amount of prints the buyer has of this particullar drawing
    balances[buyer]++;

    // launch the Transfered event
    Transfer(seller, buyer, 1);

    // transfer ETH to the seller
    // profit delta must be equal or greater than 1e-16 to be able to divide it
    // between the involved entities (art creator -> 30%, seller -> 60% and dada -> 10%)
    // profit percentages can't be lower than 1e-18 which is the lowest unit in ETH
    // equivalent to 1 wei.

    pendingWithdrawals[owner] += msg.value;
    
    OfferedForSale[printIndex] = Offer(false, collectible.drawingId, printIndex, buyer, msg.value, 0x0, msg.value);

    // launch the CollectibleBought event    
    CollectibleBought(drawingId, printIndex, msg.value, seller, buyer);

    // Check for the case where there is a bid from the new owner and refund it.
    // Any other bid can stay in place.
    Bid storage bid = Bids[printIndex];
    if (bid.bidder == buyer) {
      // Kill bid and refund value
      pendingWithdrawals[buyer] += bid.value;
      Bids[printIndex] = Bid(false, collectible.drawingId, printIndex, 0x0, 0);
    }
  }
  
  function enterBidForCollectible(uint drawingId, uint printIndex) payable {
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require(DrawingPrintToAddress[printIndex] != 0x0); // Print is owned by somebody
    require(DrawingPrintToAddress[printIndex] != msg.sender); // Print is not owned by bidder
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));

    require(msg.value > 0); // Bid must be greater than 0
    // get the current bid for that print if any
    Bid storage existing = Bids[printIndex];
    // Must outbid previous bid by at least 5%. Apparently is not possible to 
    // multiply by 1.05, that's why we do it manually.
    require(msg.value >= existing.value+(existing.value*5/100));
    if (existing.value > 0) {
        // Refund the failing bid from the previous bidder
        pendingWithdrawals[existing.bidder] += existing.value;
    }
    // add the new bid
    Bids[printIndex] = Bid(true, collectible.drawingId, printIndex, msg.sender, msg.value);
    CollectibleBidEntered(collectible.drawingId, printIndex, msg.value, msg.sender);
  }

  // used by a user who wants to cancell a bid placed by her/him
  function withdrawBidForCollectible(uint drawingId, uint printIndex) {
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));
    require(DrawingPrintToAddress[printIndex] != 0x0); // Print is owned by somebody
    require(DrawingPrintToAddress[printIndex] != msg.sender); // Print is not owned by bidder
    Bid storage bid = Bids[printIndex];
    require(bid.bidder == msg.sender);
    CollectibleBidWithdrawn(drawingId, printIndex, bid.value, msg.sender);

    uint amount = bid.value;
    Bids[printIndex] = Bid(false, collectible.drawingId, printIndex, 0x0, 0);
    // Refund the bid money
    msg.sender.transfer(amount);
  }

  // seller's functions
  function offerCollectibleForSale(uint drawingId, uint printIndex, uint minSalePriceInWei) {
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require(DrawingPrintToAddress[printIndex] == msg.sender);
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));
    uint lastSellValue = OfferedForSale[printIndex].lastSellValue;
    OfferedForSale[printIndex] = Offer(true, collectible.drawingId, printIndex, msg.sender, minSalePriceInWei, 0x0, lastSellValue);
    CollectibleOffered(drawingId, printIndex, minSalePriceInWei, 0x0, lastSellValue);
  }

  function withdrawOfferForCollectible(uint drawingId, uint printIndex){
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require(DrawingPrintToAddress[printIndex] == msg.sender);
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));

    uint lastSellValue = OfferedForSale[printIndex].lastSellValue;

    OfferedForSale[printIndex] = Offer(false, collectible.drawingId, printIndex, msg.sender, 0, 0x0, lastSellValue);
    // launch the CollectibleNoLongerForSale event 
    CollectibleNoLongerForSale(collectible.drawingId, printIndex);

  }

  function offerCollectibleForSaleToAddress(uint drawingId, uint printIndex, uint minSalePriceInWei, address toAddress) {
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require(DrawingPrintToAddress[printIndex] == msg.sender);
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));
    uint lastSellValue = OfferedForSale[printIndex].lastSellValue;
    OfferedForSale[printIndex] = Offer(true, collectible.drawingId, printIndex, msg.sender, minSalePriceInWei, toAddress, lastSellValue);
    CollectibleOffered(drawingId, printIndex, minSalePriceInWei, toAddress, lastSellValue);
  }

  function acceptBidForCollectible(uint drawingId, uint minPrice, uint printIndex) {
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));
    require(DrawingPrintToAddress[printIndex] == msg.sender);
    address seller = msg.sender;

    Bid storage bid = Bids[printIndex];
    require(bid.value > 0); // Will be zero if there is no actual bid
    require(bid.value >= minPrice); // Prevent a condition where a bid is withdrawn and replaced with a lower bid but seller doesn't know

    DrawingPrintToAddress[printIndex] = bid.bidder;
    balances[seller]--;
    balances[bid.bidder]++;
    Transfer(seller, bid.bidder, 1);
    uint amount = bid.value;

    Offer storage offer = OfferedForSale[printIndex];
    // transfer ETH to the seller
    // profit delta must be equal or greater than 1e-16 to be able to divide it
    // between the involved entities (art creator -> 30%, seller -> 60% and dada -> 10%)
    // profit percentages can't be lower than 1e-18 which is the lowest unit in ETH
    // equivalent to 1 wei.
    // if(offer.lastSellValue > msg.value && (msg.value - offer.lastSellValue) >= uint(0.0000000000000001) ){ commented because we're assuming values are expressed in  "weis", adjusting in relation to that
    if(offer.lastSellValue < amount && (amount - offer.lastSellValue) >= 100 ){ // assuming 100 (weis) wich is equivalent to 1e-16
      uint profit = amount - offer.lastSellValue;
      // seller gets base value plus 60% of the profit
      pendingWithdrawals[seller] += offer.lastSellValue + (profit*60/100); 
      // dada gets 10% of the profit
      // pendingWithdrawals[owner] += (profit*10/100);
      // dada receives 30% of the profit to give to the artist
      // pendingWithdrawals[owner] += (profit*30/100);
      pendingWithdrawals[owner] += (profit*40/100);

    }else{
      // if the seller doesn't make a profit of the sell he gets the 100% of the traded
      // value.
      pendingWithdrawals[seller] += amount;
    }
    // does the same as the function makeCollectibleUnavailableToSale
    OfferedForSale[printIndex] = Offer(false, collectible.drawingId, printIndex, bid.bidder, 0, 0x0, amount);
    CollectibleBought(collectible.drawingId, printIndex, bid.value, seller, bid.bidder);
    Bids[printIndex] = Bid(false, collectible.drawingId, printIndex, 0x0, 0);

  }

  // used by a user who wants to cashout his money
  function withdraw() {
    require(isExecutionAllowed);
    uint amount = pendingWithdrawals[msg.sender];
    // Remember to zero the pending refund before
    // sending to prevent re-entrancy attacks
    pendingWithdrawals[msg.sender] = 0;
    msg.sender.transfer(amount);
  }

  // Transfer ownership of a punk to another user without requiring payment
  function transfer(address to, uint drawingId, uint printIndex) returns (bool success){
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    // checks that the user making the transfer is the actual owner of the print
    require(DrawingPrintToAddress[printIndex] == msg.sender);
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));
    makeCollectibleUnavailableToSale(to, drawingId, printIndex, OfferedForSale[printIndex].lastSellValue);
    // sets the new owner of the print
    DrawingPrintToAddress[printIndex] = to;
    balances[msg.sender]--;
    balances[to]++;
    Transfer(msg.sender, to, 1);
    CollectibleTransfer(msg.sender, to, drawingId, printIndex);
    // Check for the case where there is a bid from the new owner and refund it.
    // Any other bid can stay in place.
    Bid storage bid = Bids[printIndex];
    if (bid.bidder == to) {
      // Kill bid and refund value
      pendingWithdrawals[to] += bid.value;
      Bids[printIndex] = Bid(false, drawingId, printIndex, 0x0, 0);
    }
    return true;
  }

  // utility functions
  function makeCollectibleUnavailableToSale(address to, uint drawingId, uint printIndex, uint lastSellValue) {
    require(isExecutionAllowed);
    require(drawingIdToCollectibles[drawingId].drawingId != 0);
    Collectible storage collectible = drawingIdToCollectibles[drawingId];
    require(DrawingPrintToAddress[printIndex] == msg.sender);
    require((printIndex < (collectible.totalSupply+collectible.initialPrintIndex)) && (printIndex >= collectible.initialPrintIndex));
    OfferedForSale[printIndex] = Offer(false, collectible.drawingId, printIndex, to, 0, 0x0, lastSellValue);
    // launch the CollectibleNoLongerForSale event 
    CollectibleNoLongerForSale(collectible.drawingId, printIndex);
  }

  function newCollectible(uint drawingId, string checkSum, uint256 _totalSupply, uint initialPrice, uint initialPrintIndex, string collectionName, uint authorUId, string scarcity){
    // requires the sender to be the same address that compiled the contract,
    // this is ensured by storing the sender address
    // require(owner == msg.sender);
    require(owner == msg.sender);
    // requires the drawing to not exist already in the scope of the contract
    require(drawingIdToCollectibles[drawingId].drawingId == 0);
    drawingIdToCollectibles[drawingId] = Collectible(drawingId, checkSum, _totalSupply, initialPrintIndex, false, initialPrice, initialPrintIndex, collectionName, authorUId, scarcity);
  }

  function flipSwitchTo(bool state){
    // require(owner == msg.sender);
    require(owner == msg.sender);
    isExecutionAllowed = state;
  }

  function mintNewDrawings(uint amount){
    require(owner == msg.sender);
    totalSupply = totalSupply + amount;
    balances[owner] = balances[owner] + amount;

    Transfer(0, owner, amount);
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"state","type":"bool"}],"name":"flipSwitchTo","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"buyCollectible","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"minPrice","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"acceptBidForCollectible","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"},{"name":"lastSellValue","type":"uint256"}],"name":"makeCollectibleUnavailableToSale","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"OfferedForSale","outputs":[{"name":"isForSale","type":"bool"},{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"},{"name":"seller","type":"address"},{"name":"minValue","type":"uint256"},{"name":"onlySellTo","type":"address"},{"name":"lastSellValue","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"},{"name":"minSalePriceInWei","type":"uint256"},{"name":"toAddress","type":"address"}],"name":"offerCollectibleForSaleToAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"DrawingPrintToAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"drawingIdToCollectibles","outputs":[{"name":"drawingId","type":"uint256"},{"name":"checkSum","type":"string"},{"name":"totalSupply","type":"uint256"},{"name":"nextPrintIndexToAssign","type":"uint256"},{"name":"allPrintsAssigned","type":"bool"},{"name":"initialPrice","type":"uint256"},{"name":"initialPrintIndex","type":"uint256"},{"name":"collectionName","type":"string"},{"name":"authorUId","type":"uint256"},{"name":"scarcity","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"Bids","outputs":[{"name":"hasBid","type":"bool"},{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"},{"name":"bidder","type":"address"},{"name":"value","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"enterBidForCollectible","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"mintNewDrawings","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"alt_buyCollectible","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"withdrawOfferForCollectible","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"checkSum","type":"string"},{"name":"_totalSupply","type":"uint256"},{"name":"initialPrice","type":"uint256"},{"name":"initialPrintIndex","type":"uint256"},{"name":"collectionName","type":"string"},{"name":"authorUId","type":"uint256"},{"name":"scarcity","type":"string"}],"name":"newCollectible","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"},{"name":"minSalePriceInWei","type":"uint256"}],"name":"offerCollectibleForSale","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pendingWithdrawals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"drawingId","type":"uint256"},{"name":"printIndex","type":"uint256"}],"name":"withdrawBidForCollectible","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"collectibleIndex","type":"uint256"},{"indexed":false,"name":"printIndex","type":"uint256"}],"name":"Assigned","type":"event"},{"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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"collectibleIndex","type":"uint256"},{"indexed":false,"name":"printIndex","type":"uint256"}],"name":"CollectibleTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"collectibleIndex","type":"uint256"},{"indexed":true,"name":"printIndex","type":"uint256"},{"indexed":false,"name":"minValue","type":"uint256"},{"indexed":true,"name":"toAddress","type":"address"},{"indexed":false,"name":"lastSellValue","type":"uint256"}],"name":"CollectibleOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"collectibleIndex","type":"uint256"},{"indexed":true,"name":"printIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"}],"name":"CollectibleBidEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"collectibleIndex","type":"uint256"},{"indexed":true,"name":"printIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"}],"name":"CollectibleBidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"collectibleIndex","type":"uint256"},{"indexed":false,"name":"printIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"fromAddress","type":"address"},{"indexed":true,"name":"toAddress","type":"address"}],"name":"CollectibleBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"collectibleIndex","type":"uint256"},{"indexed":true,"name":"printIndex","type":"uint256"}],"name":"CollectibleNoLongerForSale","type":"event"}]

60606040526000805460a060020a60ff021916905534156200002057600080fd5b5b60008054600160a060020a03191633600160a060020a03908116919091178083556140d8600481905591168252600a602052604091829020558051908101604052601081527f4441444120436f6c6c65637469626c650000000000000000000000000000000060208201526001908051620000a1929160200190620000fc565b506040805190810160405260028082527fc6890000000000000000000000000000000000000000000000000000000000006020830152908051620000ea929160200190620000fc565b506003805460ff191690555b620001a6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013f57805160ff19168380011785556200016f565b828001600101855582156200016f579182015b828111156200016f57825182559160200191906001019062000152565b5b506200017e92915062000182565b5090565b620001a391905b808211156200017e576000815560010162000189565b5090565b90565b61268280620001b66000396000f300606060405236156101465763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014b57806307156854146101d6578063095bcdb6146101f057806318160ddd146102295780632767dd7d1461024e57806327e235e31461025e578063313ce5671461028f57806336b2e0f9146102b85780633ccfd60b146102d65780633ed731bc146102eb57806354f5675c1461031557806357611ba3146103775780635dc774d7146103a157806364322c9c146103d357806370a08231146105a357806374cd0c40146105d45780637b316db214610626578063854642e11461063657806395d89b411461064e578063a2550108146106d9578063a7086536146106e9578063a724e54c14610704578063e93e40db146107f9578063f3f4370314610817578063f8ec4cd514610848575b600080fd5b341561015657600080fd5b61015e610863565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019b5780820151818401525b602001610182565b50505050905090810190601f1680156101c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e157600080fd5b6101ee6004351515610901565b005b34156101fb57600080fd5b610215600160a060020a0360043516602435604435610948565b604051901515815260200160405180910390f35b341561023457600080fd5b61023c610bab565b60405190815260200160405180910390f35b6101ee600435602435610bb1565b005b341561026957600080fd5b61023c600160a060020a0360043516610f5d565b60405190815260200160405180910390f35b341561029a57600080fd5b6102a2610f6f565b60405160ff909116815260200160405180910390f35b34156102c357600080fd5b6101ee600435602435604435610f78565b005b34156102e157600080fd5b6101ee611356565b005b34156102f657600080fd5b6101ee600160a060020a03600435166024356044356064356113bc565b005b341561032057600080fd5b61032b60043561155a565b60405196151587526020870195909552604080870194909452600160a060020a03928316606087015260808601919091521660a084015260c083019190915260e0909101905180910390f35b341561038257600080fd5b6101ee600435602435604435600160a060020a03606435166115a9565b005b34156103ac57600080fd5b6103b760043561177a565b604051600160a060020a03909116815260200160405180910390f35b34156103de57600080fd5b6103e9600435611795565b6040518a81526040810189905260608101889052861515608082015260a0810186905260c08101859052610100808201849052610140602083018181528c546002600182161590940260001901169290920490830181905260e08301906101208401906101608501908e9080156104a15780601f10610476576101008083540402835291602001916104a1565b820191906000526020600020905b81548152906001019060200180831161048457829003601f168201915b50508481038352875460026000196101006001841615020190911604808252602090910190889080156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b50508481038252855460026000196101006001841615020190911604808252602090910190869080156105895780601f1061055e57610100808354040283529160200191610589565b820191906000526020600020905b81548152906001019060200180831161056c57829003601f168201915b50509d505050505050505050505050505060405180910390f35b34156105ae57600080fd5b61023c600160a060020a03600435166117e5565b60405190815260200160405180910390f35b34156105df57600080fd5b6105ea600435611804565b60405194151585526020850193909352604080850192909252600160a060020a03166060840152608083019190915260a0909101905180910390f35b6101ee600435602435611840565b005b341561064157600080fd5b6101ee600435611a4c565b005b341561065957600080fd5b61015e611abc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019b5780820151818401525b602001610182565b50505050905090810190601f1680156101c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ee600435602435611b5a565b005b34156106f457600080fd5b6101ee600435602435611ecc565b005b341561070f57600080fd5b6101ee600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496863596602080820135975060408083013597509295506080820194506060909101358501808201935035918291601f83018190048102019051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061208295505050505050565b005b341561080457600080fd5b6101ee6004356024356044356121c4565b005b341561082257600080fd5b61023c600160a060020a036004351661238b565b60405190815260200160405180910390f35b341561085357600080fd5b6101ee60043560243561239d565b005b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f95780601f106108ce576101008083540402835291602001916108f9565b820191906000526020600020905b8154815290600101906020018083116108dc57829003601f168201915b505050505081565b60005433600160a060020a0390811691161461091c57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a831515021790555b50565b600080548190819060a060020a900460ff16151561096557600080fd5b600085815260086020526040902054151561097f57600080fd5b600085815260086020908152604080832087845260059092529091205490925033600160a060020a039081169116146109b757600080fd5b8160060154826002015401841080156109d4575081600601548410155b15156109df57600080fd5b610a0186868660066000898152602001908152602001600020600601546113bc565b60008481526005602090815260408083208054600160a060020a031916600160a060020a038b811691821790925533909116808552600a90935281842080546000190190558084529281902080546001908101909155600080516020612637833981519152915190815260200160405180910390a385600160a060020a031633600160a060020a03167faebe0224b22684da37d1c51900f598a5c3dd3a860906f17d32c991f722f4ddca878760405191825260208201526040908101905180910390a35060008381526007602052604090206003810154600160a060020a0387811691161415610b9d576004810154600160a060020a03871660009081526009602052604090819020805490920190915560a09051908101604090815260008083526020808401899052828401889052606084018290526080840182905287825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b600192505b50509392505050565b60045481565b600080600080600080600060149054906101000a900460ff161515610bd557600080fd5b6000888152600860205260409020541515610bef57600080fd5b6000888152600860205260409020600681015460028201549197500187108015610c1d575085600601548710155b1515610c2857600080fd5b600087815260066020526040902060018101549095501515610c4957600080fd5b845460ff161515610c5957600080fd5b6005850154600160a060020a03161580610c835750600585015433600160a060020a039081169116145b1515610c8e57600080fd5b6004850154341015610c9f57600080fd5b6000878152600560205260409020546003860154600160a060020a03908116911614610cca57600080fd5b60008781526005602052604090205433600160a060020a0390811691161415610cf257600080fd5b600385015460008881526005602090815260408083208054600160a060020a031916600160a060020a0333818116928317909355909516808552600a90935281842080546000190190558484529281902080546001908101909155919750919550869160008051602061263783398151915291905190815260200160405180910390a3348560060154108015610d8f575060648560060154340310155b15610dfc576006850154340391506064603c83025b6006870154600160a060020a03871660009081526009602052604090208054939092040190910190556064602883025b60008054600160a060020a031681526009602052604090208054929091049091019055610e1b565b600160a060020a03841660009081526009602052604090208054340190555b610e27838989346113bc565b82600160a060020a031684600160a060020a0316897f4735e00ab9095d9eeb1b0922b992074c9c6218fd99864f0a3a043acedfa2b4648a3460405191825260208201526040908101905180910390a45060008681526007602052604090206003810154600160a060020a0384811691161415610f52576004810154600160a060020a03841660009081526009602052604090819020805490920190915560a090519081016040908152600080835288546020808501919091528284018b905260608401829052608084018290528a825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b5b5050505050505050565b600a6020526000908152604090205481565b60035460ff1681565b600080600080600080600060149054906101000a900460ff161515610f9c57600080fd5b6000898152600860205260409020541515610fb657600080fd5b6000898152600860205260409020600681015460028201549197500187108015610fe4575085600601548710155b1515610fef57600080fd5b60008781526005602052604090205433600160a060020a0390811691161461101657600080fd5b600087815260076020526040812060048101543397509095501161103957600080fd5b60048401548890101561104b57600080fd5b60038401805460008981526005602090815260408083208054600160a060020a031916600160a060020a03958616179055898416808452600a90925280832080546000190190558454841683529182902080546001908101909155935490921692600080516020612637833981519152915190815260200160405180910390a383600401549250600660008881526020019081526020016000209150828260060154108015611101575060648260060154840310155b1561116d5750600681015482036064603c82025b6006840154600160a060020a03881660009081526009602052604090208054939092040190910190556064602882025b60008054600160a060020a03168152600960205260409020805492909104909101905561118c565b600160a060020a03851660009081526009602052604090208054840190555b60e06040519081016040908152600080835288546020808501919091528284018b90526003880154600160a060020a031660608501526080840182905260a0840182905260c084018790528a825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550600384015486546004860154600160a060020a0392831692881691907f4735e00ab9095d9eeb1b0922b992074c9c6218fd99864f0a3a043acedfa2b464908b9060405191825260208201526040908101905180910390a460a06040519081016040908152600080835288546020808501919091528284018b905260608401829052608084018290528a825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b505050505050505050565b6000805460a060020a900460ff16151561136f57600080fd5b50600160a060020a033316600081815260096020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561094557600080fd5b5b50565b6000805460a060020a900460ff1615156113d557600080fd5b60008481526008602052604090205415156113ef57600080fd5b50600083815260086020908152604080832085845260059092529091205433600160a060020a0390811691161461142557600080fd5b806006015481600201540183108015611442575080600601548310155b151561144d57600080fd5b60e0604051908101604090815260008083528354602080850191909152828401879052600160a060020a03891660608501526080840182905260a0840182905260c0840186905286825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550805483907f50c8512b9e71dd0ff9c0183891f87255eda5bada0b02e69b8fc1a73d1b142ef860405160405180910390a35b5050505050565b6006602081905260009182526040909120805460018201546002830154600384015460048501546005860154959096015460ff9094169592949193600160a060020a0391821693929091169087565b60008054819060a060020a900460ff1615156115c457600080fd5b60008681526008602052604090205415156115de57600080fd5b600086815260086020908152604080832088845260059092529091205490925033600160a060020a0390811691161461161657600080fd5b816006015482600201540185108015611633575081600601548510155b151561163e57600080fd5b5060008481526006602081905260409182902001549060e090519081016040908152600182528354602080840191909152818301889052600160a060020a03338116606085015260808401889052861660a084015260c0830184905260008881526006909152208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550600160a060020a03831685877fca52cc869aa452ba42b34c35497ca5f3587f9bdad85c42f5198ea34c31589b41878560405191825260208201526040908101905180910390a45b505050505050565b600560205260009081526040902054600160a060020a031681565b600860208190526000918252604090912080546002820154600383015460048401546005850154600686015496860154949660018701969495939460ff909316939192909160078201916009018a565b600160a060020a0381166000908152600a60205260409020545b919050565b6007602052600090815260409020805460018201546002830154600384015460049094015460ff9093169391929091600160a060020a03169085565b60008054819060a060020a900460ff16151561185b57600080fd5b600084815260086020526040902054151561187557600080fd5b6000848152600860209081526040808320868452600590925290912054909250600160a060020a031615156118a957600080fd5b60008381526005602052604090205433600160a060020a03908116911614156118d157600080fd5b8160060154826002015401831080156118ee575081600601548310155b15156118f957600080fd5b6000341161190657600080fd5b50600082815260076020526040902060048101546064906005025b04816004015401341015151561193657600080fd5b60008160040154111561196c5760048101546003820154600160a060020a03166000908152600960205260409020805490910190555b60a06040519081016040908152600182528354602080840191909152818301869052600160a060020a033316606084015234608084015260008681526007909152208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155508154600160a060020a0333169084907f01655e3176436a98bf68780b52265fbdc4b601ecf2c9a9f7657c318c5795053f3460405190815260200160405180910390a45b50505050565b60005433600160a060020a03908116911614611a6757600080fd5b600480548201905560008054600160a060020a039081168252600a6020526040808320805485019055825490911691906000805160206126378339815191529084905190815260200160405180910390a35b50565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f95780601f106108ce576101008083540402835291602001916108f9565b820191906000526020600020905b8154815290600101906020018083116108dc57829003601f168201915b505050505081565b60008060008060008060149054906101000a900460ff161515611b7c57600080fd5b6000878152600860205260409020541515611b9657600080fd5b6000878152600860205260409020600681015460028201549196500186108015611bc4575084600601548610155b1515611bcf57600080fd5b6000868152600660205260409020600181015490945015611bef57600080fd5b6005850154341015611c0057600080fd5b600086815260056020526040902054600160a060020a031615611c2257600080fd5b600080548782526005602090815260408084208054600160a060020a031916600160a060020a0333818116928317909355909416808652600a9093528185208054600019019055838552938190208054600190810190915591965092945090918591600080516020612637833981519152915190815260200160405180910390a360008054600160a060020a03168152600960205260409081902080543401905560e090519081016040908152600080835287546020808501919091528284018a9052600160a060020a0386166060850152346080850181905260a0850183905260c085015289825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c0820151816006015590505081600160a060020a031683600160a060020a0316887f4735e00ab9095d9eeb1b0922b992074c9c6218fd99864f0a3a043acedfa2b464893460405191825260208201526040908101905180910390a45060008581526007602052604090206003810154600160a060020a0383811691161415611ec2576004810154600160a060020a03831660009081526009602052604090819020805490920190915560a090519081016040908152600080835287546020808501919091528284018a9052606084018290526080840182905289825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b5b50505050505050565b60008054819060a060020a900460ff161515611ee757600080fd5b6000848152600860205260409020541515611f0157600080fd5b600084815260086020908152604080832086845260059092529091205490925033600160a060020a03908116911614611f3957600080fd5b816006015482600201540183108015611f56575081600601548310155b1515611f6157600080fd5b5060008281526006602081905260409182902001549060e09051908101604090815260008083528454602080850191909152828401879052600160a060020a03331660608501526080840182905260a0840182905260c0840185905286825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550815483907f50c8512b9e71dd0ff9c0183891f87255eda5bada0b02e69b8fc1a73d1b142ef860405160405180910390a35b50505050565b60005433600160a060020a0390811691161461209d57600080fd5b600088815260086020526040902054156120b657600080fd5b6101406040519081016040528089815260200188815260200187815260200185815260200160001515815260200186815260200185815260200184815260200183815260200182815250600860008a815260200190815260200160002060008201518155602082015181600101908051612134929160200190612596565b506040820151816002015560608201518160030155608082015160048201805460ff191691151591909117905560a0820151816005015560c0820151816006015560e08201518160070190805161218f929160200190612596565b506101008201518160080155610120820151816009019080516121b6929160200190612596565b5050505b5050505050505050565b60008054819060a060020a900460ff1615156121df57600080fd5b60008581526008602052604090205415156121f957600080fd5b600085815260086020908152604080832087845260059092529091205490925033600160a060020a0390811691161461223157600080fd5b81600601548260020154018410801561224e575081600601548410155b151561225957600080fd5b5060008381526006602081905260409182902001549060e090519081016040908152600182528354602080840191909152818301879052600160a060020a033316606084015260808301869052600060a0840181905260c084018590528781526006909152208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550600084867fca52cc869aa452ba42b34c35497ca5f3587f9bdad85c42f5198ea34c31589b41868560405191825260208201526040908101905180910390a45b5050505050565b60096020526000908152604090205481565b600080548190819060a060020a900460ff1615156123ba57600080fd5b60008581526008602052604090205415156123d457600080fd5b6000858152600860205260409020600681015460028201549194500184108015612402575082600601548410155b151561240d57600080fd5b600084815260056020526040902054600160a060020a0316151561243057600080fd5b60008481526005602052604090205433600160a060020a039081169116141561245857600080fd5b6000848152600760205260409020600381015490925033600160a060020a0390811691161461248657600080fd5b33600160a060020a031684867fae35d21a514918ba7a100cbcfd7bf9851ed1b3b437e6b089ddd232afa4ceeaa2856004015460405190815260200160405180910390a450600481015460a0604051908101604090815260008083528554602080850191909152828401889052606084018290526080840182905287825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a0392909216919091179055608082015160049091015550600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561155357600080fd5b5b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125d757805160ff1916838001178555612604565b82800160010185558215612604579182015b828111156126045782518255916020019190600101906125e9565b5b50612611929150612615565b5090565b61263391905b80821115612611576000815560010161261b565b5090565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820286ad06aaac90ddaeb430a325ebd927ff53b88753d3fa6edb8cb2bade11fc0490029

Deployed Bytecode

0x606060405236156101465763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014b57806307156854146101d6578063095bcdb6146101f057806318160ddd146102295780632767dd7d1461024e57806327e235e31461025e578063313ce5671461028f57806336b2e0f9146102b85780633ccfd60b146102d65780633ed731bc146102eb57806354f5675c1461031557806357611ba3146103775780635dc774d7146103a157806364322c9c146103d357806370a08231146105a357806374cd0c40146105d45780637b316db214610626578063854642e11461063657806395d89b411461064e578063a2550108146106d9578063a7086536146106e9578063a724e54c14610704578063e93e40db146107f9578063f3f4370314610817578063f8ec4cd514610848575b600080fd5b341561015657600080fd5b61015e610863565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019b5780820151818401525b602001610182565b50505050905090810190601f1680156101c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e157600080fd5b6101ee6004351515610901565b005b34156101fb57600080fd5b610215600160a060020a0360043516602435604435610948565b604051901515815260200160405180910390f35b341561023457600080fd5b61023c610bab565b60405190815260200160405180910390f35b6101ee600435602435610bb1565b005b341561026957600080fd5b61023c600160a060020a0360043516610f5d565b60405190815260200160405180910390f35b341561029a57600080fd5b6102a2610f6f565b60405160ff909116815260200160405180910390f35b34156102c357600080fd5b6101ee600435602435604435610f78565b005b34156102e157600080fd5b6101ee611356565b005b34156102f657600080fd5b6101ee600160a060020a03600435166024356044356064356113bc565b005b341561032057600080fd5b61032b60043561155a565b60405196151587526020870195909552604080870194909452600160a060020a03928316606087015260808601919091521660a084015260c083019190915260e0909101905180910390f35b341561038257600080fd5b6101ee600435602435604435600160a060020a03606435166115a9565b005b34156103ac57600080fd5b6103b760043561177a565b604051600160a060020a03909116815260200160405180910390f35b34156103de57600080fd5b6103e9600435611795565b6040518a81526040810189905260608101889052861515608082015260a0810186905260c08101859052610100808201849052610140602083018181528c546002600182161590940260001901169290920490830181905260e08301906101208401906101608501908e9080156104a15780601f10610476576101008083540402835291602001916104a1565b820191906000526020600020905b81548152906001019060200180831161048457829003601f168201915b50508481038352875460026000196101006001841615020190911604808252602090910190889080156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b50508481038252855460026000196101006001841615020190911604808252602090910190869080156105895780601f1061055e57610100808354040283529160200191610589565b820191906000526020600020905b81548152906001019060200180831161056c57829003601f168201915b50509d505050505050505050505050505060405180910390f35b34156105ae57600080fd5b61023c600160a060020a03600435166117e5565b60405190815260200160405180910390f35b34156105df57600080fd5b6105ea600435611804565b60405194151585526020850193909352604080850192909252600160a060020a03166060840152608083019190915260a0909101905180910390f35b6101ee600435602435611840565b005b341561064157600080fd5b6101ee600435611a4c565b005b341561065957600080fd5b61015e611abc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019b5780820151818401525b602001610182565b50505050905090810190601f1680156101c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ee600435602435611b5a565b005b34156106f457600080fd5b6101ee600435602435611ecc565b005b341561070f57600080fd5b6101ee600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496863596602080820135975060408083013597509295506080820194506060909101358501808201935035918291601f83018190048102019051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061208295505050505050565b005b341561080457600080fd5b6101ee6004356024356044356121c4565b005b341561082257600080fd5b61023c600160a060020a036004351661238b565b60405190815260200160405180910390f35b341561085357600080fd5b6101ee60043560243561239d565b005b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f95780601f106108ce576101008083540402835291602001916108f9565b820191906000526020600020905b8154815290600101906020018083116108dc57829003601f168201915b505050505081565b60005433600160a060020a0390811691161461091c57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a831515021790555b50565b600080548190819060a060020a900460ff16151561096557600080fd5b600085815260086020526040902054151561097f57600080fd5b600085815260086020908152604080832087845260059092529091205490925033600160a060020a039081169116146109b757600080fd5b8160060154826002015401841080156109d4575081600601548410155b15156109df57600080fd5b610a0186868660066000898152602001908152602001600020600601546113bc565b60008481526005602090815260408083208054600160a060020a031916600160a060020a038b811691821790925533909116808552600a90935281842080546000190190558084529281902080546001908101909155600080516020612637833981519152915190815260200160405180910390a385600160a060020a031633600160a060020a03167faebe0224b22684da37d1c51900f598a5c3dd3a860906f17d32c991f722f4ddca878760405191825260208201526040908101905180910390a35060008381526007602052604090206003810154600160a060020a0387811691161415610b9d576004810154600160a060020a03871660009081526009602052604090819020805490920190915560a09051908101604090815260008083526020808401899052828401889052606084018290526080840182905287825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b600192505b50509392505050565b60045481565b600080600080600080600060149054906101000a900460ff161515610bd557600080fd5b6000888152600860205260409020541515610bef57600080fd5b6000888152600860205260409020600681015460028201549197500187108015610c1d575085600601548710155b1515610c2857600080fd5b600087815260066020526040902060018101549095501515610c4957600080fd5b845460ff161515610c5957600080fd5b6005850154600160a060020a03161580610c835750600585015433600160a060020a039081169116145b1515610c8e57600080fd5b6004850154341015610c9f57600080fd5b6000878152600560205260409020546003860154600160a060020a03908116911614610cca57600080fd5b60008781526005602052604090205433600160a060020a0390811691161415610cf257600080fd5b600385015460008881526005602090815260408083208054600160a060020a031916600160a060020a0333818116928317909355909516808552600a90935281842080546000190190558484529281902080546001908101909155919750919550869160008051602061263783398151915291905190815260200160405180910390a3348560060154108015610d8f575060648560060154340310155b15610dfc576006850154340391506064603c83025b6006870154600160a060020a03871660009081526009602052604090208054939092040190910190556064602883025b60008054600160a060020a031681526009602052604090208054929091049091019055610e1b565b600160a060020a03841660009081526009602052604090208054340190555b610e27838989346113bc565b82600160a060020a031684600160a060020a0316897f4735e00ab9095d9eeb1b0922b992074c9c6218fd99864f0a3a043acedfa2b4648a3460405191825260208201526040908101905180910390a45060008681526007602052604090206003810154600160a060020a0384811691161415610f52576004810154600160a060020a03841660009081526009602052604090819020805490920190915560a090519081016040908152600080835288546020808501919091528284018b905260608401829052608084018290528a825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b5b5050505050505050565b600a6020526000908152604090205481565b60035460ff1681565b600080600080600080600060149054906101000a900460ff161515610f9c57600080fd5b6000898152600860205260409020541515610fb657600080fd5b6000898152600860205260409020600681015460028201549197500187108015610fe4575085600601548710155b1515610fef57600080fd5b60008781526005602052604090205433600160a060020a0390811691161461101657600080fd5b600087815260076020526040812060048101543397509095501161103957600080fd5b60048401548890101561104b57600080fd5b60038401805460008981526005602090815260408083208054600160a060020a031916600160a060020a03958616179055898416808452600a90925280832080546000190190558454841683529182902080546001908101909155935490921692600080516020612637833981519152915190815260200160405180910390a383600401549250600660008881526020019081526020016000209150828260060154108015611101575060648260060154840310155b1561116d5750600681015482036064603c82025b6006840154600160a060020a03881660009081526009602052604090208054939092040190910190556064602882025b60008054600160a060020a03168152600960205260409020805492909104909101905561118c565b600160a060020a03851660009081526009602052604090208054840190555b60e06040519081016040908152600080835288546020808501919091528284018b90526003880154600160a060020a031660608501526080840182905260a0840182905260c084018790528a825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550600384015486546004860154600160a060020a0392831692881691907f4735e00ab9095d9eeb1b0922b992074c9c6218fd99864f0a3a043acedfa2b464908b9060405191825260208201526040908101905180910390a460a06040519081016040908152600080835288546020808501919091528284018b905260608401829052608084018290528a825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b505050505050505050565b6000805460a060020a900460ff16151561136f57600080fd5b50600160a060020a033316600081815260096020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561094557600080fd5b5b50565b6000805460a060020a900460ff1615156113d557600080fd5b60008481526008602052604090205415156113ef57600080fd5b50600083815260086020908152604080832085845260059092529091205433600160a060020a0390811691161461142557600080fd5b806006015481600201540183108015611442575080600601548310155b151561144d57600080fd5b60e0604051908101604090815260008083528354602080850191909152828401879052600160a060020a03891660608501526080840182905260a0840182905260c0840186905286825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550805483907f50c8512b9e71dd0ff9c0183891f87255eda5bada0b02e69b8fc1a73d1b142ef860405160405180910390a35b5050505050565b6006602081905260009182526040909120805460018201546002830154600384015460048501546005860154959096015460ff9094169592949193600160a060020a0391821693929091169087565b60008054819060a060020a900460ff1615156115c457600080fd5b60008681526008602052604090205415156115de57600080fd5b600086815260086020908152604080832088845260059092529091205490925033600160a060020a0390811691161461161657600080fd5b816006015482600201540185108015611633575081600601548510155b151561163e57600080fd5b5060008481526006602081905260409182902001549060e090519081016040908152600182528354602080840191909152818301889052600160a060020a03338116606085015260808401889052861660a084015260c0830184905260008881526006909152208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550600160a060020a03831685877fca52cc869aa452ba42b34c35497ca5f3587f9bdad85c42f5198ea34c31589b41878560405191825260208201526040908101905180910390a45b505050505050565b600560205260009081526040902054600160a060020a031681565b600860208190526000918252604090912080546002820154600383015460048401546005850154600686015496860154949660018701969495939460ff909316939192909160078201916009018a565b600160a060020a0381166000908152600a60205260409020545b919050565b6007602052600090815260409020805460018201546002830154600384015460049094015460ff9093169391929091600160a060020a03169085565b60008054819060a060020a900460ff16151561185b57600080fd5b600084815260086020526040902054151561187557600080fd5b6000848152600860209081526040808320868452600590925290912054909250600160a060020a031615156118a957600080fd5b60008381526005602052604090205433600160a060020a03908116911614156118d157600080fd5b8160060154826002015401831080156118ee575081600601548310155b15156118f957600080fd5b6000341161190657600080fd5b50600082815260076020526040902060048101546064906005025b04816004015401341015151561193657600080fd5b60008160040154111561196c5760048101546003820154600160a060020a03166000908152600960205260409020805490910190555b60a06040519081016040908152600182528354602080840191909152818301869052600160a060020a033316606084015234608084015260008681526007909152208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155508154600160a060020a0333169084907f01655e3176436a98bf68780b52265fbdc4b601ecf2c9a9f7657c318c5795053f3460405190815260200160405180910390a45b50505050565b60005433600160a060020a03908116911614611a6757600080fd5b600480548201905560008054600160a060020a039081168252600a6020526040808320805485019055825490911691906000805160206126378339815191529084905190815260200160405180910390a35b50565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f95780601f106108ce576101008083540402835291602001916108f9565b820191906000526020600020905b8154815290600101906020018083116108dc57829003601f168201915b505050505081565b60008060008060008060149054906101000a900460ff161515611b7c57600080fd5b6000878152600860205260409020541515611b9657600080fd5b6000878152600860205260409020600681015460028201549196500186108015611bc4575084600601548610155b1515611bcf57600080fd5b6000868152600660205260409020600181015490945015611bef57600080fd5b6005850154341015611c0057600080fd5b600086815260056020526040902054600160a060020a031615611c2257600080fd5b600080548782526005602090815260408084208054600160a060020a031916600160a060020a0333818116928317909355909416808652600a9093528185208054600019019055838552938190208054600190810190915591965092945090918591600080516020612637833981519152915190815260200160405180910390a360008054600160a060020a03168152600960205260409081902080543401905560e090519081016040908152600080835287546020808501919091528284018a9052600160a060020a0386166060850152346080850181905260a0850183905260c085015289825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c0820151816006015590505081600160a060020a031683600160a060020a0316887f4735e00ab9095d9eeb1b0922b992074c9c6218fd99864f0a3a043acedfa2b464893460405191825260208201526040908101905180910390a45060008581526007602052604090206003810154600160a060020a0383811691161415611ec2576004810154600160a060020a03831660009081526009602052604090819020805490920190915560a090519081016040908152600080835287546020808501919091528284018a9052606084018290526080840182905289825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151600490910155505b5b50505050505050565b60008054819060a060020a900460ff161515611ee757600080fd5b6000848152600860205260409020541515611f0157600080fd5b600084815260086020908152604080832086845260059092529091205490925033600160a060020a03908116911614611f3957600080fd5b816006015482600201540183108015611f56575081600601548310155b1515611f6157600080fd5b5060008281526006602081905260409182902001549060e09051908101604090815260008083528454602080850191909152828401879052600160a060020a03331660608501526080840182905260a0840182905260c0840185905286825260069052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550815483907f50c8512b9e71dd0ff9c0183891f87255eda5bada0b02e69b8fc1a73d1b142ef860405160405180910390a35b50505050565b60005433600160a060020a0390811691161461209d57600080fd5b600088815260086020526040902054156120b657600080fd5b6101406040519081016040528089815260200188815260200187815260200185815260200160001515815260200186815260200185815260200184815260200183815260200182815250600860008a815260200190815260200160002060008201518155602082015181600101908051612134929160200190612596565b506040820151816002015560608201518160030155608082015160048201805460ff191691151591909117905560a0820151816005015560c0820151816006015560e08201518160070190805161218f929160200190612596565b506101008201518160080155610120820151816009019080516121b6929160200190612596565b5050505b5050505050505050565b60008054819060a060020a900460ff1615156121df57600080fd5b60008581526008602052604090205415156121f957600080fd5b600085815260086020908152604080832087845260059092529091205490925033600160a060020a0390811691161461223157600080fd5b81600601548260020154018410801561224e575081600601548410155b151561225957600080fd5b5060008381526006602081905260409182902001549060e090519081016040908152600182528354602080840191909152818301879052600160a060020a033316606084015260808301869052600060a0840181905260c084018590528781526006909152208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a03929092169190911790556080820151816004015560a0820151600582018054600160a060020a031916600160a060020a039290921691909117905560c082015160069091015550600084867fca52cc869aa452ba42b34c35497ca5f3587f9bdad85c42f5198ea34c31589b41868560405191825260208201526040908101905180910390a45b5050505050565b60096020526000908152604090205481565b600080548190819060a060020a900460ff1615156123ba57600080fd5b60008581526008602052604090205415156123d457600080fd5b6000858152600860205260409020600681015460028201549194500184108015612402575082600601548410155b151561240d57600080fd5b600084815260056020526040902054600160a060020a0316151561243057600080fd5b60008481526005602052604090205433600160a060020a039081169116141561245857600080fd5b6000848152600760205260409020600381015490925033600160a060020a0390811691161461248657600080fd5b33600160a060020a031684867fae35d21a514918ba7a100cbcfd7bf9851ed1b3b437e6b089ddd232afa4ceeaa2856004015460405190815260200160405180910390a450600481015460a0604051908101604090815260008083528554602080850191909152828401889052606084018290526080840182905287825260079052208151815460ff191690151517815560208201518160010155604082015181600201556060820151600382018054600160a060020a031916600160a060020a0392909216919091179055608082015160049091015550600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561155357600080fd5b5b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125d757805160ff1916838001178555612604565b82800160010185558215612604579182015b828111156126045782518255916020019190600101906125e9565b5b50612611929150612615565b5090565b61263391905b80821115612611576000815560010161261b565b5090565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820286ad06aaac90ddaeb430a325ebd927ff53b88753d3fa6edb8cb2bade11fc0490029

Swarm Source

bzzr://286ad06aaac90ddaeb430a325ebd927ff53b88753d3fa6edb8cb2bade11fc049

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

A collaborative art platform where people speak through drawings.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.