Sponsored:   VC, TLDR and CoinBene Funded "TEMCO: Bitcoin Network (RSK) Suppy Chain! Whitelist KYC Starts Now!!"
Contract Overview
Balance: 0.146766871393302836 Ether
Ether Value: $13.84 (@ $94.28/ETH)
Transactions: 42 txns
Token Tracker: CryptoKittens (CKTN)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xb39274c9887d314ba65da9929f3d0e94893570a7at txn 0xd439df4435de51e82555e87eaa38621f408e8a4c33699b2b2563d90bc3bb3b7a
Token Balance:
 Latest 25 transactions from a total of 42 transactions

TxHash Age From To Value [TxFee]
0x12e698066d9f32a4f34c0f7ee1b53751e1401ae73ebe12da3732294734406dc7283 days 14 hrs ago0x178559e9108cfa557f5cb1b04cb29b07cf53d455  IN   0xe41a1f73979cb25def133fb3a529d540057188f20 Ether0.000861
0xb5d030a780e8a1dfed045f523d4d9e24c5cb1a8399a64044f06ccafa001c35ab294 days 6 hrs ago0xb39274c9887d314ba65da9929f3d0e94893570a7  IN   0xe41a1f73979cb25def133fb3a529d540057188f20 Ether0.00094332
0x8544a32d6e5775deea39a10bedcf143b79ce9dc0e25951593f88da4f4697ea04294 days 21 hrs ago0xbdd9c7f88ba37ff7c55b1af12a04e088b4ae89d3  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.021052631578947 Ether0.000265752
0x739e885e6d59766f966022410523c1544a27f42185c25c62f2a5c606cde958ab295 days 6 hrs ago0xb2333d16bbb1501b40e73f9aa8755f7307815a10  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.01 Ether0.0000992405
0x10420b5c9c944d04b3ffd6a09869d2b48d1a99d663fbd29dc917c0807665fcd0295 days 6 hrs ago0xf32c8c96fb3bb864acc6043559c52395cbb5c588  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.01 Ether0.0007502336
0x8e51ffd45ca8f1e99e988e2dea648c8e5acf3cdf0c329546a0a2edb1a7b9a92b295 days 6 hrs ago0xb39274c9887d314ba65da9929f3d0e94893570a7  IN   0xe41a1f73979cb25def133fb3a529d540057188f20 Ether0.00115578
0x17c3929d3f7b2e91cf9c26ec55e6e4909be44f74e4a4073117c83b65f422679f295 days 21 hrs ago0x27a34cf6ae0fe8ff416bdf88f1701049b464441e  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.058545564350328 Ether0.000132876
0xbb6fbab645e250250f58dccfb0fe7fc00346a6e6d98bcc8aa43e332430645666296 days 1 hr ago0x8da4f82dc4d03c5421bb2087f858750c650d8571  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.115776140438882 Ether0.000205496
0x00aa1ecc6f40a57caedf90145045a4256c2ed108d1cdb4068eb84d7a8584db25296 days 1 hr ago0x8da4f82dc4d03c5421bb2087f858750c650d8571  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.228951840223376 Ether0.000325752
0x3bdfa0c795f58416ef7af1e4b94d665a06a8cb2871cabcbeb74e12709a070164296 days 1 hr ago0xbd6a9d2c44b571f33ee2192bd2d46aba2866405a  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.08232969986765 Ether0.000154122
0x791edd22b7b775d0bcef5541c25580874728369181e5396e58c0ffc30eb65020296 days 1 hr ago0xbd6a9d2c44b571f33ee2192bd2d46aba2866405a  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.162810197492179 Ether0.00040719
0xcbf0f80a2b0e87f658e1f2d39c3ca7eb6e005a73869b5dd8b2c67d3e29a85c88296 days 2 hrs ago0x6a87dd44fb782ee9b09b203ac6ad412b8c146797  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.041632401315789 Ether0.0002059578
0xfa8a347e15f6d7543b1ab03f2d5cec2662d0c36d1197ebb26bfb1ba138af042e296 days 2 hrs ago0x360810c61beb4ec6da9236ce4e24a02cfb3ba933  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.058545564350328 Ether0.000462366
0xf42b60f2dd0e51afe27dd5ddfa783f94f4d50558664d4dd336e2cee784c48c3b296 days 2 hrs ago0x360810c61beb4ec6da9236ce4e24a02cfb3ba933  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.115776140438882 Ether0.000732942
0xcf7c127e5bb7ed4c208e343d1bfafd85755def0785ede7483b909c3950dfd3ee296 days 2 hrs ago0xbd6a9d2c44b571f33ee2192bd2d46aba2866405a  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.041632401315789 Ether0.00025687
0x8ac4d4ff21ee7edfb7f793b843c33a8e701440afa263043cd052801b72aa4ec0296 days 2 hrs ago0xbd6a9d2c44b571f33ee2192bd2d46aba2866405a  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.08232969986765 Ether0.00033219
0x09307b3375c010d00d7af47f4e2b987a423165f020e192433c19178719cbac8f296 days 2 hrs ago0x8bd5306d0c08eaa2d9aabaed62297a8ab42db1de  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.041632401315789 Ether0.00033219
0xef665a6b0dea3e4d02a5694e944d30fc6b3b6fcbca969197ba92d86aa13cd70b296 days 2 hrs ago0xf3c2f29bd3199c33d26cbc31d440f66d2065c4b3  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.041632401315789 Ether0.0002723958
0x31e2feb67ce75352e164b6f6dce082a6b8a0209f5012dc0994f0b32a808f9589296 days 2 hrs ago0x360810c61beb4ec6da9236ce4e24a02cfb3ba933  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.058545564350328 Ether0.00019364
0x63eeeb50b14f5475cfb5fcea7834a164136e2c4be773ee7fcd3a8b88b7813609296 days 2 hrs ago0xa2381223639181689cd6c46d38a1a4884bb6d83c  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.058545564350328 Ether0.001395198
0x028a37cd24c7478e44c141be563a5d6e3768e88d557cee87703d21be6bed82df296 days 2 hrs ago0x548910a296fe242d3ad054e65b6652f708b9de24  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.029605263157894 Ether0.000325752
0xb79f74cbb60f1fa632cd1a1c984fcf0c8c62fd70d7108b96546964389042f924296 days 2 hrs ago0x644d0dac1cc451c4e987b1ea7e599f6d70d14831  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.041632401315789 Ether0.001710198
0x047a5baa3cab8f0aaa5d3b7870fea383a53636c2f0ddbf28adeb2b5e31f79cc3296 days 2 hrs ago0xb87e73ad25086c43a16fe5f9589ff265f8a3a9eb  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.029605263157894 Ether0.00033219
0x571e2a3975c213e873fc61397632f527d706ad28e16581d15af7cf47583dd96c296 days 2 hrs ago0x36e058332ae39efad2315776b9c844e30d07388b  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.029605263157894 Ether0.000530992
0x63e21c38a602b561d94dda1b64b6c23dfffa5f5eb6b325810d3831c72725e820296 days 15 hrs ago0x27a34cf6ae0fe8ff416bdf88f1701049b464441e  IN   0xe41a1f73979cb25def133fb3a529d540057188f20.021052631578947 Ether0.000205752
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x8544a32d6e5775deea39a10bedcf143b79ce9dc0e25951593f88da4f4697ea045162360294 days 21 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xf32c8c96fb3bb864acc6043559c52395cbb5c5880.019789473684210526 Ether
0x17c3929d3f7b2e91cf9c26ec55e6e4909be44f74e4a4073117c83b65f422679f5156377295 days 21 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x8bd5306d0c08eaa2d9aabaed62297a8ab42db1de0.055032830489309209 Ether
0xbb6fbab645e250250f58dccfb0fe7fc00346a6e6d98bcc8aa43e3324306456665155397296 days 1 hr ago0xe41a1f73979cb25def133fb3a529d540057188f20xbd6a9d2c44b571f33ee2192bd2d46aba2866405a0.108829572012549947 Ether
0x00aa1ecc6f40a57caedf90145045a4256c2ed108d1cdb4068eb84d7a8584db255155396296 days 1 hr ago0xe41a1f73979cb25def133fb3a529d540057188f20xbd6a9d2c44b571f33ee2192bd2d46aba2866405a0.21521472980997426 Ether
0x3bdfa0c795f58416ef7af1e4b94d665a06a8cb2871cabcbeb74e12709a0701645155381296 days 1 hr ago0xe41a1f73979cb25def133fb3a529d540057188f20x360810c61beb4ec6da9236ce4e24a02cfb3ba9330.077389917875591074 Ether
0x791edd22b7b775d0bcef5541c25580874728369181e5396e58c0ffc30eb650205155368296 days 1 hr ago0xe41a1f73979cb25def133fb3a529d540057188f20x360810c61beb4ec6da9236ce4e24a02cfb3ba9330.153041585642648363 Ether
0xcbf0f80a2b0e87f658e1f2d39c3ca7eb6e005a73869b5dd8b2c67d3e29a85c885155250296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xb87e73ad25086c43a16fe5f9589ff265f8a3a9eb0.039134457236842104 Ether
0xfa8a347e15f6d7543b1ab03f2d5cec2662d0c36d1197ebb26bfb1ba138af042e5155235296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xbd6a9d2c44b571f33ee2192bd2d46aba2866405a0.055032830489309209 Ether
0xf42b60f2dd0e51afe27dd5ddfa783f94f4d50558664d4dd336e2cee784c48c3b5155235296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xbd6a9d2c44b571f33ee2192bd2d46aba2866405a0.108829572012549947 Ether
0xcf7c127e5bb7ed4c208e343d1bfafd85755def0785ede7483b909c3950dfd3ee5155213296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x36e058332ae39efad2315776b9c844e30d07388b0.039134457236842104 Ether
0x8ac4d4ff21ee7edfb7f793b843c33a8e701440afa263043cd052801b72aa4ec05155212296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xa2381223639181689cd6c46d38a1a4884bb6d83c0.077389917875591074 Ether
0x09307b3375c010d00d7af47f4e2b987a423165f020e192433c19178719cbac8f5155131296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x27a34cf6ae0fe8ff416bdf88f1701049b464441e0.039134457236842104 Ether
0xef665a6b0dea3e4d02a5694e944d30fc6b3b6fcbca969197ba92d86aa13cd70b5155120296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x548910a296fe242d3ad054e65b6652f708b9de240.039134457236842104 Ether
0x63eeeb50b14f5475cfb5fcea7834a164136e2c4be773ee7fcd3a8b88b78136095155119296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x644d0dac1cc451c4e987b1ea7e599f6d70d148310.055032830489309209 Ether
0x028a37cd24c7478e44c141be563a5d6e3768e88d557cee87703d21be6bed82df5155116296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x27a34cf6ae0fe8ff416bdf88f1701049b464441e0.027828947368421052 Ether
0xb79f74cbb60f1fa632cd1a1c984fcf0c8c62fd70d7108b96546964389042f9245155114296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x27a34cf6ae0fe8ff416bdf88f1701049b464441e0.039134457236842104 Ether
0x047a5baa3cab8f0aaa5d3b7870fea383a53636c2f0ddbf28adeb2b5e31f79cc35155113296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xa3b61695e46432e5cccd0427ad956fa146379d080.027828947368421052 Ether
0x571e2a3975c213e873fc61397632f527d706ad28e16581d15af7cf47583dd96c5155113296 days 2 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xbd6a9d2c44b571f33ee2192bd2d46aba2866405a0.027828947368421052 Ether
0x63e21c38a602b561d94dda1b64b6c23dfffa5f5eb6b325810d3831c72725e8205152160296 days 15 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x644d0dac1cc451c4e987b1ea7e599f6d70d148310.019789473684210526 Ether
0xc93b27be3cbc246e16a8ab77839d697246e02c34b60eede4f255219fdc3e778b5152148296 days 15 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xa3b61695e46432e5cccd0427ad956fa146379d080.027828947368421052 Ether
0x55ede86c6c3b16f46b6c08e0eee561d3438c344fa326f4c41fdcc1ef2376e1975152131296 days 15 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xa3b61695e46432e5cccd0427ad956fa146379d080.027828947368421052 Ether
0xdd08204296984646085f0e63d3f5a4f6a9348d43fcfc4cbf28bba5a9b8c213e65151734296 days 16 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xa3b61695e46432e5cccd0427ad956fa146379d080.019789473684210526 Ether
0x56aaa71c9ecefeb26d46c918b69ff1bd29fb5dda0184568a1b979829e44664ff5151721296 days 16 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20x811c4cdb1c4d4062d2c672a265f5c33c2c4545380.019789473684210526 Ether
0x2a137c6e47810e1b1297b9911f8a7da2fb137cef08a3b4610087d5be96060fd15151715296 days 16 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xbdd9c7f88ba37ff7c55b1af12a04e088b4ae89d30.019789473684210526 Ether
0x84ffb9399706ec328192d99f9779b36d367b4957c2c1c64720f1a88ec373f9b85151696296 days 17 hrs ago0xe41a1f73979cb25def133fb3a529d540057188f20xb39274c9887d314ba65da9929f3d0e94893570a70.019789473684210526 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

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



  Contract Source Code   Find Similiar Contracts

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;
    }
}


// https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/ERC721.sol
// https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/DetailedERC721.sol

/**
 * Interface for required functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 */
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;
}


/**
 * Interface for optional functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 */
contract DetailedERC721 is ERC721 {
    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
    // function tokenMetadata(uint256 _tokenId) public view returns (string _infoUrl);
    // function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256 _tokenId);
}


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

    /// @dev The TokenCreated event is fired whenever a new token is created.
    event TokenCreated(uint256 tokenId, string name, uint256 price, address owner);

    /// @dev The TokenSold event is fired whenever a token is sold.
    event TokenSold(uint256 indexed tokenId, string name, uint256 sellingPrice,
    uint256 newPrice, address indexed oldOwner, address indexed newOwner);

    /// @dev A mapping from tokenIds to the address that owns them. All tokens have
    ///  some valid owner address.
    mapping (uint256 => address) private tokenIdToOwner;

    /// @dev A mapping from TokenIds to the price of the token.
    mapping (uint256 => uint256) private tokenIdToPrice;

    /// @dev A mapping from owner address to count of tokens that address owns.
    ///  Used internally inside balanceOf() to resolve ownership count.
    mapping (address => uint256) private ownershipTokenCount;

    /// @dev A mapping from TokenIds to an address that has been approved to call
    ///  transferFrom(). Each Token can only have one approved address for transfer
    ///  at any time. A zero value means no approval is outstanding
    mapping (uint256 => address) public tokenIdToApproved;

    struct Kittens {
        string name;
    }

    Kittens[] private kittens;

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

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

    /// @dev Creates a new token with the given name and _price and assignes it to an _owner.
    function createToken(string _name, address _owner, uint256 _price) public onlyCLevel {
        require(_owner != address(0));
        require(_price >= startingPrice);

        _createToken(_name, _owner, _price);
    }

    /// @dev Creates a new token with the given name.
    function createToken(string _name) public onlyCLevel {
        _createToken(_name, address(this), startingPrice);
    }

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

        TokenCreated(newTokenId, _name, _price, _owner);

        // This will assign ownership, and also emit the Transfer event as per ERC721 draft
        _transfer(address(0), _owner, newTokenId);
    }

    function getToken(uint256 _tokenId) public view returns (
        string _tokenName,
        uint256 _price,
        uint256 _nextPrice,
        address _owner
    ) {
        _tokenName = kittens[_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 an empty array
            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;
        }
    }

    /// @dev This function withdraws the contract owner's cut.
    /// Any amount may be withdrawn as there is no user funds.
    /// User funds are immediately sent to the old owner in `purchase`
    function withdrawBalance(address _to, uint256 _amount) public onlyCEO {
        require(_amount <= this.balance);

        if (_amount == 0) {
            _amount = this.balance;
        }

        if (_to == address(0)) {
            ceoAddress.transfer(_amount);
        } else {
            _to.transfer(_amount);
        }
    }

    // Send ether and obtain the token
    function purchase(uint256 _tokenId) public payable whenNotPaused {
        address oldOwner = ownerOf(_tokenId);
        address newOwner = msg.sender;
        uint256 sellingPrice = priceOf(_tokenId);

        // active tokens
        require(oldOwner != address(0));
        // maybe one day newOwner's logic allows this to happen
        require(newOwner != address(0));
        // don't buy from yourself
        require(oldOwner != newOwner);
        // don't sell to contracts
        // but even this doesn't prevent bad contracts to become an owner of a token
        require(!_isContract(newOwner));
        // another check to be sure that token is active
        require(sellingPrice > 0);
        // min required amount check
        require(msg.value >= sellingPrice);

        // transfer to the new owner
        _transfer(oldOwner, newOwner, _tokenId);
        // update fields before emitting an event
        tokenIdToPrice[_tokenId] = nextPriceOf(_tokenId);
        // emit event
        TokenSold(_tokenId, kittens[_tokenId].name, sellingPrice, priceOf(_tokenId), oldOwner, newOwner);

        // extra ether which should be returned back to buyer
        uint256 excess = msg.value.sub(sellingPrice);
        // contract owner's cut which is left in contract and accesed by withdrawBalance
        uint256 contractCut = sellingPrice.mul(6).div(100); // 6%

        // no need to transfer if it's initial sell
        if (oldOwner != address(this)) {
            // transfer payment to seller minus the contract's cut
            oldOwner.transfer(sellingPrice.sub(contractCut));
        }

        // return extra ether
        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);
        }
    }


    /*** ERC-721 ***/
    // Unlocks ERC721 behaviour, allowing for trading on third party platforms.
    function enableERC721() onlyCEO public {
        erc721Enabled = true;
    }

    function totalSupply() public view returns (uint256 _totalSupply) {
        _totalSupply = kittens.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];
        // require(_owner != address(0));
    }

    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));

        // Reassign ownership, clear pending approvals, emit Transfer event.
        _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 = "CryptoKittens";
    }

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

    /*** PRIVATES ***/
    /// @dev Check for token ownership.
    function _owns(address _claimant, uint256 _tokenId) private view returns (bool) {
        return tokenIdToOwner[_tokenId] == _claimant;
    }

    /// @dev For checking approval of transfer for address _to.
    function _approved(address _to, uint256 _tokenId) private view returns (bool) {
        return tokenIdToApproved[_tokenId] == _to;
    }

    /// @dev Assigns ownership of a specific token to an address.
    function _transfer(address _from, address _to, uint256 _tokenId) private {
        // Since the number of tokens is capped to 2^32 we can't overflow this
        ownershipTokenCount[_to]++;
        // Transfer ownership
        tokenIdToOwner[_tokenId] = _to;

        // When creating new token _from is 0x0, but we can't account that address.
        if (_from != address(0)) {
            ownershipTokenCount[_from]--;
            // clear any previously approved ownership exchange
            delete tokenIdToApproved[_tokenId];
        }

        // Emit the transfer event.
        Transfer(_from, _to, _tokenId);
    }

    /// @dev Checks if the address ia a contract or not
    function _isContract(address addr) private view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
}


// https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
// v1.6.0

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
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":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToApproved","outputs":[{"name":"","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 Switch To Opcodes View
60606040526000600160146101000a81548160ff021916908315150217905550662386f26fc100006007556000600860006101000a81548160ff02191690831515021790555066470de4df8200006009556706f05b59d3b20000600a55671bc16d674ec80000600b55674563918244f40000600c55336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061251c806101046000396000f30060606040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101fd5780630a0f81681461023f5780630cf20cc9146102945780631051db34146102d657806318160ddd1461030357806323b872dd1461032c57806327d7874c1461038d5780632a5c792a146103c65780632ba73c15146104c05780633f4ba83a146104f957806345576f941461050e5780635a3f26721461056b5780635ba9e48e146105f95780635c975abb146106305780636352211e1461065d57806370a08231146106c057806371dc761e1461070d57806373b4df05146107225780638456cb59146107a757806395d89b41146107bc578063a9059cbb1461084a578063b047fb501461088c578063b2e6ceeb146108e1578063b9186d7d14610904578063e4b50cb81461093b578063eb5653d714610a18578063efef39a114610a7b575b600080fd5b341561017a57600080fd5b610182610a93565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020857600080fd5b61023d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ad6565b005b341561024a57600080fd5b610252610bdd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029f57600080fd5b6102d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c02565b005b34156102e157600080fd5b6102e9610d87565b604051808215151515815260200191505060405180910390f35b341561030e57600080fd5b610316610dba565b6040518082815260200191505060405180910390f35b341561033757600080fd5b61038b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610dc7565b005b341561039857600080fd5b6103c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e74565b005b34156103d157600080fd5b6103d9610f4e565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610424578082015181840152602081019050610409565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561046657808201518184015260208101905061044b565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104a857808201518184015260208101905061048d565b50505050905001965050505050505060405180910390f35b34156104cb57600080fd5b6104f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110ef565b005b341561050457600080fd5b61050c6111ca565b005b341561051957600080fd5b610569600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061125d565b005b341561057657600080fd5b6105a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611320565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105e55780820151818401526020810190506105ca565b505050509050019250505060405180910390f35b341561060457600080fd5b61061a6004808035906020019091905050611456565b6040518082815260200191505060405180910390f35b341561063b57600080fd5b610643611574565b604051808215151515815260200191505060405180910390f35b341561066857600080fd5b61067e6004808035906020019091905050611587565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106cb57600080fd5b6106f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115c4565b6040518082815260200191505060405180910390f35b341561071857600080fd5b61072061160d565b005b341561072d57600080fd5b6107a5600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611685565b005b34156107b257600080fd5b6107ba611795565b005b34156107c757600080fd5b6107cf611828565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080f5780820151818401526020810190506107f4565b50505050905090810190601f16801561083c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561085557600080fd5b61088a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061186b565b005b341561089757600080fd5b61089f611902565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108ec57600080fd5b6109026004808035906020019091905050611928565b005b341561090f57600080fd5b61092560048080359060200190919050506119b5565b6040518082815260200191505060405180910390f35b341561094657600080fd5b61095c60048080359060200190919050506119d2565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b838110156109da5780820151818401526020810190506109bf565b50505050905090810190601f168015610a075780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a2357600080fd5b610a396004808035906020019091905050611af5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a916004808035906020019091905050611b28565b005b610a9b61233e565b6040805190810160405280600d81526020017f43727970746f4b697474656e7300000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff16151515610af257600080fd5b600860009054906101000a900460ff161515610b0d57600080fd5b610b173382611eaa565b1515610b2257600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c5d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111151515610c8357600080fd5b6000811415610ca7573073ffffffffffffffffffffffffffffffffffffffff163190505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d42576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d3d57600080fd5b610d83565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d8257600080fd5b5b5050565b6000600160149054906101000a900460ff16151515610da557600080fd5b600860009054906101000a900460ff16905090565b6000600680549050905090565b600160149054906101000a900460ff16151515610de357600080fd5b600860009054906101000a900460ff161515610dfe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e3a57600080fd5b610e448382611eaa565b1515610e4f57600080fd5b610e593382611f16565b1515610e6457600080fd5b610e6f838383611f82565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f0b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f56612352565b610f5e612352565b610f66612366565b6000610f70612352565b610f78612352565b610f80612366565b6000610f8a610dba565b945084604051805910610f9a5750595b9080825280602002602001820160405250935084604051805910610fbb5750595b9080825280602002602001820160405250925084604051805910610fdc5750595b90808252806020026020018201604052509150600090505b848110156110dc576003600082815260200190815260200160002054848281518110151561101e57fe5b906020019060200201818152505061103581611456565b838281518110151561104357fe5b90602001906020020181815250506002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561109357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ff4565b8383839750975097505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561118657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122557600080fd5b600160149054906101000a900460ff16151561124057600080fd5b6000600160146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113055750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561131057600080fd5b61131d813060075461214a565b50565b611328612352565b6000611332612352565b6000806000611340876115c4565b9450600085141561137257600060405180591061135a5750595b9080825280602002602001820160405250955061144c565b846040518059106113805750595b9080825280602002602001820160405250935061139b610dba565b925060009150600090505b82811015611448578673ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561143b5780848381518110151561142457fe5b906020019060200201818152505081806001019250505b80806001019150506113a6565b8395505b5050505050919050565b600080611462836119b5565b905060095481101561149c57611495605f61148760c8846122bc90919063ffffffff16565b6122f790919063ffffffff16565b915061156e565b600a548110156114d4576114cd60606114bf6087846122bc90919063ffffffff16565b6122f790919063ffffffff16565b915061156e565b600b5481101561150c5761150560616114f7607d846122bc90919063ffffffff16565b6122f790919063ffffffff16565b915061156e565b600c548110156115445761153d606161152f6075846122bc90919063ffffffff16565b6122f790919063ffffffff16565b915061156e565b61156b606261155d6073846122bc90919063ffffffff16565b6122f790919063ffffffff16565b91505b50919050565b600160149054906101000a900460ff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561166857600080fd5b6001600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061172d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561173857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561177457600080fd5b600754811015151561178557600080fd5b61179083838361214a565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117f057600080fd5b600160149054906101000a900460ff1615151561180c57600080fd5b60018060146101000a81548160ff021916908315150217905550565b61183061233e565b6040805190810160405280600481526020017f434b544e00000000000000000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff1615151561188757600080fd5b600860009054906101000a900460ff1615156118a257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118de57600080fd5b6118e83382611eaa565b15156118f357600080fd5b6118fe338383611f82565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff1615151561194457600080fd5b600860009054906101000a900460ff16151561195f57600080fd5b6119693382611f16565b151561197457600080fd5b6119b26002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383611f82565b50565b600060036000838152602001908152602001600020549050919050565b6119da61233e565b60008060006006858154811015156119ee57fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a905780601f10611a6557610100808354040283529160200191611a90565b820191906000526020600020905b815481529060010190602001808311611a7357829003601f168201915b5050505050935060036000868152602001908152602001600020549250611ab685611456565b91506002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509193509193565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600160149054906101000a900460ff16151515611b4c57600080fd5b611b5586611587565b9450339350611b63866119b5565b9250600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611ba157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611bdd57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611c1857600080fd5b611c2184612312565b151515611c2d57600080fd5b600083111515611c3c57600080fd5b823410151515611c4b57600080fd5b611c56858588611f82565b611c5f86611456565b60036000888152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16877fef3f7c55f619f7c9178e080691f6d9bc90a74668d32c107dea7c87da023c9a0f60068a815481101515611cd557fe5b906000526020600020900160000187611ced8c6119b5565b6040518080602001848152602001838152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611d825780601f10611d5757610100808354040283529160200191611d82565b820191906000526020600020905b815481529060010190602001808311611d6557829003601f168201915b505094505050505060405180910390a4611da5833461232590919063ffffffff16565b9150611dce6064611dc06006866122bc90919063ffffffff16565b6122f790919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611e58578473ffffffffffffffffffffffffffffffffffffffff166108fc611e32838661232590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611e5757600080fd5b5b6000821115611ea2578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611ea157600080fd5b5b505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156120e057600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b61215261237a565b600060206040519081016040528086815250915060016006805480600101828161217c9190612394565b9160005260206000209001600085909190915060008201518160000190805190602001906121ab9291906123c0565b5050500390508260036000838152602001908152602001600020819055507fd306967beeb39489cb6724748118d29c59bd0f0e17a5dd711b4f4d3dea3a1c478186858760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b8381101561226c578082015181840152602081019050612251565b50505050905090810190601f1680156122995780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a16122b560008583611f82565b5050505050565b60008060008414156122d157600091506122f0565b82840290508284828115156122e257fe5b041415156122ec57fe5b8091505b5092915050565b600080828481151561230557fe5b0490508091505092915050565b600080823b905060008111915050919050565b600082821115151561233357fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b60206040519081016040528061238e612440565b81525090565b8154818355818115116123bb578183600052602060002091820191016123ba9190612454565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061240157805160ff191683800117855561242f565b8280016001018555821561242f579182015b8281111561242e578251825591602001919060010190612413565b5b50905061243c9190612483565b5090565b602060405190810160405280600081525090565b61248091905b8082111561247c576000808201600061247391906124a8565b5060010161245a565b5090565b90565b6124a591905b808211156124a1576000816000905550600101612489565b5090565b90565b50805460018160011615610100020316600290046000825580601f106124ce57506124ed565b601f0160209004906000526020600020908101906124ec9190612483565b5b505600a165627a7a72305820b5161d4f006610c1cd313e1877fba48ee1eaa79a5ab95a84521e84a00d3ad0d30029

   Swarm Source:
bzzr://b5161d4f006610c1cd313e1877fba48ee1eaa79a5ab95a84521e84a00d3ad0d3

 

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