Contract 0x96313f2C374F901E3831ea6DE67b1165c4f39A54

 

TxHash Block Age From To Value [TxFee]
0x6fd1611bc8326d1bb5d10655f56a2a1af467cfc0b38a2765cfe60a3fba07522e72092766 days 3 hrs ago0xbbd13ca6aace2a8eccbde88bc7849c3c6e4e172e  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.000870765012
0xe3d5b9be71615e198ecbcff71a170f09fc1f03d9db16fdcd41d4066ef4833c9072092596 days 4 hrs ago0xbbd13ca6aace2a8eccbde88bc7849c3c6e4e172e  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.815024218948972 Ether0.000163284
0x65fe3d5fa39398c8b97065ee1abb221b97b5ffce1d68b466196542edc44561c2714518219 days 12 hrs ago0xa0d55039834d2373014b66a322b49e32f4869f49  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.319821138250917 Ether0.000122124
0xcdc3f4ef477511dd67ef6428bb53a6bf04ea3c270f5898f5bc3ecc06aed461ff710049728 days 9 hrs ago0xf6fdee29e3a14610fdbe187e2d3442543cfa45b8  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.319821138250917 Ether0.000132832
0x6969b94119d0fe793e002db637aa2c6626ae89c0a9208b1fecfd72217f6cf202707647832 days 16 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.632458793904402 Ether0.000413136
0xafd40eacaee6a08f5c241aa23df3637e349169d806bd27476c6884858b146764706621734 days 12 hrs ago0x9ae048c47aef066e03593d5edb230e3fa80c3f17  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.00031744
0xb0ace871caf87dd1dc1959453d4c7e502399f0b694c1cef629f6c7c98a22e630706620934 days 12 hrs ago0x9ae048c47aef066e03593d5edb230e3fa80c3f17  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.00031744
0x8e861c958f22f63d2c74442b5504b7dc5ec1ecbd98bd5152e7b52435213da39b706620334 days 12 hrs ago0x9ae048c47aef066e03593d5edb230e3fa80c3f17  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.00031744
0x6c026f90469b50cdd5fecfb0ba61b6c0225b18471f59dc3cd973a2187f6fce6e705108537 days 5 hrs ago0x91d6e260a5965a3c33d5bc4bf4adcf96c449ed2e  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.000361395
0x201eee5381f4fdc0b46eff06c984a306a0e3e9ab919d8afc3a9d4f6f0e5a1528705107937 days 5 hrs ago0x91d6e260a5965a3c33d5bc4bf4adcf96c449ed2e  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.0001662417
0xaa7a5285b7f859089f80f5d1c3bf37b17b9329a55cd3d6be7c5ab649d29f36d0704479638 days 8 hrs ago0x7a79caf5467c7cb3f38edb1e523709fb2a60cf68  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.319821138250917 Ether0.00013403
0xd82ed430230d974c2a7fdfc2b8a590729dd00619509f70cbae63c5babf5a149e704385438 days 12 hrs ago0x29ecaa773f052d14ec5258b352ee7304f57aabc3  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.632458793904402 Ether0.000244926
0x1376971f544bcd03a0c005d6c6131e5e080fe8d311e924395a142fccce987dca704315638 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.319821138250917 Ether0.000603135
0x171f216da38dac129a6abcbf15c0a74da60b630fb2d33fe6b3fde84877b5ce56704315338 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.815024218948972 Ether0.000599778
0x84a85e7ec9246a1a4a2bbbfe2cd934e5af35ba89a3f1eca923dab4d6ec623e1d704315138 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.449748475665352 Ether0.000597744
0xd3d0c2e0792ce9fa822818949e3a594a6690b58f937aeede70aa059baca23d8c704315138 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.319821138250917 Ether0.000597744
0x856188a9058a1be0e8f35ad45ab4665359bdc4adb48a3dd9b598796c6c10f4dc704314838 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a541.050288941944551 Ether0.000599778
0x52a513022aa4cdaaff0bdcbe9895b6cd3ab5078da751d78ecafaa9f4d7e1d9ef704314638 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.632458793904402 Ether0.000464778
0xf80d7615aa3c5803461c620017529eacb1de51b449e00eb0eb5522da380319c5704314638 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a541.050288941944551 Ether0.000599778
0x90b163d1c08814b36f0b12c8f4300a7807155763943bff105d255d9107e9d3d5704314438 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.632458793904402 Ether0.000464778
0x658c0cf9005ba64afc41501a553319baa5c4d3525ca1804eef44e76f14ebea87704314238 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540.449748475665352 Ether0.000462744
0x18d4f6b4f077f09cc6a1239115a6e3d9b417fa7c019ece8c316fdd240f7e27f2704314138 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a541.744156097128666 Ether0.000599778
0x3459e1e9bebfa4b778d9c0413941ee97c7cd1538cdd1757191bbb7c6c2d72925704313838 days 15 hrs ago0xb823dc506011eedab6f8feecc88806dbfc55ea93  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a542.247623836506013 Ether0.000601812
0x617694ad9042f6f159d811f4d0dac81395ce2191e243e988f0839a07118e1f94702934541 days 2 hrs ago0xe5501bc2b0df6d0d7daafc18d2ef127d9e612963  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.000289116
0xf35a6b69f46c6694431fa54c85bc052d064b76289388539453c6e60d3c7747ec702934541 days 2 hrs ago0xe5501bc2b0df6d0d7daafc18d2ef127d9e612963  IN   0x96313f2c374f901e3831ea6de67b1165c4f39a540 Ether0.00048186
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xe3d5b9be71615e198ecbcff71a170f09fc1f03d9db16fdcd41d4066ef4833c9072092596 days 4 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540xb823dc506011eedab6f8feecc88806dbfc55ea930.733521797054074896 Ether
0x65fe3d5fa39398c8b97065ee1abb221b97b5ffce1d68b466196542edc44561c2714518219 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x22838f301a7922062c35d4f317cec26488fe78120.287839024425825784 Ether
0xcdc3f4ef477511dd67ef6428bb53a6bf04ea3c270f5898f5bc3ecc06aed461ff710049728 days 9 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540xf902d068920234957d2908b8b0156e61c0bea2c20.287839024425825784 Ether
0x6969b94119d0fe793e002db637aa2c6626ae89c0a9208b1fecfd72217f6cf202707647832 days 16 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540xde16ec1a5fbbd25d4af395b452ec067f6e937f5f0.56921291451396212 Ether
0xafd40eacaee6a08f5c241aa23df3637e349169d806bd27476c6884858b146764706621734 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x9ae048c47aef066e03593d5edb230e3fa80c3f172 Ether
0xb0ace871caf87dd1dc1959453d4c7e502399f0b694c1cef629f6c7c98a22e630706620934 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x9ae048c47aef066e03593d5edb230e3fa80c3f172 Ether
0x8e861c958f22f63d2c74442b5504b7dc5ec1ecbd98bd5152e7b52435213da39b706620334 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x9ae048c47aef066e03593d5edb230e3fa80c3f171 Ether
0xaa7a5285b7f859089f80f5d1c3bf37b17b9329a55cd3d6be7c5ab649d29f36d0704479638 days 8 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x22838f301a7922062c35d4f317cec26488fe78120.287839024425825784 Ether
0xd82ed430230d974c2a7fdfc2b8a590729dd00619509f70cbae63c5babf5a149e704385438 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x22838f301a7922062c35d4f317cec26488fe78120.56921291451396212 Ether
0x1376971f544bcd03a0c005d6c6131e5e080fe8d311e924395a142fccce987dca704315638 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x22838f301a7922062c35d4f317cec26488fe78120.287839024425825784 Ether
0x171f216da38dac129a6abcbf15c0a74da60b630fb2d33fe6b3fde84877b5ce56704315338 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x22838f301a7922062c35d4f317cec26488fe78120.733521797054074896 Ether
0x84a85e7ec9246a1a4a2bbbfe2cd934e5af35ba89a3f1eca923dab4d6ec623e1d704315138 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540xf902d068920234957d2908b8b0156e61c0bea2c20.404773628098817508 Ether
0xd3d0c2e0792ce9fa822818949e3a594a6690b58f937aeede70aa059baca23d8c704315138 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x22838f301a7922062c35d4f317cec26488fe78120.287839024425825784 Ether
0x856188a9058a1be0e8f35ad45ab4665359bdc4adb48a3dd9b598796c6c10f4dc704314838 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x123085670e817602041e58febb243abe01a9a8250.945260047750096514 Ether
0x52a513022aa4cdaaff0bdcbe9895b6cd3ab5078da751d78ecafaa9f4d7e1d9ef704314638 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x1492004547ff0efd778cc2c14e794b26b47011050.56921291451396212 Ether
0xf80d7615aa3c5803461c620017529eacb1de51b449e00eb0eb5522da380319c5704314638 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x28c7c78ff634f4f629d2532b69c3005f2f39ac390.945260047750096514 Ether
0x90b163d1c08814b36f0b12c8f4300a7807155763943bff105d255d9107e9d3d5704314438 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x29ecaa773f052d14ec5258b352ee7304f57aabc30.56921291451396212 Ether
0x658c0cf9005ba64afc41501a553319baa5c4d3525ca1804eef44e76f14ebea87704314238 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540xa0d55039834d2373014b66a322b49e32f4869f490.404773628098817508 Ether
0x18d4f6b4f077f09cc6a1239115a6e3d9b417fa7c019ece8c316fdd240f7e27f2704314138 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540xf6b0e6e6a67512496f60494f9b0da5d36bba5a171.569740487415799556 Ether
0x3459e1e9bebfa4b778d9c0413941ee97c7cd1538cdd1757191bbb7c6c2d72925704313838 days 15 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x29ecaa773f052d14ec5258b352ee7304f57aabc32.022861452855411799 Ether
0x9d71f77f698ecda183b1411cac98f6489234418e2399a89afc7b7d6930287a9f702888441 days 4 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x28c7c78ff634f4f629d2532b69c3005f2f39ac390.733521797054074896 Ether
0xffdfbbc588a6bcb84da958225c31c5507dde814c573d2fa7ab078bf2c3b8bed6702835041 days 7 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x28c7c78ff634f4f629d2532b69c3005f2f39ac391.218118618234660456 Ether
0xc6973e289ef25ab3d82d17375ace1ba81ab4f79e19968b6562bac83757f1a69b702825941 days 7 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x87ee682d2d6ed87520d0f9345303b0dee955c3222.022861452855411799 Ether
0xcbb0bcaaea14eecb52cacc0158e06e54471483733112c8a4b2aaf6ff0117e299700480745 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x9ae048c47aef066e03593d5edb230e3fa80c3f172 Ether
0x05c20a0ed17c7ec7b7863c3c6ea7b2ceb28d5fcb4d1fc0b43e58a2c800fb66f7700479545 days 12 hrs ago0x96313f2c374f901e3831ea6de67b1165c4f39a540x9ae048c47aef066e03593d5edb230e3fa80c3f171 wei
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: JoyArt
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.18;

// inspired by
// https://github.com/axiomzen/cryptokitties-bounty/blob/master/contracts/KittyAccessControl.sol
contract AccessControl {
    /// @dev The addresses of the accounts (or contracts) that can execute actions within each roles
    address public ceoAddress;
    address public cooAddress;

    /// @dev Keeps track whether the contract is paused. When that is true, most actions are blocked
    bool public paused = false;

    /// @dev The AccessControl constructor sets the original C roles of the contract to the sender account
    function AccessControl() public {
        ceoAddress = msg.sender;
        cooAddress = msg.sender;
    }

    /// @dev Access modifier for CEO-only functionality
    modifier onlyCEO() {
        require(msg.sender == ceoAddress);
        _;
    }

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

    /// @dev Access modifier for any CLevel functionality
    modifier onlyCLevel() {
        require(msg.sender == ceoAddress || msg.sender == cooAddress);
        _;
    }

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

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

    /// @dev Modifier to allow actions only when the contract IS NOT paused
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /// @dev Modifier to allow actions only when the contract IS paused
    modifier whenPaused {
        require(paused);
        _;
    }

    /// @dev Pause the smart contract. Only can be called by the CEO
    function pause() public onlyCEO whenNotPaused {
        paused = true;
    }

    /// @dev Unpauses the smart contract. Only can be called by the CEO
    function unpause() public onlyCEO whenPaused {
        paused = false;
    }
}


/**
 * Interface for required functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 * https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/ERC721.sol
 */
contract ERC721 {
    // Events
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);

    /// For querying totalSupply of token.
    function totalSupply() public view returns (uint256 _totalSupply);

    /// For querying balance of a particular account.
    /// @param _owner The address for balance query.
    /// @dev Required for ERC-721 compliance.
    function balanceOf(address _owner) public view returns (uint256 _balance);

    /// For querying owner of token.
    /// @param _tokenId The tokenID for owner inquiry.
    /// @dev Required for ERC-721 compliance.
    function ownerOf(uint256 _tokenId) public view returns (address _owner);

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

    // NOT IMPLEMENTED
    // function getApproved(uint256 _tokenId) public view returns (address _approved);

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

    /// Owner initates the transfer of the token to another account.
    /// @param _to The address of the recipient, can be a user or contract.
    /// @param _tokenId The ID of the token to transfer.
    /// @dev Required for ERC-721 compliance.
    function transfer(address _to, uint256 _tokenId) public;

    ///
    function implementsERC721() public view returns (bool _implementsERC721);

    // EXTRA
    /// @notice Allow pre-approved user to take ownership of a token.
    /// @param _tokenId The ID of the token that can be transferred if this call succeeds.
    /// @dev Required for ERC-721 compliance.
    function takeOwnership(uint256 _tokenId) public;
}


contract DetailedERC721 is ERC721 {
    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
}

contract JoyArt is AccessControl, DetailedERC721 {
    using SafeMath for uint256;

    event TokenCreated(uint256 tokenId, string name, uint256 price, address owner);
    event TokenSold(
        uint256 indexed tokenId,
        string name,
        uint256 sellingPrice,
        uint256 newPrice,
        address indexed oldOwner,
        address indexed newOwner
    );

    mapping (uint256 => address) private tokenIdToOwner;
    mapping (uint256 => uint256) private tokenIdToPrice;
    mapping (address => uint256) private ownershipTokenCount;
    mapping (uint256 => address) private tokenIdToApproved;

    struct Art {
        string name;
    }

    Art[] private artworks;

    uint256 private startingPrice = 0.001 ether;
    bool private erc721Enabled = false;

    modifier onlyERC721() {
        require(erc721Enabled);
        _;
    }

    function createToken(string _name, address _owner, uint256 _price) public onlyCLevel {
        require(_owner != address(0));
        require(_price >= startingPrice);

        _createToken(_name, _owner, _price);
    }

    function createToken(string _name) public onlyCLevel {

        _createToken(_name, address(this), startingPrice);
    }

    function _createToken(string _name, address _owner, uint256 _price) private {
        Art memory _art = Art({
            name: _name
        });
        uint256 newTokenId = artworks.push(_art) - 1;
        tokenIdToPrice[newTokenId] = _price;

        TokenCreated(newTokenId, _name, _price, _owner);

        _transfer(address(0), _owner, newTokenId);
    }

    function getToken(uint256 _tokenId) public view returns (
        string _tokenName,
        uint256 _price,
        uint256 _nextPrice,
        address _owner
    ) {
        _tokenName = artworks[_tokenId].name;
        _price = tokenIdToPrice[_tokenId];
        _nextPrice = nextPriceOf(_tokenId);
        _owner = tokenIdToOwner[_tokenId];
    }

    function getAllTokens() public view returns (
        uint256[],
        uint256[],
        address[]
    ) {
        uint256 total = totalSupply();
        uint256[] memory prices = new uint256[](total);
        uint256[] memory nextPrices = new uint256[](total);
        address[] memory owners = new address[](total);

        for (uint256 i = 0; i < total; i++) {
            prices[i] = tokenIdToPrice[i];
            nextPrices[i] = nextPriceOf(i);
            owners[i] = tokenIdToOwner[i];
        }

        return (prices, nextPrices, owners);
    }

    function tokensOf(address _owner) public view returns(uint256[]) {
        uint256 tokenCount = balanceOf(_owner);
        if (tokenCount == 0) {
            return new uint256[](0);
        } else {
            uint256[] memory result = new uint256[](tokenCount);
            uint256 total = totalSupply();
            uint256 resultIndex = 0;

            for (uint256 i = 0; i < total; i++) {
                if (tokenIdToOwner[i] == _owner) {
                    result[resultIndex] = i;
                    resultIndex++;
                }
            }
            return result;
        }
    }

    function withdrawBalance(address _to, uint256 _amount) public onlyCEO {
        require(_amount <= this.balance);
 
        uint256 amountToWithdraw = _amount;
 
        if (amountToWithdraw == 0) {
            amountToWithdraw = this.balance;
        }
 
        if(_to == address(0)) {
            ceoAddress.transfer(amountToWithdraw);
        } else {
            _to.transfer(amountToWithdraw);
        }
    }

    function purchase(uint256 _tokenId) public payable whenNotPaused {
        address oldOwner = ownerOf(_tokenId);
        address newOwner = msg.sender;
        uint256 sellingPrice = priceOf(_tokenId);

        require(oldOwner != address(0));
        require(newOwner != address(0));
        require(oldOwner != newOwner);
        require(!_isContract(newOwner));
        require(sellingPrice > 0);
        require(msg.value >= sellingPrice);

        _transfer(oldOwner, newOwner, _tokenId);
        tokenIdToPrice[_tokenId] = nextPriceOf(_tokenId);
        TokenSold(
            _tokenId,
            artworks[_tokenId].name,
            sellingPrice,
            priceOf(_tokenId),
            oldOwner,
            newOwner
        );

        uint256 excess = msg.value.sub(sellingPrice);
        uint256 contractCut = sellingPrice.mul(10).div(100); // 10% cut

        if (oldOwner != address(this)) {
            oldOwner.transfer(sellingPrice.sub(contractCut));
        }

        if (excess > 0) {
            newOwner.transfer(excess);
        }
    }

    function priceOf(uint256 _tokenId) public view returns (uint256 _price) {
        return tokenIdToPrice[_tokenId];
    }

    uint256 private increaseLimit1 = 0.02 ether;
    uint256 private increaseLimit2 = 0.5 ether;
    uint256 private increaseLimit3 = 2.0 ether;
    uint256 private increaseLimit4 = 5.0 ether;

    function nextPriceOf(uint256 _tokenId) public view returns (uint256 _nextPrice) {
        uint256 _price = priceOf(_tokenId);
        if (_price < increaseLimit1) {
            return _price.mul(200).div(95);
        } else if (_price < increaseLimit2) {
            return _price.mul(135).div(96);
        } else if (_price < increaseLimit3) {
            return _price.mul(125).div(97);
        } else if (_price < increaseLimit4) {
            return _price.mul(117).div(97);
        } else {
            return _price.mul(115).div(98);
        }
    }

    function enableERC721() public onlyCEO {
        erc721Enabled = true;
    }

    function totalSupply() public view returns (uint256 _totalSupply) {
        _totalSupply = artworks.length;
    }

    function balanceOf(address _owner) public view returns (uint256 _balance) {
        _balance = ownershipTokenCount[_owner];
    }

    function ownerOf(uint256 _tokenId) public view returns (address _owner) {
        _owner = tokenIdToOwner[_tokenId];
    }

    function approve(address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
        require(_owns(msg.sender, _tokenId));
        tokenIdToApproved[_tokenId] = _to;
        Approval(msg.sender, _to, _tokenId);
    }

    function transferFrom(address _from, address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
        require(_to != address(0));
        require(_owns(_from, _tokenId));
        require(_approved(msg.sender, _tokenId));

        _transfer(_from, _to, _tokenId);
    }

    function transfer(address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
        require(_to != address(0));
        require(_owns(msg.sender, _tokenId));

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

    function implementsERC721() public view whenNotPaused returns (bool) {
        return erc721Enabled;
    }

    function takeOwnership(uint256 _tokenId) public whenNotPaused onlyERC721 {
        require(_approved(msg.sender, _tokenId));
        _transfer(tokenIdToOwner[_tokenId], msg.sender, _tokenId);
    }

    function name() public view returns (string _name) {
        _name = "John Orion Young";
    }

    function symbol() public view returns (string _symbol) {
        _symbol = "JOY";
    }

    function _owns(address _claimant, uint256 _tokenId) private view returns (bool) {
        return tokenIdToOwner[_tokenId] == _claimant;
    }

    function _approved(address _to, uint256 _tokenId) private view returns (bool) {
        return tokenIdToApproved[_tokenId] == _to;
    }

    function _transfer(address _from, address _to, uint256 _tokenId) private {
        ownershipTokenCount[_to]++;
        tokenIdToOwner[_tokenId] = _to;

        if (_from != address(0)) {
            ownershipTokenCount[_from]--;
            delete tokenIdToApproved[_tokenId];
        }

        Transfer(_from, _to, _tokenId);
    }

    function _isContract(address addr) private view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
}


library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract ABI
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ceoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAllTokens","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"createToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"nextPriceOf","outputs":[{"name":"_nextPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableERC721","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cooAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getToken","outputs":[{"name":"_tokenName","type":"string"},{"name":"_price","type":"uint256"},{"name":"_nextPrice","type":"uint256"},{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"owner","type":"address"}],"name":"TokenCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"sellingPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

Contract Creation Code
60606040526000600160146101000a81548160ff02191690831515021790555066038d7ea4c680006007556000600860006101000a81548160ff02191690831515021790555066470de4df8200006009556706f05b59d3b20000600a55671bc16d674ec80000600b55674563918244f40000600c55336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612481806101046000396000f30060606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610164578063095ea7b3146101f25780630a0f8168146102345780630cf20cc9146102895780631051db34146102cb57806318160ddd146102f857806323b872dd1461032157806327d7874c146103825780632a5c792a146103bb5780632ba73c15146104b55780633f4ba83a146104ee57806345576f94146105035780635a3f2672146105605780635ba9e48e146105ee5780635c975abb146106255780636352211e1461065257806370a08231146106b557806371dc761e1461070257806373b4df05146107175780638456cb591461079c57806395d89b41146107b1578063a9059cbb1461083f578063b047fb5014610881578063b2e6ceeb146108d6578063b9186d7d146108f9578063e4b50cb814610930578063efef39a114610a0d575b600080fd5b341561016f57600080fd5b610177610a25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b757808201518184015260208101905061019c565b50505050905090810190601f1680156101e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101fd57600080fd5b610232600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a68565b005b341561023f57600080fd5b610247610b6f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029457600080fd5b6102c9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b94565b005b34156102d657600080fd5b6102de610d1f565b604051808215151515815260200191505060405180910390f35b341561030357600080fd5b61030b610d52565b6040518082815260200191505060405180910390f35b341561032c57600080fd5b610380600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d5f565b005b341561038d57600080fd5b6103b9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e0c565b005b34156103c657600080fd5b6103ce610ee6565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156104195780820151818401526020810190506103fe565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561045b578082015181840152602081019050610440565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561049d578082015181840152602081019050610482565b50505050905001965050505050505060405180910390f35b34156104c057600080fd5b6104ec600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611087565b005b34156104f957600080fd5b610501611162565b005b341561050e57600080fd5b61055e600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506111f5565b005b341561056b57600080fd5b610597600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112b8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105da5780820151818401526020810190506105bf565b505050509050019250505060405180910390f35b34156105f957600080fd5b61060f60048080359060200190919050506113ee565b6040518082815260200191505060405180910390f35b341561063057600080fd5b61063861150c565b604051808215151515815260200191505060405180910390f35b341561065d57600080fd5b610673600480803590602001909190505061151f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c057600080fd5b6106ec600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061155c565b6040518082815260200191505060405180910390f35b341561070d57600080fd5b6107156115a5565b005b341561072257600080fd5b61079a600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061161d565b005b34156107a757600080fd5b6107af61172d565b005b34156107bc57600080fd5b6107c46117c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108045780820151818401526020810190506107e9565b50505050905090810190601f1680156108315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084a57600080fd5b61087f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611803565b005b341561088c57600080fd5b61089461189a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108e157600080fd5b6108f760048080359060200190919050506118c0565b005b341561090457600080fd5b61091a600480803590602001909190505061194d565b6040518082815260200191505060405180910390f35b341561093b57600080fd5b610951600480803590602001909190505061196a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b838110156109cf5780820151818401526020810190506109b4565b50505050905090810190601f1680156109fc5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b610a236004808035906020019091905050611a8d565b005b610a2d6122a3565b6040805190810160405280601081526020017f4a6f686e204f72696f6e20596f756e6700000000000000000000000000000000815250905090565b600160149054906101000a900460ff16151515610a8457600080fd5b600860009054906101000a900460ff161515610a9f57600080fd5b610aa93382611e0f565b1515610ab457600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bf157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211151515610c1757600080fd5b8190506000811415610c3e573073ffffffffffffffffffffffffffffffffffffffff163190505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cd9576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610cd457600080fd5b610d1a565b8273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d1957600080fd5b5b505050565b6000600160149054906101000a900460ff16151515610d3d57600080fd5b600860009054906101000a900460ff16905090565b6000600680549050905090565b600160149054906101000a900460ff16151515610d7b57600080fd5b600860009054906101000a900460ff161515610d9657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610dd257600080fd5b610ddc8382611e0f565b1515610de757600080fd5b610df13382611e7b565b1515610dfc57600080fd5b610e07838383611ee7565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ea357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610eee6122b7565b610ef66122b7565b610efe6122cb565b6000610f086122b7565b610f106122b7565b610f186122cb565b6000610f22610d52565b945084604051805910610f325750595b9080825280602002602001820160405250935084604051805910610f535750595b9080825280602002602001820160405250925084604051805910610f745750595b90808252806020026020018201604052509150600090505b848110156110745760036000828152602001908152602001600020548482815181101515610fb657fe5b9060200190602002018181525050610fcd816113ee565b8382815181101515610fdb57fe5b90602001906020020181815250506002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561102b57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610f8c565b8383839750975097505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110e257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561111e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111bd57600080fd5b600160149054906101000a900460ff1615156111d857600080fd5b6000600160146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156112a857600080fd5b6112b581306007546120af565b50565b6112c06122b7565b60006112ca6122b7565b60008060006112d88761155c565b9450600085141561130a5760006040518059106112f25750595b908082528060200260200182016040525095506113e4565b846040518059106113185750595b90808252806020026020018201604052509350611333610d52565b925060009150600090505b828110156113e0578673ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113d3578084838151811015156113bc57fe5b906020019060200201818152505081806001019250505b808060010191505061133e565b8395505b5050505050919050565b6000806113fa8361194d565b90506009548110156114345761142d605f61141f60c88461222190919063ffffffff16565b61225c90919063ffffffff16565b9150611506565b600a5481101561146c57611465606061145760878461222190919063ffffffff16565b61225c90919063ffffffff16565b9150611506565b600b548110156114a45761149d606161148f607d8461222190919063ffffffff16565b61225c90919063ffffffff16565b9150611506565b600c548110156114dc576114d560616114c760758461222190919063ffffffff16565b61225c90919063ffffffff16565b9150611506565b61150360626114f560738461222190919063ffffffff16565b61225c90919063ffffffff16565b91505b50919050565b600160149054906101000a900460ff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160057600080fd5b6001600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116c55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156116d057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561170c57600080fd5b600754811015151561171d57600080fd5b6117288383836120af565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178857600080fd5b600160149054906101000a900460ff161515156117a457600080fd5b60018060146101000a81548160ff021916908315150217905550565b6117c86122a3565b6040805190810160405280600381526020017f4a4f590000000000000000000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff1615151561181f57600080fd5b600860009054906101000a900460ff16151561183a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561187657600080fd5b6118803382611e0f565b151561188b57600080fd5b611896338383611ee7565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff161515156118dc57600080fd5b600860009054906101000a900460ff1615156118f757600080fd5b6119013382611e7b565b151561190c57600080fd5b61194a6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383611ee7565b50565b600060036000838152602001908152602001600020549050919050565b6119726122a3565b600080600060068581548110151561198657fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a285780601f106119fd57610100808354040283529160200191611a28565b820191906000526020600020905b815481529060010190602001808311611a0b57829003601f168201915b5050505050935060036000868152602001908152602001600020549250611a4e856113ee565b91506002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509193509193565b6000806000806000600160149054906101000a900460ff16151515611ab157600080fd5b611aba8661151f565b9450339350611ac88661194d565b9250600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611b0657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611b4257600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611b7d57600080fd5b611b8684612277565b151515611b9257600080fd5b600083111515611ba157600080fd5b823410151515611bb057600080fd5b611bbb858588611ee7565b611bc4866113ee565b60036000888152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16877fef3f7c55f619f7c9178e080691f6d9bc90a74668d32c107dea7c87da023c9a0f60068a815481101515611c3a57fe5b906000526020600020900160000187611c528c61194d565b6040518080602001848152602001838152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611ce75780601f10611cbc57610100808354040283529160200191611ce7565b820191906000526020600020905b815481529060010190602001808311611cca57829003601f168201915b505094505050505060405180910390a4611d0a833461228a90919063ffffffff16565b9150611d336064611d25600a8661222190919063ffffffff16565b61225c90919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611dbd578473ffffffffffffffffffffffffffffffffffffffff166108fc611d97838661228a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611dbc57600080fd5b5b6000821115611e07578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611e0657600080fd5b5b505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561204557600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6120b76122df565b60006020604051908101604052808681525091506001600680548060010182816120e191906122f9565b916000526020600020900160008590919091506000820151816000019080519060200190612110929190612325565b5050500390508260036000838152602001908152602001600020819055507fd306967beeb39489cb6724748118d29c59bd0f0e17a5dd711b4f4d3dea3a1c478186858760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156121d15780820151818401526020810190506121b6565b50505050905090810190601f1680156121fe5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a161221a60008583611ee7565b5050505050565b60008060008414156122365760009150612255565b828402905082848281151561224757fe5b0414151561225157fe5b8091505b5092915050565b600080828481151561226a57fe5b0490508091505092915050565b600080823b905060008111915050919050565b600082821115151561229857fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b6020604051908101604052806122f36123a5565b81525090565b8154818355818115116123205781836000526020600020918201910161231f91906123b9565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061236657805160ff1916838001178555612394565b82800160010185558215612394579182015b82811115612393578251825591602001919060010190612378565b5b5090506123a191906123e8565b5090565b602060405190810160405280600081525090565b6123e591905b808211156123e157600080820160006123d8919061240d565b506001016123bf565b5090565b90565b61240a91905b808211156124065760008160009055506001016123ee565b5090565b90565b50805460018160011615610100020316600290046000825580601f106124335750612452565b601f01602090049060005260206000209081019061245191906123e8565b5b505600a165627a7a723058204850b130b0c9b696394f163b2b258082bf46c0d80841967bdba5480b36caa79b0029


   Swarm Source:
bzzr://4850b130b0c9b696394f163b2b258082bf46c0d80841967bdba5480b36caa79b
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.