ETH Price: $3,466.44 (+1.40%)

Contract

0xFc88A9f06F5Fe0dE2dAc95C5FADA7a8b3b3D610d
 

Overview

ETH Balance

0.00388416 ETH

Eth Value

$13.46 (@ $3,466.44/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy Bag67057182018-11-14 23:27:102231 days ago1542238030IN
0xFc88A9f0...b3b3D610d
0.036992 ETH0.00060695
Buy Bag67057142018-11-14 23:26:262231 days ago1542237986IN
0xFc88A9f0...b3b3D610d
0 ETH0.000116435
Buy Bag65498202018-10-20 10:52:112257 days ago1540032731IN
0xFc88A9f0...b3b3D610d
0.04 ETH0.001430611
Withdraw Ether57807982018-06-13 9:03:162386 days ago1528880596IN
0xFc88A9f0...b3b3D610d
0 ETH0.000090873
Add Bag And Gift53005412018-03-22 10:07:002469 days ago1521713220IN
0xFc88A9f0...b3b3D610d
0 ETH0.000126971
Buy Bag53003812018-03-22 9:27:152469 days ago1521710835IN
0xFc88A9f0...b3b3D610d
0.052 ETH0.000364143
Add Bag And Gift53003302018-03-22 9:12:482469 days ago1521709968IN
0xFc88A9f0...b3b3D610d
0 ETH0.000126971
Add Bag And Gift53003152018-03-22 9:08:102469 days ago1521709690IN
0xFc88A9f0...b3b3D610d
0 ETH0.000126971
Add Bag And Gift53002982018-03-22 9:05:352469 days ago1521709535IN
0xFc88A9f0...b3b3D610d
0 ETH0.000126971
Add Bag And Gift53002622018-03-22 8:56:282469 days ago1521708988IN
0xFc88A9f0...b3b3D610d
0 ETH0.000253952
Add Bag And Gift53002492018-03-22 8:54:052469 days ago1521708845IN
0xFc88A9f0...b3b3D610d
0 ETH0.000253952
Add Bag And Gift53002452018-03-22 8:53:042469 days ago1521708784IN
0xFc88A9f0...b3b3D610d
0 ETH0.000253952
Add Bag And Gift53002332018-03-22 8:49:552469 days ago1521708595IN
0xFc88A9f0...b3b3D610d
0 ETH0.000380933
Buy Bag52945862018-03-21 10:11:322470 days ago1521627092IN
0xFc88A9f0...b3b3D610d
0.036992 ETH0.000121381
Buy Bag52495352018-03-13 19:10:412478 days ago1520968241IN
0xFc88A9f0...b3b3D610d
0.03 ETH0.000244982
Buy Bag52482052018-03-13 13:41:432478 days ago1520948503IN
0xFc88A9f0...b3b3D610d
0.0272 ETH0.000242762
Buy Bag52477742018-03-13 11:53:232478 days ago1520942003IN
0xFc88A9f0...b3b3D610d
0.08788 ETH0.000242632
Buy Bag52398932018-03-12 3:36:262479 days ago1520825786IN
0xFc88A9f0...b3b3D610d
0.04 ETH0.000066431
Buy Bag52398532018-03-12 3:27:522479 days ago1520825272IN
0xFc88A9f0...b3b3D610d
0.03 ETH0.000132862
Buy Bag52398502018-03-12 3:26:462479 days ago1520825206IN
0xFc88A9f0...b3b3D610d
0.0272 ETH0.000065321
Buy Bag52397792018-03-12 3:09:532479 days ago1520824193IN
0xFc88A9f0...b3b3D610d
0.03 ETH0.000066431
Buy Bag52397572018-03-12 3:06:052479 days ago1520823965IN
0xFc88A9f0...b3b3D610d
0.04 ETH0.000066431
Buy Bag52396242018-03-12 2:36:412479 days ago1520822201IN
0xFc88A9f0...b3b3D610d
0.04 ETH0.000244982
Buy Bag52380172018-03-11 20:07:062480 days ago1520798826IN
0xFc88A9f0...b3b3D610d
0.03 ETH0.000734966
Buy Bag52380092018-03-11 20:04:252480 days ago1520798665IN
0xFc88A9f0...b3b3D610d
0.02 ETH0.0013474311
View all transactions

Latest 11 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
67057182018-11-14 23:27:102231 days ago1542238030
0xFc88A9f0...b3b3D610d
0.03310784 ETH
65498202018-10-20 10:52:112257 days ago1540032731
0xFc88A9f0...b3b3D610d
0.04 ETH
57807982018-06-13 9:03:162386 days ago1528880596
0xFc88A9f0...b3b3D610d
0.54056536 ETH
53003812018-03-22 9:27:152469 days ago1521710835
0xFc88A9f0...b3b3D610d
0.0442 ETH
52945862018-03-21 10:11:322470 days ago1521627092
0xFc88A9f0...b3b3D610d
0.03310784 ETH
52482052018-03-13 13:41:432478 days ago1520948503
0xFc88A9f0...b3b3D610d
0.024208 ETH
52477742018-03-13 11:53:232478 days ago1520942003
0xFc88A9f0...b3b3D610d
0.0755768 ETH
52398502018-03-12 3:26:462479 days ago1520825206
0xFc88A9f0...b3b3D610d
0.024208 ETH
52380062018-03-11 20:03:542480 days ago1520798634
0xFc88A9f0...b3b3D610d
0.057798 ETH
52380052018-03-11 20:03:402480 days ago1520798620
0xFc88A9f0...b3b3D610d
0.024208 ETH
52380032018-03-11 20:03:022480 days ago1520798582
0xFc88A9f0...b3b3D610d
0.0442 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoSurprise

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-13
*/

pragma solidity ^0.4.19;

	////////////////////////////////////
	////// CRYPTO SURPRISE
	////// https://cryptosurprise.me
	////////////////////////////////////
	
contract CryptoSurprise
{
    using SetLibrary for SetLibrary.Set;
    
    ////////////////////////////////////
    ////// CONSTANTS
    
    uint256 constant public BAG_TRANSFER_FEE = 0.05 ether;
    uint256 constant public BAG_TRANSFER_MINIMUM_AMOUNT_OF_BUYS = 4;
    
    
    ////////////////////////////////////
    ////// STATE VARIABLES
    
    struct BagType
    {
        // Constants
        string name;
        
        uint256 startPrice;
        uint256 priceMultiplierPerBuy; // For example, 2 000 000 means 100% increase. (100% = doubling every buy)
        
        uint256 startCommission; // 0 to 1 000 000, for example 100 000 means 10%
        uint256 commissionIncrementPerBuy;
        uint256 maximumCommission;
        
        uint256 supplyHardCap;
        
        // Variables
        uint256 currentSupply;
    }
    
    struct Bag
    {
        // Constants
        uint256 bagTypeIndex;
        
        // Variables
        uint256 amountOfBuys;
        address owner;
        uint256 commission; // 0 to 1 000 000, for example 100 000 means 10%
        uint256 price;
        
        uint256 availableTimestamp;
    }
    
    // Variable that remembers the current owner
    address public owner;
    BagType[] public bagTypes;
    Bag[] public bags;
    
    mapping(address => uint256) public addressToTotalEtherSpent;
    mapping(address => uint256) public addressToTotalPurchasesMade;
    mapping(address => SetLibrary.Set) private ownerToBagIndices;
    address[] public allParticipants;
    
    
    ////////////////////////////////////
    ////// PLAYER FUNCTIONS
    
    function buyBag(uint256 _bagIndex) external payable
    {
        // Make sure that the bag exists
        require(_bagIndex < bags.length);
        
        // Reference the bag data and bag type data
        Bag storage bag = bags[_bagIndex];
        BagType storage bagType = bagTypes[bag.bagTypeIndex];
        
        // Make sure the bag is already available
        require(now >= bag.availableTimestamp);
        
        // Make sure the caller payed at least the current price
        require(msg.value >= bag.price);
        uint256 refund = msg.value - bag.price;
        
        // Remember who the previous owner was
        address previousOwner = bag.owner;
        
        // Set the buyer as the new owner
        bag.owner = msg.sender;
        
        // Calculate the previous and next price
        uint256 previousPrice = bag.price * 1000000 / bagType.priceMultiplierPerBuy;
        uint256 nextPrice = bag.price * bagType.priceMultiplierPerBuy / 1000000;
        
        // Calculate how much the previous owner should get:
        uint256 previousOwnerReward;
        
        // If this is the first buy: the full current price
        if (bag.amountOfBuys == 0)
        {
            previousOwnerReward = bag.price;
        }
        
        // otherwise: previous price + the commission
        else
        {
            previousOwnerReward = bag.price * bag.commission / 1000000;
            //previousOwnerReward = previousPrice + previousPrice * bag.commission / 1000000;
        }
        
        // Set the new price of the bag
        bag.price = nextPrice;
        
        // Increment the amountOfBuys counter
        bag.amountOfBuys++;
        
        // If this is NOT the first buy of this bag:
        if (bag.amountOfBuys > 1)
        {
            // Increase the commission up to the maximum
            if (bag.commission < bagType.maximumCommission)
            {
                uint256 newCommission = bag.commission + bagType.commissionIncrementPerBuy;
                
                if (newCommission >= bagType.maximumCommission)
                {
                    bag.commission = bagType.maximumCommission;
                }
                else 
                {
                    bag.commission = newCommission;
                }
            }
        }
        
        // Record statistics
        if (addressToTotalPurchasesMade[msg.sender] == 0)
        {
            allParticipants.push(msg.sender);
        }
        addressToTotalEtherSpent[msg.sender] += msg.value;
        addressToTotalPurchasesMade[msg.sender]++;
        
        // Transfer the reward to the previous owner. If the previous owner is
        // the CryptoSurprise smart contract itself, we don't need to perform any
        // transfer because the contract already has it.
        if (previousOwner != address(this))
        {
            previousOwner.transfer(previousOwnerReward);
        }
        
        if (refund > 0)
        {
            msg.sender.transfer(refund);
        }
    }
    
    function transferBag(address _newOwner, uint256 _bagIndex) public payable
    {
        // Require payment
        require(msg.value == BAG_TRANSFER_FEE);
        
        // Perform the transfer
        _transferBag(msg.sender, _newOwner, _bagIndex);
    }
    
    
    ////////////////////////////////////
    ////// OWNER FUNCTIONS
    
    // Constructor function
    function CryptoSurprise() public
    {
        owner = msg.sender;
        
        bagTypes.push(BagType({
            name: "Blue",
            
            startPrice: 0.04 ether,
            priceMultiplierPerBuy: 1300000, // 130%
            
            startCommission: 850000, // 85%
            commissionIncrementPerBuy: 5000, // 0.5 %-point
            maximumCommission: 900000, // 90%
            
            supplyHardCap: 600,
            
            currentSupply: 0
        }));
		bagTypes.push(BagType({
            name: "Red",
            
            startPrice: 0.03 ether,
            priceMultiplierPerBuy: 1330000, // 133%
            
            startCommission: 870000, // 87%
            commissionIncrementPerBuy: 5000, // 0.5 %-point
            maximumCommission: 920000, // 92%
            
            supplyHardCap: 300,
            
            currentSupply: 0
        }));
		bagTypes.push(BagType({
            name: "Green",
            
            startPrice: 0.02 ether,
            priceMultiplierPerBuy: 1360000, // 136%
            
            startCommission: 890000, // 89%
            commissionIncrementPerBuy: 5000, // 0.5 %-point
            maximumCommission: 940000, // 94%
            
            supplyHardCap: 150,
            
            currentSupply: 0
        }));
		bagTypes.push(BagType({
            name: "Black",
            
            startPrice: 0.1 ether,
            priceMultiplierPerBuy: 1450000, // 145%
            
            startCommission: 920000, // 92%
            commissionIncrementPerBuy: 10000, // 1 %-point
            maximumCommission: 960000, // 96%
            
            supplyHardCap: 50,
            
            currentSupply: 0
        }));
		bagTypes.push(BagType({
            name: "Pink",
            
            startPrice: 1 ether,
            priceMultiplierPerBuy: 1500000, // 150%
            
            startCommission: 940000, // 94%
            commissionIncrementPerBuy: 10000, // 1 %-point
            maximumCommission: 980000, // 98%
            
            supplyHardCap: 10,
            
            currentSupply: 0
        }));
		bagTypes.push(BagType({
            name: "White",
            
            startPrice: 10 ether,
            priceMultiplierPerBuy: 1500000, // 150%
            
            startCommission: 970000, // 97%
            commissionIncrementPerBuy: 10000, // 1 %-point
            maximumCommission: 990000, // 99%
            
            supplyHardCap: 1,
            
            currentSupply: 0
        }));
    }
    
    // Function that allows the current owner to transfer ownership
    function transferOwnership(address _newOwner) external
    {
        require(msg.sender == owner);
        owner = _newOwner;
    }
    
    // Only the owner can deposit ETH by sending it directly to the contract
    function () payable external
    {
        require(msg.sender == owner);
    }
    
    // Function that allows the current owner to withdraw any amount
    // of ETH from the contract
    function withdrawEther(uint256 amount) external
    {
        require(msg.sender == owner);
        owner.transfer(amount);
    }
    
    function addBag(uint256 _bagTypeIndex) external
    {
        addBagAndGift(_bagTypeIndex, address(this));
    }
    function addBagDelayed(uint256 _bagTypeIndex, uint256 _delaySeconds) external
    {
        addBagAndGiftAtTime(_bagTypeIndex, address(this), now + _delaySeconds);
    }
    
    function addBagAndGift(uint256 _bagTypeIndex, address _firstOwner) public
    {
        addBagAndGiftAtTime(_bagTypeIndex, _firstOwner, now);
    }
    function addBagAndGiftAtTime(uint256 _bagTypeIndex, address _firstOwner, uint256 _timestamp) public
    {
        require(msg.sender == owner);
        
        require(_bagTypeIndex < bagTypes.length);
        
        BagType storage bagType = bagTypes[_bagTypeIndex];
        
        require(bagType.currentSupply < bagType.supplyHardCap);
        
        bags.push(Bag({
            bagTypeIndex: _bagTypeIndex,
            
            amountOfBuys: 0,
            owner: _firstOwner,
            commission: bagType.startCommission,
            price: bagType.startPrice,
            
            availableTimestamp: _timestamp
        }));
        
        bagType.currentSupply++;
    }
    

    
    ////////////////////////////////////
    ////// INTERNAL FUNCTIONS
    
    function _transferBag(address _from, address _to, uint256 _bagIndex) internal
    {
        // Make sure that the bag exists
        require(_bagIndex < bags.length);
        
        // Bag may not be transferred before it has been bought x times
        require(bags[_bagIndex].amountOfBuys >= BAG_TRANSFER_MINIMUM_AMOUNT_OF_BUYS);
        
        // Make sure that the sender is the current owner of the bag
        require(bags[_bagIndex].owner == _from);
        
        // Set the new owner
        bags[_bagIndex].owner = _to;
        ownerToBagIndices[_from].remove(_bagIndex);
        ownerToBagIndices[_to].add(_bagIndex);
        
        // Trigger blockchain event
        Transfer(_from, _to, _bagIndex);
    }
    
    
    ////////////////////////////////////
    ////// VIEW FUNCTIONS FOR USER INTERFACE
    
    function amountOfBags() external view returns (uint256)
    {
        return bags.length;
    }
    function amountOfBagTypes() external view returns (uint256)
    {
        return bagTypes.length;
    }
    function amountOfParticipants() external view returns (uint256)
    {
        return allParticipants.length;
    }
    
    
    ////////////////////////////////////
    ////// ERC721 NON FUNGIBLE TOKEN INTERFACE
    
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
    
    function name() external pure returns (string)
    {
        return "Bags";
    }
    
    function symbol() external pure returns (string)
    {
        return "BAG";
    }
    
    function totalSupply() external view returns (uint256)
    {
        return bags.length;
    }
    
    function balanceOf(address _owner) external view returns (uint256)
    {
        return ownerToBagIndices[_owner].size();
    }
    
    function ownerOf(uint256 _bagIndex) external view returns (address)
    {
        require(_bagIndex < bags.length);
        
        return bags[_bagIndex].owner;
    }
    mapping(address => mapping(address => mapping(uint256 => bool))) private ownerToAddressToBagIndexAllowed;
    function approve(address _to, uint256 _bagIndex) external
    {
        require(_bagIndex < bags.length);
        
        require(msg.sender == bags[_bagIndex].owner);
        
        ownerToAddressToBagIndexAllowed[msg.sender][_to][_bagIndex] = true;
    }
    
    function takeOwnership(uint256 _bagIndex) external
    {
        require(_bagIndex < bags.length);
        
        address previousOwner = bags[_bagIndex].owner;
        
        require(ownerToAddressToBagIndexAllowed[previousOwner][msg.sender][_bagIndex] == true);
        
        ownerToAddressToBagIndexAllowed[previousOwner][msg.sender][_bagIndex] = false;
        
        _transferBag(previousOwner, msg.sender, _bagIndex);
    }
    
    function transfer(address _to, uint256 _bagIndex) external
    {
        transferBag(_to, _bagIndex);
    }
    
    function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256)
    {
        require(_index < ownerToBagIndices[_owner].size());
        
        return ownerToBagIndices[_owner].values[_index];
    }
}
 
library SetLibrary
{
    struct ArrayIndexAndExistsFlag
    {
        uint256 index;
        bool exists;
    }
    struct Set
    {
        mapping(uint256 => ArrayIndexAndExistsFlag) valuesMapping;
        uint256[] values;
    }
    function add(Set storage self, uint256 value) public returns (bool added)
    {
        // If the value is already in the set, we don't need to do anything
        if (self.valuesMapping[value].exists == true) return false;
        
        // Remember that the value is in the set, and remember the value's array index
        self.valuesMapping[value] = ArrayIndexAndExistsFlag({index: self.values.length, exists: true});
        
        // Add the value to the array of unique values
        self.values.push(value);
        
        return true;
    }
    function contains(Set storage self, uint256 value) public view returns (bool contained)
    {
        return self.valuesMapping[value].exists;
    }
    function remove(Set storage self, uint256 value) public returns (bool removed)
    {
        // If the value is not in the set, we don't need to do anything
        if (self.valuesMapping[value].exists == false) return false;
        
        // Remember that the value is not in the set
        self.valuesMapping[value].exists = false;
        
        // Now we need to remove the value from the array. To prevent leaking
        // storage space, we move the last value in the array into the spot that
        // contains the element we're removing.
        if (self.valuesMapping[value].index < self.values.length-1)
        {
            uint256 valueToMove = self.values[self.values.length-1];
            uint256 indexToMoveItTo = self.valuesMapping[value].index;
            self.values[indexToMoveItTo] = valueToMove;
            self.valuesMapping[valueToMove].index = indexToMoveItTo;
        }
        
        // Now we remove the last element from the array, because we just duplicated it.
        // We don't free the storage allocation of the removed last element,
        // because it will most likely be used again by a call to add().
        // De-allocating and re-allocating storage space costs more gas than
        // just keeping it allocated and unused.
        
        // Uncomment this line to save gas if your use case does not call add() after remove():
        // delete self.values[self.values.length-1];
        self.values.length--;
        
        // We do free the storage allocation in the mapping, because it is
        // less likely that the exact same value will added again.
        delete self.valuesMapping[value];
        
        return true;
    }
    function size(Set storage self) public view returns (uint256 amountOfValues)
    {
        return self.values.length;
    }
    
    // Also accept address and bytes32 types, so the user doesn't have to cast.
    function add(Set storage self, address value) public returns (bool added) { return add(self, uint256(value)); }
    function add(Set storage self, bytes32 value) public returns (bool added) { return add(self, uint256(value)); }
    function contains(Set storage self, address value) public view returns (bool contained) { return contains(self, uint256(value)); }
    function contains(Set storage self, bytes32 value) public view returns (bool contained) { return contains(self, uint256(value)); }
    function remove(Set storage self, address value) public returns (bool removed) { return remove(self, uint256(value)); }
    function remove(Set storage self, bytes32 value) public returns (bool removed) { return remove(self, uint256(value)); }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allParticipants","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_bagIndex","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bagTypeIndex","type":"uint256"},{"name":"_firstOwner","type":"address"},{"name":"_timestamp","type":"uint256"}],"name":"addBagAndGiftAtTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bagIndex","type":"uint256"}],"name":"buyBag","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bagTypeIndex","type":"uint256"}],"name":"addBag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"amountOfBagTypes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_bagIndex","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressToTotalPurchasesMade","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressToTotalEtherSpent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"},{"name":"_bagIndex","type":"uint256"}],"name":"transferBag","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_bagIndex","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bagIndex","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"amountOfBags","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bags","outputs":[{"name":"bagTypeIndex","type":"uint256"},{"name":"amountOfBuys","type":"uint256"},{"name":"owner","type":"address"},{"name":"commission","type":"uint256"},{"name":"price","type":"uint256"},{"name":"availableTimestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bagTypes","outputs":[{"name":"name","type":"string"},{"name":"startPrice","type":"uint256"},{"name":"priceMultiplierPerBuy","type":"uint256"},{"name":"startCommission","type":"uint256"},{"name":"commissionIncrementPerBuy","type":"uint256"},{"name":"maximumCommission","type":"uint256"},{"name":"supplyHardCap","type":"uint256"},{"name":"currentSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"amountOfParticipants","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bagTypeIndex","type":"uint256"},{"name":"_firstOwner","type":"address"}],"name":"addBagAndGift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BAG_TRANSFER_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bagTypeIndex","type":"uint256"},{"name":"_delaySeconds","type":"uint256"}],"name":"addBagDelayed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BAG_TRANSFER_MINIMUM_AMOUNT_OF_BUYS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

606060405234156200001057600080fd5b60008054600160a060020a03191633600160a060020a0316179055600180548082016200003e838262000690565b91600052602060002090600802016000610100604051908101604052806040805190810160405280600481526020017f426c7565000000000000000000000000000000000000000000000000000000008152508152602001668e1bc9bf04000081526020016213d6208152602001620cf85081526020016113888152602001620dbba08152602001610258815260200160008152509091909150600082015181908051620000f1929160200190620006c4565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201516007909101555050600180548082016200014e838262000690565b91600052602060002090600802016000610100604051908101604052806040805190810160405280600381526020017f52656400000000000000000000000000000000000000000000000000000000008152508152602001666a94d74f430000815260200162144b508152602001620d467081526020016113888152602001620e09c0815260200161012c81526020016000815250909190915060008201518190805162000201929160200190620006c4565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201516007909101555050600180548082016200025e838262000690565b91600052602060002090600802016000610100604051908101604052806040805190810160405280600581526020017f477265656e000000000000000000000000000000000000000000000000000000815250815260200166470de4df82000081526020016214c0808152602001620d949081526020016113888152602001620e57e08152602001609681526020016000815250909190915060008201518190805162000310929160200190620006c4565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201516007909101555050600180548082016200036d838262000690565b91600052602060002090600802016000610100604051908101604052806040805190810160405280600581526020017f426c61636b000000000000000000000000000000000000000000000000000000815250815260200167016345785d8a00008152602001621620108152602001620e09c081526020016127108152602001620ea6008152602001603281526020016000815250909190915060008201518190805162000420929160200190620006c4565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201516007909101555050600180548082016200047d838262000690565b91600052602060002090600802016000610100604051908101604052806040805190810160405280600481526020017f50696e6b000000000000000000000000000000000000000000000000000000008152508152602001670de0b6b3a764000081526020016216e3608152602001620e57e081526020016127108152602001620ef4208152602001600a81526020016000815250909190915060008201518190805162000530929160200190620006c4565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201516007909101555050600180548082016200058d838262000690565b91600052602060002090600802016000610100604051908101604052806040805190810160405280600581526020017f57686974650000000000000000000000000000000000000000000000000000008152508152602001678ac7230489e8000081526020016216e3608152602001620ecd1081526020016127108152602001620f1b308152602001600181526020016000815250909190915060008201518190805162000640929160200190620006c4565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701555050506200080d565b815481835581811511620006bf57600802816008028360005260206000209182019101620006bf919062000749565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200070757805160ff191683800117855562000737565b8280016001018555821562000737579182015b82811115620007375782518255916020019190600101906200071a565b5062000745929150620007a5565b5090565b620007a291905b8082111562000745576000620007678282620007c2565b506000600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782015560080162000750565b90565b620007a291905b80821115620007455760008155600101620007ac565b50805460018160011615610100020316600290046000825580601f10620007ea57506200080a565b601f0160209004906000526020600020908101906200080a9190620007a5565b50565b6111cf806200081d6000396000f3006060604052600436106101505763ffffffff60e060020a60003504166305e33dd0811461016d57806306fdde031461019f578063095ea7b31461022957806318160ddd1461024b57806326ba1c19146102705780632db93fc7146102955780632f745c59146102a05780633221e125146102c25780633bed33ce146102d857806343a8775a146102ee5780636352211e1461030157806370a0823114610317578063808cd1251461033657806381e4d40c146103555780638da5cb5b1461037457806395d89b4114610387578063993b4f711461039a578063a9059cbb146103b1578063b2e6ceeb146103d3578063bd355f431461024b578063dda4df4e146103e9578063df41e2541461044a578063e2a51b8f14610520578063ef532a4714610533578063f17a1ff514610555578063f272a60c14610568578063f2fde38b14610581578063f7dd2e28146105a0575b60005433600160a060020a0390811691161461016b57600080fd5b005b341561017857600080fd5b6101836004356105b3565b604051600160a060020a03909116815260200160405180910390f35b34156101aa57600080fd5b6101b26105db565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101ee5780820151838201526020016101d6565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b61016b600160a060020a036004351660243561061d565b341561025657600080fd5b61025e6106a2565b60405190815260200160405180910390f35b341561027b57600080fd5b61016b600435600160a060020a03602435166044356106a8565b61016b6004356107d0565b34156102ab57600080fd5b61025e600160a060020a0360043516602435610a46565b34156102cd57600080fd5b61016b600435610b18565b34156102e357600080fd5b61016b600435610b25565b34156102f957600080fd5b61025e610b73565b341561030c57600080fd5b610183600435610b79565b341561032257600080fd5b61025e600160a060020a0360043516610bbb565b341561034157600080fd5b61025e600160a060020a0360043516610c4c565b341561036057600080fd5b61025e600160a060020a0360043516610c5e565b341561037f57600080fd5b610183610c70565b341561039257600080fd5b6101b2610c7f565b61016b600160a060020a0360043516602435610cc0565b34156103bc57600080fd5b61016b600160a060020a0360043516602435610ce2565b34156103de57600080fd5b61016b600435610cec565b34156103f457600080fd5b6103ff600435610da6565b6040518087815260200186815260200185600160a060020a0316600160a060020a03168152602001848152602001838152602001828152602001965050505050505060405180910390f35b341561045557600080fd5b610460600435610df4565b6040516020810188905260408101879052606081018690526080810185905260a0810184905260c0810183905260e081018290526101008082528954600260001960018316158402019091160490820181905281906101208201908b90801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b5050995050505050505050505060405180910390f35b341561052b57600080fd5b61025e610e49565b341561053e57600080fd5b61016b600435600160a060020a0360243516610e4f565b341561056057600080fd5b61025e610e5a565b341561057357600080fd5b61016b600435602435610e65565b341561058c57600080fd5b61016b600160a060020a0360043516610e72565b34156105ab57600080fd5b61025e610eaf565b60068054829081106105c157fe5b600091825260209091200154600160a060020a0316905081565b6105e36110d7565b60408051908101604052600481527f4261677300000000000000000000000000000000000000000000000000000000602082015290505b90565b600254811061062b57600080fd5b600280548290811061063957fe5b600091825260209091206002600690920201015433600160a060020a0390811691161461066557600080fd5b600160a060020a0333811660009081526007602090815260408083209590931682529384528181209281529190925220805460ff19166001179055565b60025490565b6000805433600160a060020a039081169116146106c457600080fd5b60015484106106d257600080fd5b60018054859081106106e057fe5b906000526020600020906008020190508060060154816007015410151561070657600080fd5b600280546001810161071883826110e9565b9160005260206000209060060201600060c0604051908101604090815288825260006020830152600160a060020a03881690820152600385015460608201526001850154608082015260a0810186905291905081518155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151600590910155505060070180546001019055505050565b600080600080600080600080600280549050891015156107ef57600080fd5b600280548a9081106107fd57fe5b906000526020600020906006020197506001886000015481548110151561082057fe5b906000526020600020906008020196508760050154421015151561084357600080fd5b600488015434101561085457600080fd5b60048801546002808a01805433600160a060020a03908116600160a060020a0319831617909255918a01543484900399509116965090620f42400281151561089857fe5b049350620f424087600201548960040154028115156108b357fe5b0492508760010154600014156108cf57876004015491506108e3565b60038801546004890154620f424091020491505b6004880183905560018089018054820190819055111561093d5786600501548860030154101561093d57506004860154600388015460058801549101908110610935576005870154600389015561093d565b600388018190555b600160a060020a033316600090815260046020526040902054151561099457600680546001810161096e838261111a565b5060009182526020909120018054600160a060020a03191633600160a060020a03161790555b600160a060020a03338116600090815260036020908152604080832080543401905560049091529020805460010190558581163090911614610a0157600160a060020a03851682156108fc0283604051600060405180830381858888f193505050501515610a0157600080fd5b6000861115610a3b57600160a060020a03331686156108fc0287604051600060405180830381858888f193505050501515610a3b57600080fd5b505050505050505050565b600160a060020a0382166000908152600560205260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a916381d21e4d91908490516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b1515610ab757600080fd5b6102c65a03f41515610ac857600080fd5b505050604051805183109050610add57600080fd5b600160a060020a0383166000908152600560205260409020600101805483908110610b0457fe5b906000526020600020900154905092915050565b610b228130610e4f565b50565b60005433600160a060020a03908116911614610b4057600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610b2257600080fd5b60015490565b6002546000908210610b8a57600080fd5b6002805483908110610b9857fe5b6000918252602090912060069091020160020154600160a060020a031692915050565b600160a060020a0381166000908152600560205260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a916381d21e4d91908490516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b1515610c2c57600080fd5b6102c65a03f41515610c3d57600080fd5b50505060405180519392505050565b60046020526000908152604090205481565b60036020526000908152604090205481565b600054600160a060020a031681565b610c876110d7565b60408051908101604052600381527f42414700000000000000000000000000000000000000000000000000000000006020820152905090565b3466b1a2bc2ec5000014610cd357600080fd5b610cde338383610eb4565b5050565b610cde8282610cc0565b6002546000908210610cfd57600080fd5b6002805483908110610d0b57fe5b6000918252602080832060026006909302019190910154600160a060020a039081168084526007835260408085203390931685529183528184208685529092529091205490915060ff161515600114610d6357600080fd5b600160a060020a03808216600090815260076020908152604080832033948516845282528083208684529091529020805460ff19169055610cde90829084610eb4565b6002805482908110610db457fe5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395509193600160a060020a039091169286565b6001805482908110610e0257fe5b906000526020600020906008020160009150905080600001908060010154908060020154908060030154908060040154908060050154908060060154908060070154905088565b60065490565b610cde8282426106a8565b66b1a2bc2ec5000081565b610cde82308342016106a8565b60005433600160a060020a03908116911614610e8d57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600481565b6002548110610ec257600080fd5b6004600282815481101515610ed357fe5b90600052602060002090600602016001015410151515610ef257600080fd5b82600160a060020a0316600282815481101515610f0b57fe5b6000918252602090912060026006909202010154600160a060020a031614610f3257600080fd5b81600282815481101515610f4257fe5b600091825260208083206006929092029091016002018054600160a060020a031916600160a060020a039485161790559185168152600590915260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a92636cd23f5392859190516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b1515610fde57600080fd5b6102c65a03f41515610fef57600080fd5b50505060405180515050600160a060020a0382166000908152600560205260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a92632e6b975d92859190516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561106f57600080fd5b6102c65a03f4151561108057600080fd5b505050604051805190505081600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b60206040519081016040526000815290565b81548183558181151161111557600602816006028360005260206000209182019101611115919061113e565b505050565b81548183558181151161111557600083815260209020611115918101908301611189565b61061a91905b8082111561118557600080825560018201819055600282018054600160a060020a031916905560038201819055600482018190556005820155600601611144565b5090565b61061a91905b80821115611185576000815560010161118f5600a165627a7a72305820344941c93384be2385ef37755c9aaa5684448e3fd92bb21795385eee1d2b7c230029

Deployed Bytecode

0x6060604052600436106101505763ffffffff60e060020a60003504166305e33dd0811461016d57806306fdde031461019f578063095ea7b31461022957806318160ddd1461024b57806326ba1c19146102705780632db93fc7146102955780632f745c59146102a05780633221e125146102c25780633bed33ce146102d857806343a8775a146102ee5780636352211e1461030157806370a0823114610317578063808cd1251461033657806381e4d40c146103555780638da5cb5b1461037457806395d89b4114610387578063993b4f711461039a578063a9059cbb146103b1578063b2e6ceeb146103d3578063bd355f431461024b578063dda4df4e146103e9578063df41e2541461044a578063e2a51b8f14610520578063ef532a4714610533578063f17a1ff514610555578063f272a60c14610568578063f2fde38b14610581578063f7dd2e28146105a0575b60005433600160a060020a0390811691161461016b57600080fd5b005b341561017857600080fd5b6101836004356105b3565b604051600160a060020a03909116815260200160405180910390f35b34156101aa57600080fd5b6101b26105db565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101ee5780820151838201526020016101d6565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b61016b600160a060020a036004351660243561061d565b341561025657600080fd5b61025e6106a2565b60405190815260200160405180910390f35b341561027b57600080fd5b61016b600435600160a060020a03602435166044356106a8565b61016b6004356107d0565b34156102ab57600080fd5b61025e600160a060020a0360043516602435610a46565b34156102cd57600080fd5b61016b600435610b18565b34156102e357600080fd5b61016b600435610b25565b34156102f957600080fd5b61025e610b73565b341561030c57600080fd5b610183600435610b79565b341561032257600080fd5b61025e600160a060020a0360043516610bbb565b341561034157600080fd5b61025e600160a060020a0360043516610c4c565b341561036057600080fd5b61025e600160a060020a0360043516610c5e565b341561037f57600080fd5b610183610c70565b341561039257600080fd5b6101b2610c7f565b61016b600160a060020a0360043516602435610cc0565b34156103bc57600080fd5b61016b600160a060020a0360043516602435610ce2565b34156103de57600080fd5b61016b600435610cec565b34156103f457600080fd5b6103ff600435610da6565b6040518087815260200186815260200185600160a060020a0316600160a060020a03168152602001848152602001838152602001828152602001965050505050505060405180910390f35b341561045557600080fd5b610460600435610df4565b6040516020810188905260408101879052606081018690526080810185905260a0810184905260c0810183905260e081018290526101008082528954600260001960018316158402019091160490820181905281906101208201908b90801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b5050995050505050505050505060405180910390f35b341561052b57600080fd5b61025e610e49565b341561053e57600080fd5b61016b600435600160a060020a0360243516610e4f565b341561056057600080fd5b61025e610e5a565b341561057357600080fd5b61016b600435602435610e65565b341561058c57600080fd5b61016b600160a060020a0360043516610e72565b34156105ab57600080fd5b61025e610eaf565b60068054829081106105c157fe5b600091825260209091200154600160a060020a0316905081565b6105e36110d7565b60408051908101604052600481527f4261677300000000000000000000000000000000000000000000000000000000602082015290505b90565b600254811061062b57600080fd5b600280548290811061063957fe5b600091825260209091206002600690920201015433600160a060020a0390811691161461066557600080fd5b600160a060020a0333811660009081526007602090815260408083209590931682529384528181209281529190925220805460ff19166001179055565b60025490565b6000805433600160a060020a039081169116146106c457600080fd5b60015484106106d257600080fd5b60018054859081106106e057fe5b906000526020600020906008020190508060060154816007015410151561070657600080fd5b600280546001810161071883826110e9565b9160005260206000209060060201600060c0604051908101604090815288825260006020830152600160a060020a03881690820152600385015460608201526001850154608082015260a0810186905291905081518155602082015181600101556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151600590910155505060070180546001019055505050565b600080600080600080600080600280549050891015156107ef57600080fd5b600280548a9081106107fd57fe5b906000526020600020906006020197506001886000015481548110151561082057fe5b906000526020600020906008020196508760050154421015151561084357600080fd5b600488015434101561085457600080fd5b60048801546002808a01805433600160a060020a03908116600160a060020a0319831617909255918a01543484900399509116965090620f42400281151561089857fe5b049350620f424087600201548960040154028115156108b357fe5b0492508760010154600014156108cf57876004015491506108e3565b60038801546004890154620f424091020491505b6004880183905560018089018054820190819055111561093d5786600501548860030154101561093d57506004860154600388015460058801549101908110610935576005870154600389015561093d565b600388018190555b600160a060020a033316600090815260046020526040902054151561099457600680546001810161096e838261111a565b5060009182526020909120018054600160a060020a03191633600160a060020a03161790555b600160a060020a03338116600090815260036020908152604080832080543401905560049091529020805460010190558581163090911614610a0157600160a060020a03851682156108fc0283604051600060405180830381858888f193505050501515610a0157600080fd5b6000861115610a3b57600160a060020a03331686156108fc0287604051600060405180830381858888f193505050501515610a3b57600080fd5b505050505050505050565b600160a060020a0382166000908152600560205260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a916381d21e4d91908490516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b1515610ab757600080fd5b6102c65a03f41515610ac857600080fd5b505050604051805183109050610add57600080fd5b600160a060020a0383166000908152600560205260409020600101805483908110610b0457fe5b906000526020600020900154905092915050565b610b228130610e4f565b50565b60005433600160a060020a03908116911614610b4057600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610b2257600080fd5b60015490565b6002546000908210610b8a57600080fd5b6002805483908110610b9857fe5b6000918252602090912060069091020160020154600160a060020a031692915050565b600160a060020a0381166000908152600560205260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a916381d21e4d91908490516020015260405160e060020a63ffffffff8416028152600481019190915260240160206040518083038186803b1515610c2c57600080fd5b6102c65a03f41515610c3d57600080fd5b50505060405180519392505050565b60046020526000908152604090205481565b60036020526000908152604090205481565b600054600160a060020a031681565b610c876110d7565b60408051908101604052600381527f42414700000000000000000000000000000000000000000000000000000000006020820152905090565b3466b1a2bc2ec5000014610cd357600080fd5b610cde338383610eb4565b5050565b610cde8282610cc0565b6002546000908210610cfd57600080fd5b6002805483908110610d0b57fe5b6000918252602080832060026006909302019190910154600160a060020a039081168084526007835260408085203390931685529183528184208685529092529091205490915060ff161515600114610d6357600080fd5b600160a060020a03808216600090815260076020908152604080832033948516845282528083208684529091529020805460ff19169055610cde90829084610eb4565b6002805482908110610db457fe5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395509193600160a060020a039091169286565b6001805482908110610e0257fe5b906000526020600020906008020160009150905080600001908060010154908060020154908060030154908060040154908060050154908060060154908060070154905088565b60065490565b610cde8282426106a8565b66b1a2bc2ec5000081565b610cde82308342016106a8565b60005433600160a060020a03908116911614610e8d57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600481565b6002548110610ec257600080fd5b6004600282815481101515610ed357fe5b90600052602060002090600602016001015410151515610ef257600080fd5b82600160a060020a0316600282815481101515610f0b57fe5b6000918252602090912060026006909202010154600160a060020a031614610f3257600080fd5b81600282815481101515610f4257fe5b600091825260208083206006929092029091016002018054600160a060020a031916600160a060020a039485161790559185168152600590915260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a92636cd23f5392859190516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b1515610fde57600080fd5b6102c65a03f41515610fef57600080fd5b50505060405180515050600160a060020a0382166000908152600560205260408082207355f44e8b16651a7c5ea1ffcc54749336ffc17e3a92632e6b975d92859190516020015260405160e060020a63ffffffff85160281526004810192909252602482015260440160206040518083038186803b151561106f57600080fd5b6102c65a03f4151561108057600080fd5b505050604051805190505081600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b60206040519081016040526000815290565b81548183558181151161111557600602816006028360005260206000209182019101611115919061113e565b505050565b81548183558181151161111557600083815260209020611115918101908301611189565b61061a91905b8082111561118557600080825560018201819055600282018054600160a060020a031916905560038201819055600482018190556005820155600601611144565b5090565b61061a91905b80821115611185576000815560010161118f5600a165627a7a72305820344941c93384be2385ef37755c9aaa5684448e3fd92bb21795385eee1d2b7c230029

Libraries Used


Swarm Source

bzzr://344941c93384be2385ef37755c9aaa5684448e3fd92bb21795385eee1d2b7c23

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

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.