ETH Price: $2,025.22 (-1.20%)
Gas: 0.25 Gwei

Contract

0x42095468d0Af5976caa589AD6Db91A1b8913bE4e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve78457882019-05-28 3:57:132479 days ago1559015833IN
0x42095468...b8913bE4e
0 ETH0.0004593915
Approve74649052019-03-29 18:13:212538 days ago1553883201IN
0x42095468...b8913bE4e
0 ETH0.000183756
Approve59830022018-07-17 22:26:382793 days ago1531866398IN
0x42095468...b8913bE4e
0 ETH0.000091252
Payout51508392018-02-25 0:32:552936 days ago1519518775IN
0x42095468...b8913bE4e
0 ETH0.000062322
Purchase51152272018-02-18 22:58:172942 days ago1518994697IN
0x42095468...b8913bE4e
10 ETH0.0046805866
Purchase51152262018-02-18 22:57:422942 days ago1518994662IN
0x42095468...b8913bE4e
6.4233 ETH0.0004549820
Purchase51152262018-02-18 22:57:422942 days ago1518994662IN
0x42095468...b8913bE4e
6.4233 ETH0.0070918100
Purchase51152202018-02-18 22:56:222942 days ago1518994582IN
0x42095468...b8913bE4e
4.9246 ETH0.0015014366
Purchase51152192018-02-18 22:56:112942 days ago1518994571IN
0x42095468...b8913bE4e
4.9246 ETH0.0014183620
Purchase51152132018-02-18 22:54:222942 days ago1518994462IN
0x42095468...b8913bE4e
3.7755 ETH0.0028367240
Purchase51152112018-02-18 22:53:142942 days ago1518994394IN
0x42095468...b8913bE4e
2.8946 ETH0.0005687225
Purchase51152092018-02-18 22:53:002942 days ago1518994380IN
0x42095468...b8913bE4e
2.8946 ETH0.0014183620
Purchase51152042018-02-18 22:51:462942 days ago1518994306IN
0x42095468...b8913bE4e
2.2192 ETH0.0014183620
Purchase51151942018-02-18 22:49:012942 days ago1518994141IN
0x42095468...b8913bE4e
1.7014 ETH0.0009928514
Purchase51151772018-02-18 22:45:472942 days ago1518993947IN
0x42095468...b8913bE4e
1.3044 ETH0.0009928514
Purchase51129092018-02-18 13:36:182942 days ago1518960978IN
0x42095468...b8913bE4e
1.0001 ETH0.0012683820
Create Rich Cont...51091072018-02-17 22:32:082943 days ago1518906728IN
0x42095468...b8913bE4e
0 ETH0.000129911

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer51508392018-02-25 0:32:552936 days ago1519518775
0x42095468...b8913bE4e
3.52964625 ETH
Transfer51152272018-02-18 22:58:172942 days ago1518994697
0x42095468...b8913bE4e
1.62186508 ETH
Transfer51152272018-02-18 22:58:172942 days ago1518994697
0x42095468...b8913bE4e
7.70788412 ETH
Transfer51152262018-02-18 22:57:422942 days ago1518994662
0x42095468...b8913bE4e
0.00006323 ETH
Transfer51152262018-02-18 22:57:422942 days ago1518994662
0x42095468...b8913bE4e
5.90937782 ETH
Transfer51152192018-02-18 22:56:112942 days ago1518994571
0x42095468...b8913bE4e
0.00011847 ETH
Transfer51152192018-02-18 22:56:112942 days ago1518994571
0x42095468...b8913bE4e
4.530523 ETH
Transfer51152132018-02-18 22:54:222942 days ago1518994462
0x42095468...b8913bE4e
0.00006416 ETH
Transfer51152132018-02-18 22:54:222942 days ago1518994462
0x42095468...b8913bE4e
3.47340096 ETH
Transfer51152092018-02-18 22:53:002942 days ago1518994380
0x42095468...b8913bE4e
0.00009919 ETH
Transfer51152092018-02-18 22:53:002942 days ago1518994380
0x42095468...b8913bE4e
2.66294074 ETH
Transfer51152042018-02-18 22:51:462942 days ago1518994306
0x42095468...b8913bE4e
0.00008271 ETH
Transfer51152042018-02-18 22:51:462942 days ago1518994306
0x42095468...b8913bE4e
2.0415879 ETH
Transfer51151942018-02-18 22:49:012942 days ago1518994141
0x42095468...b8913bE4e
0.00007674 ETH
Transfer51151942018-02-18 22:49:012942 days ago1518994141
0x42095468...b8913bE4e
1.56521739 ETH
Transfer51151772018-02-18 22:45:472942 days ago1518993947
0x42095468...b8913bE4e
0.00005217 ETH
Transfer51151772018-02-18 22:45:472942 days ago1518993947
0x42095468...b8913bE4e
1.19999999 ETH
Transfer51129092018-02-18 13:36:182942 days ago1518960978
0x42095468...b8913bE4e
0.0001 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:
RichToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.18;

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

}


contract RichToken is ERC721 {

  /*** EVENTS ***/

  /// @dev The Birth event is fired whenever a new richtoken comes into existence.
  event Birth(uint256 tokenId, string name, address owner);

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

  /// @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 = "RichToken";
  string public constant SYMBOL = "RT";

  uint256 private startingPrice = 1 ether;

  /*** STORAGE ***/

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

  // @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 RichIDs to an address that has been approved to call
  ///  transferFrom(). Each Rich can only have one approved address for transfer
  ///  at any time. A zero value means no approval is outstanding.
  mapping (uint256 => address) public richtokenIndexToApproved;

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

  address public creator;

  /*** DATATYPES ***/
  struct Rich {
    string name;
  }

  Rich[] private richtokens;

  modifier onlyCreator() {
    require(msg.sender == creator);
    _;
  }

  function RichToken() public {
    creator = 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));

    richtokenIndexToApproved[_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];
  }

  function createRichContract(string _name) public onlyCreator {
    _createRich(_name, address(this), startingPrice);
  }

  /// @notice Returns all the relevant information about a specific richtoken.
  /// @param _tokenId The tokenId of the richtoken of interest.
  function getRichToken(uint256 _tokenId) public view returns (
    string richtokenName,
    uint256 sellingPrice,
    address owner
  ) {
    Rich storage richtoken = richtokens[_tokenId];
    richtokenName = richtoken.name;
    sellingPrice = richtokenIndexToPrice[_tokenId];
    owner = richtokenIndexToOwner[_tokenId];
  }

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

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

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

  function payout(address _to) public onlyCreator {
    _payout(_to);
  }

  // Allows someone to send ether and obtain the token
  function purchase(uint256 _tokenId) public payable {
    address oldOwner = richtokenIndexToOwner[_tokenId];
    address newOwner = msg.sender;

    uint256 sellingPrice = richtokenIndexToPrice[_tokenId];

    // Making sure token owner is not sending to self
    require(oldOwner != newOwner);

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

    uint256 payment = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 92), 100));
    uint256 purchaseExcess = SafeMath.sub(msg.value, sellingPrice);

    richtokenIndexToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 120), 92);

    _transfer(oldOwner, newOwner, _tokenId);

    // Pay previous tokenOwner if owner is not contract
    if (oldOwner != address(this)) {
      oldOwner.transfer(payment);
    }

    TokenSold(_tokenId, sellingPrice, richtokenIndexToPrice[_tokenId], oldOwner, newOwner, richtokens[_tokenId].name);

    msg.sender.transfer(purchaseExcess);
  }

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

  function setCreator(address _creator) public onlyCreator {
    require(_creator != address(0));

    creator = _creator;
  }

  /// @dev Required 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 = richtokenIndexToOwner[_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);
  }

  /// For querying totalSupply of token
  /// @dev Required for ERC-721 compliance.
  function totalSupply() public view returns (uint256 total) {
    return richtokens.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);
  }

  /// Third-party initiates transfer of token from address _from to address _to
  /// @param _from The address for the token to be transferred from.
  /// @param _to The address for the token to be transferred to.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function transferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  ) public {
    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 richtokenIndexToApproved[_tokenId] == _to;
  }

  /// For creating Rich Token
  function _createRich(string _name, address _owner, uint256 _price) private {
    Rich memory _richtoken = Rich({
      name: _name
    });
    uint256 newRichId = richtokens.push(_richtoken) - 1;

    // It's probably never going to happen, 4 billion tokens are A LOT, but
    // let's just be 100% sure we never let this happen.
    require(newRichId == uint256(uint32(newRichId)));

    Birth(newRichId, _name, _owner);

    richtokenIndexToPrice[newRichId] = _price;

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

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

  /// For paying out balance on contract
  function _payout(address _to) private {
    if (_to == address(0)) {
      creator.transfer(this.balance);
    } else {
      _to.transfer(this.balance);
    }
  }

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

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

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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"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":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":"_creator","type":"address"}],"name":"setCreator","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":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"richtokenIndexToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"richtokenIndexToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"createRichContract","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getRichToken","outputs":[{"name":"richtokenName","type":"string"},{"name":"sellingPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","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"},{"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"}],"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"}],"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"}]

6060604052670de0b6b3a7640000600055341561001b57600080fd5b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a7f8061006b6000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f1461012257806306fdde0314610177578063095ea7b3146102055780630b7e9c44146102475780631051db341461028057806318160ddd146102ad57806323b872dd146102d65780633f516018146103375780636352211e1461037057806370a08231146103d35780638a5a68f41461042057806393bd90c41461048357806395d89b41146104e65780639f6fb2ba14610574578063a3f4df7e146105d1578063a9059cbb1461065f578063b2e6ceeb146106a1578063b9186d7d146106c4578063d6351433146106fb578063efef39a1146107d1578063f76f8d78146107e9575b600080fd5b341561012d57600080fd5b610135610877565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561018257600080fd5b61018a61089d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ca5780820151818401526020810190506101af565b50505050905090810190601f1680156101f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021057600080fd5b610245600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108e0565b005b341561025257600080fd5b61027e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109b0565b005b341561028b57600080fd5b610293610a18565b604051808215151515815260200191505060405180910390f35b34156102b857600080fd5b6102c0610a21565b6040518082815260200191505060405180910390f35b34156102e157600080fd5b610335600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a2e565b005b341561034257600080fd5b61036e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7c565b005b341561037b57600080fd5b6103916004808035906020019091905050610b58565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103de57600080fd5b61040a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bd1565b6040518082815260200191505060405180910390f35b341561042b57600080fd5b6104416004808035906020019091905050610c1a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048e57600080fd5b6104a46004808035906020019091905050610c4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104f157600080fd5b6104f9610c80565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053957808201518184015260208101905061051e565b50505050905090810190601f1680156105665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561057f57600080fd5b6105cf600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610cc3565b005b34156105dc57600080fd5b6105e4610d2f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610624578082015181840152602081019050610609565b50505050905090810190601f1680156106515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561066a57600080fd5b61069f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d68565b005b34156106ac57600080fd5b6106c26004808035906020019091905050610da0565b005b34156106cf57600080fd5b6106e56004808035906020019091905050610e15565b6040518082815260200191505060405180910390f35b341561070657600080fd5b61071c6004808035906020019091905050610e32565b60405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015610794578082015181840152602081019050610779565b50505050905090810190601f1680156107c15780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6107e76004808035906020019091905050610f4e565b005b34156107f457600080fd5b6107fc611282565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083c578082015181840152602081019050610821565b50505050905090810190601f1680156108695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108a56118c9565b6040805190810160405280600981526020017f52696368546f6b656e0000000000000000000000000000000000000000000000815250905090565b6108ea33826112bb565b15156108f557600080fd5b816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0c57600080fd5b610a1581611327565b50565b60006001905090565b6000600680549050905090565b610a3883826112bb565b1515610a4357600080fd5b610a4d8282611435565b1515610a5857600080fd5b610a61826114a1565b1515610a6c57600080fd5b610a778383836114da565b505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ad857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b1457600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610bcc57600080fd5b919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c886118c9565b6040805190810160405280600281526020017f5254000000000000000000000000000000000000000000000000000000000000815250905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d1f57600080fd5b610d2c81306000546116dc565b50565b6040805190810160405280600981526020017f52696368546f6b656e000000000000000000000000000000000000000000000081525081565b610d7233826112bb565b1515610d7d57600080fd5b610d86826114a1565b1515610d9157600080fd5b610d9c3383836114da565b5050565b6000803391506001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610de5826114a1565b1515610df057600080fd5b610dfa8284611435565b1515610e0557600080fd5b610e108183856114da565b505050565b600060046000838152602001908152602001600020549050919050565b610e3a6118c9565b6000806000600685815481101515610e4e57fe5b90600052602060002090019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b50505050509350600460008681526020019081526020016000205492506001600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193909250565b60008060008060006001600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450339350600460008781526020019081526020016000205492508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515610fe057600080fd5b610fe9846114a1565b1515610ff457600080fd5b82341015151561100357600080fd5b61101861101184605c61185a565b6064611895565b915061102434846118b0565b905061103b61103484607861185a565b605c611895565b600460008881526020019081526020016000208190555061105d8585886114da565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156110d3578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156110d257600080fd5b5b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8684600460008a815260200190815260200160002054888860068c81548110151561111a57fe5b9060005260206000209001600001604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156112275780601f106111fc57610100808354040283529160200191611227565b820191906000526020600020905b81548152906001019060200180831161120a57829003601f168201915b505097505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561127a57600080fd5b505050505050565b6040805190810160405280600281526020017f525400000000000000000000000000000000000000000000000000000000000081525081565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113da57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156113d557600080fd5b611432565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561143157600080fd5b5b50565b60008273ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561163857600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506003600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b6116e46118dd565b600060206040519081016040528086815250915060016006805480600101828161170e91906118f7565b91600052602060002090016000859091909150600082015181600001908051906020019061173d929190611923565b5050500390508063ffffffff168114151561175757600080fd5b7fb3b0cf861f168bcdb275c69da97b2543631552ba562628aa3c7317d4a6089ef281868660405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156117f35780820151818401526020810190506117d8565b50505050905090810190601f1680156118205780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1826004600083815260200190815260200160002081905550611853600085836114da565b5050505050565b600080600084141561186f576000915061188e565b828402905082848281151561188057fe5b0414151561188a57fe5b8091505b5092915050565b60008082848115156118a357fe5b0490508091505092915050565b60008282111515156118be57fe5b818303905092915050565b602060405190810160405280600081525090565b6020604051908101604052806118f16119a3565b81525090565b81548183558181151161191e5781836000526020600020918201910161191d91906119b7565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061196457805160ff1916838001178555611992565b82800160010185558215611992579182015b82811115611991578251825591602001919060010190611976565b5b50905061199f91906119e6565b5090565b602060405190810160405280600081525090565b6119e391905b808211156119df57600080820160006119d69190611a0b565b506001016119bd565b5090565b90565b611a0891905b80821115611a045760008160009055506001016119ec565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611a315750611a50565b601f016020900490600052602060002090810190611a4f91906119e6565b5b505600a165627a7a72305820a74c5dd9c57d395781cc9ab0002e917c8ad463a1e4bd89d4992e592aa0c1c4a40029

Deployed Bytecode

0x60606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f1461012257806306fdde0314610177578063095ea7b3146102055780630b7e9c44146102475780631051db341461028057806318160ddd146102ad57806323b872dd146102d65780633f516018146103375780636352211e1461037057806370a08231146103d35780638a5a68f41461042057806393bd90c41461048357806395d89b41146104e65780639f6fb2ba14610574578063a3f4df7e146105d1578063a9059cbb1461065f578063b2e6ceeb146106a1578063b9186d7d146106c4578063d6351433146106fb578063efef39a1146107d1578063f76f8d78146107e9575b600080fd5b341561012d57600080fd5b610135610877565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561018257600080fd5b61018a61089d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ca5780820151818401526020810190506101af565b50505050905090810190601f1680156101f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021057600080fd5b610245600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108e0565b005b341561025257600080fd5b61027e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109b0565b005b341561028b57600080fd5b610293610a18565b604051808215151515815260200191505060405180910390f35b34156102b857600080fd5b6102c0610a21565b6040518082815260200191505060405180910390f35b34156102e157600080fd5b610335600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a2e565b005b341561034257600080fd5b61036e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a7c565b005b341561037b57600080fd5b6103916004808035906020019091905050610b58565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103de57600080fd5b61040a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bd1565b6040518082815260200191505060405180910390f35b341561042b57600080fd5b6104416004808035906020019091905050610c1a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048e57600080fd5b6104a46004808035906020019091905050610c4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104f157600080fd5b6104f9610c80565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053957808201518184015260208101905061051e565b50505050905090810190601f1680156105665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561057f57600080fd5b6105cf600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610cc3565b005b34156105dc57600080fd5b6105e4610d2f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610624578082015181840152602081019050610609565b50505050905090810190601f1680156106515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561066a57600080fd5b61069f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d68565b005b34156106ac57600080fd5b6106c26004808035906020019091905050610da0565b005b34156106cf57600080fd5b6106e56004808035906020019091905050610e15565b6040518082815260200191505060405180910390f35b341561070657600080fd5b61071c6004808035906020019091905050610e32565b60405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015610794578082015181840152602081019050610779565b50505050905090810190601f1680156107c15780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6107e76004808035906020019091905050610f4e565b005b34156107f457600080fd5b6107fc611282565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083c578082015181840152602081019050610821565b50505050905090810190601f1680156108695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108a56118c9565b6040805190810160405280600981526020017f52696368546f6b656e0000000000000000000000000000000000000000000000815250905090565b6108ea33826112bb565b15156108f557600080fd5b816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0c57600080fd5b610a1581611327565b50565b60006001905090565b6000600680549050905090565b610a3883826112bb565b1515610a4357600080fd5b610a4d8282611435565b1515610a5857600080fd5b610a61826114a1565b1515610a6c57600080fd5b610a778383836114da565b505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ad857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b1457600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610bcc57600080fd5b919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c886118c9565b6040805190810160405280600281526020017f5254000000000000000000000000000000000000000000000000000000000000815250905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d1f57600080fd5b610d2c81306000546116dc565b50565b6040805190810160405280600981526020017f52696368546f6b656e000000000000000000000000000000000000000000000081525081565b610d7233826112bb565b1515610d7d57600080fd5b610d86826114a1565b1515610d9157600080fd5b610d9c3383836114da565b5050565b6000803391506001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610de5826114a1565b1515610df057600080fd5b610dfa8284611435565b1515610e0557600080fd5b610e108183856114da565b505050565b600060046000838152602001908152602001600020549050919050565b610e3a6118c9565b6000806000600685815481101515610e4e57fe5b90600052602060002090019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b50505050509350600460008681526020019081526020016000205492506001600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193909250565b60008060008060006001600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450339350600460008781526020019081526020016000205492508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515610fe057600080fd5b610fe9846114a1565b1515610ff457600080fd5b82341015151561100357600080fd5b61101861101184605c61185a565b6064611895565b915061102434846118b0565b905061103b61103484607861185a565b605c611895565b600460008881526020019081526020016000208190555061105d8585886114da565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156110d3578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156110d257600080fd5b5b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8684600460008a815260200190815260200160002054888860068c81548110151561111a57fe5b9060005260206000209001600001604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156112275780601f106111fc57610100808354040283529160200191611227565b820191906000526020600020905b81548152906001019060200180831161120a57829003601f168201915b505097505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561127a57600080fd5b505050505050565b6040805190810160405280600281526020017f525400000000000000000000000000000000000000000000000000000000000081525081565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113da57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156113d557600080fd5b611432565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561143157600080fd5b5b50565b60008273ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561163857600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506003600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b6116e46118dd565b600060206040519081016040528086815250915060016006805480600101828161170e91906118f7565b91600052602060002090016000859091909150600082015181600001908051906020019061173d929190611923565b5050500390508063ffffffff168114151561175757600080fd5b7fb3b0cf861f168bcdb275c69da97b2543631552ba562628aa3c7317d4a6089ef281868660405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156117f35780820151818401526020810190506117d8565b50505050905090810190601f1680156118205780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1826004600083815260200190815260200160002081905550611853600085836114da565b5050505050565b600080600084141561186f576000915061188e565b828402905082848281151561188057fe5b0414151561188a57fe5b8091505b5092915050565b60008082848115156118a357fe5b0490508091505092915050565b60008282111515156118be57fe5b818303905092915050565b602060405190810160405280600081525090565b6020604051908101604052806118f16119a3565b81525090565b81548183558181151161191e5781836000526020600020918201910161191d91906119b7565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061196457805160ff1916838001178555611992565b82800160010185558215611992579182015b82811115611991578251825591602001919060010190611976565b5b50905061199f91906119e6565b5090565b602060405190810160405280600081525090565b6119e391905b808211156119df57600080820160006119d69190611a0b565b506001016119bd565b5090565b90565b611a0891905b80821115611a045760008160009055506001016119ec565b5090565b90565b50805460018160011615610100020316600290046000825580601f10611a315750611a50565b601f016020900490600052602060002090810190611a4f91906119e6565b5b505600a165627a7a72305820a74c5dd9c57d395781cc9ab0002e917c8ad463a1e4bd89d4992e592aa0c1c4a40029

Swarm Source

bzzr://a74c5dd9c57d395781cc9ab0002e917c8ad463a1e4bd89d4992e592aa0c1c4a4

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.