Contract 0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a

 

TxHash Block Age From To Value [TxFee]
0x367dd65337c2f6b87e4ee17010ef95812b73c8ce9025801a564c98682849f11f73680657 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000099046
0x6c6a88652c59c1bc17b7443ef59b5873ade05007699cef38f78e3d0647e238f173680527 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000038128
0x22c62755514a8d1f4880ee28263d3ee19169b250fde819800a570e9970055491734989210 days 16 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000047162
0xe1b3a46a327b99308a2f313f51bf10f12eaf55c1a9ef1d92ae29a815bd2e82ae733524012 days 23 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000171856
0x7c91b5505a0b8db49cefb56af6ab664dfd0fba52a5f48678cb76755936dcbd09733521912 days 23 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.0001861574
0x3b0149542580696ccf3f62dd4fc2b8cbd98ff36f11df033097ea70a2a9cbe535732976913 days 19 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000125838
0xbd33ad45391022c534d874ed827ae70b47ad2452f92fa0ebee2119d4e060db92732975713 days 19 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.001056123
0x56da9d8f9d4ef3363d779e4cc7a5c9798b0604c45836fc55ecbaf9067c4e4902732972813 days 19 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.002118025
0x993e5f6377dd3469e006f28e54c9bb840e6c741be64204a53a9d4608c3f13f4d728422220 days 22 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.0025126
0x5ae5da81bffdf1b569d0a0d909e248a36582d151312ebde9f9615ac95e3b14a1728418020 days 22 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000705162
0x7776117cb370d7a87115b71feb7025f17a03daf5b212d5fb9e7e142e97b26372725394527 days 18 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.00053939
0x475a74e4ca6337b27fd1856f4fa1d628887b8d8d74272a129a28c74039709092725393527 days 18 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.00021482
0x6e829e1fb8ead632a812423b3c03fdf70e1ada1eb214c05037c9edaa005b7c1e725392027 days 18 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.001569975
0x57a00b0bcccc66423556a181b8749f36dc9da138bbcaa18dfad70dc4d27e6e7e722441134 days 18 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.00021482
0x4026119ab3a3d06d3601f0205aaeb425509f2c804f78598aade3c491d8895d80722440634 days 18 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.00053939
0x7bf248019e088e5d14662ab06f09b6c078c69c1bf6a847a4c2926efdb1531931722440034 days 18 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.001884354
0x5c56a8ca3940033348069c95b666eae6ea910559c45de4d0b5b41f7cc621945e721996135 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000260226
0x4f3f55ff2d409d853f3d52fb2c898fd74571c397496bfce0433891e09e30c32b721994635 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000592716
0x97919bacf5b73c262760b66d0abdd8ffa3e0c53b99e680bd8b613d8a0b41aa68721678036 days 14 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000228028
0x63a6d8b493e97d76062e65e383df15e4aff27eada787ada2bff82c201cd7b8e6721676936 days 14 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000628118
0xb9988e1b740e49906f88f039c8e65f16d4e1284a2c464f36aa10081539c1fe27720656439 days 46 mins ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000171856
0x2b22ce78dae4e871d7756c516e8f20e24b40ed61f2cfbd9400295acd52f0691e720655339 days 50 mins ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.00040469
0x52c8249324733fcc4b472593b3be065970d474a9338d3cf36cedf489a019b012719447141 days 16 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000085928
0x31c0a5938f0f1bffead9575baabd054309f7f21341b612310ff84043d065d74e719446741 days 16 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000085928
0xc77319aed264557840bb01f55b383b15682606151e81939031e33b183f57ebdf719446341 days 16 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c IN  0x4e19d015b2b4ff6c0aefc078c9ae1c079bb6a64a0 Ether0.000278658
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)

Contract Name:
UserRegistry

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No

Runs (Optimizer):
200

Contract Source Code

/**
 * UserRegistry.sol
 * Mt Pelerin user registry.

 * The unflattened code is available through this github tag:
 * https://github.com/MtPelerin/MtPelerin-protocol/tree/etherscan-verify-batch-1

 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved

 * @notice All matters regarding the intellectual property of this code 
 * @notice or software are subject to Swiss Law without reference to its 
 * @notice conflicts of law rules.

 * @notice License for each contract is available in the respective file
 * @notice or in the LICENSE.md file.
 * @notice https://github.com/MtPelerin/

 * @notice Code by OpenZeppelin is copyrighted and licensed on their repository:
 * @notice https://github.com/OpenZeppelin/openzeppelin-solidity
 */

pragma solidity ^0.4.24;

// File: contracts/zeppelin/ownership/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

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

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

// File: contracts/Authority.sol

/**
 * @title Authority
 * @dev The Authority contract has an authority address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 * Authority means to represent a legal entity that is entitled to specific rights
 *
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 *
 * Error messages
 * AU01: Message sender must be an authority
 */
contract Authority is Ownable {

  address authority;

  /**
   * @dev Throws if called by any account other than the authority.
   */
  modifier onlyAuthority {
    require(msg.sender == authority, "AU01");
    _;
  }

  /**
   * @dev return the address associated to the authority
   */
  function authorityAddress() public view returns (address) {
    return authority;
  }

  /**
   * @dev rdefines an authority
   * @param _name the authority name
   * @param _address the authority address.
   */
  function defineAuthority(string _name, address _address) public onlyOwner {
    emit AuthorityDefined(_name, _address);
    authority = _address;
  }

  event AuthorityDefined(
    string name,
    address _address
  );
}

// File: contracts/interface/IRule.sol

/**
 * @title IRule
 * @dev IRule interface
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 **/
interface IRule {
  function isAddressValid(address _address) external view returns (bool);
  function isTransferValid(address _from, address _to, uint256 _amount)
    external view returns (bool);
}

// File: contracts/interface/IUserRegistry.sol

/**
 * @title IUserRegistry
 * @dev IUserRegistry interface
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 **/
contract IUserRegistry {

  function registerManyUsers(address[] _addresses, uint256 _validUntilTime)
    public;

  function attachManyAddresses(uint256[] _userIds, address[] _addresses)
    public;

  function detachManyAddresses(address[] _addresses)
    public;

  function userCount() public view returns (uint256);
  function userId(address _address) public view returns (uint256);
  function addressConfirmed(address _address) public view returns (bool);
  function validUntilTime(uint256 _userId) public view returns (uint256);
  function suspended(uint256 _userId) public view returns (bool);
  function extended(uint256 _userId, uint256 _key)
    public view returns (uint256);

  function isAddressValid(address _address) public view returns (bool);
  function isValid(uint256 _userId) public view returns (bool);

  function registerUser(address _address, uint256 _validUntilTime) public;
  function attachAddress(uint256 _userId, address _address) public;
  function confirmSelf() public;
  function detachAddress(address _address) public;
  function detachSelf() public;
  function detachSelfAddress(address _address) public;
  function suspendUser(uint256 _userId) public;
  function unsuspendUser(uint256 _userId) public;
  function suspendManyUsers(uint256[] _userIds) public;
  function unsuspendManyUsers(uint256[] _userIds) public;
  function updateUser(uint256 _userId, uint256 _validUntil, bool _suspended)
    public;

  function updateManyUsers(
    uint256[] _userIds,
    uint256 _validUntil,
    bool _suspended) public;

  function updateUserExtended(uint256 _userId, uint256 _key, uint256 _value)
    public;

  function updateManyUsersExtended(
    uint256[] _userIds,
    uint256 _key,
    uint256 _value) public;
}

// File: contracts/UserRegistry.sol

/**
 * @title UserRegistry
 * @dev UserRegistry contract
 * Configure and manage users
 * Extended may be used externaly to store data within a user context
 *
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 *
 * Error messages
 * UR01: Users length does not match addresses length
 * UR02: UserId is invalid
 * UR03: WalletOwner is invalid
 * UR04: WalletOwner is already confirmed
 * UR05: User is already suspended
 * UR06: User is not suspended
*/
contract UserRegistry is IUserRegistry, Authority {

  struct User {
    uint256 validUntilTime;
    bool suspended;
    mapping(uint256 => uint256) extended;
  }
  struct WalletOwner {
    uint256 userId;
    bool confirmed;
  }

  mapping(uint256 => User) internal users;
  mapping(address => WalletOwner) internal walletOwners;
  uint256 public userCount;

  /**
   * @dev contructor
   **/
  constructor(address[] _addresses, uint256 _validUntilTime) public {
    for (uint256 i = 0; i < _addresses.length; i++) {
      registerUserInternal(_addresses[i], _validUntilTime);
      walletOwners[_addresses[i]].confirmed = true;
    }
  }

  /**
   * @dev register many users
   */
  function registerManyUsers(address[] _addresses, uint256 _validUntilTime)
    public onlyAuthority
  {
    for (uint256 i = 0; i < _addresses.length; i++) {
      registerUserInternal(_addresses[i], _validUntilTime);
    }
  }

  /**
   * @dev attach many addresses to many users
   */
  function attachManyAddresses(uint256[] _userIds, address[] _addresses)
    public onlyAuthority
  {
    require(_addresses.length == _userIds.length, "UR01");
    for (uint256 i = 0; i < _addresses.length; i++) {
      attachAddress(_userIds[i], _addresses[i]);
    }
  }

  /**
   * @dev detach many addresses association between addresses and their respective users
   */
  function detachManyAddresses(address[] _addresses) public onlyAuthority {
    for (uint256 i = 0; i < _addresses.length; i++) {
      detachAddress(_addresses[i]);
    }
  }

  /**
   * @dev number of user registred
   */
  function userCount() public view returns (uint256) {
    return userCount;
  }

  /**
   * @dev the userId associated to the provided address
   */
  function userId(address _address) public view returns (uint256) {
    return walletOwners[_address].userId;
  }

  /**
   * @dev the userId associated to the provided address if the user is valid
   */
  function validUserId(address _address) public view returns (uint256) {
    if (isAddressValid(_address)) {
      return walletOwners[_address].userId;
    }
    return 0;
  }

  /**
   * @dev the userId associated to the provided address
   */
  function addressConfirmed(address _address) public view returns (bool) {
    return walletOwners[_address].confirmed;
  }

  /**
   * @dev returns the time at which user validity ends
   */
  function validUntilTime(uint256 _userId) public view returns (uint256) {
    return users[_userId].validUntilTime;
  }

  /**
   * @dev is the user suspended
   */
  function suspended(uint256 _userId) public view returns (bool) {
    return users[_userId].suspended;
  }

  /**
   * @dev access to extended user data
   */
  function extended(uint256 _userId, uint256 _key)
    public view returns (uint256)
  {
    return users[_userId].extended[_key];
  }

  /**
   * @dev validity of the current user
   */
  function isAddressValid(address _address) public view returns (bool) {
    return walletOwners[_address].confirmed &&
      isValid(walletOwners[_address].userId);
  }

  /**
   * @dev validity of the current user
   */
  function isValid(uint256 _userId) public view returns (bool) {
    return isValidInternal(users[_userId]);
  }

  /**
   * @dev register a user
   */
  function registerUser(address _address, uint256 _validUntilTime)
    public onlyAuthority
  {
    registerUserInternal(_address, _validUntilTime);
  }

  /**
   * @dev register a user
   */
  function registerUserInternal(address _address, uint256 _validUntilTime)
    public
  {
    require(walletOwners[_address].userId == 0, "UR03");
    users[++userCount] = User(_validUntilTime, false);
    walletOwners[_address] = WalletOwner(userCount, false);
  }

  /**
   * @dev attach an address with a user
   */
  function attachAddress(uint256 _userId, address _address)
    public onlyAuthority
  {
    require(_userId > 0 && _userId <= userCount, "UR02");
    require(walletOwners[_address].userId == 0, "UR03");
    walletOwners[_address] = WalletOwner(_userId, false);
  }

  /**
   * @dev confirm the address by the user to activate it
   */
  function confirmSelf() public {
    require(walletOwners[msg.sender].userId != 0, "UR03");
    require(!walletOwners[msg.sender].confirmed, "UR04");
    walletOwners[msg.sender].confirmed = true;
  }

  /**
   * @dev detach the association between an address and its user
   */
  function detachAddress(address _address) public onlyAuthority {
    require(walletOwners[_address].userId != 0, "UR03");
    delete walletOwners[_address];
  }

  /**
   * @dev detach the association between an address and its user
   */
  function detachSelf() public {
    detachSelfAddress(msg.sender);
  }

  /**
   * @dev detach the association between an address and its user
   */
  function detachSelfAddress(address _address) public {
    uint256 senderUserId = walletOwners[msg.sender].userId;
    require(senderUserId != 0, "UR03");
    require(walletOwners[_address].userId == senderUserId, "UR06");
    delete walletOwners[_address];
  }

  /**
   * @dev suspend a user
   */
  function suspendUser(uint256 _userId) public onlyAuthority {
    require(_userId > 0 && _userId <= userCount, "UR02");
    require(!users[_userId].suspended, "UR06");
    users[_userId].suspended = true;
  }

  /**
   * @dev unsuspend a user
   */
  function unsuspendUser(uint256 _userId) public onlyAuthority {
    require(_userId > 0 && _userId <= userCount, "UR02");
    require(users[_userId].suspended, "UR06");
    users[_userId].suspended = false;
  }

  /**
   * @dev suspend many users
   */
  function suspendManyUsers(uint256[] _userIds) public onlyAuthority {
    for (uint256 i = 0; i < _userIds.length; i++) {
      suspendUser(_userIds[i]);
    }
  }

  /**
   * @dev unsuspend many users
   */
  function unsuspendManyUsers(uint256[] _userIds) public onlyAuthority {
    for (uint256 i = 0; i < _userIds.length; i++) {
      unsuspendUser(_userIds[i]);
    }
  }

  /**
   * @dev update a user
   */
  function updateUser(
    uint256 _userId,
    uint256 _validUntilTime,
    bool _suspended) public onlyAuthority
  {
    require(_userId > 0 && _userId <= userCount, "UR02");
    users[_userId].validUntilTime = _validUntilTime;
    users[_userId].suspended = _suspended;
  }

  /**
   * @dev update many users
   */
  function updateManyUsers(
    uint256[] _userIds,
    uint256 _validUntilTime,
    bool _suspended) public onlyAuthority
  {
    for (uint256 i = 0; i < _userIds.length; i++) {
      updateUser(_userIds[i], _validUntilTime, _suspended);
    }
  }

  /**
   * @dev update user extended information
   */
  function updateUserExtended(uint256 _userId, uint256 _key, uint256 _value)
    public onlyAuthority
  {
    require(_userId > 0 && _userId <= userCount, "UR02");
    users[_userId].extended[_key] = _value;
  }

  /**
   * @dev update many users' extended information
   */
  function updateManyUsersExtended(
    uint256[] _userIds,
    uint256 _key,
    uint256 _value) public onlyAuthority
  {
    for (uint256 i = 0; i < _userIds.length; i++) {
      updateUserExtended(_userIds[i], _key, _value);
    }
  }

  /**
   * @dev validity of the current user
   */
  function isValidInternal(User user) internal view returns (bool) {
    // solium-disable-next-line security/no-block-members
    return !user.suspended && user.validUntilTime > now;
  }
}

Contract ABI

[{"constant":false,"inputs":[{"name":"_userId","type":"uint256"}],"name":"suspendUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"}],"name":"validUntilTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"detachManyAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"userCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userId","type":"uint256"},{"name":"_key","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"updateUserExtended","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_validUntilTime","type":"uint256"}],"name":"registerManyUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_validUntilTime","type":"uint256"}],"name":"registerUserInternal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_userId","type":"uint256"},{"name":"_address","type":"address"}],"name":"attachAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"confirmSelf","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_userId","type":"uint256"}],"name":"unsuspendUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"detachAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"userId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userIds","type":"uint256[]"}],"name":"suspendManyUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authorityAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"validUserId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"detachSelf","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"addressConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"}],"name":"suspended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userIds","type":"uint256[]"},{"name":"_addresses","type":"address[]"}],"name":"attachManyAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"},{"name":"_key","type":"uint256"}],"name":"extended","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"detachSelfAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_userIds","type":"uint256[]"},{"name":"_validUntilTime","type":"uint256"},{"name":"_suspended","type":"bool"}],"name":"updateManyUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_userId","type":"uint256"},{"name":"_validUntilTime","type":"uint256"},{"name":"_suspended","type":"bool"}],"name":"updateUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isAddressValid","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userIds","type":"uint256[]"},{"name":"_key","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"updateManyUsersExtended","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_userIds","type":"uint256[]"}],"name":"unsuspendManyUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"}],"name":"isValid","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_validUntilTime","type":"uint256"}],"name":"registerUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_address","type":"address"}],"name":"defineAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_validUntilTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"AuthorityDefined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Contract Creation Code

60806040523480156200001157600080fd5b5060405162002f4838038062002f4883398101806040528101908080518201929190602001805190602001909291905050506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600090505b82518110156200014857620000c78382815181101515620000a757fe5b906020019060200201518362000151640100000000026401000000009004565b6001600360008584815181101515620000dc57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555080806001019150506200008a565b505050620002fc565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415156200020c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230330000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6040805190810160405280828152602001600015158152506002600060046000815460010191905081905581526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050506040805190810160405280600454815260200160001515815250600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505050565b612c3c806200030c6000396000f300608060405260043610610195576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062a05dc31461019a57806304462608146101c7578063050e388f1461020857806307973ccf1461026e578063161b456b1461029957806322a16d08146102da578063256664921461034a578063278d8a1e146103975780632c15f434146103e457806330010312146103fb578063322a3a5414610428578063376fe1021461046b57806338c34193146104c25780633c695d4e14610528578063560cbd5e1461057f57806357074510146105d65780635efefefe146105ed578063715018a614610648578063848a2d031461065f5780638da5cb5b146106a4578063a319d2ab146106fb578063a77c5265146107a4578063ada70256146107ef578063b9c777e614610832578063c250f1ea146108ae578063cf31ff86146108f1578063d6f0cd021461094c578063e24df2c2146109c6578063f2fde38b14610a2c578063f577a50014610a6f578063fa0b5e5514610ab4578063fc21e16714610b01575b600080fd5b3480156101a657600080fd5b506101c560048036038101908080359060200190929190505050610b8a565b005b3480156101d357600080fd5b506101f260048036038101908080359060200190929190505050610da0565b6040518082815260200191505060405180910390f35b34801561021457600080fd5b5061026c60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610dc0565b005b34801561027a57600080fd5b50610283610ec6565b6040518082815260200191505060405180910390f35b3480156102a557600080fd5b506102d8600480360381019080803590602001909291908035906020019092919080359060200190929190505050610ed0565b005b3480156102e657600080fd5b50610348600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919050505061104c565b005b34801561035657600080fd5b50610395600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611154565b005b3480156103a357600080fd5b506103e260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b005b3480156103f057600080fd5b506103f961158b565b005b34801561040757600080fd5b5061042660048036038101908080359060200190929190505050611768565b005b34801561043457600080fd5b50610469600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061197d565b005b34801561047757600080fd5b506104ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b5e565b6040518082815260200191505060405180910390f35b3480156104ce57600080fd5b5061052660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611baa565b005b34801561053457600080fd5b5061053d611cb0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561058b57600080fd5b506105c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cda565b6040518082815260200191505060405180910390f35b3480156105e257600080fd5b506105eb611d3e565b005b3480156105f957600080fd5b5061062e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d49565b604051808215151515815260200191505060405180910390f35b34801561065457600080fd5b5061065d611da2565b005b34801561066b57600080fd5b5061068a60048036038101908080359060200190929190505050611ea4565b604051808215151515815260200191505060405180910390f35b3480156106b057600080fd5b506106b9611ed1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561070757600080fd5b506107a26004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611ef6565b005b3480156107b057600080fd5b506107d9600480360381019080803590602001909291908035906020019092919050505061208e565b6040518082815260200191505060405180910390f35b3480156107fb57600080fd5b50610830600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120c0565b005b34801561083e57600080fd5b506108ac600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080351515906020019092919050505061229b565b005b3480156108ba57600080fd5b506108ef60048036038101908080359060200190929190803590602001909291908035151590602001909291905050506123a5565b005b3480156108fd57600080fd5b50610932600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061253e565b604051808215151515815260200191505060405180910390f35b34801561095857600080fd5b506109c46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001909291905050506125ea565b005b3480156109d257600080fd5b50610a2a600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126f4565b005b348015610a3857600080fd5b50610a6d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127fa565b005b348015610a7b57600080fd5b50610a9a60048036038101908080359060200190929190505050612861565b604051808215151515815260200191505060405180910390f35b348015610ac057600080fd5b50610aff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128b5565b005b348015610b0d57600080fd5b50610b88600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612988565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600081118015610c6157506004548111155b1515610cd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230320000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6002600082815260200190815260200160002060010160009054906101000a900460ff16151515610d6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230360000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016002600083815260200190815260200160002060010160006101000a81548160ff02191690831515021790555050565b600060026000838152602001908152602001600020600001549050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b8151811015610ec257610eb58282815181101515610ea657fe5b9060200190602002015161197d565b8080600101915050610e8c565b5050565b6000600454905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600083118015610fa757506004548311155b151561101b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230320000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060026000858152602001908152602001600020600201600084815260200190815260200160002081905550505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611113576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b825181101561114f57611142838281518110151561113257fe5b9060200190602002015183611154565b8080600101915050611118565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561120e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230330000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6040805190810160405280828152602001600015158152506002600060046000815460010191905081905581526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050506040805190810160405280600454815260200160001515815250600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821180156113d557506004548211155b1515611449576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230320000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515611503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230330000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b604080519081016040528083815260200160001515815250600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230330000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151561170b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230340000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008111801561183f57506004548111155b15156118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230320000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6002600082815260200190815260200160002060010160009054906101000a900460ff16151561194b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230360000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060010160006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611afd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230330000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff0219169055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b8151811015611cac57611c9f8282815181101515611c9057fe5b90602001906020020151610b8a565b8080600101915050611c76565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611ce58261253e565b15611d3457600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050611d39565b600090505b919050565b611d47336120c0565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dfd57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006002600083815260200190815260200160002060010160009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82518251141515612036576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b81518110156120895761207c838281518110151561205557fe5b90602001906020020151838381518110151561206d57fe5b906020019060200201516112fe565b808060010191505061203b565b505050565b600060026000848152602001908152602001600020600201600083815260200190815260200160002054905092915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905060008114151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230330000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515612239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230360000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a81549060ff021916905550505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612362576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b835181101561239f57612392848281518110151561238157fe5b9060200190602002015184846123a5565b8080600101915050612367565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561246a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008311801561247c57506004548311155b15156124f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f555230320000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816002600085815260200190815260200160002060000181905550806002600085815260200190815260200160002060010160006101000a81548160ff021916908315150217905550505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1680156125e357506125e2600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612861565b5b9050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b83518110156126ee576126e184828151811015156126d057fe5b906020019060200201518484610ed0565b80806001019150506126b6565b50505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b81518110156127f6576127e982828151811015156127da57fe5b90602001906020020151611768565b80806001019150506127c0565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561285557600080fd5b61285e81612af8565b50565b60006128ae60026000848152602001908152602001600020604080519081016040529081600082015481526020016001820160009054906101000a900460ff161515151581525050612bf2565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561297a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6129848282611154565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129e357600080fd5b7fc8c81ac5a1b95ead7b5f71eafa51c9a1436e443c27ba33460885b9debe345abf828260405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015612a78578082015181840152602081019050612a5d565b50505050905090810190601f168015612aa55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b3457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008160200151158015612c095750428260000151115b90509190505600a165627a7a72305820003ea36d035c1cda57d299bb611404946b1f7968df454945623923bf5791b2470029000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000

Swarm Source

bzzr://003ea36d035c1cda57d299bb611404946b1f7968df454945623923bf5791b247
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.