Contract 0x52FC8f93D5b9f17eadc37384E507aE30908fD32f

Contract Overview

Balance:
0.1 Ether
Txn Hash
Method
Block
From
To
Value
0xd6178e611f0b848171edea8e8240da6a24d03f2c28a8923d73539d826e2d85c3Raw Register94195192021-10-06 20:06:13272 days 22 hrs ago0x19143f2bcdf88378f1c143271c70412a66ea0e63 IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.00009184 1.00000001
0xf5cfc7c66891d1fbf3b22d605fd2eca9420ee8052abe5bcbc3f88c2878d8b7c8Raw Set Attribut...84983862021-04-29 15:32:00433 days 3 hrs ago0x3b7aa74fffe3613577306974a989f1ada15dbb3a IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.000034521
0x58efd1328d91a1094c594e3c8601e5a6ceb94469007aad3bd8cb14a0468a3be2Raw Set Attribut...84983862021-04-29 15:32:00433 days 3 hrs ago0x3b7aa74fffe3613577306974a989f1ada15dbb3a IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.000094221
0x1019b4f2b4de95dad9c25b2a5e07813007f002e4ebc529abe21adede6423d6e9Raw Register84983812021-04-29 15:30:45433 days 3 hrs ago0x3b7aa74fffe3613577306974a989f1ada15dbb3a IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0.01 Ether0.000092241
0xa9ae284183cd2a9d194f4639e08ba8f8793d95076e848064e185cce74ec6b570Raw Use Name80476102021-02-10 7:38:59511 days 10 hrs ago0x101010101003190293fc37cdc258533cce5ad15c IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.000029441
0x63c224f3add4ac5979d2b8180d910a3115fddb4227f50cd8629495186db03fa3Raw Register80476082021-02-10 7:38:29511 days 10 hrs ago0x101010101003190293fc37cdc258533cce5ad15c IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0.06 Ether0.000064211
0xc4ba9ac3373ad9e3f7a0fef2743567ecd715e6b31f9e75781c893692d2719f24Raw Register80476062021-02-10 7:37:59511 days 10 hrs ago0x101010101003190293fc37cdc258533cce5ad15c IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0.01 Ether0.000085941
0x619ce1c2da3fb89fcd3fcaa60a1082a0fcfcc01523da3990648c814bcf2b899cRaw Register62799262020-04-08 13:55:08819 days 4 hrs ago0x46a2d01f66a74ba981a7f6f666ad882c1a62da96 IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0.01 Ether0.000085531
0x6bdb59144e87e0545c296fa81d5be180a07ae24ab84340836d642bf3ff820dbeRaw Set Attribut...36897852019-01-14 14:21:441269 days 4 hrs ago0x3f807d14e24ee2d07315d758f517a73d7dfa5a6f IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.000039681
0x1ce96b6a2d9f6a69f5656359a2b987cfb3b5a47d6307eae9951bfd2fa055e625Raw Set Attribut...36897782019-01-14 14:19:591269 days 4 hrs ago0x3f807d14e24ee2d07315d758f517a73d7dfa5a6f IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.000089481
0x6ad6042f3ec468cd22771377917dfffb3da5c9581c312daf3d7ba311adc53299Raw Set Price36897742019-01-14 14:18:591269 days 4 hrs ago0x3f807d14e24ee2d07315d758f517a73d7dfa5a6f IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0 Ether0.000045231
0x7650327ba2b6ac5e7a0084f29873b8c7e4a53ac57ad155a42dd4eb0204494136Raw Register36897682019-01-14 14:17:291269 days 4 hrs ago0x3f807d14e24ee2d07315d758f517a73d7dfa5a6f IN  0x52fc8f93d5b9f17eadc37384e507ae30908fd32f0.01 Ether0.00008251
0xe719097fd5a1f45c2ce23921b902b3934867ecff8102620e82aa52d14651e8440x6060604024720622018-06-16 12:10:091481 days 6 hrs ago0x72dcb287e6906cd8380dd58d0f64fe4d551276a4 IN  Create: Ethername0 Ether0.0200697910
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ethername

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-06-16
*/

pragma solidity ^0.4.21;


/** @title Manager
  * @author M.H. Kang
  */
contract Managed {

  event Commission(uint256 basisPoint);

  address public manager;
  uint256 public commission;

  function Managed() public {
    manager = msg.sender;
  }

  function() public payable {}

  /* FUNCTION */

  function setCommission(uint256 _commission) external {
    require(_commission < 10000);
    commission = _commission;

    emit Commission(commission);
  }

  function withdrawBalance() external {
    manager.transfer(address(this).balance);
  }

  function transferPower(address _newManager) external onlyManager {
    manager = _newManager;
  }

  function callFor(address _to, uint256 _value, uint256 _gas, bytes _code)
    external
    payable
    onlyManager
    returns (bool)
  {
    return _to.call.value(_value).gas(_gas)(_code);
  }

  /* MODIFIER */

  modifier onlyManager
  {
    require(msg.sender == manager);
    _;
  }

}


/** @title EthernameRaw
  * @author M.H. Kang
  */
contract EthernameRaw is Managed {

  /* EVENT */

  event Transfer(
    address indexed from,
    address indexed to,
    bytes32 indexed name
  );
  event Approval(
    address indexed owner,
    address indexed approved,
    bytes32 indexed name
  );
  event SendEther(
    address indexed from,
    address indexed to,
    bytes32 sender,
    bytes32 recipient,
    uint256 value
  );
  event Name(address indexed owner, bytes32 indexed name);
  event Price(bytes32 indexed name, uint256 price);
  event Buy(bytes32 indexed name, address buyer, uint256 price);
  event Attribute(bytes32 indexed name, bytes32 key);

  /* DATA STRUCT */

  struct Record {
    address owner;
    uint256 price;
    mapping (bytes32 => bytes) attrs;
  }

  /* STORAGE */

  string public constant name = "Ethername";
  string public constant symbol = "ENM";

  mapping (address => bytes32) public ownerToName;
  mapping (bytes32 => Record) public nameToRecord;
  mapping (bytes32 => address) public nameToApproved;

  /* FUNCTION */

  function rawRegister(bytes32 _name) public payable {
    _register(_name, msg.sender);
  }

  function rawTransfer(address _to, bytes32 _name)
    public
    onlyOwner(msg.sender, _name)
  {
    _transfer(msg.sender, _to, _name);
  }

  function rawApprove(address _to, bytes32 _name)
    public
    onlyOwner(msg.sender, _name)
  {
    _approve(msg.sender, _to, _name);
  }

  function rawTransferFrom(address _from, address _to, bytes32 _name)
    public
    onlyOwner(_from, _name)
    onlyApproved(msg.sender, _name)
  {
    _transfer(_from, _to, _name);
  }

  function rawSetPrice(bytes32 _name, uint256 _price)
    public
    onlyOwner(msg.sender, _name)
  {
    require(_price == uint256(uint128(_price)));
    nameToRecord[_name].price = _price;

    emit Price(_name, _price);
  }

  function rawBuy(bytes32 _name) public payable {
    Record memory _record = nameToRecord[_name];
    require(_record.price > 0);
    uint256 _price = _computePrice(_record.price);
    require(msg.value >= _price);

    _record.owner.transfer(_record.price);
    _transfer(_record.owner, msg.sender, _name);
    msg.sender.transfer(msg.value - _price);

    emit Buy(_name, msg.sender, _price);
  }

  function rawUseName(bytes32 _name) public onlyOwner(msg.sender, _name) {
    _useName(msg.sender, _name);
  }

  function rawSetAttribute(bytes32 _name, bytes32 _key, bytes _value)
    public
    onlyOwner(msg.sender, _name)
  {
    nameToRecord[_name].attrs[_key] = _value;

    emit Attribute(_name, _key);
  }

  function rawWipeAttributes(bytes32 _name, bytes32[] _keys)
    public
    onlyOwner(msg.sender, _name)
  {
    mapping (bytes32 => bytes) attrs = nameToRecord[_name].attrs;
		for (uint i = 0; i < _keys.length; i++) {
      delete attrs[_keys[i]];

      emit Attribute(_name, _keys[i]);
		}
  }

  function rawSendEther(bytes32 _name) public payable returns (bool _result) {
    address _to = nameToRecord[_name].owner;
    _result = (_name != bytes32(0)) &&
      (_to != address(0)) &&
      _to.send(msg.value);
    if (_result) {
      emit SendEther(
        msg.sender,
        _to,
        rawNameOf(msg.sender),
        _name,
        msg.value
      );
    }
  }

  /* VIEW FUNCTION */

  function rawNameOf(address _address) public view returns (bytes32 _name) {
    _name = ownerToName[_address];
  }

  function rawOwnerOf(bytes32 _name) public view returns (address _owner) {
    _owner = nameToRecord[_name].owner;
  }

  function rawDetailsOf(bytes32 _name, bytes32 _key)
    public
    view
    returns (address _owner, uint256 _price, bytes _value)
  {
    _owner = nameToRecord[_name].owner;
    _price = _computePrice(nameToRecord[_name].price);
    _value = nameToRecord[_name].attrs[_key];
  }

  /* INTERNAL FUNCTION */

  function _register(bytes32 _name, address _to) internal {
    require(nameToRecord[_name].owner == address(0));
		for (uint i = 0; i < _name.length; i++) {
		 	require((_name[i] == 0) ||
              (_name[i] > 96 && _name[i] < 123) ||
              (_name[i] > 47 && _name[i] < 58));
		}

    _transfer(0, _to, _name);
  }

  /**
   * @dev When transferred,
   *  price and approved are set to 0 but attrs remains.
   */
  function _transfer(address _from, address _to, bytes32 _name) internal {
    address _null = address(0);

    if (nameToApproved[_name] != _null) {
      _approve(_from, _null, _name);
    }

    if (ownerToName[_from] == _name) {
      _useName(_from, 0);
    }

    nameToRecord[_name] = Record(_to, 0);

    if (ownerToName[_to] == bytes32(0)) {
      _useName(_to, _name);
    }

    emit Transfer(_from, _to, _name);
  }

  function _approve(address _owner, address _to, bytes32 _name) internal {
    nameToApproved[_name] = _to;
    emit Approval(_owner, _to, _name);
  }

  function _useName(address _owner, bytes32 _name) internal {
    ownerToName[_owner] = _name;
    emit Name(_owner, _name);
  }

  function _computePrice(uint256 _price) internal view returns (uint256) {
    return _price * (10000 + commission) / 10000;
  }

  function _stringToBytes32(string _string)
    internal
    pure
    returns (bytes32 _bytes32)
  {
    require(bytes(_string).length < 33);
    assembly {
      _bytes32 := mload(add(_string, 0x20))
    }
  }

  function _bytes32ToString(bytes32 _bytes32)
    internal
    pure
    returns (string _string)
  {
    assembly {
      let m := mload(0x40)
      mstore(m, 0x20)
      mstore(add(m, 0x20), _bytes32)
      mstore(0x40, add(m, 0x40))
      _string := m
    }
  }

  /* MODIFIER */

  modifier onlyOwner(address _claimant, bytes32 _name) {
    require(nameToRecord[_name].owner == _claimant);
    _;
  }

  modifier onlyApproved(address _claimant, bytes32 _name) {
    require(nameToApproved[_name] == _claimant);
    _;
  }

}

/** @title Ethername
  * @author M.H. Kang
  * @notice This contract is designed for any DAPPs to have
  *  username feature without additional implementation.
  */
contract Ethername is EthernameRaw {

  /* CONSTRUCTOR */

  function Ethername() public {
    commission = 200;

    // reserved word
    nameToRecord[bytes32('')] = Record(this, 0);

    // initial register
    _register(bytes32('ethername'), this);
    _register(bytes32('root'), msg.sender);
  }


  /* FUNCTION */

  function register(string _name) external payable {
    rawRegister(_stringToBytes32(_name));
  }

  function transfer(address _to, string _name) external {
    rawTransfer(_to, _stringToBytes32(_name));
  }

  function approve(address _to, string _name) external {
    rawApprove(_to, _stringToBytes32(_name));
  }

  function transferFrom(address _from, address _to, string _name) external {
    rawTransferFrom(_from, _to, _stringToBytes32(_name));
  }

  function setPrice(string _name, uint256 _price) external {
    rawSetPrice(_stringToBytes32(_name), _price);
  }

  function buy(string _name) external payable {
    rawBuy(_stringToBytes32(_name));
  }

  function useName(string _name) external {
    rawUseName(_stringToBytes32(_name));
  }

  function setAttribute(string _name, string _key, bytes _value) external {
    rawSetAttribute(_stringToBytes32(_name), _stringToBytes32(_key), _value);
  }

  function wipeAttributes(string _name, bytes32[] _keys) external {
    rawWipeAttributes(_stringToBytes32(_name), _keys);
  }

  function sendEther(string _name) external payable returns (bool _result) {
    _result = rawSendEther(_stringToBytes32(_name));
  }

  /* VIEW FUNCTION */

  function nameOf(address _address) external view returns (string _name) {
    _name = _bytes32ToString(rawNameOf(_address));
  }

  function ownerOf(string _name) external view returns (address _owner) {
    _owner = rawOwnerOf(_stringToBytes32(_name));
  }

  function detailsOf(string _name, string _key)
    external
    view
    returns (address _owner, uint256 _price, bytes _value)
  {
    return rawDetailsOf(_stringToBytes32(_name), _stringToBytes32(_key));
  }

}

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"string"},{"name":"_key","type":"string"}],"name":"detailsOf","outputs":[{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"},{"name":"_value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_name","type":"string"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"nameToRecord","outputs":[{"name":"owner","type":"address"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"rawNameOf","outputs":[{"name":"_name","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"sendEther","outputs":[{"name":"_result","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_key","type":"string"},{"name":"_value","type":"bytes"}],"name":"setAttribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_name","type":"string"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commission","type":"uint256"}],"name":"setCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_name","type":"string"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"}],"name":"rawBuy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"}],"name":"rawUseName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"rawOwnerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"}],"name":"rawRegister","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_keys","type":"bytes32[]"}],"name":"rawWipeAttributes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"}],"name":"rawSendEther","outputs":[{"name":"_result","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"string"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"useName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_key","type":"bytes32"}],"name":"rawDetailsOf","outputs":[{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"},{"name":"_value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"nameToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_name","type":"bytes32"}],"name":"rawTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_gas","type":"uint256"},{"name":"_code","type":"bytes"}],"name":"callFor","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_name","type":"bytes32"}],"name":"rawTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_keys","type":"bytes32[]"}],"name":"wipeAttributes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"commission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_key","type":"bytes32"},{"name":"_value","type":"bytes"}],"name":"rawSetAttribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownerToName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"register","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_name","type":"bytes32"}],"name":"rawApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"nameOf","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newManager","type":"address"}],"name":"transferPower","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_price","type":"uint256"}],"name":"rawSetPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"name","type":"bytes32"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"name","type":"bytes32"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"sender","type":"bytes32"},{"indexed":false,"name":"recipient","type":"bytes32"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SendEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"name","type":"bytes32"}],"name":"Name","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"name","type":"bytes32"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Price","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"name","type":"bytes32"},{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"name","type":"bytes32"},{"indexed":false,"name":"key","type":"bytes32"}],"name":"Attribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"basisPoint","type":"uint256"}],"name":"Commission","type":"event"}]

606060405234156200001057600080fd5b60008054600160a060020a03191633600160a060020a031617905560c860015560408051908101604052600160a060020a033016815260006020808301829052908052600390527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff81518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550620000db7f65746865726e616d65000000000000000000000000000000000000000000000030640100000000620015c36200011b82021704565b620001157f726f6f740000000000000000000000000000000000000000000000000000000033640100000000620015c36200011b82021704565b62000567565b600082815260036020526040812054600160a060020a0316156200013e57600080fd5b5060005b602081101562000350578281602081106200015957fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002600160f860020a03191660007f01000000000000000000000000000000000000000000000000000000000000000214806200027357507f6000000000000000000000000000000000000000000000000000000000000000838260208110620001e057fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002600160f860020a0319161180156200027357507f7b000000000000000000000000000000000000000000000000000000000000008382602081106200024457fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002600160f860020a031916105b806200033b57507f2f00000000000000000000000000000000000000000000000000000000000000838260208110620002a857fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002600160f860020a0319161180156200033b57507f3a000000000000000000000000000000000000000000000000000000000000008382602081106200030c57fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002600160f860020a031916105b15156200034757600080fd5b60010162000142565b6200036c60008385640100000000620014576200037182021704565b505050565b600081815260046020526040812054600160a060020a031615620003aa57620003aa8482846401000000006200174f620004b482021704565b600160a060020a038416600090815260026020526040902054821415620003e657620003e6846000640100000000620015746200051882021704565b604080519081016040908152600160a060020a038516825260006020808401829052858252600390522081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550600160a060020a03831660009081526002602052604090205415156200047357620004738383640100000000620015746200051882021704565b81600160a060020a038085169086167f8d61cf26ce654b1352bb60df9f3d4056b9e85a63977debf8fc9cd727aeda767e60405160405180910390a450505050565b600081815260046020526040908190208054600160a060020a031916600160a060020a03858116918217909255839290918616907f36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a26336905160405180910390a4505050565b600160a060020a038216600081815260026020526040908190208390558291907fe82cd0f5912f81bd9cb0a7628f0cfd68d292da3882216f3fa90748aee3f04841905160405180910390a35050565b61191580620005776000396000f3006060604052600436106101cc5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101ce578063072e43081461025857806309886649146103115780631030d8521461033c57806317376938146103745780631809ced7146103a557806322e01192146103cc57806326f590f6146103ee57806329cd00f714610424578063355e6b431461044f5780633ebfc93414610465578063481c6a7514610498578063492cc769146104c75780634fca3159146104da5780635d8d4415146104e55780635fd8c710146104fb5780637817eedd1461050e578063783b4569146105245780637aa1a77d1461052f5780637d1157c814610583578063920ffa261461058e57806395d89b41146105ac57806397fe728a146105bf5780639b10e9f7146105dd578063aa5b641f146105f6578063b0d60c2e1461060c578063c60c3aca14610634578063dd955d4c1461065c578063de9122f71461067e578063e1489191146106a8578063eca0290b146106bb578063efc5853c14610717578063f2c298be14610736578063f4a9202014610749578063f5c573821461076b578063f818d7231461078a578063fd8828eb146107a9575b005b34156101d957600080fd5b6101e16107c2565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561021d578082015183820152602001610205565b50505050905090810190601f16801561024a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026357600080fd5b61028260246004803582810192908201359181359182019101356107f9565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156102d45780820151838201526020016102bc565b50505050905090810190601f1680156103015780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561031c57600080fd5b6101cc60048035600160a060020a0316906024803590810191013561088c565b341561034757600080fd5b6103526004356108d2565b604051600160a060020a03909216825260208201526040908101905180910390f35b341561037f57600080fd5b610393600160a060020a03600435166108f7565b60405190815260200160405180910390f35b6103b86004803560248101910135610912565b604051901515815260200160405180910390f35b34156103d757600080fd5b6101cc60246004803582810192910135903561095b565b34156103f957600080fd5b6101cc602460048035828101929082013591813580830192908201359160443591820191013561099c565b341561042f57600080fd5b6101cc60048035600160a060020a03169060248035908101910135610a4c565b341561045a57600080fd5b6101cc600435610a8d565b341561047057600080fd5b6101cc600160a060020a03600480358216916024803590911691604435918201910135610ad6565b34156104a357600080fd5b6104ab610b1e565b604051600160a060020a03909116815260200160405180910390f35b6101cc6004803560248101910135610b2d565b6101cc600435610b71565b34156104f057600080fd5b6101cc600435610c9c565b341561050657600080fd5b6101cc610cd0565b341561051957600080fd5b6104ab600435610d0b565b6101cc600435610d26565b341561053a57600080fd5b6101cc60048035906044602480359081019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610d3395505050505050565b6103b8600435610e06565b341561059957600080fd5b6104ab6004803560248101910135610ed6565b34156105b757600080fd5b6101e1610f18565b34156105ca57600080fd5b6101cc6004803560248101910135610f4f565b34156105e857600080fd5b610282600435602435610f8f565b341561060157600080fd5b6104ab60043561108b565b341561061757600080fd5b6101cc600160a060020a03600435811690602435166044356110a6565b6103b860048035600160a060020a03169060248035916044359160643590810191013561110e565b341561066757600080fd5b6101cc600160a060020a0360043516602435611166565b341561068957600080fd5b6101cc602460048035828101929082013591813591820191013561119b565b34156106b357600080fd5b610393611209565b34156106c657600080fd5b6101cc600480359060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061120f95505050505050565b341561072257600080fd5b610393600160a060020a03600435166112a2565b6101cc60048035602481019101356112b4565b341561075457600080fd5b6101cc600160a060020a03600435166024356112f4565b341561077657600080fd5b6101e1600160a060020a0360043516611329565b341561079557600080fd5b6101cc600160a060020a0360043516611348565b34156107b457600080fd5b6101cc600435602435611392565b60408051908101604052600981527f45746865726e616d650000000000000000000000000000000000000000000000602082015281565b6000806108046117e1565b61087c61083f88888080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b61087787878080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610f8f565b9250925092509450945094915050565b6108cd836108c884848080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b611166565b505050565b60036020526000908152604090208054600190910154600160a060020a039091169082565b600160a060020a031660009081526002602052604090205490565b600061095461094f84848080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610e06565b9392505050565b6108cd61099684848080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b82611392565b610a446109d787878080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610a0f86868080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b84848080601f01602080910402602001604051908101604052818152929190602084018383808284375061120f945050505050565b505050505050565b6108cd83610a8884848080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b6112f4565b6127108110610a9b57600080fd5b60018190557f407599dce05d13b379509ef378c8927c9c67477b25f4a11ef7a0f538ebebd0e88160405190815260200160405180910390a150565b610b188484610b1385858080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b6110a6565b50505050565b600054600160a060020a031681565b610b6d610b6883838080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610b71565b5050565b610b796117f3565b6000828152600360205260408082209080519081016040528154600160a060020a03168152600190910154602082019081529092506000905111610bbc57600080fd5b610bc98260200151611446565b90503481901015610bd957600080fd5b8151600160a060020a03166108fc83602001519081150290604051600060405180830381858888f193505050501515610c1157600080fd5b610c1d82513385611457565b33600160a060020a03166108fc8234039081150290604051600060405180830381858888f193505050501515610c5257600080fd5b827f0d296b8ffb4a6420e4906f0cfc3233559cffb80d18e99919e8ac0c5b247108d43383604051600160a060020a03909216825260208201526040908101905180910390a2505050565b60008181526003602052604090205433908290600160a060020a03808416911614610cc657600080fd5b6108cd3384611574565b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610d0957600080fd5b565b600090815260036020526040902054600160a060020a031690565b610d3081336115c3565b50565b600082815260036020526040812054819033908590600160a060020a03808416911614610d5f57600080fd5b6000868152600360205260408120600201945092505b8451831015610a4457836000868581518110610d8d57fe5b90602001906020020151815260208101919091526040016000908120610db29161180a565b857f710bff5b8c1d241423dbe8f61fff69b38189aff7051d451ec741c29d832db16e868581518110610de057fe5b9060200190602002015160405190815260200160405180910390a2600190920191610d75565b600081815260036020526040812054600160a060020a03168215801590610e355750600160a060020a03811615155b8015610e645750600160a060020a0381163480156108fc0290604051600060405180830381858888f193505050505b91508115610ed05780600160a060020a031633600160a060020a03167f2610c614ff6c3706a12f962a0ae3479518ca8b7e04b2cdf2ebf9ec35b5035cf4610eaa336108f7565b863460405192835260208301919091526040808301919091526060909101905180910390a35b50919050565b6000610954610f1384848080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610d0b565b60408051908101604052600381527f454e4d0000000000000000000000000000000000000000000000000000000000602082015281565b610b6d610f8a83838080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610c9c565b600080610f9a6117e1565b60008581526003602052604090208054600190910154600160a060020a039091169350610fc690611446565b6000868152600360209081526040808320888452600290810183529281902080549496509361010060018216150260001901169290920491601f830182900482029091019051908101604052809291908181526020018280546001816001161561010002031660029004801561107d5780601f106110525761010080835404028352916020019161107d565b820191906000526020600020905b81548152906001019060200180831161106057829003601f168201915b505050505090509250925092565b600460205260009081526040902054600160a060020a031681565b60008181526003602052604090205483908290600160a060020a038084169116146110d057600080fd5b60008381526004602052604090205433908490600160a060020a038084169116146110fa57600080fd5b611105878787611457565b50505050505050565b6000805433600160a060020a0390811691161461112a57600080fd5b600160a060020a0386168486858560405180838380828437820191505092505050600060405180830381858888f19a9950505050505050505050565b60008181526003602052604090205433908290600160a060020a0380841691161461119057600080fd5b610b18338585611457565b610b186111d685858080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b83838080602002602001604051908101604052809392919081815260200183836020028082843750610d33945050505050565b60015481565b60008381526003602052604090205433908490600160a060020a0380841691161461123957600080fd5b6000858152600360209081526040808320878452600201909152902083805161126692916020019061184e565b50847f710bff5b8c1d241423dbe8f61fff69b38189aff7051d451ec741c29d832db16e8560405190815260200160405180910390a25050505050565b60026020526000908152604090205481565b610b6d6112ef83838080601f01602080910402602001604051908101604052818152929190602084018383808284375061142b945050505050565b610d26565b60008181526003602052604090205433908290600160a060020a0380841691161461131e57600080fd5b610b1833858561174f565b6113316117e1565b61134261133d836108f7565b6117c0565b92915050565b60005433600160a060020a0390811691161461136357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008281526003602052604090205433908390600160a060020a038084169116146113bc57600080fd5b6fffffffffffffffffffffffffffffffff831683146113da57600080fd5b6000848152600360205260409081902060010184905584907f6cf258b00bb4939e673f2b0fd9cdfe157e1c8a5f60a2532efe3d3eb49f98f6449085905190815260200160405180910390a250505050565b6000602182511061143b57600080fd5b602082015192915050565b600154612710908101919091020490565b600081815260046020526040812054600160a060020a03161561147f5761147f84828461174f565b600160a060020a0384166000908152600260205260409020548214156114aa576114aa846000611574565b604080519081016040908152600160a060020a03851682526000602080840182905285825260039052208151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160019091015550600160a060020a0383166000908152600260205260409020541515611533576115338383611574565b81600160a060020a038085169086167f8d61cf26ce654b1352bb60df9f3d4056b9e85a63977debf8fc9cd727aeda767e60405160405180910390a450505050565b600160a060020a038216600081815260026020526040908190208390558291907fe82cd0f5912f81bd9cb0a7628f0cfd68d292da3882216f3fa90748aee3f04841905160405180910390a35050565b600082815260036020526040812054600160a060020a0316156115e557600080fd5b5060005b6020811015611743578281602081106115fe57fe5b1a60f860020a02600160f860020a031916600060f860020a0214806116a457507f600000000000000000000000000000000000000000000000000000000000000083826020811061164b57fe5b1a60f860020a02600160f860020a0319161180156116a457507f7b0000000000000000000000000000000000000000000000000000000000000083826020811061169157fe5b1a60f860020a02600160f860020a031916105b8061173057507f2f000000000000000000000000000000000000000000000000000000000000008382602081106116d757fe5b1a60f860020a02600160f860020a03191611801561173057507f3a0000000000000000000000000000000000000000000000000000000000000083826020811061171d57fe5b1a60f860020a02600160f860020a031916105b151561173b57600080fd5b6001016115e9565b6108cd60008385611457565b60008181526004602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03858116918217909255839290918616907f36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a26336905160405180910390a4505050565b6117c86117e1565b6040516020808252810192909252506040808201905290565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b50805460018160011615610100020316600290046000825580601f106118305750610d30565b601f016020900490600052602060002090810190610d3091906118cc565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188f57805160ff19168380011785556118bc565b828001600101855582156118bc579182015b828111156118bc5782518255916020019190600101906118a1565b506118c89291506118cc565b5090565b6118e691905b808211156118c857600081556001016118d2565b905600a165627a7a72305820ef8c94615fc17646072849c568de0940468df3d6e51e0325f87e46fa16124cee0029

Swarm Source

bzzr://ef8c94615fc17646072849c568de0940468df3d6e51e0325f87e46fa16124cee
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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.