ETH Price: $1,849.90 (-0.93%)
 

Overview

ETH Balance

0.124484210526315788 ETH

Eth Value

$230.28 (@ $1,849.90/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy Token57661132018-06-10 19:00:222816 days ago1528657222IN
0x834603B8...a52Ca6C28
0.01 ETH0.00057094
Buy Token57661032018-06-10 18:58:552816 days ago1528657135IN
0x834603B8...a52Ca6C28
0.01 ETH0.00063094
Create Token57659402018-06-10 18:16:132816 days ago1528654573IN
0x834603B8...a52Ca6C28
0.01 ETH0.0026258515
Create Token57657652018-06-10 17:27:582816 days ago1528651678IN
0x834603B8...a52Ca6C28
0.01 ETH0.000700224
Create Token57602712018-06-09 18:01:152817 days ago1528567275IN
0x834603B8...a52Ca6C28
0.01 ETH0.0019256211
Create Token57602512018-06-09 17:56:272817 days ago1528566987IN
0x834603B8...a52Ca6C28
0.01 ETH0.000875285
Buy Token57602402018-06-09 17:53:502817 days ago1528566830IN
0x834603B8...a52Ca6C28
0.02105263 ETH0.000714765
Create Token57602142018-06-09 17:46:332817 days ago1528566393IN
0x834603B8...a52Ca6C28
0.01 ETH0.000700224
Buy Token57601682018-06-09 17:35:352817 days ago1528565735IN
0x834603B8...a52Ca6C28
0.01 ETH0.000999087
Buy Token57601492018-06-09 17:30:312817 days ago1528565431IN
0x834603B8...a52Ca6C28
0.01 ETH0.000946366
Create Token57601312018-06-09 17:24:492817 days ago1528565089IN
0x834603B8...a52Ca6C28
0.01 ETH0.000875285
Buy Token57558742018-06-08 23:12:342818 days ago1528499554IN
0x834603B8...a52Ca6C28
0.01 ETH0.000946366
Buy Token57558722018-06-08 23:12:122818 days ago1528499532IN
0x834603B8...a52Ca6C28
0.02105263 ETH0.000857716
Buy Token57558662018-06-08 23:10:372818 days ago1528499437IN
0x834603B8...a52Ca6C28
0.01 ETH0.000946366
Create Token57558352018-06-08 23:00:402818 days ago1528498840IN
0x834603B8...a52Ca6C28
0.01 ETH0.001050346
Create Token57558132018-06-08 22:54:252818 days ago1528498465IN
0x834603B8...a52Ca6C28
0.01 ETH0.001050346
Buy Token57555352018-06-08 21:41:152818 days ago1528494075IN
0x834603B8...a52Ca6C28
0.01 ETH0.001036366
Create Token57554752018-06-08 21:27:522818 days ago1528493272IN
0x834603B8...a52Ca6C28
0.01 ETH0.001050346
Create Token57554402018-06-08 21:19:232818 days ago1528492763IN
0x834603B8...a52Ca6C28
0.01 ETH0.001225397
Create Token57554312018-06-08 21:17:162818 days ago1528492636IN
0x834603B8...a52Ca6C28
0.01 ETH0.001050346
Create Token57554022018-06-08 21:09:352818 days ago1528492175IN
0x834603B8...a52Ca6C28
0.01 ETH0.001320346

Latest 9 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer57661132018-06-10 19:00:222816 days ago1528657222
0x834603B8...a52Ca6C28
0.0096 ETH
Transfer57661032018-06-10 18:58:552816 days ago1528657135
0x834603B8...a52Ca6C28
0.0096 ETH
Transfer57602402018-06-09 17:53:502817 days ago1528566830
0x834603B8...a52Ca6C28
0.02021052 ETH
Transfer57601682018-06-09 17:35:352817 days ago1528565735
0x834603B8...a52Ca6C28
0.0096 ETH
Transfer57601492018-06-09 17:30:312817 days ago1528565431
0x834603B8...a52Ca6C28
0.0096 ETH
Transfer57558742018-06-08 23:12:342818 days ago1528499554
0x834603B8...a52Ca6C28
0.0096 ETH
Transfer57558722018-06-08 23:12:122818 days ago1528499532
0x834603B8...a52Ca6C28
0.02021052 ETH
Transfer57558662018-06-08 23:10:372818 days ago1528499437
0x834603B8...a52Ca6C28
0.0096 ETH
Transfer57555352018-06-08 21:41:152818 days ago1528494075
0x834603B8...a52Ca6C28
0.0096 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Economeme

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-06-08
*/

pragma solidity ^0.4.18;

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

  mapping (address => bool) public admins;

  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;
    admins[owner] = true;
  }


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

  function changeAdmin(address _newAdmin, bool _approved) onlyOwner public {
    admins[_newAdmin] = _approved;
  }

  /**
   * @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) onlyOwner public {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }
  
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title ERC721Token
 * Generic implementation for the required functionality of the ERC721 standard
 */
contract Economeme is ERC721, Ownable {
  using SafeMath for uint256;

  // Total amount of tokens
  uint256 private totalTokens;
  uint256 public developerCut;
  uint256 public submissionPool; // The fund amount gained from submissions.
  uint256 public submissionPrice; // How much it costs to submit a meme.
  uint256 public endingBalance; // Balance at the end of the last purchase.

  // Meme Data
  mapping (uint256 => Meme) public memeData;

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

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

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

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

  // Balances from % payouts.
  mapping (address => uint256) public creatorBalances;

  // Events
  event Purchase(uint256 indexed _tokenId, address indexed _buyer, address indexed _seller, uint256 _purchasePrice);
  event Creation(address indexed _creator, uint256 _tokenId, uint256 _timestamp);

  // Purchasing caps for determining next price
  uint256 private firstCap  = 0.02 ether;
  uint256 private secondCap = 0.5 ether;
  uint256 private thirdCap  = 2.0 ether;
  uint256 private finalCap  = 5.0 ether;

  // Struct to store Meme data
  struct Meme {
    uint256 price;         // Current price of the item.
    address owner;         // Current owner of the item.
    address creator;       // Address that created dat boi.
  }
  
  function Economeme() public {
    submissionPrice = 1 ether / 100;
  }

/** ******************************* Buying ********************************* **/

  /**
  * @dev Purchase meme from previous owner
  * @param _tokenId uint256 of token
  */
  function buyToken(uint256 _tokenId) public 
    payable
  {
    // get data from storage
    Meme storage meme = memeData[_tokenId];
    uint256 price = meme.price;
    address oldOwner = meme.owner;
    address newOwner = msg.sender;
    uint256 excess = msg.value.sub(price);

    // revert checks
    require(price > 0);
    require(msg.value >= price);
    require(oldOwner != msg.sender);
    
    uint256 devCut = price.mul(2).div(100);
    developerCut = developerCut.add(devCut);

    uint256 creatorCut = price.mul(2).div(100);
    creatorBalances[meme.creator] = creatorBalances[meme.creator].add(creatorCut);

    uint256 transferAmount = price.sub(creatorCut + devCut);

    transferToken(oldOwner, newOwner, _tokenId);

    // raise event
    emit Purchase(_tokenId, newOwner, oldOwner, price);

    // set new price
    meme.price = getNextPrice(price);

    // Safe transfer to owner that will bypass throws on bad contracts.
    safeTransfer(oldOwner, transferAmount);
    
    // Send refund to buyer if needed
    if (excess > 0) {
      newOwner.transfer(excess);
    }
    
    // If safeTransfer did not succeed, we take lost funds into our cut and will return manually if it wasn't malicious.
    // Otherwise we're going out for some beers.
    if (address(this).balance > endingBalance + creatorCut + devCut) submissionPool += transferAmount;
    
    endingBalance = address(this).balance;
  }

  /**
   * @dev safeTransfer allows a push to an address that will not revert if the address throws.
   * @param _oldOwner The owner that funds will be transferred to.
   * @param _amount The amount of funds that will be transferred.
  */
  function safeTransfer(address _oldOwner, uint256 _amount) internal { 
    assembly { 
        let x := mload(0x40) 
        let success := call(
            5000, 
            _oldOwner, 
            _amount, 
            x, 
            0x0, 
            x, 
            0x20) 
        mstore(0x40,add(x,0x20)) 
    } 
  }

  /**
  * @dev Transfer Token from Previous Owner to New Owner
  * @param _from previous owner address
  * @param _to new owner address
  * @param _tokenId uint256 ID of token
  */
  function transferToken(address _from, address _to, uint256 _tokenId) internal {
    // check token exists
    require(tokenExists(_tokenId));

    // make sure previous owner is correct
    require(memeData[_tokenId].owner == _from);

    require(_to != address(0));
    require(_to != address(this));

    // clear approvals linked to this token
    clearApproval(_from, _tokenId);

    // remove token from previous owner
    removeToken(_from, _tokenId);

    // update owner and add token to new owner
    addToken(_to, _tokenId);

    // raise event
    emit Transfer(_from, _to, _tokenId);
  }
  
  /**
  * @dev Determines next price of token
  * @param _price uint256 ID of current price
  */
  function getNextPrice (uint256 _price) internal view returns (uint256 _nextPrice) {
    if (_price < firstCap) {
      return _price.mul(200).div(95);
    } else if (_price < secondCap) {
      return _price.mul(135).div(96);
    } else if (_price < thirdCap) {
      return _price.mul(125).div(97);
    } else if (_price < finalCap) {
      return _price.mul(117).div(97);
    } else {
      return _price.mul(115).div(98);
    }
  }

/** *********************** Player Administrative ************************** **/

  /**
  * @dev Used by posters to submit and create a new meme.
  */
  function createToken() external payable {
    // make sure token hasn't been used yet
    uint256 tokenId = totalTokens + 1;
    require(memeData[tokenId].price == 0);
    require(msg.value == submissionPrice);
    submissionPool += submissionPrice;
    endingBalance = address(this).balance;
    
    // create new token
    memeData[tokenId] = Meme(1 ether / 100, msg.sender, msg.sender);

    // mint new token
    _mint(msg.sender, tokenId);
    
    emit Creation(msg.sender, tokenId, block.timestamp);
  }

  /**
  * @dev Withdraw anyone's creator balance.
  * @param _beneficiary The person whose balance shall be sent to them.
  */
  function withdrawBalance(address _beneficiary) external {
    uint256 payout = creatorBalances[_beneficiary];
    creatorBalances[_beneficiary] = 0;
    _beneficiary.transfer(payout);
    endingBalance = address(this).balance;
  }

/** **************************** Frontend ********************************** **/

  /**
  * @dev Return all relevant data for a meme.
  * @param _tokenId Unique meme ID.
  */
  function getMemeData (uint256 _tokenId) external view 
  returns (address _owner, uint256 _price, uint256 _nextPrice, address _creator) 
  {
    Meme memory meme = memeData[_tokenId];
    return (meme.owner, meme.price, getNextPrice(meme.price), meme.creator);
  }

  /**
  * @dev Check the creator balance of a certain address.
  * @param _owner The address to check the balance of.
  */
  function checkBalance(address _owner) external view returns (uint256) {
    return creatorBalances[_owner];
  }

  /**
  * @dev Determines if token exists by checking it's price
  * @param _tokenId uint256 ID of token
  */
  function tokenExists (uint256 _tokenId) public view returns (bool _exists) {
    return memeData[_tokenId].price > 0;
  }
  
/** ***************************** Only Admin ******************************* **/
  
  /**
   * @dev Withdraw dev's cut
   * @param _devAmount The amount to withdraw from developer cut.
   * @param _submissionAmount The amount to withdraw from submission pool.
  */
  function withdraw(uint256 _devAmount, uint256 _submissionAmount) public onlyAdmin() {
    if (_devAmount == 0) { 
      _devAmount = developerCut; 
    }
    if (_submissionAmount == 0) {
      _submissionAmount = submissionPool;
    }
    developerCut = developerCut.sub(_devAmount);
    submissionPool = submissionPool.sub(_submissionAmount);
    owner.transfer(_devAmount + _submissionAmount);
    endingBalance = address(this).balance;
  }

  /**
   * @dev Admin may refund a submission to a user.
   * @param _refundee The address to refund.
   * @param _amount The amount of wei to refund.
  */
  function refundSubmission(address _refundee, uint256 _amount) external onlyAdmin() {
    submissionPool = submissionPool.sub(_amount);
    _refundee.transfer(_amount);
    endingBalance = address(this).balance;
  }
  
  /**
   * @dev Refund a submission by a specific tokenId.
   * @param _tokenId The unique Id of the token to be refunded at current submission price.
  */
  function refundByToken(uint256 _tokenId) external onlyAdmin() {
    submissionPool = submissionPool.sub(submissionPrice);
    memeData[_tokenId].creator.transfer(submissionPrice);
    endingBalance = address(this).balance;
  }

  /**
   * @dev Change how much it costs to submit a meme.
   * @param _newPrice The new price of submission.
  */
  function changeSubmissionPrice(uint256 _newPrice) external onlyAdmin() {
    submissionPrice = _newPrice;
  }


/** ***************************** Modifiers ******************************** **/

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

/** ******************************* ERC721 ********************************* **/

  /**
  * @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;
      emit 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 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);
    emit 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;
    emit Approval(_owner, 0, _tokenId);
  }


    /**
  * @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 {
    addToken(_to, _tokenId);
    emit Transfer(0x0, _to, _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;
    memeData[_tokenId].owner = _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);
  }

  function name() public pure returns (string _name) {
    return "Economeme Meme";
  }

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

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenExists","outputs":[{"name":"_exists","type":"bool"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[{"name":"","type":"address"}],"name":"creatorBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getMemeData","outputs":[{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"},{"name":"_nextPrice","type":"uint256"},{"name":"_creator","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"buyToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"admins","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_devAmount","type":"uint256"},{"name":"_submissionAmount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_refundee","type":"address"},{"name":"_amount","type":"uint256"}],"name":"refundSubmission","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":"_owner","type":"address"}],"name":"checkBalance","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"refundByToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_newPrice","type":"uint256"}],"name":"changeSubmissionPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"createToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"submissionPrice","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endingBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"memeData","outputs":[{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"creator","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"},{"name":"_approved","type":"bool"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"developerCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"submissionPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_buyer","type":"address"},{"indexed":true,"name":"_seller","type":"address"},{"indexed":false,"name":"_purchasePrice","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_creator","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"},{"indexed":false,"name":"_timestamp","type":"uint256"}],"name":"Creation","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"}]

608060405266470de4df820000600d556706f05b59d3b20000600e55671bc16d674ec80000600f55674563918244f4000060105534801561003f57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550662386f26fc10000600581905550612801806101156000396000f30060806040526004361061017f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062923f9e1461018457806306fdde03146101c9578063095ea7b31461025957806318160ddd146102a65780632a6dd48f146102d15780632a7828021461033e5780632a7ca11f146103955780632d296bf114610443578063429b62e514610463578063441a3e70146104be57806349e588df146104f55780635a3f2672146105425780635f515226146105da5780636352211e146106315780636c9c97d81461069e57806370a08231146106cb578063756af45f146107225780638da5cb5b1461076557806395d89b41146107bc578063969cb4da1461084c5780639cbf9e36146108795780639d733f0c14610883578063a9059cbb146108ae578063b2e6ceeb146108fb578063b6fb7e4614610928578063bd9d6d7f14610953578063dc11a496146109fa578063e72fd4e114610a49578063ebe0237714610a74578063f2fde38b14610a9f575b600080fd5b34801561019057600080fd5b506101af60048036038101908080359060200190929190505050610ae2565b604051808215151515815260200191505060405180910390f35b3480156101d557600080fd5b506101de610b04565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021e578082015181840152602081019050610203565b50505050905090810190601f16801561024b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026557600080fd5b506102a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b41565b005b3480156102b257600080fd5b506102bb610cd4565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b506102fc60048036038101908080359060200190929190505050610cde565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034a57600080fd5b5061037f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d1b565b6040518082815260200191505060405180910390f35b3480156103a157600080fd5b506103c060048036038101908080359060200190929190505050610d33565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b61046160048036038101908080359060200190929190505050610e44565b005b34801561046f57600080fd5b506104a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a1565b604051808215151515815260200191505060405180910390f35b3480156104ca57600080fd5b506104f360048036038101908080359060200190929190803590602001909291905050506111c1565b005b34801561050157600080fd5b50610540600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f9565b005b34801561054e57600080fd5b50610583600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105c65780820151818401526020810190506105ab565b505050509050019250505060405180910390f35b3480156105e657600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146c565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b5061065c600480360381019080803590602001909291905050506114b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106aa57600080fd5b506106c9600480360381019080803590602001909291905050506114f7565b005b3480156106d757600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160c565b6040518082815260200191505060405180910390f35b34801561072e57600080fd5b50610763600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611658565b005b34801561077157600080fd5b5061077a61174a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c857600080fd5b506107d161176f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108115780820151818401526020810190506107f6565b50505050905090810190601f16801561083e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085857600080fd5b50610877600480360381019080803590602001909291905050506117ac565b005b61088161180e565b005b34801561088f57600080fd5b506108986119dd565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119e3565b005b34801561090757600080fd5b5061092660048036038101908080359060200190929190505050611a36565b005b34801561093457600080fd5b5061093d611a61565b6040518082815260200191505060405180910390f35b34801561095f57600080fd5b5061097e60048036038101908080359060200190929190505050611a67565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b348015610a0657600080fd5b50610a47600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611ad1565b005b348015610a5557600080fd5b50610a5e611b87565b6040518082815260200191505060405180910390f35b348015610a8057600080fd5b50610a89611b8d565b6040518082815260200191505060405180910390f35b348015610aab57600080fd5b50610ae0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b93565b005b6000806007600084815260200190815260200160002060000154119050919050565b60606040805190810160405280600e81526020017f45636f6e6f6d656d65204d656d65000000000000000000000000000000000000815250905090565b6000813373ffffffffffffffffffffffffffffffffffffffff16610b64826114b5565b73ffffffffffffffffffffffffffffffffffffffff16141515610b8657600080fd5b610b8f836114b5565b91508173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610bcc57600080fd5b6000610bd784610cde565b73ffffffffffffffffffffffffffffffffffffffff16141580610c11575060008473ffffffffffffffffffffffffffffffffffffffff1614155b15610cce57836009600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b50505050565b6000600254905090565b60006009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600c6020528060005260406000206000915090505481565b600080600080610d41612736565b6007600087815260200190815260200160002060606040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905080602001518160000151610e2f8360000151611ce8565b83604001519450945094509450509193509193565b600080600080600080600080600760008a81526020019081526020016000209750876000015496508760010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550339450610ea98734611df990919063ffffffff16565b9350600087111515610eba57600080fd5b863410151515610ec957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515610f0457600080fd5b610f2b6064610f1d60028a611e1290919063ffffffff16565b611e4590919063ffffffff16565b9250610f4283600354611e6090919063ffffffff16565b600381905550610f6f6064610f6160028a611e1290919063ffffffff16565b611e4590919063ffffffff16565b9150610fe782600c60008b60020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e6090919063ffffffff16565b600c60008a60020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061106383830188611df990919063ffffffff16565b905061107086868b611e7e565b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168a7fe3cf0e0098f447c6d9bc08ffbbf3f193d35c51b57d7de6bb9ccb79f4995ccf718a6040518082815260200191505060405180910390a46110df87611ce8565b88600001819055506110f18682612001565b6000841115611142578473ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015611140573d6000803e3d6000fd5b505b828260065401013073ffffffffffffffffffffffffffffffffffffffff1631111561117857806004600082825401925050819055505b3073ffffffffffffffffffffffffffffffffffffffff1631600681905550505050505050505050565b60016020528060005260406000206000915054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561121957600080fd5b60008214156112285760035491505b60008114156112375760045490505b61124c82600354611df990919063ffffffff16565b60038190555061126781600454611df990919063ffffffff16565b6004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284019081150290604051600060405180830381858888f193505050501580156112d6573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff16316006819055505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561135157600080fd5b61136681600454611df990919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113b2573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff16316006819055505050565b6060600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561146057602002820191906000526020600020905b81548152602001906001019080831161144c575b50505050509050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080915050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561154f57600080fd5b611566600554600454611df990919063ffffffff16565b6004819055506007600082815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005549081150290604051600060405180830381858888f193505050501580156115ea573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff163160068190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611727573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff16316006819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040805190810160405280600481526020017f45434d4500000000000000000000000000000000000000000000000000000000815250905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180457600080fd5b8060058190555050565b600060016002540190506000600760008381526020019081526020016000206000015414151561183d57600080fd5b6005543414151561184d57600080fd5b6005546004600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff1631600681905550606060405190810160405280662386f26fc1000081526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815250600760008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050611984338261201d565b3373ffffffffffffffffffffffffffffffffffffffff167f0c42492e9a23edb18d7a10ab834f9871ecd80970bffc97312a8a1c05b88e807d8242604051808381526020018281526020019250505060405180910390a250565b60055481565b803373ffffffffffffffffffffffffffffffffffffffff16611a04826114b5565b73ffffffffffffffffffffffffffffffffffffffff16141515611a2657600080fd5b611a3133848461207b565b505050565b611a4033826121c4565b1515611a4b57600080fd5b611a5e611a57826114b5565b338361207b565b50565b60065481565b60076020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b2c57600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bee57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611c2a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600d54821015611d2257611d1b605f611d0d60c885611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b600e54821015611d5a57611d536060611d45608785611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b600f54821015611d9257611d8b6061611d7d607d85611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b601054821015611dca57611dc36061611db5607585611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b611df16062611de3607385611e1290919063ffffffff16565b611e4590919063ffffffff16565b90505b919050565b6000828211151515611e0757fe5b818303905092915050565b60008082840290506000841480611e335750828482811515611e3057fe5b04145b1515611e3b57fe5b8091505092915050565b6000808284811515611e5357fe5b0490508091505092915050565b6000808284019050838110151515611e7457fe5b8091505092915050565b611e8781610ae2565b1515611e9257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166007600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f0257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f3e57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f7957600080fd5b611f838382612205565b611f8d83826122ee565b611f978282612573565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6040516020816000838587611388f16020820160405250505050565b6120278282612573565b8173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156120b757600080fd5b6120c0816114b5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156120fa57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1661211a826114b5565b73ffffffffffffffffffffffffffffffffffffffff1614151561213c57600080fd5b6121468382612205565b61215083826122ee565b61215a8282612573565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008273ffffffffffffffffffffffffffffffffffffffff166121e683610cde565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b8173ffffffffffffffffffffffffffffffffffffffff16612225826114b5565b73ffffffffffffffffffffffffffffffffffffffff1614151561224757600080fd5b60006009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60008060008473ffffffffffffffffffffffffffffffffffffffff16612313856114b5565b73ffffffffffffffffffffffffffffffffffffffff1614151561233557600080fd5b600b600085815260200190815260200160002054925061236760016123598761160c565b611df990919063ffffffff16565b9150600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156123b557fe5b9060005260206000200154905060006008600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561246257fe5b90600052602060002001819055506000600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156124be57fe5b9060005260206000200181905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361251e9190612784565b506000600b60008681526020019081526020016000208190555082600b6000838152602001908152602001600020819055506125666001600254611df990919063ffffffff16565b6002819055505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff166008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125e257600080fd5b826008600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826007600084815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506126928361160c565b9050600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505090600182039060005260206000200160009091929091909150555080600b60008481526020019081526020016000208190555061272b6001600254611e6090919063ffffffff16565b600281905550505050565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b8154818355818111156127ab578183600052602060002091820191016127aa91906127b0565b5b505050565b6127d291905b808211156127ce5760008160009055506001016127b6565b5090565b905600a165627a7a72305820af8bbcd6f2b07657b450e56bc74418518434de7f6f0423df3eba7357240108a30029

Deployed Bytecode

0x60806040526004361061017f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062923f9e1461018457806306fdde03146101c9578063095ea7b31461025957806318160ddd146102a65780632a6dd48f146102d15780632a7828021461033e5780632a7ca11f146103955780632d296bf114610443578063429b62e514610463578063441a3e70146104be57806349e588df146104f55780635a3f2672146105425780635f515226146105da5780636352211e146106315780636c9c97d81461069e57806370a08231146106cb578063756af45f146107225780638da5cb5b1461076557806395d89b41146107bc578063969cb4da1461084c5780639cbf9e36146108795780639d733f0c14610883578063a9059cbb146108ae578063b2e6ceeb146108fb578063b6fb7e4614610928578063bd9d6d7f14610953578063dc11a496146109fa578063e72fd4e114610a49578063ebe0237714610a74578063f2fde38b14610a9f575b600080fd5b34801561019057600080fd5b506101af60048036038101908080359060200190929190505050610ae2565b604051808215151515815260200191505060405180910390f35b3480156101d557600080fd5b506101de610b04565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021e578082015181840152602081019050610203565b50505050905090810190601f16801561024b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026557600080fd5b506102a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b41565b005b3480156102b257600080fd5b506102bb610cd4565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b506102fc60048036038101908080359060200190929190505050610cde565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034a57600080fd5b5061037f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d1b565b6040518082815260200191505060405180910390f35b3480156103a157600080fd5b506103c060048036038101908080359060200190929190505050610d33565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b61046160048036038101908080359060200190929190505050610e44565b005b34801561046f57600080fd5b506104a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a1565b604051808215151515815260200191505060405180910390f35b3480156104ca57600080fd5b506104f360048036038101908080359060200190929190803590602001909291905050506111c1565b005b34801561050157600080fd5b50610540600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f9565b005b34801561054e57600080fd5b50610583600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105c65780820151818401526020810190506105ab565b505050509050019250505060405180910390f35b3480156105e657600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146c565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b5061065c600480360381019080803590602001909291905050506114b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106aa57600080fd5b506106c9600480360381019080803590602001909291905050506114f7565b005b3480156106d757600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160c565b6040518082815260200191505060405180910390f35b34801561072e57600080fd5b50610763600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611658565b005b34801561077157600080fd5b5061077a61174a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c857600080fd5b506107d161176f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108115780820151818401526020810190506107f6565b50505050905090810190601f16801561083e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085857600080fd5b50610877600480360381019080803590602001909291905050506117ac565b005b61088161180e565b005b34801561088f57600080fd5b506108986119dd565b6040518082815260200191505060405180910390f35b3480156108ba57600080fd5b506108f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119e3565b005b34801561090757600080fd5b5061092660048036038101908080359060200190929190505050611a36565b005b34801561093457600080fd5b5061093d611a61565b6040518082815260200191505060405180910390f35b34801561095f57600080fd5b5061097e60048036038101908080359060200190929190505050611a67565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b348015610a0657600080fd5b50610a47600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611ad1565b005b348015610a5557600080fd5b50610a5e611b87565b6040518082815260200191505060405180910390f35b348015610a8057600080fd5b50610a89611b8d565b6040518082815260200191505060405180910390f35b348015610aab57600080fd5b50610ae0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b93565b005b6000806007600084815260200190815260200160002060000154119050919050565b60606040805190810160405280600e81526020017f45636f6e6f6d656d65204d656d65000000000000000000000000000000000000815250905090565b6000813373ffffffffffffffffffffffffffffffffffffffff16610b64826114b5565b73ffffffffffffffffffffffffffffffffffffffff16141515610b8657600080fd5b610b8f836114b5565b91508173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610bcc57600080fd5b6000610bd784610cde565b73ffffffffffffffffffffffffffffffffffffffff16141580610c11575060008473ffffffffffffffffffffffffffffffffffffffff1614155b15610cce57836009600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b50505050565b6000600254905090565b60006009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600c6020528060005260406000206000915090505481565b600080600080610d41612736565b6007600087815260200190815260200160002060606040519081016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905080602001518160000151610e2f8360000151611ce8565b83604001519450945094509450509193509193565b600080600080600080600080600760008a81526020019081526020016000209750876000015496508760010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550339450610ea98734611df990919063ffffffff16565b9350600087111515610eba57600080fd5b863410151515610ec957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515610f0457600080fd5b610f2b6064610f1d60028a611e1290919063ffffffff16565b611e4590919063ffffffff16565b9250610f4283600354611e6090919063ffffffff16565b600381905550610f6f6064610f6160028a611e1290919063ffffffff16565b611e4590919063ffffffff16565b9150610fe782600c60008b60020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e6090919063ffffffff16565b600c60008a60020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061106383830188611df990919063ffffffff16565b905061107086868b611e7e565b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168a7fe3cf0e0098f447c6d9bc08ffbbf3f193d35c51b57d7de6bb9ccb79f4995ccf718a6040518082815260200191505060405180910390a46110df87611ce8565b88600001819055506110f18682612001565b6000841115611142578473ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015611140573d6000803e3d6000fd5b505b828260065401013073ffffffffffffffffffffffffffffffffffffffff1631111561117857806004600082825401925050819055505b3073ffffffffffffffffffffffffffffffffffffffff1631600681905550505050505050505050565b60016020528060005260406000206000915054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561121957600080fd5b60008214156112285760035491505b60008114156112375760045490505b61124c82600354611df990919063ffffffff16565b60038190555061126781600454611df990919063ffffffff16565b6004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284019081150290604051600060405180830381858888f193505050501580156112d6573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff16316006819055505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561135157600080fd5b61136681600454611df990919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113b2573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff16316006819055505050565b6060600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561146057602002820191906000526020600020905b81548152602001906001019080831161144c575b50505050509050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080915050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561154f57600080fd5b611566600554600454611df990919063ffffffff16565b6004819055506007600082815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005549081150290604051600060405180830381858888f193505050501580156115ea573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff163160068190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611727573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff16316006819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040805190810160405280600481526020017f45434d4500000000000000000000000000000000000000000000000000000000815250905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180457600080fd5b8060058190555050565b600060016002540190506000600760008381526020019081526020016000206000015414151561183d57600080fd5b6005543414151561184d57600080fd5b6005546004600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff1631600681905550606060405190810160405280662386f26fc1000081526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815250600760008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050611984338261201d565b3373ffffffffffffffffffffffffffffffffffffffff167f0c42492e9a23edb18d7a10ab834f9871ecd80970bffc97312a8a1c05b88e807d8242604051808381526020018281526020019250505060405180910390a250565b60055481565b803373ffffffffffffffffffffffffffffffffffffffff16611a04826114b5565b73ffffffffffffffffffffffffffffffffffffffff16141515611a2657600080fd5b611a3133848461207b565b505050565b611a4033826121c4565b1515611a4b57600080fd5b611a5e611a57826114b5565b338361207b565b50565b60065481565b60076020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b2c57600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bee57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611c2a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600d54821015611d2257611d1b605f611d0d60c885611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b600e54821015611d5a57611d536060611d45608785611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b600f54821015611d9257611d8b6061611d7d607d85611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b601054821015611dca57611dc36061611db5607585611e1290919063ffffffff16565b611e4590919063ffffffff16565b9050611df4565b611df16062611de3607385611e1290919063ffffffff16565b611e4590919063ffffffff16565b90505b919050565b6000828211151515611e0757fe5b818303905092915050565b60008082840290506000841480611e335750828482811515611e3057fe5b04145b1515611e3b57fe5b8091505092915050565b6000808284811515611e5357fe5b0490508091505092915050565b6000808284019050838110151515611e7457fe5b8091505092915050565b611e8781610ae2565b1515611e9257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166007600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f0257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f3e57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f7957600080fd5b611f838382612205565b611f8d83826122ee565b611f978282612573565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6040516020816000838587611388f16020820160405250505050565b6120278282612573565b8173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156120b757600080fd5b6120c0816114b5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156120fa57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1661211a826114b5565b73ffffffffffffffffffffffffffffffffffffffff1614151561213c57600080fd5b6121468382612205565b61215083826122ee565b61215a8282612573565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008273ffffffffffffffffffffffffffffffffffffffff166121e683610cde565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b8173ffffffffffffffffffffffffffffffffffffffff16612225826114b5565b73ffffffffffffffffffffffffffffffffffffffff1614151561224757600080fd5b60006009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60008060008473ffffffffffffffffffffffffffffffffffffffff16612313856114b5565b73ffffffffffffffffffffffffffffffffffffffff1614151561233557600080fd5b600b600085815260200190815260200160002054925061236760016123598761160c565b611df990919063ffffffff16565b9150600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156123b557fe5b9060005260206000200154905060006008600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561246257fe5b90600052602060002001819055506000600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156124be57fe5b9060005260206000200181905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361251e9190612784565b506000600b60008681526020019081526020016000208190555082600b6000838152602001908152602001600020819055506125666001600254611df990919063ffffffff16565b6002819055505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff166008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125e257600080fd5b826008600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826007600084815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506126928361160c565b9050600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505090600182039060005260206000200160009091929091909150555080600b60008481526020019081526020016000208190555061272b6001600254611e6090919063ffffffff16565b600281905550505050565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b8154818355818111156127ab578183600052602060002091820191016127aa91906127b0565b5b505050565b6127d291905b808211156127ce5760008160009055506001016127b6565b5090565b905600a165627a7a72305820af8bbcd6f2b07657b450e56bc74418518434de7f6f0423df3eba7357240108a30029

Swarm Source

bzzr://af8bbcd6f2b07657b450e56bc74418518434de7f6f0423df3eba7357240108a3

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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