ETH Price: $2,912.03 (+1.66%)
 

Overview

Max Total Supply

366 DAYS

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
75 DAYS

Value
$0.00
0x805177ED41254fcA794e341fa8856119De0737Ce
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Own the Day or Get Paid for it - Unique Crypto-Collectibles.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OwnTheDayContract

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

// OwnTheDay-Token Source code
// copyright 2018 xeroblood <https://owntheday.io>

pragma solidity 0.4.19;


/**
 * @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;
    }
}


/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */
    function Ownable() public {
        owner = msg.sender;
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    /* Withdraw */
    /*
    NOTICE: These functions withdraw the developer's cut which is left
    in the contract. User funds are immediately sent to the old
    owner in `claimDay`, no user funds are left in the contract.
    */
    function withdrawAll() public onlyOwner {
        owner.transfer(this.balance);
    }

    function withdrawAmount(uint256 _amount) public onlyOwner {
        require(_amount <= this.balance);
        owner.transfer(_amount);
    }

    function contractBalance() public view returns (uint256) {
        return this.balance;
    }
}


/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    /**
    * @dev Modifier to make a function callable only when the contract is not paused.
    */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
    * @dev Modifier to make a function callable only when the contract is paused.
    */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
    * @dev called by the owner to pause, triggers stopped state
    */
    function pause() public onlyOwner whenNotPaused {
        paused = true;
        Pause();
    }

    /**
    * @dev called by the owner to unpause, returns to normal state
    */
    function unpause() public onlyOwner whenPaused {
        paused = false;
        Unpause();
    }
}


/**
* @title Helps contracts guard agains reentrancy attacks.
* @author Remco Bloemen <remco@2π.com>
* @notice If you mark a function `nonReentrant`, you should also
* mark it `external`.
*/
contract ReentrancyGuard {

    /**
    * @dev We use a single lock for the whole contract.
    */
    bool private reentrancyLock = false;

    /**
    * @dev Prevents a contract from calling itself, directly or indirectly.
    * @notice If you mark a function `nonReentrant`, you should also
    * mark it `external`. Calling one nonReentrant function from
    * another is not supported. Instead, you can implement a
    * `private` function doing the actual work, and a `external`
    * wrapper marked as `nonReentrant`.
    */
    modifier nonReentrant() {
        require(!reentrancyLock);
        reentrancyLock = true;
        _;
        reentrancyLock = false;
    }

}


/**
* @title ERC721 interface
* @dev see https://github.com/ethereum/eips/issues/721
*/
contract ERC721 {
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);

    function balanceOf(address _owner) public view returns (uint256 _balance);
    function ownerOf(uint256 _tokenId) public view returns (address _owner);
    function transfer(address _to, uint256 _tokenId) public;
    function approve(address _to, uint256 _tokenId) public;
    function takeOwnership(uint256 _tokenId) public;
}


/// @title Own the Day!
/// @author xeroblood (https://owntheday.io)
contract OwnTheDayContract is ERC721, Pausable, ReentrancyGuard {
    using SafeMath for uint256;

    event Bought (uint256 indexed _dayIndex, address indexed _owner, uint256 _price);
    event Sold (uint256 indexed _dayIndex, address indexed _owner, uint256 _price);

    // Total amount of tokens
    uint256 private totalTokens;
    bool private migrationFinished = false;

    // Mapping from token ID to owner
    mapping (uint256 => address) public tokenOwner;

    // Mapping from token ID to approved address
    mapping (uint256 => address) public tokenApprovals;

    // Mapping from owner to list of owned token IDs
    mapping (address => uint256[]) public ownedTokens;

    // Mapping from token ID to index of the owner tokens list
    mapping(uint256 => uint256) public ownedTokensIndex;

    /// @dev A mapping from Day Index to Current Price.
    ///  Initial Price set at 1 finney (1/1000th of an ether).
    mapping (uint256 => uint256) public dayIndexToPrice;

    /// @dev A mapping from Day Index to the address owner. Days with
    ///  no valid owner address are assigned to contract owner.
    //mapping (uint256 => address) public dayIndexToOwner;      // <---  redundant with tokenOwner

    /// @dev A mapping from Account Address to Nickname.
    mapping (address => string) public ownerAddressToName;

    /**
    * @dev Guarantees msg.sender is owner of the given token
    * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender
    */
    modifier onlyOwnerOf(uint256 _tokenId) {
        require(ownerOf(_tokenId) == msg.sender);
        _;
    }

    modifier onlyDuringMigration() {
        require(!migrationFinished);
        _;
    }

    function name() public pure returns (string _name) {
        return "OwnTheDay.io Days";
    }

    function symbol() public pure returns (string _symbol) {
        return "DAYS";
    }

    /// @dev Assigns initial days to owners during minting period.
    /// This is only used during migration from old contract to new contract (this one).
    function assignInitialDays(address _to, uint256 _tokenId, uint256 _price) public onlyOwner onlyDuringMigration {
        require(msg.sender != address(0));
        require(_to != address(0));
        require(_tokenId >= 0 && _tokenId < 366);
        require(_price >= 1 finney);
        dayIndexToPrice[_tokenId] = _price;
        _mint(_to, _tokenId);
    }

    function finishMigration() public onlyOwner {
        require(!migrationFinished);
        migrationFinished = true;
    }

    function isMigrationFinished() public view returns (bool) {
        return migrationFinished;
    }

    /**
    * @dev Gets the total amount of tokens stored by the contract
    * @return uint256 representing the total amount of tokens
    */
    function totalSupply() public view returns (uint256) {
        return totalTokens;
    }

    /**
    * @dev Gets the balance of the specified address
    * @param _owner address to query the balance of
    * @return uint256 representing the amount owned by the passed address
    */
    function balanceOf(address _owner) public view returns (uint256) {
        return ownedTokens[_owner].length;
    }

    /**
    * @dev Gets the list of tokens owned by a given address
    * @param _owner address to query the tokens of
    * @return uint256[] representing the list of tokens owned by the passed address
    */
    function tokensOf(address _owner) public view returns (uint256[]) {
        return ownedTokens[_owner];
    }

    /**
    * @dev Gets the owner of the specified token ID
    * @param _tokenId uint256 ID of the token to query the owner of
    * @return owner address currently marked as the owner of the given token ID
    */
    function ownerOf(uint256 _tokenId) public view returns (address) {
        address owner = tokenOwner[_tokenId];
        return owner;
    }

    /**
    * @dev Gets the approved address to take ownership of a given token ID
    * @param _tokenId uint256 ID of the token to query the approval of
    * @return address currently approved to take ownership of the given token ID
    */
    function approvedFor(uint256 _tokenId) public view returns (address) {
        return tokenApprovals[_tokenId];
    }

    /**
    * @dev Transfers the ownership of a given token ID to another address
    * @param _to address to receive the ownership of the given token ID
    * @param _tokenId uint256 ID of the token to be transferred
    */
    function transfer(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) {
        clearApprovalAndTransfer(msg.sender, _to, _tokenId);
    }

    /**
    * @dev Approves another address to claim for the ownership of the given token ID
    * @param _to address to be approved for the given token ID
    * @param _tokenId uint256 ID of the token to be approved
    */
    function approve(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) {
        address owner = ownerOf(_tokenId);
        require(_to != owner);
        if (approvedFor(_tokenId) != 0 || _to != 0) {
            tokenApprovals[_tokenId] = _to;
            Approval(owner, _to, _tokenId);
        }
    }

    /**
    * @dev Claims the ownership of a given token ID
    * @param _tokenId uint256 ID of the token being claimed by the msg.sender
    */
    function takeOwnership(uint256 _tokenId) public {
        require(isApprovedFor(msg.sender, _tokenId));
        clearApprovalAndTransfer(ownerOf(_tokenId), msg.sender, _tokenId);
    }

    /// @dev Calculate the Final Sale Price after the Owner-Cut has been calculated
    function calculateOwnerCut(uint256 _price) public pure returns (uint256) {
        if (_price > 5000 finney) {
            return _price.mul(2).div(100);
        } else if (_price > 500 finney) {
            return _price.mul(3).div(100);
        } else if (_price > 250 finney) {
            return _price.mul(4).div(100);
        }
        return _price.mul(5).div(100);
    }

    /// @dev Calculate the Price Increase based on the current Purchase Price
    function calculatePriceIncrease(uint256 _price) public pure returns (uint256) {
        if (_price > 5000 finney) {
            return _price.mul(15).div(100);
        } else if (_price > 2500 finney) {
            return _price.mul(18).div(100);
        } else if (_price > 500 finney) {
            return _price.mul(26).div(100);
        } else if (_price > 250 finney) {
            return _price.mul(36).div(100);
        }
        return _price; // 100% increase
    }

    /// @dev Gets the Current (or Default) Price of a Day
    function getPriceByDayIndex(uint256 _dayIndex) public view returns (uint256) {
        require(_dayIndex >= 0 && _dayIndex < 366);
        uint256 price = dayIndexToPrice[_dayIndex];
        if (price == 0) { price = 1 finney; }
        return price;
    }

    /// @dev Sets the Nickname for an Account Address
    function setAccountNickname(string _nickname) public whenNotPaused {
        require(msg.sender != address(0));
        require(bytes(_nickname).length > 0);
        ownerAddressToName[msg.sender] = _nickname;
    }

    /// @dev Claim a Day for Your Very Own!
    /// The Purchase Price is Paid to the Previous Owner
    function claimDay(uint256 _dayIndex) public nonReentrant whenNotPaused payable {
        require(msg.sender != address(0));
        require(_dayIndex >= 0 && _dayIndex < 366);

        address buyer = msg.sender;
        address seller = tokenOwner[_dayIndex];
        require(msg.sender != seller); // Prevent buying from self

        uint256 amountPaid = msg.value;
        uint256 purchasePrice = dayIndexToPrice[_dayIndex];
        if (purchasePrice == 0) {
            purchasePrice = 1 finney; // == 0.001 ether or 1000000000000000 wei
        }
        require(amountPaid >= purchasePrice);

        // If too much was paid, track the change to be returned
        uint256 changeToReturn = 0;
        if (amountPaid > purchasePrice) {
            changeToReturn = amountPaid.sub(purchasePrice);
            amountPaid -= changeToReturn;
        }

        // Calculate New Purchase Price and update storage
        uint256 priceIncrease = calculatePriceIncrease(purchasePrice);
        uint256 newPurchasePrice = purchasePrice.add(priceIncrease);
        dayIndexToPrice[_dayIndex] = newPurchasePrice;

        // Calculate Sale Price after Dev-Cut
        //  - Dev-Cut is left in the contract
        //  - Sale Price is transfered to seller immediately
        uint256 ownerCut = calculateOwnerCut(amountPaid);
        uint256 salePrice = amountPaid.sub(ownerCut);

        // Fire Claim Events
        Bought(_dayIndex, buyer, purchasePrice);
        Sold(_dayIndex, seller, purchasePrice);

        // Transfer token
        if (seller == address(0)) {
            _mint(buyer, _dayIndex);
        } else {
            clearApprovalAndTransfer(seller, buyer, _dayIndex);
        }

        // Transfer Funds
        if (seller != address(0)) {
            seller.transfer(salePrice);
        }
        if (changeToReturn > 0) {
            buyer.transfer(changeToReturn);
        }
    }

    /**
    * @dev Mint token function
    * @param _to The address that will own the minted token
    * @param _tokenId uint256 ID of the token to be minted by the msg.sender
    */
    function _mint(address _to, uint256 _tokenId) internal {
        require(_to != address(0));
        addToken(_to, _tokenId);
        Transfer(0x0, _to, _tokenId);
    }

    /**
    * @dev Tells whether the msg.sender is approved for the given token ID or not
    * This function is not private so it can be extended in further implementations like the operatable ERC721
    * @param _owner address of the owner to query the approval of
    * @param _tokenId uint256 ID of the token to query the approval of
    * @return bool whether the msg.sender is approved for the given token ID or not
    */
    function isApprovedFor(address _owner, uint256 _tokenId) internal view returns (bool) {
        return approvedFor(_tokenId) == _owner;
    }

    /**
    * @dev Internal function to clear current approval and transfer the ownership of a given token ID
    * @param _from address which you want to send tokens from
    * @param _to address which you want to transfer the token to
    * @param _tokenId uint256 ID of the token to be transferred
    */
    function clearApprovalAndTransfer(address _from, address _to, uint256 _tokenId) internal {
        require(_to != address(0));
        require(_to != ownerOf(_tokenId));
        require(ownerOf(_tokenId) == _from);

        clearApproval(_from, _tokenId);
        removeToken(_from, _tokenId);
        addToken(_to, _tokenId);
        Transfer(_from, _to, _tokenId);
    }

    /**
    * @dev Internal function to clear current approval of a given token ID
    * @param _tokenId uint256 ID of the token to be transferred
    */
    function clearApproval(address _owner, uint256 _tokenId) private {
        require(ownerOf(_tokenId) == _owner);
        tokenApprovals[_tokenId] = 0;
        Approval(_owner, 0, _tokenId);
    }

    /**
    * @dev Internal function to add a token ID to the list of a given address
    * @param _to address representing the new owner of the given token ID
    * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address
    */
    function addToken(address _to, uint256 _tokenId) private {
        require(tokenOwner[_tokenId] == address(0));
        tokenOwner[_tokenId] = _to;
        uint256 length = balanceOf(_to);
        ownedTokens[_to].push(_tokenId);
        ownedTokensIndex[_tokenId] = length;
        totalTokens = totalTokens.add(1);
    }

    /**
    * @dev Internal function to remove a token ID from the list of a given address
    * @param _from address representing the previous owner of the given token ID
    * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address
    */
    function removeToken(address _from, uint256 _tokenId) private {
        require(ownerOf(_tokenId) == _from);

        uint256 tokenIndex = ownedTokensIndex[_tokenId];
        uint256 lastTokenIndex = balanceOf(_from).sub(1);
        uint256 lastToken = ownedTokens[_from][lastTokenIndex];

        tokenOwner[_tokenId] = 0;
        ownedTokens[_from][tokenIndex] = lastToken;
        ownedTokens[_from][lastTokenIndex] = 0;
        // Note that this will handle single-element arrays. In that case, both tokenIndex and lastTokenIndex are
        // going to be zero. Then we can make sure that we will remove _tokenId from the ownedTokens list since we
        // are first swapping the lastToken to the first position, and then dropping the element placed in the last
        // position of the list

        ownedTokens[_from].length--;
        ownedTokensIndex[_tokenId] = 0;
        ownedTokensIndex[lastToken] = tokenIndex;
        totalTokens = totalTokens.sub(1);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dayIndex","type":"uint256"}],"name":"claimDay","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"assignInitialDays","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_price","type":"uint256"}],"name":"calculateOwnerCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isMigrationFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"approvedFor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"dayIndexToPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nickname","type":"string"}],"name":"setAccountNickname","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":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_dayIndex","type":"uint256"}],"name":"getPriceByDayIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ownedTokensIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMigration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"pure","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":"","type":"uint256"}],"name":"tokenApprovals","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":"","type":"address"},{"name":"","type":"uint256"}],"name":"ownedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_price","type":"uint256"}],"name":"calculatePriceIncrease","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownerAddressToName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_dayIndex","type":"uint256"},{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"Bought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_dayIndex","type":"uint256"},{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"Sold","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

606060405260008060146101000a81548160ff02191690831515021790555060008060156101000a81548160ff0219169083151502179055506000600260006101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612642806100a26000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630562b9f71461019b57806306fdde03146101be578063095ea7b31461024c5780631248b1011461028e57806314d30335146102a657806318160ddd146102f15780631caaa4871461031a578063205f3b581461037d57806321d3d2ee146103b45780632a6dd48f146103e15780633f4ba83a1461044457806346658f88146104595780634d9994e8146104905780635a3f2672146104ed5780635c975abb1461057b5780636352211e146105a8578063669ef86d1461060b57806370a082311461064257806374e243671461068f5780638456cb59146106c6578063853828b6146106db57806388d761f2146106f05780638b7afe2e146107055780638da5cb5b1461072e57806395d89b4114610783578063a9059cbb14610811578063acdeb5b914610853578063b2e6ceeb146108b6578063e149f036146108d9578063ebd8fde31461092f578063f2fde38b14610966578063f6c3ce331461099f575b600080fd5b34156101a657600080fd5b6101bc6004808035906020019091905050610a51565b005b34156101c957600080fd5b6101d1610b36565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025757600080fd5b61028c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b79565b005b6102a46004808035906020019091905050610d0c565b005b34156102b157600080fd5b6102ef600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190919050506110c9565b005b34156102fc57600080fd5b610304611212565b6040518082815260200191505060405180910390f35b341561032557600080fd5b61033b600480803590602001909190505061121c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561038857600080fd5b61039e600480803590602001909190505061124f565b6040518082815260200191505060405180910390f35b34156103bf57600080fd5b6103c761133a565b604051808215151515815260200191505060405180910390f35b34156103ec57600080fd5b6104026004808035906020019091905050611351565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044f57600080fd5b61045761138e565b005b341561046457600080fd5b61047a600480803590602001909190505061144c565b6040518082815260200191505060405180910390f35b341561049b57600080fd5b6104eb600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611464565b005b34156104f857600080fd5b610524600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611523565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056757808201518184015260208101905061054c565b505050509050019250505060405180910390f35b341561058657600080fd5b61058e6115c0565b604051808215151515815260200191505060405180910390f35b34156105b357600080fd5b6105c960048080359060200190919050506115d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061657600080fd5b61062c6004808035906020019091905050611615565b6040518082815260200191505060405180910390f35b341561064d57600080fd5b610679600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611668565b6040518082815260200191505060405180910390f35b341561069a57600080fd5b6106b060048080359060200190919050506116b4565b6040518082815260200191505060405180910390f35b34156106d157600080fd5b6106d96116cc565b005b34156106e657600080fd5b6106ee61178c565b005b34156106fb57600080fd5b610703611861565b005b341561071057600080fd5b6107186118f5565b6040518082815260200191505060405180910390f35b341561073957600080fd5b610741611914565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561078e57600080fd5b610796611939565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107d65780820151818401526020810190506107bb565b50505050905090810190601f1680156108035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561081c57600080fd5b610851600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061197c565b005b341561085e57600080fd5b61087460048080359060200190919050506119cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108c157600080fd5b6108d76004808035906020019091905050611a02565b005b34156108e457600080fd5b610919600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a2d565b6040518082815260200191505060405180910390f35b341561093a57600080fd5b6109506004808035906020019091905050611a5e565b6040518082815260200191505060405180910390f35b341561097157600080fd5b61099d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b61565b005b34156109aa57600080fd5b6109d6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cb6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a165780820151818401526020810190506109fb565b50505050905090810190601f168015610a435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aac57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111151515610ad257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610b3357600080fd5b50565b610b3e6124f1565b6040805190810160405280601181526020017f4f776e5468654461792e696f2044617973000000000000000000000000000000815250905090565b6000813373ffffffffffffffffffffffffffffffffffffffff16610b9c826115d3565b73ffffffffffffffffffffffffffffffffffffffff16141515610bbe57600080fd5b610bc7836115d3565b91508173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610c0457600080fd5b6000610c0f84611351565b73ffffffffffffffffffffffffffffffffffffffff16141580610c49575060008473ffffffffffffffffffffffffffffffffffffffff1614155b15610d0657836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b50505050565b60008060008060008060008060008060159054906101000a900460ff16151515610d3557600080fd5b6001600060156101000a81548160ff021916908315150217905550600060149054906101000a900460ff16151515610d6c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610da857600080fd5b60008a10158015610dba575061016e8a105b1515610dc557600080fd5b339850600360008b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1697508773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610e3957600080fd5b349650600760008b81526020019081526020016000205495506000861415610e665766038d7ea4c6800095505b858710151515610e7557600080fd5b6000945085871115610e9c57610e948688611d6690919063ffffffff16565b945084870396505b610ea586611a5e565b9350610eba8487611d7f90919063ffffffff16565b925082600760008c815260200190815260200160002081905550610edd8761124f565b9150610ef28288611d6690919063ffffffff16565b90508873ffffffffffffffffffffffffffffffffffffffff168a7fd2728f908c7e0feb83c6278798370fcb86b62f236c9dbf1a3f541096c2159040886040518082815260200191505060405180910390a38773ffffffffffffffffffffffffffffffffffffffff168a7f66f5cd880edf48cdde6c966e5da0784fcc4c5e85572b8b3b62c4357798d447d7886040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415610fd657610fd1898b611d9d565b610fe2565b610fe1888a8c611e37565b5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515611059578773ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561105857600080fd5b5b60008511156110a3578873ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156110a257600080fd5b5b60008060156101000a81548160ff02191690831515021790555050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112457600080fd5b600260009054906101000a900460ff1615151561114057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561117c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156111b857600080fd5b600082101580156111ca575061016e82105b15156111d557600080fd5b66038d7ea4c6800081101515156111eb57600080fd5b80600760008481526020019081526020016000208190555061120d8383611d9d565b505050565b6000600154905090565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000674563918244f4000082111561128f57611288606461127a600285611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611335565b6706f05b59d3b200008211156112cd576112c660646112b8600385611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611335565b6703782dace9d9000082111561130b5761130460646112f6600485611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611335565b6113326064611324600585611f8090919063ffffffff16565b611fbb90919063ffffffff16565b90505b919050565b6000600260009054906101000a900460ff16905090565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e957600080fd5b600060149054906101000a900460ff16151561140457600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60076020528060005260406000206000915090505481565b600060149054906101000a900460ff1615151561148057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515156114bc57600080fd5b600081511115156114cc57600080fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061151f929190612505565b5050565b61152b612585565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156115b457602002820191906000526020600020905b8154815260200190600101908083116115a0575b50505050509050919050565b600060149054906101000a900460ff1681565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080915050919050565b6000806000831015801561162a575061016e83105b151561163557600080fd5b60076000848152602001908152602001600020549050600081141561165f5766038d7ea4c6800090505b80915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561172757600080fd5b600060149054906101000a900460ff1615151561174357600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117e757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561185f57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bc57600080fd5b600260009054906101000a900460ff161515156118d857600080fd5b6001600260006101000a81548160ff021916908315150217905550565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119416124f1565b6040805190810160405280600481526020017f4441595300000000000000000000000000000000000000000000000000000000815250905090565b803373ffffffffffffffffffffffffffffffffffffffff1661199d826115d3565b73ffffffffffffffffffffffffffffffffffffffff161415156119bf57600080fd5b6119ca338484611e37565b505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a0c3382611fd6565b1515611a1757600080fd5b611a2a611a23826115d3565b3383611e37565b50565b600560205281600052604060002081815481101515611a4857fe5b9060005260206000209001600091509150505481565b6000674563918244f40000821115611a9e57611a976064611a89600f85611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b6722b1c8c1227a0000821115611adc57611ad56064611ac7601285611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b6706f05b59d3b20000821115611b1a57611b136064611b05601a85611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b6703782dace9d90000821115611b5857611b516064611b43602485611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b8190505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bbc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d5e5780601f10611d3357610100808354040283529160200191611d5e565b820191906000526020600020905b815481529060010190602001808311611d4157829003601f168201915b505050505081565b6000828211151515611d7457fe5b818303905092915050565b6000808284019050838110151515611d9357fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611dd957600080fd5b611de38282612017565b8173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611e7357600080fd5b611e7c816115d3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611eb657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16611ed6826115d3565b73ffffffffffffffffffffffffffffffffffffffff16141515611ef857600080fd5b611f028382612181565b611f0c838261226a565b611f168282612017565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000806000841415611f955760009150611fb4565b8284029050828482811515611fa657fe5b04141515611fb057fe5b8091505b5092915050565b6000808284811515611fc957fe5b0490508091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16611ff883611351565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561208657600080fd5b826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506120e183611668565b9050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816121349190612599565b91600052602060002090016000849091909150555080600660008481526020019081526020016000208190555061217660018054611d7f90919063ffffffff16565b600181905550505050565b8173ffffffffffffffffffffffffffffffffffffffff166121a1826115d3565b73ffffffffffffffffffffffffffffffffffffffff161415156121c357600080fd5b60006004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1661228f856115d3565b73ffffffffffffffffffffffffffffffffffffffff161415156122b157600080fd5b600660008581526020019081526020016000205492506122e360016122d587611668565b611d6690919063ffffffff16565b9150600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561233157fe5b906000526020600020900154905060006003600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156123df57fe5b9060005260206000209001819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561243c57fe5b906000526020600020900181905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361249d91906125c5565b50600060066000868152602001908152602001600020819055508260066000838152602001908152602001600020819055506124e460018054611d6690919063ffffffff16565b6001819055505050505050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061254657805160ff1916838001178555612574565b82800160010185558215612574579182015b82811115612573578251825591602001919060010190612558565b5b50905061258191906125f1565b5090565b602060405190810160405280600081525090565b8154818355818115116125c0578183600052602060002091820191016125bf91906125f1565b5b505050565b8154818355818115116125ec578183600052602060002091820191016125eb91906125f1565b5b505050565b61261391905b8082111561260f5760008160009055506001016125f7565b5090565b905600a165627a7a72305820bb042c57bc5b430ce77d98eed72e05bc8737f6ceafc677d5fd3fd6352cdff1e20029

Deployed Bytecode

0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630562b9f71461019b57806306fdde03146101be578063095ea7b31461024c5780631248b1011461028e57806314d30335146102a657806318160ddd146102f15780631caaa4871461031a578063205f3b581461037d57806321d3d2ee146103b45780632a6dd48f146103e15780633f4ba83a1461044457806346658f88146104595780634d9994e8146104905780635a3f2672146104ed5780635c975abb1461057b5780636352211e146105a8578063669ef86d1461060b57806370a082311461064257806374e243671461068f5780638456cb59146106c6578063853828b6146106db57806388d761f2146106f05780638b7afe2e146107055780638da5cb5b1461072e57806395d89b4114610783578063a9059cbb14610811578063acdeb5b914610853578063b2e6ceeb146108b6578063e149f036146108d9578063ebd8fde31461092f578063f2fde38b14610966578063f6c3ce331461099f575b600080fd5b34156101a657600080fd5b6101bc6004808035906020019091905050610a51565b005b34156101c957600080fd5b6101d1610b36565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025757600080fd5b61028c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b79565b005b6102a46004808035906020019091905050610d0c565b005b34156102b157600080fd5b6102ef600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190919050506110c9565b005b34156102fc57600080fd5b610304611212565b6040518082815260200191505060405180910390f35b341561032557600080fd5b61033b600480803590602001909190505061121c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561038857600080fd5b61039e600480803590602001909190505061124f565b6040518082815260200191505060405180910390f35b34156103bf57600080fd5b6103c761133a565b604051808215151515815260200191505060405180910390f35b34156103ec57600080fd5b6104026004808035906020019091905050611351565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044f57600080fd5b61045761138e565b005b341561046457600080fd5b61047a600480803590602001909190505061144c565b6040518082815260200191505060405180910390f35b341561049b57600080fd5b6104eb600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611464565b005b34156104f857600080fd5b610524600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611523565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056757808201518184015260208101905061054c565b505050509050019250505060405180910390f35b341561058657600080fd5b61058e6115c0565b604051808215151515815260200191505060405180910390f35b34156105b357600080fd5b6105c960048080359060200190919050506115d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061657600080fd5b61062c6004808035906020019091905050611615565b6040518082815260200191505060405180910390f35b341561064d57600080fd5b610679600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611668565b6040518082815260200191505060405180910390f35b341561069a57600080fd5b6106b060048080359060200190919050506116b4565b6040518082815260200191505060405180910390f35b34156106d157600080fd5b6106d96116cc565b005b34156106e657600080fd5b6106ee61178c565b005b34156106fb57600080fd5b610703611861565b005b341561071057600080fd5b6107186118f5565b6040518082815260200191505060405180910390f35b341561073957600080fd5b610741611914565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561078e57600080fd5b610796611939565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107d65780820151818401526020810190506107bb565b50505050905090810190601f1680156108035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561081c57600080fd5b610851600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061197c565b005b341561085e57600080fd5b61087460048080359060200190919050506119cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108c157600080fd5b6108d76004808035906020019091905050611a02565b005b34156108e457600080fd5b610919600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a2d565b6040518082815260200191505060405180910390f35b341561093a57600080fd5b6109506004808035906020019091905050611a5e565b6040518082815260200191505060405180910390f35b341561097157600080fd5b61099d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b61565b005b34156109aa57600080fd5b6109d6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cb6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a165780820151818401526020810190506109fb565b50505050905090810190601f168015610a435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aac57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111151515610ad257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610b3357600080fd5b50565b610b3e6124f1565b6040805190810160405280601181526020017f4f776e5468654461792e696f2044617973000000000000000000000000000000815250905090565b6000813373ffffffffffffffffffffffffffffffffffffffff16610b9c826115d3565b73ffffffffffffffffffffffffffffffffffffffff16141515610bbe57600080fd5b610bc7836115d3565b91508173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610c0457600080fd5b6000610c0f84611351565b73ffffffffffffffffffffffffffffffffffffffff16141580610c49575060008473ffffffffffffffffffffffffffffffffffffffff1614155b15610d0657836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b50505050565b60008060008060008060008060008060159054906101000a900460ff16151515610d3557600080fd5b6001600060156101000a81548160ff021916908315150217905550600060149054906101000a900460ff16151515610d6c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610da857600080fd5b60008a10158015610dba575061016e8a105b1515610dc557600080fd5b339850600360008b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1697508773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610e3957600080fd5b349650600760008b81526020019081526020016000205495506000861415610e665766038d7ea4c6800095505b858710151515610e7557600080fd5b6000945085871115610e9c57610e948688611d6690919063ffffffff16565b945084870396505b610ea586611a5e565b9350610eba8487611d7f90919063ffffffff16565b925082600760008c815260200190815260200160002081905550610edd8761124f565b9150610ef28288611d6690919063ffffffff16565b90508873ffffffffffffffffffffffffffffffffffffffff168a7fd2728f908c7e0feb83c6278798370fcb86b62f236c9dbf1a3f541096c2159040886040518082815260200191505060405180910390a38773ffffffffffffffffffffffffffffffffffffffff168a7f66f5cd880edf48cdde6c966e5da0784fcc4c5e85572b8b3b62c4357798d447d7886040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415610fd657610fd1898b611d9d565b610fe2565b610fe1888a8c611e37565b5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515611059578773ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561105857600080fd5b5b60008511156110a3578873ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156110a257600080fd5b5b60008060156101000a81548160ff02191690831515021790555050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112457600080fd5b600260009054906101000a900460ff1615151561114057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561117c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156111b857600080fd5b600082101580156111ca575061016e82105b15156111d557600080fd5b66038d7ea4c6800081101515156111eb57600080fd5b80600760008481526020019081526020016000208190555061120d8383611d9d565b505050565b6000600154905090565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000674563918244f4000082111561128f57611288606461127a600285611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611335565b6706f05b59d3b200008211156112cd576112c660646112b8600385611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611335565b6703782dace9d9000082111561130b5761130460646112f6600485611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611335565b6113326064611324600585611f8090919063ffffffff16565b611fbb90919063ffffffff16565b90505b919050565b6000600260009054906101000a900460ff16905090565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e957600080fd5b600060149054906101000a900460ff16151561140457600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60076020528060005260406000206000915090505481565b600060149054906101000a900460ff1615151561148057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515156114bc57600080fd5b600081511115156114cc57600080fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061151f929190612505565b5050565b61152b612585565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156115b457602002820191906000526020600020905b8154815260200190600101908083116115a0575b50505050509050919050565b600060149054906101000a900460ff1681565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080915050919050565b6000806000831015801561162a575061016e83105b151561163557600080fd5b60076000848152602001908152602001600020549050600081141561165f5766038d7ea4c6800090505b80915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561172757600080fd5b600060149054906101000a900460ff1615151561174357600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117e757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561185f57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bc57600080fd5b600260009054906101000a900460ff161515156118d857600080fd5b6001600260006101000a81548160ff021916908315150217905550565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119416124f1565b6040805190810160405280600481526020017f4441595300000000000000000000000000000000000000000000000000000000815250905090565b803373ffffffffffffffffffffffffffffffffffffffff1661199d826115d3565b73ffffffffffffffffffffffffffffffffffffffff161415156119bf57600080fd5b6119ca338484611e37565b505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a0c3382611fd6565b1515611a1757600080fd5b611a2a611a23826115d3565b3383611e37565b50565b600560205281600052604060002081815481101515611a4857fe5b9060005260206000209001600091509150505481565b6000674563918244f40000821115611a9e57611a976064611a89600f85611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b6722b1c8c1227a0000821115611adc57611ad56064611ac7601285611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b6706f05b59d3b20000821115611b1a57611b136064611b05601a85611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b6703782dace9d90000821115611b5857611b516064611b43602485611f8090919063ffffffff16565b611fbb90919063ffffffff16565b9050611b5c565b8190505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bbc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bf857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d5e5780601f10611d3357610100808354040283529160200191611d5e565b820191906000526020600020905b815481529060010190602001808311611d4157829003601f168201915b505050505081565b6000828211151515611d7457fe5b818303905092915050565b6000808284019050838110151515611d9357fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611dd957600080fd5b611de38282612017565b8173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611e7357600080fd5b611e7c816115d3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611eb657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16611ed6826115d3565b73ffffffffffffffffffffffffffffffffffffffff16141515611ef857600080fd5b611f028382612181565b611f0c838261226a565b611f168282612017565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000806000841415611f955760009150611fb4565b8284029050828482811515611fa657fe5b04141515611fb057fe5b8091505b5092915050565b6000808284811515611fc957fe5b0490508091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16611ff883611351565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561208657600080fd5b826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506120e183611668565b9050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816121349190612599565b91600052602060002090016000849091909150555080600660008481526020019081526020016000208190555061217660018054611d7f90919063ffffffff16565b600181905550505050565b8173ffffffffffffffffffffffffffffffffffffffff166121a1826115d3565b73ffffffffffffffffffffffffffffffffffffffff161415156121c357600080fd5b60006004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1661228f856115d3565b73ffffffffffffffffffffffffffffffffffffffff161415156122b157600080fd5b600660008581526020019081526020016000205492506122e360016122d587611668565b611d6690919063ffffffff16565b9150600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561233157fe5b906000526020600020900154905060006003600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156123df57fe5b9060005260206000209001819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561243c57fe5b906000526020600020900181905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361249d91906125c5565b50600060066000868152602001908152602001600020819055508260066000838152602001908152602001600020819055506124e460018054611d6690919063ffffffff16565b6001819055505050505050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061254657805160ff1916838001178555612574565b82800160010185558215612574579182015b82811115612573578251825591602001919060010190612558565b5b50905061258191906125f1565b5090565b602060405190810160405280600081525090565b8154818355818115116125c0578183600052602060002091820191016125bf91906125f1565b5b505050565b8154818355818115116125ec578183600052602060002091820191016125eb91906125f1565b5b505050565b61261391905b8082111561260f5760008160009055506001016125f7565b5090565b905600a165627a7a72305820bb042c57bc5b430ce77d98eed72e05bc8737f6ceafc677d5fd3fd6352cdff1e20029

Swarm Source

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

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