Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 5 txns
Token Tracker: ViralLovin Creator Token (CREATOR)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x899253e80fc5f31b3c5d5162d739a6dbb7bbffa1at txn 0x78655ad166ac985a09e79650ccd00ef9c1bd8491e1d398c926b7ba656f999786
 Latest 5 txns

TxHash Age From To Value [TxFee]
0x41f81490850e62f7349f310969047c1c11f3388b1ad1b6626db0579436bc3326290 days 1 hr ago0x64cdc23fadd389170b30f3f4b75b47ea12f65221  IN   0xfbffb8a3e14166516ac577fde354eaafa8aada3c0.23 Ether0.000221136
0xff2631237ae2af88e4ab4de24d3602a5e2425a31698bc359a96e240835cea74f290 days 4 hrs ago0x899253e80fc5f31b3c5d5162d739a6dbb7bbffa1  IN   0xfbffb8a3e14166516ac577fde354eaafa8aada3c0 Ether0.00255852
0x555466e31c2c48811fc1f5cc07ae55b82737e1f054dad7abce0b18e768a4f322290 days 4 hrs ago0x899253e80fc5f31b3c5d5162d739a6dbb7bbffa1  IN   0xfbffb8a3e14166516ac577fde354eaafa8aada3c0 Ether0.00127926
0x91d1f210301117024baacd3f493922e88a1b413da87d82c3b7feb511cb4c55a5290 days 4 hrs ago0x899253e80fc5f31b3c5d5162d739a6dbb7bbffa1  IN   0xfbffb8a3e14166516ac577fde354eaafa8aada3c0 Ether0.001382896
0x78655ad166ac985a09e79650ccd00ef9c1bd8491e1d398c926b7ba656f999786290 days 5 hrs ago0x899253e80fc5f31b3c5d5162d739a6dbb7bbffa1  IN    Contract Creation0 Ether0.011006136
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x41f81490850e62f7349f310969047c1c11f3388b1ad1b6626db0579436bc33265177886290 days 1 hr ago0xfbffb8a3e14166516ac577fde354eaafa8aada3c0x899253e80fc5f31b3c5d5162d739a6dbb7bbffa10.23 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ViralLovinCreatorToken
Compiler Text: v0.4.20+commit.3155dd80
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.20; // solhint-disable-line

/// @title A standard interface for non-fungible tokens.
/// @author Dieter Shirley <[email protected]>
contract ERC721 {
  // Required methods
  function approve(address _to, uint256 _tokenId) public;
  function balanceOf(address _owner) public view returns (uint256 balance);
  function implementsERC721() public pure returns (bool);
  function ownerOf(uint256 _tokenId) public view returns (address addr);
  function takeOwnership(uint256 _tokenId) public;
  function totalSupply() public view returns (uint256 total);
  function transferFrom(address _from, address _to, uint256 _tokenId) public;
  function transfer(address _to, uint256 _tokenId) public;

  event Transfer(address indexed from, address indexed to, uint256 tokenId);
  event Approval(address indexed owner, address indexed approved, uint256 tokenId);
}

/// @title ViralLo.vin, Creator token smart contract
/// @author Sam Morris <[email protected]>
contract ViralLovinCreatorToken is ERC721 {

  /*** EVENTS ***/

  /// @dev The Birth event is fired whenever a new Creator is created
  event Birth(
      uint256 tokenId, 
      string name, 
      address owner, 
      uint256 collectiblesOrdered
    );

  /// @dev The TokenSold event is fired whenever a token is sold.
  event TokenSold(
      uint256 tokenId, 
      uint256 oldPrice, 
      uint256 newPrice, 
      address prevOwner, 
      address winner, 
      string name, 
      uint256 collectiblesOrdered
    );

  /// @dev Transfer event as defined in current draft of ERC721. 
  ///  ownership is assigned, including births.
  event Transfer(address from, address to, uint256 tokenId);

  /*** CONSTANTS ***/

  /// @notice Name and symbol of the non fungible token, as defined in ERC721.
  string public constant NAME = "ViralLovin Creator Token"; // solhint-disable-line
  string public constant SYMBOL = "CREATOR"; // solhint-disable-line

  uint256 private startingPrice = 0.001 ether;

  /*** STORAGE ***/

  /// @dev A mapping from Creator IDs to the address that owns them. 
  /// All Creators have some valid owner address.
  mapping (uint256 => address) public creatorIndexToOwner;

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

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

  // @dev A mapping from creator IDs to the price of the token.
  mapping (uint256 => uint256) private creatorIndexToPrice;

  // The addresses that can execute actions within each roles.
  address public ceoAddress;
  address public cooAddress;

  uint256 public creatorsCreatedCount;

  /*** DATATYPES ***/
  struct Creator {
    string name;
    uint256 collectiblesOrdered;
  }

  Creator[] private creators;

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

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

  /// Access modifier for contract owner only functionality
  modifier onlyCLevel() {
    require(
      msg.sender == ceoAddress ||
      msg.sender == cooAddress
    );
    _;
  }

  /*** CONSTRUCTOR ***/
  
  function ViralLovinCreatorToken() public {
    ceoAddress = msg.sender;
    cooAddress = msg.sender;
  }

  /*** PUBLIC FUNCTIONS ***/
  
  /// @notice Grant another address the right to transfer token via takeOwnership() and transferFrom().
  /// @param _to The address to be granted transfer approval. Pass address(0) to clear all approvals.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function approve(address _to, uint256 _tokenId) public {
    // Caller must own token.
    require(_owns(msg.sender, _tokenId));
    creatorIndexToApproved[_tokenId] = _to;
    Approval(msg.sender, _to, _tokenId);
  }

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

  /// @dev Creates a new Creator with the given name, price, and the total number of collectibles ordered then assigns to an address.
  function createCreator(
      address _owner, 
      string _name, 
      uint256 _price, 
      uint256 _collectiblesOrdered
    ) public onlyCOO {
    address creatorOwner = _owner;
    if (creatorOwner == address(0)) {
      creatorOwner = cooAddress;
    }

    if (_price <= 0) {
      _price = startingPrice;
    }

    creatorsCreatedCount++;
    _createCreator(_name, creatorOwner, _price, _collectiblesOrdered);
    }

  /// @notice Returns all the information about Creator token.
  /// @param _tokenId The tokenId of the Creator token.
  function getCreator(
      uint256 _tokenId
    ) public view returns (
        string creatorName, 
        uint256 sellingPrice, 
        address owner, 
        uint256 collectiblesOrdered
    ) {
    Creator storage creator = creators[_tokenId];
    creatorName = creator.name;
    collectiblesOrdered = creator.collectiblesOrdered;
    sellingPrice = creatorIndexToPrice[_tokenId];
    owner = creatorIndexToOwner[_tokenId];
  }

  function implementsERC721() public pure returns (bool) {
    return true;
  }

  /// @dev For ERC-721 compliance.
  function name() public pure returns (string) {
    return NAME;
  }

  /// For querying owner of a token
  /// @param _tokenId The tokenID
  /// @dev Required for ERC-721 compliance.
  function ownerOf(uint256 _tokenId) public view returns (address owner)
  {
    owner = creatorIndexToOwner[_tokenId];
    require(owner != address(0));
  }

  /// For contract payout
  function payout(address _to) public onlyCLevel {
    require(_addressNotNull(_to));
    _payout(_to);
  }

  /// Allows someone to obtain the token
  function purchase(uint256 _tokenId) public payable {
    address oldOwner = creatorIndexToOwner[_tokenId];
    address newOwner = msg.sender;
    uint256 sellingPrice = creatorIndexToPrice[_tokenId];

    // Safety check to prevent against an unexpected 0x0 default.
    require(_addressNotNull(newOwner));

    // Making sure sent amount is greater than or equal to the sellingPrice
    require(msg.value >= sellingPrice);

    // Transfer contract to new owner
    _transfer(oldOwner, newOwner, _tokenId);

    // Transfer payment to VL
    ceoAddress.transfer(sellingPrice);

    // Emits TokenSold event
    TokenSold(
        _tokenId, 
        sellingPrice, 
        creatorIndexToPrice[_tokenId], 
        oldOwner, 
        newOwner, 
        creators[_tokenId].name, 
        creators[_tokenId].collectiblesOrdered
    );
  }

  function priceOf(uint256 _tokenId) public view returns (uint256 price) {
    return creatorIndexToPrice[_tokenId];
  }

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

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

  /// @dev For ERC-721 compliance.
  function symbol() public pure returns (string) {
    return SYMBOL;
  }

  /// @notice Allow pre-approved user to take ownership of a token
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function takeOwnership(uint256 _tokenId) public {
    address newOwner = msg.sender;
    address oldOwner = creatorIndexToOwner[_tokenId];

    // Safety check to prevent against an unexpected 0x0 default.
    require(_addressNotNull(newOwner));

    // Making sure transfer is approved
    require(_approved(newOwner, _tokenId));

    _transfer(oldOwner, newOwner, _tokenId);
  }

  /// @param _owner Creator tokens belonging to the owner.
  /// @dev Expensive; not to be called by smart contract. Walks the collectibes array looking for Creator tokens belonging to owner.
  function tokensOfOwner(
      address _owner
      ) public view returns(uint256[] ownerTokens) {
    uint256 tokenCount = balanceOf(_owner);
    if (tokenCount == 0) {
        // Return an empty array
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](tokenCount);
      uint256 totalCreators = totalSupply();
      uint256 resultIndex = 0;
      uint256 creatorId;
      for (creatorId = 0; creatorId <= totalCreators; creatorId++) {
        if (creatorIndexToOwner[creatorId] == _owner) {
          result[resultIndex] = creatorId;
          resultIndex++;
        }
      }
      return result;
    }
  }

  /// For querying totalSupply of token
  /// @dev Required for ERC-721 compliance.
  function totalSupply() public view returns (uint256 total) {
    return creators.length;
  }

  /// Owner initates the transfer of the token to another account
  /// @param _to The address for the token to be transferred to.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function transfer(address _to, uint256 _tokenId) public {
    require(_owns(msg.sender, _tokenId));
    require(_addressNotNull(_to));
    _transfer(msg.sender, _to, _tokenId);
  }

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

    _transfer(_from, _to, _tokenId);
  }

  /*** PRIVATE FUNCTIONS ***/
  
  /// Safety check on _to address to prevent against an unexpected 0x0 default.
  function _addressNotNull(address _to) private pure returns (bool) {
    return _to != address(0);
  }

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

  /// For creating a Creator
  function _createCreator(
      string _name, 
      address _owner, 
      uint256 _price, 
      uint256 _collectiblesOrdered
      ) private {
    Creator memory _creator = Creator({
      name: _name,
      collectiblesOrdered: _collectiblesOrdered
    });
    uint256 newCreatorId = creators.push(_creator) - 1;

    require(newCreatorId == uint256(uint32(newCreatorId)));

    Birth(newCreatorId, _name, _owner, _collectiblesOrdered);

    creatorIndexToPrice[newCreatorId] = _price;

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

  /// Check for token ownership
  function _owns(
      address claimant, 
      uint256 _tokenId
      ) private view returns (bool) {
    return claimant == creatorIndexToOwner[_tokenId];
  }

  /// For paying out the full balance of contract
  function _payout(address _to) private {
    if (_to == address(0)) {
      ceoAddress.transfer(this.balance);
    } else {
      _to.transfer(this.balance);
    }
  }

  /// @dev Assigns ownership of Creator token to an address.
  function _transfer(address _from, address _to, uint256 _tokenId) private {
    // increment owner token count
    ownershipTokenCount[_to]++;
    // transfer ownership
    creatorIndexToOwner[_tokenId] = _to;

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

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

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"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":"ceoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"creatorsCreatedCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"ownerTokens","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cooAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"creatorIndexToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getCreator","outputs":[{"name":"creatorName","type":"string"},{"name":"sellingPrice","type":"uint256"},{"name":"owner","type":"address"},{"name":"collectiblesOrdered","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_collectiblesOrdered","type":"uint256"}],"name":"createCreator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"creatorIndexToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"collectiblesOrdered","type":"uint256"}],"name":"Birth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"winner","type":"address"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"collectiblesOrdered","type":"uint256"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405266038d7ea4c68000600055341561001a57600080fd5b60058054600160a060020a033316600160a060020a03199182168117909255600680549091169091179055611283806100546000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d75780630a0f8168146101fb5780630b7e9c441461022a5780631051db341461024957806318160ddd1461027057806323b872dd1461029557806327d7874c146102bd5780632ba73c15146102dc5780636352211e146102fb5780636a14d1311461031157806370a08231146103245780638462151c1461034357806395d89b41146103b5578063a3f4df7e146103c8578063a9059cbb146103db578063b047fb50146103fd578063b2e6ceeb14610410578063b9186d7d14610426578063c2e435061461043c578063d48e638a14610452578063e5740468146104ff578063efef39a114610565578063f76f8d7814610570578063fef7703914610583575b600080fd5b341561015857600080fd5b610160610599565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019c578082015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e257600080fd5b6101f9600160a060020a03600435166024356105db565b005b341561020657600080fd5b61020e610667565b604051600160a060020a03909116815260200160405180910390f35b341561023557600080fd5b6101f9600160a060020a0360043516610676565b341561025457600080fd5b61025c6106cc565b604051901515815260200160405180910390f35b341561027b57600080fd5b6102836106d1565b60405190815260200160405180910390f35b34156102a057600080fd5b6101f9600160a060020a03600435811690602435166044356106d7565b34156102c857600080fd5b6101f9600160a060020a0360043516610725565b34156102e757600080fd5b6101f9600160a060020a0360043516610784565b341561030657600080fd5b61020e6004356107e3565b341561031c57600080fd5b61028361080c565b341561032f57600080fd5b610283600160a060020a0360043516610812565b341561034e57600080fd5b610362600160a060020a036004351661082d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103a1578082015183820152602001610389565b505050509050019250505060405180910390f35b34156103c057600080fd5b61016061090e565b34156103d357600080fd5b61016061094f565b34156103e657600080fd5b6101f9600160a060020a0360043516602435610986565b341561040857600080fd5b61020e6109be565b341561041b57600080fd5b6101f96004356109cd565b341561043157600080fd5b610283600435610a1b565b341561044757600080fd5b61020e600435610a2d565b341561045d57600080fd5b610468600435610a48565b60405160208101849052600160a060020a03831660408201526060810182905260808082528190810186818151815260200191508051906020019080838360005b838110156104c15780820151838201526020016104a9565b50505050905090810190601f1680156104ee5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561050a57600080fd5b6101f960048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610b4c92505050565b6101f9600435610bb4565b341561057b57600080fd5b610160610d7e565b341561058e57600080fd5b61020e600435610db5565b6105a16110f3565b60408051908101604052601881527f566972616c4c6f76696e2043726561746f7220546f6b656e0000000000000000602082015290505b90565b6105e53382610dd0565b15156105f057600080fd5b60008181526003602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038581169182179092559133909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b600554600160a060020a031681565b60055433600160a060020a03908116911614806106a1575060065433600160a060020a039081169116145b15156106ac57600080fd5b6106b581610df0565b15156106c057600080fd5b6106c981610dfe565b50565b600190565b60085490565b6106e18382610dd0565b15156106ec57600080fd5b6106f68282610e89565b151561070157600080fd5b61070a82610df0565b151561071557600080fd5b610720838383610ea9565b505050565b60055433600160a060020a0390811691161461074057600080fd5b600160a060020a038116151561075557600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055433600160a060020a0390811691161461079f57600080fd5b600160a060020a03811615156107b457600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260016020526040902054600160a060020a031680151561080757600080fd5b919050565b60075481565b600160a060020a031660009081526002602052604090205490565b6108356110f3565b600061083f6110f3565b600080600061084d87610812565b945084151561087d5760006040518059106108655750595b90808252806020026020018201604052509550610904565b8460405180591061088b5750595b908082528060200260200182016040525093506108a66106d1565b925060009150600090505b82811161090057600081815260016020526040902054600160a060020a03888116911614156108f857808483815181106108e757fe5b602090810290910101526001909101905b6001016108b1565b8395505b5050505050919050565b6109166110f3565b60408051908101604052600781527f43524541544f52000000000000000000000000000000000000000000000000006020820152905090565b60408051908101604052601881527f566972616c4c6f76696e2043726561746f7220546f6b656e0000000000000000602082015281565b6109903382610dd0565b151561099b57600080fd5b6109a482610df0565b15156109af57600080fd5b6109ba338383610ea9565b5050565b600654600160a060020a031681565b6000818152600160205260409020543390600160a060020a03166109f082610df0565b15156109fb57600080fd5b610a058284610e89565b1515610a1057600080fd5b610720818385610ea9565b60009081526004602052604090205490565b600160205260009081526040902054600160a060020a031681565b610a506110f3565b600080600080600886815481101515610a6557fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b0d5780601f10610ae257610100808354040283529160200191610b0d565b820191906000526020600020905b815481529060010190602001808311610af057829003601f168201915b5050506001938401546000998a52600460209081526040808c2054969091529099205492999398600160a060020a039093169750919550919350505050565b60065460009033600160a060020a03908116911614610b6a57600080fd5b5083600160a060020a0381161515610b8a5750600654600160a060020a03165b60008311610b985760005492505b600780546001019055610bad84828585610f9a565b5050505050565b600081815260016020908152604080832054600490925290912054600160a060020a03909116903390610be682610df0565b1515610bf157600080fd5b3481901015610bff57600080fd5b610c0a838386610ea9565b600554600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610c3d57600080fd5b7fcc4d424edf68e653a0d37a09ddccfdb04ad2d170037e0ccbb3a2b73de393718384826004600088815260200190815260200160002054868660088a815481101515610c8557fe5b906000526020600020906002020160000160088b815481101515610ca557fe5b9060005260206000209060020201600101546040518781526020810187905260408101869052600160a060020a0385811660608301528416608082015260c0810182905260e060a08201818152845460026001821615610100908102600019019092160492840183905290919083019085908015610d645780601f10610d3957610100808354040283529160200191610d64565b820191906000526020600020905b815481529060010190602001808311610d4757829003601f168201915b50509850505050505050505060405180910390a150505050565b60408051908101604052600781527f43524541544f5200000000000000000000000000000000000000000000000000602082015281565b600360205260009081526040902054600160a060020a031681565b600090815260016020526040902054600160a060020a0390811691161490565b600160a060020a0316151590565b600160a060020a0381161515610e4c57600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610e4757600080fd5b6106c9565b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f1935050505015156106c957600080fd5b600090815260036020526040902054600160a060020a0391821691161490565b600160a060020a038083166000818152600260209081526040808320805460019081019091558684529091529020805473ffffffffffffffffffffffffffffffffffffffff19169091179055831615610f4557600160a060020a0383166000908152600260209081526040808320805460001901905583835260039091529020805473ffffffffffffffffffffffffffffffffffffffff191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610fa2611105565b6000604080519081016040528681526020810184905260088054919350600191808301610fcf8382611125565b60009283526020909220859160020201815181908051610ff3929160200190611151565b5060208201516001909101555003905063ffffffff8116811461101557600080fd5b7f64c32b971c9d89200c884e00078a056d9a92af396e8b1b510b8e36b4562e7e9e81878786604051848152600160a060020a03831660408201526060810182905260806020820181815290820185818151815260200191508051906020019080838360005b8381101561109257808201518382015260200161107a565b50505050905090810190601f1680156110bf5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a160008181526004602052604081208590556110eb908683610ea9565b505050505050565b60206040519081016040526000815290565b60408051908101604052806111186110f3565b8152602001600081525090565b8154818355818115116107205760020281600202836000526020600020918201910161072091906111cf565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061119257805160ff19168380011785556111bf565b828001600101855582156111bf579182015b828111156111bf5782518255916020019190600101906111a4565b506111cb9291506111f9565b5090565b6105d891905b808211156111cb5760006111e98282611213565b50600060018201556002016111d5565b6105d891905b808211156111cb57600081556001016111ff565b50805460018160011615610100020316600290046000825580601f1061123957506106c9565b601f0160209004906000526020600020908101906106c991906111f95600a165627a7a723058202b2dff92357ae5c914a00bd81845786f195cbb8758dbed6880070e19e4527f550029

   Swarm Source:
bzzr://2b2dff92357ae5c914a00bd81845786f195cbb8758dbed6880070e19e4527f55

 

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