Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 47224 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x86ef3ec49e3ea47ca1b4446564822cff6020b21aat txn 0x42e4f09d2e67bbd9bd224dc171080b8372a9da5033583abc996f3f9c689c564f
Token Balance:
 Latest 25 transactions from a total of 47224 transactions

TxHash Age From To Value [TxFee]
0x8a0e5814fbe5db7bb1efd2c43774f26d3c6931e9f6e25aea665a0f0a1ded1f5f57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000281005
0x7f4007e29122252caa85e9645a7bb1a332cfca856b4b839638da2547a0e944e457 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000337206
0xac892484cc7f269b168e3b91a1841f5d752f721a540428502d9b9b24333b995557 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000336822
0x2d75b2ceab3358d0d927f07668f76abb0619db8cc47ec083282edb0ba156c1f057 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000337206
0x4adf058524309fa86ed7a9d3b8e5ffcea8593d0b5faf5e9116299b46174762b057 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003709266
0x30984d60c3e494407b92c44f633fd50ad83a51d0836c9144feb7618e684ad28c57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003765467
0x8b301f967d32c90214cf5cf7ebb5c023d786cc4f6ad1a5cafa67d9e8a980e87357 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000393407
0xbfecd410eb85e248a91cac2282873144d0bf0584b4f5bfe4dfbf924781d0f46057 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0004833286
0x1cb7712c0e7fd52ebde5e776ceca0f03a605047663133316f85fc5a0f0b0479657 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0004833286
0x63079a319486da147d024723613add68a00cf5703b7071145e23b2e582df19f757 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0004833286
0x5809fed263a1eda3c19e93b96480d8709e09d13f74864612d4125d099c1faf9f57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0004383678
0x6d95ce61a78ef80edd98b899d890c53a7b01f0118ad926fe363a4da8cb6ffa0657 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0004383678
0xefde60c1140cf6a438d84d127263ffc34fc23fd3e3a59201af4520c911bd673a57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000224804
0xe1496e902f46ae3bdb58c1653843da807ac62a53c8398f05718909a718b821c557 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0001854633
0x799b8d3d78fd0e6f176fec81e270730816696fe279a3f109b18bdd9cb228ec7a57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000224804
0xc21957145b42535bd7b46ad908ad9d9a2b266afd69f24766290603b87e81743d57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000224804
0xa5ff3355d81a2fb5fb959c5fccda9c539a4df4253bcdffc988c06611796692fa57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.000224804
0xbf6c5de1eb5d191939d238f0576776fe1313b0367b2b60296146573b118a93c157 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0002023236
0xba107ac906ad32d2c2ce72206f6c8b63667b82b22d3d7ff6131247780cfcda4357 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0002023236
0x91c6fedb16559469cb599e59937f022d454ab5164fbf0441863d81ba3dd6e45257 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0002020932
0x1e07e5d50a44593cf9f9fcdfe7a078ec7fa5baba92a71b9ed9c5e129905f9a8957 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003709266
0xc7204c883ac261b2015aa5e3710cb92396c3af7a7b6221041bd65db04b47506557 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003709266
0xaeea74a38a6ed88564737ae827e3546bcceff1ff19b51272f2c2bbec3e69674c57 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003709266
0x2e1d500d2bb533e8a3cea5133c1abf8e2c06ad505a38900b8748678d7aa4371757 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003709266
0x33f13da1ef194a17c515c0e4e26c6700678cdc7874cc5cd5faaa54f0b38682e057 days 14 hrs ago0x19898a292f866f31d8265ecc7646f2a1abb86ebc  IN   0x017925fdb447544da8ed671b5305461cfc6c6e1d0 Ether0.0003709266
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: AccountRegistryLogic
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.24;

/**
 * @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 OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() 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 transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}


contract SigningLogicInterface {
  function recoverSigner(bytes32 _hash, bytes _sig) external pure returns (address);
  function generateRequestAttestationSchemaHash(
    address _subject,
    address _attester,
    address _requester,
    bytes32 _dataHash,
    uint256[] _typeIds,
    bytes32 _nonce
    ) external view returns (bytes32);
  function generateAttestForDelegationSchemaHash(
    address _subject,
    address _requester,
    uint256 _reward,
    bytes32 _paymentNonce,
    bytes32 _dataHash,
    uint256[] _typeIds,
    bytes32 _requestNonce
    ) external view returns (bytes32);
  function generateContestForDelegationSchemaHash(
    address _requester,
    uint256 _reward,
    bytes32 _paymentNonce
  ) external view returns (bytes32);
  function generateStakeForDelegationSchemaHash(
    address _subject,
    uint256 _value,
    bytes32 _paymentNonce,
    bytes32 _dataHash,
    uint256[] _typeIds,
    bytes32 _requestNonce,
    uint256 _stakeDuration
    ) external view returns (bytes32);
  function generateRevokeStakeForDelegationSchemaHash(
    uint256 _subjectId,
    uint256 _attestationId
    ) external view returns (bytes32);
  function generateAddAddressSchemaHash(
    address _senderAddress,
    bytes32 _nonce
    ) external view returns (bytes32);
  function generateVoteForDelegationSchemaHash(
    uint16 _choice,
    address _voter,
    bytes32 _nonce,
    address _poll
    ) external view returns (bytes32);
  function generateReleaseTokensSchemaHash(
    address _sender,
    address _receiver,
    uint256 _amount,
    bytes32 _uuid
    ) external view returns (bytes32);
  function generateLockupTokensDelegationSchemaHash(
    address _sender,
    uint256 _amount,
    bytes32 _nonce
    ) external view returns (bytes32);
}

interface AccountRegistryInterface {
  function accountIdForAddress(address _address) public view returns (uint256);
  function addressBelongsToAccount(address _address) public view returns (bool);
  function createNewAccount(address _newUser) external;
  function addAddressToAccount(
    address _newAddress,
    address _sender
    ) external;
  function removeAddressFromAccount(address _addressToRemove) external;
}

/**
 * @title Bloom account registry
 * @notice Account Registry Logic provides a public interface for Bloom and users to 
 * create and control their Bloom Ids.
 * Users can associate create and accept invites and associate additional addresses with their BloomId.
 * As the Bloom protocol matures, this contract can be upgraded to enable new capabilities
 * without needing to migrate the underlying Account Registry storage contract.
 *
 * In order to invite someone, a user must generate a new public key private key pair
 * and sign their own ethereum address. The user provides this signature to the
 * `createInvite` function where the public key is recovered and the invite is created.
 * The inviter should then share the one-time-use private key out of band with the recipient.
 * The recipient accepts the invite by signing their own address and passing that signature
 * to the `acceptInvite` function. The contract should recover the same public key, demonstrating
 * that the recipient knows the secret and is likely the person intended to receive the invite.
 *
 * @dev This invite model is supposed to aid usability by not requiring the inviting user to know
 *   the Ethereum address of the recipient. If the one-time-use private key is leaked then anyone
 *   else can accept the invite. This is an intentional tradeoff of this invite system. A well built
 *   dApp should generate the private key on the backend and sign the user's address for them. Likewise,
 *   the signing should also happen on the backend (not visible to the user) for signing an address to
 *   accept an invite. This reduces the private key exposure so that the dApp can still require traditional
 *   checks like verifying an associated email address before finally signing the user's Ethereum address.
 *
 * @dev The private key generated for this invite system should NEVER be used for an Ethereum address.
 *   The private key should be used only for the invite flow and then it should effectively be discarded.
 *
 * @dev If a user DOES know the address of the person they are inviting then they can still use this
 *   invite system. All they have to do then is sign the address of the user being invited and share the
 *   signature with them.
 */
contract AccountRegistryLogic is Ownable{

  SigningLogicInterface public signingLogic;
  AccountRegistryInterface public registry;
  address public registryAdmin;

  /**
   * @notice The AccountRegistry constructor configures the signing logic implementation
   *  and creates an account for the user who deployed the contract.
   * @dev The owner is also set as the original registryAdmin, who has the privilege to
   *  create accounts outside of the normal invitation flow.
   * @param _signingLogic The address of the deployed SigningLogic contract
   * @param _registry The address of the deployed account registry
   */
  constructor(
    SigningLogicInterface _signingLogic,
    AccountRegistryInterface _registry
    ) public {
    signingLogic = _signingLogic;
    registry = _registry;
    registryAdmin = owner;
  }

  event AccountCreated(uint256 indexed accountId, address indexed newUser);
  event InviteCreated(address indexed inviter, address indexed inviteAddress);
  event InviteAccepted(address recipient, address indexed inviteAddress);
  event AddressAdded(uint256 indexed accountId, address indexed newAddress);
  event AddressRemoved(uint256 indexed accountId, address indexed oldAddress);
  event RegistryAdminChanged(address oldRegistryAdmin, address newRegistryAdmin);
  event SigningLogicChanged(address oldSigningLogic, address newSigningLogic);
  event AccountRegistryChanged(address oldRegistry, address newRegistry);

  /**
   * @dev Addresses with Bloom accounts already are not allowed
   */
  modifier onlyNonUser {
    require(!registry.addressBelongsToAccount(msg.sender));
    _;
  }

  /**
   * @dev Addresses without Bloom accounts already are not allowed
   */
  modifier onlyUser {
    require(registry.addressBelongsToAccount(msg.sender));
    _;
  }

  /**
   * @dev Zero address not allowed
   */
  modifier nonZero(address _address) {
    require(_address != 0);
    _;
  }

  /**
   * @dev Restricted to registryAdmin
   */
  modifier onlyRegistryAdmin {
    require(msg.sender == registryAdmin);
    _;
  }

  // Signatures contain a nonce to make them unique. usedSignatures tracks which signatures
  //  have been used so they can't be replayed
  mapping (bytes32 => bool) public usedSignatures;

  // Mapping of public keys as Ethereum addresses to invite information
  // NOTE: the address keys here are NOT Ethereum addresses, we just happen
  // to work with the public keys in terms of Ethereum address strings because
  // this is what `ecrecover` produces when working with signed text.
  mapping(address => bool) public pendingInvites;

  /**
   * @notice Change the implementation of the SigningLogic contract by setting a new address
   * @dev Restricted to AccountRegistry owner and new implementation address cannot be 0x0
   * @param _newSigningLogic Address of new SigningLogic implementation
   */
  function setSigningLogic(SigningLogicInterface _newSigningLogic) public nonZero(_newSigningLogic) onlyOwner {
    address oldSigningLogic = signingLogic;
    signingLogic = _newSigningLogic;
    emit SigningLogicChanged(oldSigningLogic, signingLogic);
  }

  /**
   * @notice Change the address of the registryAdmin, who has the privilege to create new accounts
   * @dev Restricted to AccountRegistry owner and new admin address cannot be 0x0
   * @param _newRegistryAdmin Address of new registryAdmin
   */
  function setRegistryAdmin(address _newRegistryAdmin) public onlyOwner nonZero(_newRegistryAdmin) {
    address _oldRegistryAdmin = registryAdmin;
    registryAdmin = _newRegistryAdmin;
    emit RegistryAdminChanged(_oldRegistryAdmin, registryAdmin);
  }

  /**
   * @notice Change the address of AccountRegistry, which enables authorization of subject comments
   * @dev Restricted to owner and new address cannot be 0x0
   * @param _newRegistry Address of new Account Registry contract
   */
  function setAccountRegistry(AccountRegistryInterface _newRegistry) public nonZero(_newRegistry) onlyOwner {
    address oldRegistry = registry;
    registry = _newRegistry;
    emit AccountRegistryChanged(oldRegistry, registry);
  }

  /**
   * @notice Create an invite using the signing model described in the contract description
   * @dev Recovers public key of invitation key pair using 
   * @param _sig Signature of one-time-use keypair generated for invite
   */
  function createInvite(bytes _sig) public onlyUser {
    address inviteAddress = signingLogic.recoverSigner(keccak256(abi.encodePacked(msg.sender)), _sig);
    require(!pendingInvites[inviteAddress]);
    pendingInvites[inviteAddress] = true;
    emit InviteCreated(msg.sender, inviteAddress);
  }

  /**
   * @notice Accept an invite using the signing model described in the contract description
   * @dev Recovers public key of invitation key pair
   * Assumes signed message matches format described in recoverSigner
   * Restricted to addresses that are not already registered by a user
   * Invite is accepted by setting recipient to nonzero address for invite associated with recovered public key
   * and creating an account for the sender
   * @param _sig Signature for `msg.sender` via the same key that issued the initial invite
   */
  function acceptInvite(bytes _sig) public onlyNonUser {
    address inviteAddress = signingLogic.recoverSigner(keccak256(abi.encodePacked(msg.sender)), _sig);
    require(pendingInvites[inviteAddress]);
    pendingInvites[inviteAddress] = false;
    createAccountForUser(msg.sender);
    emit InviteAccepted(msg.sender, inviteAddress);
  }

  /**
   * @notice Create an account instantly without an invitation
   * @dev Restricted to the "invite admin" which is managed by the Bloom team
   * @param _newUser Address of the user receiving an account
   */
  function createAccount(address _newUser) public onlyRegistryAdmin {
    createAccountForUser(_newUser);
  }

  /**
   * @notice Create an account for a user and emit an event
   * @dev Records address as taken so it cannot be used to sign up for another account
   *  accountId is a unique ID across all users generated by calculating the length of the accounts array
   *  addressId is the position in the unordered list of addresses associated with a user account 
   *  AccountInfo is a struct containing accountId and addressId so all addresses can be found for a user
   * new Login structs represent user accounts. The first one is pushed onto the array associated with a user's accountID
   * To push a new account onto the same Id, accounts array should be addressed accounts[_accountID - 1].push
   * @param _newUser Address of the new user
   */
  function createAccountForUser(address _newUser) internal nonZero(_newUser) {
    registry.createNewAccount(_newUser);
    uint256 _accountId = registry.accountIdForAddress(_newUser);
    emit AccountCreated(_accountId, _newUser);
  }

  /**
   * @notice Add an address to an existing id on behalf of a user to pay the gas costs
   * @param _newAddress Address to add to account
   * @param _newAddressSig Signed message from new address confirming ownership by the sender
   * @param _senderSig Signed message from address currently associated with account confirming intention
   * @param _sender User requesting this action
   * @param _nonce uuid used when generating sigs to make them one time use
   */
  function addAddressToAccountFor(
    address _newAddress,
    bytes _newAddressSig,
    bytes _senderSig,
    address _sender,
    bytes32 _nonce
    ) public onlyRegistryAdmin {
    addAddressToAccountForUser(_newAddress, _newAddressSig, _senderSig, _sender, _nonce);
  }

  /**
   * @notice Add an address to an existing id by a user
   * @dev Wrapper for addAddressTooAccountForUser with msg.sender as sender
   * @param _newAddress Address to add to account
   * @param _newAddressSig Signed message from new address confirming ownership by the sender
   * @param _senderSig Signed message from msg.sender confirming intention by the sender
   * @param _nonce uuid used when generating sigs to make them one time use
   */
  function addAddressToAccount(
    address _newAddress,
    bytes _newAddressSig,
    bytes _senderSig,
    bytes32 _nonce
    ) public onlyUser {
    addAddressToAccountForUser(_newAddress, _newAddressSig, _senderSig, msg.sender, _nonce);
  }

  /**
   * @notice Add an address to an existing id 
   * @dev Checks that new address signed _sig 
   * @param _newAddress Address to add to account
   * @param _newAddressSig Signed message from new address confirming ownership by the sender
   * @param _senderSig Signed message from new address confirming ownership by the sender
   * @param _sender User requesting this action
   * @param _nonce uuid used when generating sigs to make them one time use
   */
  function addAddressToAccountForUser(
    address _newAddress,
    bytes _newAddressSig,
    bytes _senderSig,
    address _sender,
    bytes32 _nonce
    ) private nonZero(_newAddress) {

    require(!usedSignatures[keccak256(abi.encodePacked(_newAddressSig))], "Signature not unique");
    require(!usedSignatures[keccak256(abi.encodePacked(_senderSig))], "Signature not unique");

    usedSignatures[keccak256(abi.encodePacked(_newAddressSig))] = true;
    usedSignatures[keccak256(abi.encodePacked(_senderSig))] = true;

    // Confirm new address is signed by current address
    bytes32 _currentAddressDigest = signingLogic.generateAddAddressSchemaHash(_newAddress, _nonce);
    require(_sender == signingLogic.recoverSigner(_currentAddressDigest, _senderSig));

    // Confirm current address is signed by new address
    bytes32 _newAddressDigest = signingLogic.generateAddAddressSchemaHash(_sender, _nonce);
    require(_newAddress == signingLogic.recoverSigner(_newAddressDigest, _newAddressSig));

    registry.addAddressToAccount(_newAddress, _sender);
    uint256 _accountId = registry.accountIdForAddress(_newAddress);
    emit AddressAdded(_accountId, _newAddress);
  }

  /**
   * @notice Remove an address from an account for a user
   * @dev Restricted to admin
   * @param _addressToRemove Address to remove from account
   */
  function removeAddressFromAccountFor(
    address _addressToRemove
  ) public onlyRegistryAdmin {
    uint256 _accountId = registry.accountIdForAddress(_addressToRemove);
    registry.removeAddressFromAccount(_addressToRemove);
    emit AddressRemoved(_accountId, _addressToRemove);
  }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pendingInvites","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newRegistryAdmin","type":"address"}],"name":"setRegistryAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"},{"name":"_newAddressSig","type":"bytes"},{"name":"_senderSig","type":"bytes"},{"name":"_sender","type":"address"},{"name":"_nonce","type":"bytes32"}],"name":"addAddressToAccountFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"signingLogic","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sig","type":"bytes"}],"name":"createInvite","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRegistry","type":"address"}],"name":"setAccountRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"},{"name":"_newAddressSig","type":"bytes"},{"name":"_senderSig","type":"bytes"},{"name":"_nonce","type":"bytes32"}],"name":"addAddressToAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"registryAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"name":"","type":"address"}],"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":"_newSigningLogic","type":"address"}],"name":"setSigningLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newUser","type":"address"}],"name":"createAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addressToRemove","type":"address"}],"name":"removeAddressFromAccountFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sig","type":"bytes"}],"name":"acceptInvite","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"usedSignatures","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_signingLogic","type":"address"},{"name":"_registry","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"accountId","type":"uint256"},{"indexed":true,"name":"newUser","type":"address"}],"name":"AccountCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"inviter","type":"address"},{"indexed":true,"name":"inviteAddress","type":"address"}],"name":"InviteCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":true,"name":"inviteAddress","type":"address"}],"name":"InviteAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"accountId","type":"uint256"},{"indexed":true,"name":"newAddress","type":"address"}],"name":"AddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"accountId","type":"uint256"},{"indexed":true,"name":"oldAddress","type":"address"}],"name":"AddressRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldRegistryAdmin","type":"address"},{"indexed":false,"name":"newRegistryAdmin","type":"address"}],"name":"RegistryAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSigningLogic","type":"address"},{"indexed":false,"name":"newSigningLogic","type":"address"}],"name":"SigningLogicChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldRegistry","type":"address"},{"indexed":false,"name":"newRegistry","type":"address"}],"name":"AccountRegistryChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405234801561001057600080fd5b50604051604080612b408339810180604052810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506129ce806101726000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631d0373ad146100eb57806339069d8c146101465780633dcbf7eb1461018957806344d0afbc1461028657806349c462d7146102dd5780636661a51e14610346578063726802a41461038957806374c16b23146104665780637b103999146104bd5780638da5cb5b14610514578063977d03511461056b5780639859387b146105ae578063dc628c04146105f1578063f2fde38b14610634578063f610e52a14610677578063f978fd61146106e0575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610729565b604051808215151515815260200191505060405180910390f35b34801561015257600080fd5b50610187600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610749565b005b34801561019557600080fd5b50610284600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506108f1565b005b34801561029257600080fd5b5061029b610961565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e957600080fd5b50610344600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610987565b005b34801561035257600080fd5b50610387600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d9a565b005b34801561039557600080fd5b50610464600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035600019169060200190929190505050610f42565b005b34801561047257600080fd5b5061047b611058565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c957600080fd5b506104d261107e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052057600080fd5b506105296110a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057757600080fd5b506105ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110c9565b005b3480156105ba57600080fd5b506105ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b005b3480156105fd57600080fd5b50610632600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112d9565b005b34801561064057600080fd5b50610675600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154e565b005b34801561068357600080fd5b506106de600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506116a3565b005b3480156106ec57600080fd5b5061070f6004803603810190808035600019169060200190929190505050611adf565b604051808215151515815260200191505060405180910390f35b60056020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107a657600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff16141515156107cd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4fba7fc38f674802f76db83afb3e5f87dee0e5234b1e7f832f19168b05e0048682600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561094d57600080fd5b61095a8585858585611aff565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663178daa54336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b81019080805190602001909291905050501515610a8c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397aba7f933604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515610b5a5780518252602082019150602081019050602083039250610b35565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c01578082015181840152602081019050610be6565b50505050905090810190601f168015610c2e5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015610c4e57600080fd5b505af1158015610c62573d6000803e3d6000fd5b505050506040513d6020811015610c7857600080fd5b81019080805190602001909291905050509050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610ce457600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f264c2a13cbb614f5c05aa1bd9cbfd0a1466f73f27887866039a63ec56a190ddd60405160405180910390a35050565b60008160008173ffffffffffffffffffffffffffffffffffffffff1614151515610dc357600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e1e57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f68913200cecf41727f9b83c3ef808abc9b8a07e16a8ccb2fbb9fd9bcc7183f8282600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663178daa54336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610fff57600080fd5b505af1158015611013573d6000803e3d6000fd5b505050506040513d602081101561102957600080fd5b8101908080519060200190929190505050151561104557600080fd5b6110528484843385611aff565b50505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008160008173ffffffffffffffffffffffffffffffffffffffff16141515156110f257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114d57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9065f3654b16a9bdc012d8a568f9f881cbfc95ccce9c9ee0f648481bdca4f70582600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112cd57600080fd5b6112d681612761565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561133757600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a5b70ad836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050506040513d602081101561141e57600080fd5b81019080805190602001909291905050509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a5a8662836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156114ee57600080fd5b505af1158015611502573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16817fc7120a00a251890416360c3add60c9843cb4a5ed80a7761c3b3be917c24f71e260405160405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115a957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156115e557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663178daa54336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561176257600080fd5b505af1158015611776573d6000803e3d6000fd5b505050506040513d602081101561178c57600080fd5b81019080805190602001909291905050501515156117a957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397aba7f933604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156118775780518252602082019150602081019050602083039250611852565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561191e578082015181840152602081019050611903565b50505050905090810190601f16801561194b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561196b57600080fd5b505af115801561197f573d6000803e3d6000fd5b505050506040513d602081101561199557600080fd5b81019080805190602001909291905050509050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a0057600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a6133612761565b8073ffffffffffffffffffffffffffffffffffffffff167f7dfe7741b2816f4b390ea9c6a8fcef91c87d66b9235a24019b792806bc3ece0233604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60046020528060005260406000206000915054906101000a900460ff1681565b60008060008760008173ffffffffffffffffffffffffffffffffffffffff1614151515611b2b57600080fd5b60046000896040516020018082805190602001908083835b602083101515611b685780518252602082019150602081019050602083039250611b43565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083101515611bd15780518252602082019150602081019050602083039250611bac565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151515611c97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5369676e6174757265206e6f7420756e6971756500000000000000000000000081525060200191505060405180910390fd5b60046000886040516020018082805190602001908083835b602083101515611cd45780518252602082019150602081019050602083039250611caf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083101515611d3d5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151515611e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5369676e6174757265206e6f7420756e6971756500000000000000000000000081525060200191505060405180910390fd5b6001600460008a6040516020018082805190602001908083835b602083101515611e425780518252602082019150602081019050602083039250611e1d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083101515611eab5780518252602082019150602081019050602083039250611e86565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000896040516020018082805190602001908083835b602083101515611f445780518252602082019150602081019050602083039250611f1f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083101515611fad5780518252602082019150602081019050602083039250611f88565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323f809f68a876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b1580156120d457600080fd5b505af11580156120e8573d6000803e3d6000fd5b505050506040513d60208110156120fe57600080fd5b81019080805190602001909291905050509350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397aba7f985896040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121ca5780820151818401526020810190506121af565b50505050905090810190601f1680156121f75780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561221757600080fd5b505af115801561222b573d6000803e3d6000fd5b505050506040513d602081101561224157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151561228b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323f809f687876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b15801561235857600080fd5b505af115801561236c573d6000803e3d6000fd5b505050506040513d602081101561238257600080fd5b81019080805190602001909291905050509250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397aba7f9848a6040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561244e578082015181840152602081019050612433565b50505050905090810190601f16801561247b5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561249b57600080fd5b505af11580156124af573d6000803e3d6000fd5b505050506040513d60208110156124c557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614151561250f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663275bf2308a886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561260057600080fd5b505af1158015612614573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a5b70ad8a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156126d557600080fd5b505af11580156126e9573d6000803e3d6000fd5b505050506040513d60208110156126ff57600080fd5b810190808051906020019092919050505091508873ffffffffffffffffffffffffffffffffffffffff16827fedec6416a94b784dc98025e70b146d8d8628117664f0da05822fc95132bc4f5860405160405180910390a3505050505050505050565b60008160008173ffffffffffffffffffffffffffffffffffffffff161415151561278a57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634f96baf1846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561284757600080fd5b505af115801561285b573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a5b70ad846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561291c57600080fd5b505af1158015612930573d6000803e3d6000fd5b505050506040513d602081101561294657600080fd5b810190808051906020019092919050505091508273ffffffffffffffffffffffffffffffffffffffff16827f487f75407abee1a719a204e683a93f0583efee10816d2651b112f8be571f7d3260405160405180910390a35050505600a165627a7a723058200ac03ce77dfad31e6468e5e71f58e17e375cbcadacaf8562785dce2af504fa6b002900000000000000000000000000677ec3e34d9eb794f2eba943f43bf0639cce5d000000000000000000000000a08b00eb41a452540c44e953d9ee86f86793af55

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

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000677ec3e34d9eb794f2eba943f43bf0639cce5d
Arg [1] : 000000000000000000000000a08b00eb41a452540c44e953d9ee86f86793af55


   Swarm Source:
bzzr://0ac03ce77dfad31e6468e5e71f58e17e375cbcadacaf8562785dce2af504fa6b

 

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