ETH Price: $3,451.37 (+1.55%)

Contract

0xe0a8A9b7C821d9BBd66b826129D4cF1B219EbB3a
 

Overview

ETH Balance

0.06984209433835333 ETH

Eth Value

$241.05 (@ $3,451.37/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Purchase52641382018-03-16 6:53:132475 days ago1521183193IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000172113.1
Purchase52641352018-03-16 6:52:462475 days ago1521183166IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000218613.1
Purchase52602842018-03-15 15:29:052476 days ago1521127745IN
0xe0a8A9b7...B219EbB3a
0.02233411 ETH0.000257913
Purchase52434962018-03-12 18:26:532479 days ago1520879213IN
0xe0a8A9b7...B219EbB3a
0.02233411 ETH0.000223624
Purchase52434962018-03-12 18:26:532479 days ago1520879213IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000181662.11
Purchase52434962018-03-12 18:26:532479 days ago1520879213IN
0xe0a8A9b7...B219EbB3a
0.02233411 ETH0.000285633.32499
Purchase52434932018-03-12 18:26:132479 days ago1520879173IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000181662.11
Purchase52433692018-03-12 17:54:472479 days ago1520877287IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000025741.11
Purchase52432602018-03-12 17:26:292479 days ago1520875589IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000427615
Purchase52432602018-03-12 17:26:292479 days ago1520875589IN
0xe0a8A9b7...B219EbB3a
0.02233411 ETH0.000277615
Purchase52432532018-03-12 17:25:232479 days ago1520875523IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000222084
Purchase52432462018-03-12 17:22:542479 days ago1520875374IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000352615
Purchase52432462018-03-12 17:22:542479 days ago1520875374IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000282084
Purchase52432432018-03-12 17:22:252479 days ago1520875345IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000277615
Purchase52432412018-03-12 17:22:042479 days ago1520875324IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000117822.11
Purchase52432402018-03-12 17:22:012479 days ago1520875321IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000180452.11
Purchase52432272018-03-12 17:20:032479 days ago1520875203IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000564178
Purchase52431382018-03-12 16:56:202479 days ago1520873780IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000354535
Purchase52431332018-03-12 16:55:272479 days ago1520873727IN
0xe0a8A9b7...B219EbB3a
0.01027369 ETH0.000504535
Purchase52431032018-03-12 16:46:272479 days ago1520873187IN
0xe0a8A9b7...B219EbB3a
0.00217391 ETH0.000256563
Purchase52430902018-03-12 16:43:232479 days ago1520873003IN
0xe0a8A9b7...B219EbB3a
0.02233411 ETH0.000352615
Purchase52430842018-03-12 16:41:552479 days ago1520872915IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000355495
Purchase52430782018-03-12 16:41:062479 days ago1520872866IN
0xe0a8A9b7...B219EbB3a
0.00472589 ETH0.000503895
Purchase52430772018-03-12 16:41:002479 days ago1520872860IN
0xe0a8A9b7...B219EbB3a
0.00217391 ETH0.000166563
Purchase52430742018-03-12 16:39:532479 days ago1520872793IN
0xe0a8A9b7...B219EbB3a
0.00217391 ETH0.000256563
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
52641382018-03-16 6:53:132475 days ago1521183193
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52641352018-03-16 6:52:462475 days ago1521183166
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52602842018-03-15 15:29:052476 days ago1521127745
0xe0a8A9b7...B219EbB3a
0.02054738 ETH
52434962018-03-12 18:26:532479 days ago1520879213
0xe0a8A9b7...B219EbB3a
0.02054738 ETH
52434962018-03-12 18:26:532479 days ago1520879213
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52434962018-03-12 18:26:532479 days ago1520879213
0xe0a8A9b7...B219EbB3a
0.02054738 ETH
52434932018-03-12 18:26:132479 days ago1520879173
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52432602018-03-12 17:26:292479 days ago1520875589
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52432602018-03-12 17:26:292479 days ago1520875589
0xe0a8A9b7...B219EbB3a
0.02054738 ETH
52432532018-03-12 17:25:232479 days ago1520875523
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
52432462018-03-12 17:22:542479 days ago1520875374
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52432462018-03-12 17:22:542479 days ago1520875374
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52432432018-03-12 17:22:252479 days ago1520875345
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52432412018-03-12 17:22:042479 days ago1520875324
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
52432402018-03-12 17:22:012479 days ago1520875321
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
52432272018-03-12 17:20:032479 days ago1520875203
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52431382018-03-12 16:56:202479 days ago1520873780
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
52431332018-03-12 16:55:272479 days ago1520873727
0xe0a8A9b7...B219EbB3a
0.00945179 ETH
52431032018-03-12 16:46:272479 days ago1520873187
0xe0a8A9b7...B219EbB3a
0.00199999 ETH
52430902018-03-12 16:43:232479 days ago1520873003
0xe0a8A9b7...B219EbB3a
0.02054738 ETH
52430842018-03-12 16:41:552479 days ago1520872915
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
52430782018-03-12 16:41:062479 days ago1520872866
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
52430772018-03-12 16:41:002479 days ago1520872860
0xe0a8A9b7...B219EbB3a
0.00199999 ETH
52430742018-03-12 16:39:532479 days ago1520872793
0xe0a8A9b7...B219EbB3a
0.00199999 ETH
52430572018-03-12 16:36:372479 days ago1520872597
0xe0a8A9b7...B219EbB3a
0.00434782 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoRides

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

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

contract ERC721 {
  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 CryptoRides is ERC721 {
  event Created(uint256 tokenId, string name, bytes7 plateNumber, address owner);
  event TokenSold(uint256 tokenId, uint256 oldPrice, uint256 newPrice, address prevOwner, address winner, string name, bytes7 plateNumber);
  event Transfer(address from, address to, uint256 tokenId);

  string public constant NAME = "CryptoRides"; // solhint-disable-line
  string public constant SYMBOL = "CryptoRidesToken"; // solhint-disable-line
  uint256 private startingPrice = 0.001 ether;
  uint256 private constant PROMO_CREATION_LIMIT = 5000;
  uint256 private firstStepLimit =  0.053613 ether;
  uint256 private secondStepLimit = 0.564957 ether;

  mapping (uint256 => address) public tokenIdToOwner;
  mapping (address => uint256) private ownershipTokenCount;
  mapping (uint256 => address) public tokenIdToApproved;
  mapping (uint256 => uint256) private tokenIdToPrice;

  address public ceoAddress;
  address public cooAddress;

  uint256 public promoCreatedCount;

  struct Ride {
    string name;
    bytes7 plateNumber;
  }
  Ride[] private rides;

  modifier onlyCEO() {
    require(msg.sender == ceoAddress);
    _;
  }

  modifier onlyCOO() {
    require(msg.sender == cooAddress);
    _;
  }

  modifier onlyCLevel() {
    require(
      msg.sender == ceoAddress ||
      msg.sender == cooAddress
    );
    _;
  }

  function CryptoRides() public {
    ceoAddress = msg.sender;
    cooAddress = msg.sender;
  }

  function approve( address _to, uint256 _tokenId) public {
    // Caller must own token.
    require(_owns(msg.sender, _tokenId));

    tokenIdToApproved[_tokenId] = _to;

    Approval(msg.sender, _to, _tokenId);
  }

  function balanceOf(address _owner) public view returns (uint256 balance) {
    return ownershipTokenCount[_owner];
  }

  function createPromoRide(address _owner, string _name, bytes7 _plateNo, uint256 _price) public onlyCOO {
    require(promoCreatedCount < PROMO_CREATION_LIMIT);

    address rideOwner = _owner;
    if (rideOwner == address(0)) {
      rideOwner = cooAddress;
    }

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

    promoCreatedCount++;
    _createRide(_name, _plateNo, rideOwner, _price);
  }

  function createContractRide(string _name, bytes7 _plateNo) public onlyCOO {
    _createRide(_name, _plateNo, address(this), startingPrice);
  }

  function getRide(uint256 _tokenId) public view returns (
    string rideName,
    bytes7 plateNumber,
    uint256 sellingPrice,
    address owner
  ) {
    Ride storage ride = rides[_tokenId];
    rideName = ride.name;
    plateNumber = ride.plateNumber;
    sellingPrice = tokenIdToPrice[_tokenId];
    owner = tokenIdToOwner[_tokenId];
  }

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

  function name() public pure returns (string) {
    return NAME;
  }

  function ownerOf(uint256 _tokenId)
    public
    view
    returns (address owner)
  {
    owner = tokenIdToOwner[_tokenId];
    require(owner != address(0));
  }

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

  function purchase(uint256 _tokenId, bytes7 _plateNumber) public payable {
    address oldOwner = tokenIdToOwner[_tokenId];
    address newOwner = msg.sender;

    uint256 sellingPrice = tokenIdToPrice[_tokenId];

    require(oldOwner != newOwner);

    require(_addressNotNull(newOwner));

    require(msg.value >= sellingPrice);

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

    // Update prices
    if (sellingPrice < firstStepLimit) {
      // first stage
      tokenIdToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 200), 92);
    } else if (sellingPrice < secondStepLimit) {
      // second stage
      tokenIdToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 120), 92);
    } else {
      // third stage
      tokenIdToPrice[_tokenId] = SafeMath.div(SafeMath.mul(sellingPrice, 115), 92);
    }

    _transfer(oldOwner, newOwner, _tokenId);

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

    TokenSold(_tokenId, sellingPrice, tokenIdToPrice[_tokenId], oldOwner, newOwner, rides[_tokenId].name, _plateNumber);

    msg.sender.transfer(purchaseExcess);
    rides[_tokenId].plateNumber = _plateNumber;
  }

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

  function setCEO(address _newCEO) public onlyCEO {
    require(_newCEO != address(0));

    ceoAddress = _newCEO;
  }

  function setCOO(address _newCOO) public onlyCEO {
    require(_newCOO != address(0));

    cooAddress = _newCOO;
  }

  function symbol() public pure returns (string) {
    return SYMBOL;
  }

  function takeOwnership(uint256 _tokenId) public {
    address newOwner = msg.sender;
    address oldOwner = tokenIdToOwner[_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);
  }

  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 totalRides = totalSupply();
      uint256 resultIndex = 0;

      uint256 rideId;
      for (rideId = 0; rideId <= totalRides; rideId++) {
        if (tokenIdToOwner[rideId] == _owner) {
          result[resultIndex] = rideId;
          resultIndex++;
        }
      }
      return result;
    }
  }

  function totalSupply() public view returns (uint256 total) {
    return rides.length;
  }

  function transfer( address _to, uint256 _tokenId) public {
    require(_owns(msg.sender, _tokenId));
    require(_addressNotNull(_to));

    _transfer(msg.sender, _to, _tokenId);
  }

  function transferFrom(address _from, address _to, uint256 _tokenId) public {
    require(_owns(_from, _tokenId));
    require(_approved(_to, _tokenId));
    require(_addressNotNull(_to));

    _transfer(_from, _to, _tokenId);
  }

  function _addressNotNull(address _to) private pure returns (bool) {
    return _to != address(0);
  }

  function _approved(address _to, uint256 _tokenId) private view returns (bool) {
    return tokenIdToApproved[_tokenId] == _to;
  }

  function _createRide(string _name, bytes7 _plateNo, address _owner, uint256 _price) private {
    Ride memory _ride = Ride({
      name: _name, 
      plateNumber: _plateNo
    });
    uint256 newRideId = rides.push(_ride) - 1;

    require(newRideId == uint256(uint32(newRideId)));

    Created(newRideId, _name, _plateNo, _owner);

    tokenIdToPrice[newRideId] = _price;

    _transfer(address(0), _owner, newRideId);
  }

  function _owns(address claimant, uint256 _tokenId) private view returns (bool) {
    return claimant == tokenIdToOwner[_tokenId];
  }

  function _payout(address _to) private {
    if (_to == address(0)) {
      ceoAddress.transfer(this.balance);
    } else {
      _to.transfer(this.balance);
    }
  }

  function _transfer(address _from, address _to, uint256 _tokenId) private {
    // Since the number of rides is capped to 2^32 we can't overflow this
    ownershipTokenCount[_to]++;
    //transfer ownership
    tokenIdToOwner[_tokenId] = _to;

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

    // Emit the transfer event.
    Transfer(_from, _to, _tokenId);
  }
}
library SafeMath {
  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;
  }
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"promoCreatedCount","outputs":[{"name":"","type":"uint256"}],"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":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":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_name","type":"string"},{"name":"_plateNo","type":"bytes7"},{"name":"_price","type":"uint256"}],"name":"createPromoRide","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":false,"inputs":[{"name":"_name","type":"string"},{"name":"_plateNo","type":"bytes7"}],"name":"createContractRide","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToOwner","outputs":[{"name":"","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":"_tokenId","type":"uint256"}],"name":"getRide","outputs":[{"name":"rideName","type":"string"},{"name":"plateNumber","type":"bytes7"},{"name":"sellingPrice","type":"uint256"},{"name":"owner","type":"address"}],"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":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_plateNumber","type":"bytes7"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"plateNumber","type":"bytes7"},{"indexed":false,"name":"owner","type":"address"}],"name":"Created","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":"plateNumber","type":"bytes7"}],"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"}]

606060405266038d7ea4c6800060005566be78bd4c57d0006001556707d72165f25ed000600255341561003157600080fd5b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061230d806100c26000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e455461461015957806306fdde0314610182578063095ea7b3146102105780630a0f8168146102525780630b7e9c44146102a75780631051db34146102e057806318160ddd1461030d57806323b872dd1461033657806327d7874c146103975780632ba73c15146103d05780634a92fa06146104095780636352211e146104b357806363746b03146105165780636e9e48ef1461059857806370a08231146105fb5780637c7b0ff4146106485780638462151c1461075d57806395d89b41146107eb578063a3f4df7e14610879578063a9059cbb14610907578063b047fb5014610949578063b2e6ceeb1461099e578063b9186d7d146109c1578063cdf574f1146109f8578063eb5653d714610a35578063f76f8d7814610a98575b600080fd5b341561016457600080fd5b61016c610b26565b6040518082815260200191505060405180910390f35b341561018d57600080fd5b610195610b2c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021b57600080fd5b610250600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b6f565b005b341561025d57600080fd5b610265610c3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102de600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c65565b005b34156102eb57600080fd5b6102f3610d25565b604051808215151515815260200191505060405180910390f35b341561031857600080fd5b610320610d2e565b6040518082815260200191505060405180910390f35b341561034157600080fd5b610395600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d3b565b005b34156103a257600080fd5b6103ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d89565b005b34156103db57600080fd5b610407600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e65565b005b341561041457600080fd5b6104b1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803578ffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091908035906020019091905050610f41565b005b34156104be57600080fd5b6104d46004808035906020019091905050611044565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052157600080fd5b610596600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803578ffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190919050506110bd565b005b34156105a357600080fd5b6105b9600480803590602001909190505061112b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561060657600080fd5b610632600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061115e565b6040518082815260200191505060405180910390f35b341561065357600080fd5b61066960048080359060200190919050506111a7565b60405180806020018578ffffffffffffffffffffffffffffffffffffffffffffffffff191678ffffffffffffffffffffffffffffffffffffffffffffffffff191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b8381101561071f578082015181840152602081019050610704565b50505050905090810190601f16801561074c5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561076857600080fd5b610794600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112f4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d75780820151818401526020810190506107bc565b505050509050019250505060405180910390f35b34156107f657600080fd5b6107fe61142b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083e578082015181840152602081019050610823565b50505050905090810190601f16801561086b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561088457600080fd5b61088c61146e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108cc5780820151818401526020810190506108b1565b50505050905090810190601f1680156108f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561091257600080fd5b610947600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506114a7565b005b341561095457600080fd5b61095c6114df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109a957600080fd5b6109bf6004808035906020019091905050611505565b005b34156109cc57600080fd5b6109e2600480803590602001909190505061157a565b6040518082815260200191505060405180910390f35b610a33600480803590602001909190803578ffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050611597565b005b3415610a4057600080fd5b610a5660048080359060200190919050506119e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610aa357600080fd5b610aab611a14565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aeb578082015181840152602081019050610ad0565b50505050905090810190601f168015610b185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60095481565b610b34612101565b6040805190810160405280600b81526020017f43727970746f5269646573000000000000000000000000000000000000000000815250905090565b610b793382611a4d565b1515610b8457600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d0e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610d1957600080fd5b610d2281611ab9565b50565b60006001905090565b6000600a80549050905090565b610d458382611a4d565b1515610d5057600080fd5b610d5a8282611bc7565b1515610d6557600080fd5b610d6e82611c33565b1515610d7957600080fd5b610d84838383611c6c565b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e2157600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610efd57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f9f57600080fd5b611388600954101515610fb157600080fd5b849050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561100f57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b60008211151561101f5760005491505b60096000815480929190600101919050555061103d84848385611e6e565b5050505050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110b857600080fd5b919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111957600080fd5b611127828230600054611e6e565b5050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111af612101565b600080600080600a868154811015156111c457fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561126c5780601f106112415761010080835404028352916020019161126c565b820191906000526020600020905b81548152906001019060200180831161124f57829003601f168201915b505050505094508060010160009054906101000a9004790100000000000000000000000000000000000000000000000000029350600660008781526020019081526020016000205492506003600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b6112fc612115565b6000611306612115565b60008060006113148761115e565b9450600085141561134657600060405180591061132e5750595b90808252806020026020018201604052509550611421565b846040518059106113545750595b9080825280602002602001820160405250935061136f610d2e565b925060009150600090505b828111151561141d578673ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611410578084838151811015156113f957fe5b906020019060200201818152505081806001019250505b808060010191505061137a565b8395505b5050505050919050565b611433612101565b6040805190810160405280601081526020017f43727970746f5269646573546f6b656e00000000000000000000000000000000815250905090565b6040805190810160405280600b81526020017f43727970746f526964657300000000000000000000000000000000000000000081525081565b6114b13382611a4d565b15156114bc57600080fd5b6114c582611c33565b15156114d057600080fd5b6114db338383611c6c565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803391506003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061154a82611c33565b151561155557600080fd5b61155f8284611bc7565b151561156a57600080fd5b611575818385611c6c565b505050565b600060066000838152602001908152602001600020549050919050565b60008060008060006003600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450339350600660008881526020019081526020016000205492508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561162957600080fd5b61163284611c33565b151561163d57600080fd5b82341015151561164c57600080fd5b61166161165a84605c612092565b60646120cd565b915061166d34846120e8565b90506001548310156116aa5761168e6116878460c8612092565b605c6120cd565b6006600089815260200190815260200160002081905550611713565b6002548310156116e5576116c96116c2846078612092565b605c6120cd565b6006600089815260200190815260200160002081905550611712565b6116fa6116f3846073612092565b605c6120cd565b60066000898152602001908152602001600020819055505b5b61171e858589611c6c565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611794578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561179357600080fd5b5b7f244c8d791764c92e67dc1c26b493f2eb594a8c9b95a05e9035f4ae8162db37178784600660008b8152602001908152602001600020548888600a8d8154811015156117dc57fe5b90600052602060002090600202016000018c604051808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018378ffffffffffffffffffffffffffffffffffffffffffffffffff191678ffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561192b5780601f106119005761010080835404028352916020019161192b565b820191906000526020600020905b81548152906001019060200180831161190e57829003601f168201915b50509850505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561197f57600080fd5b85600a8881548110151561198f57fe5b906000526020600020906002020160010160006101000a81548166ffffffffffffff02191690837901000000000000000000000000000000000000000000000000009004021790555050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280601081526020017f43727970746f5269646573546f6b656e0000000000000000000000000000000081525081565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b6c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b6757600080fd5b611bc4565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611bc357600080fd5b5b50565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515611dca57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b611e76612129565b600060408051908101604052808781526020018678ffffffffffffffffffffffffffffffffffffffffffffffffff191681525091506001600a8054806001018281611ec19190612165565b916000526020600020906002020160008590919091506000820151816000019080519060200190611ef3929190612197565b5060208201518160010160006101000a81548166ffffffffffffff02191690837901000000000000000000000000000000000000000000000000009004021790555050500390508063ffffffff1681141515611f4e57600080fd5b7fb7c87e350adecb143af1c0661593c39602846e00fb77d28b4ff88247a4bc7e158187878760405180858152602001806020018478ffffffffffffffffffffffffffffffffffffffffffffffffff191678ffffffffffffffffffffffffffffffffffffffffffffffffff191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b8381101561202957808201518184015260208101905061200e565b50505050905090810190601f1680156120565780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a182600660008381526020019081526020016000208190555061208a60008583611c6c565b505050505050565b60008060008414156120a757600091506120c6565b82840290508284828115156120b857fe5b041415156120c257fe5b8091505b5092915050565b60008082848115156120db57fe5b0490508091505092915050565b60008282111515156120f657fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b604080519081016040528061213c612217565b8152602001600078ffffffffffffffffffffffffffffffffffffffffffffffffff191681525090565b81548183558181151161219257600202816002028360005260206000209182019101612191919061222b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121d857805160ff1916838001178555612206565b82800160010185558215612206579182015b828111156122055782518255916020019190600101906121ea565b5b5090506122139190612274565b5090565b602060405190810160405280600081525090565b61227191905b8082111561226d576000808201600061224a9190612299565b6001820160006101000a81549066ffffffffffffff021916905550600201612231565b5090565b90565b61229691905b8082111561229257600081600090555060010161227a565b5090565b90565b50805460018160011615610100020316600290046000825580601f106122bf57506122de565b601f0160209004906000526020600020908101906122dd9190612274565b5b505600a165627a7a723058204a630fe259f035ee27f5aa409bde326f7cb1e81bfda386231548bd6c9344c0990029

Deployed Bytecode

0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e455461461015957806306fdde0314610182578063095ea7b3146102105780630a0f8168146102525780630b7e9c44146102a75780631051db34146102e057806318160ddd1461030d57806323b872dd1461033657806327d7874c146103975780632ba73c15146103d05780634a92fa06146104095780636352211e146104b357806363746b03146105165780636e9e48ef1461059857806370a08231146105fb5780637c7b0ff4146106485780638462151c1461075d57806395d89b41146107eb578063a3f4df7e14610879578063a9059cbb14610907578063b047fb5014610949578063b2e6ceeb1461099e578063b9186d7d146109c1578063cdf574f1146109f8578063eb5653d714610a35578063f76f8d7814610a98575b600080fd5b341561016457600080fd5b61016c610b26565b6040518082815260200191505060405180910390f35b341561018d57600080fd5b610195610b2c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021b57600080fd5b610250600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b6f565b005b341561025d57600080fd5b610265610c3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102de600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c65565b005b34156102eb57600080fd5b6102f3610d25565b604051808215151515815260200191505060405180910390f35b341561031857600080fd5b610320610d2e565b6040518082815260200191505060405180910390f35b341561034157600080fd5b610395600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d3b565b005b34156103a257600080fd5b6103ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d89565b005b34156103db57600080fd5b610407600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e65565b005b341561041457600080fd5b6104b1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803578ffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091908035906020019091905050610f41565b005b34156104be57600080fd5b6104d46004808035906020019091905050611044565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052157600080fd5b610596600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803578ffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190919050506110bd565b005b34156105a357600080fd5b6105b9600480803590602001909190505061112b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561060657600080fd5b610632600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061115e565b6040518082815260200191505060405180910390f35b341561065357600080fd5b61066960048080359060200190919050506111a7565b60405180806020018578ffffffffffffffffffffffffffffffffffffffffffffffffff191678ffffffffffffffffffffffffffffffffffffffffffffffffff191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b8381101561071f578082015181840152602081019050610704565b50505050905090810190601f16801561074c5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561076857600080fd5b610794600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112f4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d75780820151818401526020810190506107bc565b505050509050019250505060405180910390f35b34156107f657600080fd5b6107fe61142b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083e578082015181840152602081019050610823565b50505050905090810190601f16801561086b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561088457600080fd5b61088c61146e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108cc5780820151818401526020810190506108b1565b50505050905090810190601f1680156108f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561091257600080fd5b610947600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506114a7565b005b341561095457600080fd5b61095c6114df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109a957600080fd5b6109bf6004808035906020019091905050611505565b005b34156109cc57600080fd5b6109e2600480803590602001909190505061157a565b6040518082815260200191505060405180910390f35b610a33600480803590602001909190803578ffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050611597565b005b3415610a4057600080fd5b610a5660048080359060200190919050506119e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610aa357600080fd5b610aab611a14565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aeb578082015181840152602081019050610ad0565b50505050905090810190601f168015610b185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60095481565b610b34612101565b6040805190810160405280600b81526020017f43727970746f5269646573000000000000000000000000000000000000000000815250905090565b610b793382611a4d565b1515610b8457600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d0e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610d1957600080fd5b610d2281611ab9565b50565b60006001905090565b6000600a80549050905090565b610d458382611a4d565b1515610d5057600080fd5b610d5a8282611bc7565b1515610d6557600080fd5b610d6e82611c33565b1515610d7957600080fd5b610d84838383611c6c565b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e2157600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610efd57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f9f57600080fd5b611388600954101515610fb157600080fd5b849050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561100f57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b60008211151561101f5760005491505b60096000815480929190600101919050555061103d84848385611e6e565b5050505050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110b857600080fd5b919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111957600080fd5b611127828230600054611e6e565b5050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111af612101565b600080600080600a868154811015156111c457fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561126c5780601f106112415761010080835404028352916020019161126c565b820191906000526020600020905b81548152906001019060200180831161124f57829003601f168201915b505050505094508060010160009054906101000a9004790100000000000000000000000000000000000000000000000000029350600660008781526020019081526020016000205492506003600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b6112fc612115565b6000611306612115565b60008060006113148761115e565b9450600085141561134657600060405180591061132e5750595b90808252806020026020018201604052509550611421565b846040518059106113545750595b9080825280602002602001820160405250935061136f610d2e565b925060009150600090505b828111151561141d578673ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611410578084838151811015156113f957fe5b906020019060200201818152505081806001019250505b808060010191505061137a565b8395505b5050505050919050565b611433612101565b6040805190810160405280601081526020017f43727970746f5269646573546f6b656e00000000000000000000000000000000815250905090565b6040805190810160405280600b81526020017f43727970746f526964657300000000000000000000000000000000000000000081525081565b6114b13382611a4d565b15156114bc57600080fd5b6114c582611c33565b15156114d057600080fd5b6114db338383611c6c565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803391506003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061154a82611c33565b151561155557600080fd5b61155f8284611bc7565b151561156a57600080fd5b611575818385611c6c565b505050565b600060066000838152602001908152602001600020549050919050565b60008060008060006003600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450339350600660008881526020019081526020016000205492508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561162957600080fd5b61163284611c33565b151561163d57600080fd5b82341015151561164c57600080fd5b61166161165a84605c612092565b60646120cd565b915061166d34846120e8565b90506001548310156116aa5761168e6116878460c8612092565b605c6120cd565b6006600089815260200190815260200160002081905550611713565b6002548310156116e5576116c96116c2846078612092565b605c6120cd565b6006600089815260200190815260200160002081905550611712565b6116fa6116f3846073612092565b605c6120cd565b60066000898152602001908152602001600020819055505b5b61171e858589611c6c565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611794578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561179357600080fd5b5b7f244c8d791764c92e67dc1c26b493f2eb594a8c9b95a05e9035f4ae8162db37178784600660008b8152602001908152602001600020548888600a8d8154811015156117dc57fe5b90600052602060002090600202016000018c604051808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018378ffffffffffffffffffffffffffffffffffffffffffffffffff191678ffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561192b5780601f106119005761010080835404028352916020019161192b565b820191906000526020600020905b81548152906001019060200180831161190e57829003601f168201915b50509850505050505050505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561197f57600080fd5b85600a8881548110151561198f57fe5b906000526020600020906002020160010160006101000a81548166ffffffffffffff02191690837901000000000000000000000000000000000000000000000000009004021790555050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280601081526020017f43727970746f5269646573546f6b656e0000000000000000000000000000000081525081565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b6c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611b6757600080fd5b611bc4565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611bc357600080fd5b5b50565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515611dca57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b611e76612129565b600060408051908101604052808781526020018678ffffffffffffffffffffffffffffffffffffffffffffffffff191681525091506001600a8054806001018281611ec19190612165565b916000526020600020906002020160008590919091506000820151816000019080519060200190611ef3929190612197565b5060208201518160010160006101000a81548166ffffffffffffff02191690837901000000000000000000000000000000000000000000000000009004021790555050500390508063ffffffff1681141515611f4e57600080fd5b7fb7c87e350adecb143af1c0661593c39602846e00fb77d28b4ff88247a4bc7e158187878760405180858152602001806020018478ffffffffffffffffffffffffffffffffffffffffffffffffff191678ffffffffffffffffffffffffffffffffffffffffffffffffff191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b8381101561202957808201518184015260208101905061200e565b50505050905090810190601f1680156120565780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a182600660008381526020019081526020016000208190555061208a60008583611c6c565b505050505050565b60008060008414156120a757600091506120c6565b82840290508284828115156120b857fe5b041415156120c257fe5b8091505b5092915050565b60008082848115156120db57fe5b0490508091505092915050565b60008282111515156120f657fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b604080519081016040528061213c612217565b8152602001600078ffffffffffffffffffffffffffffffffffffffffffffffffff191681525090565b81548183558181151161219257600202816002028360005260206000209182019101612191919061222b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121d857805160ff1916838001178555612206565b82800160010185558215612206579182015b828111156122055782518255916020019190600101906121ea565b5b5090506122139190612274565b5090565b602060405190810160405280600081525090565b61227191905b8082111561226d576000808201600061224a9190612299565b6001820160006101000a81549066ffffffffffffff021916905550600201612231565b5090565b90565b61229691905b8082111561229257600081600090555060010161227a565b5090565b90565b50805460018160011615610100020316600290046000825580601f106122bf57506122de565b601f0160209004906000526020600020908101906122dd9190612274565b5b505600a165627a7a723058204a630fe259f035ee27f5aa409bde326f7cb1e81bfda386231548bd6c9344c0990029

Swarm Source

bzzr://4a630fe259f035ee27f5aa409bde326f7cb1e81bfda386231548bd6c9344c099

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.