Contract Overview
Balance: 0 Ether
Transactions: 12 txns
 Latest 12 txns

TxHash Age From To Value [TxFee]
0xc908519085726b9385ab1df5078d588c0e8ffc590f9eeba09ec7b39e36022f0129 days 22 hrs ago0xc04f887c60d3697464b15c4ee65c2b93e8636ca4  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.00107418
0x06ab6bcbf05a587f27564743be0d2daab45ae04fedd1b3f9869b70295d71e5d929 days 22 hrs ago0xfd34206001dd9ff4fda419c1a84f3faca45f1df4  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.0010729
0x8923b01a65ac345a44e690baf64232e5385c90eb0302a5051521e453b270975629 days 22 hrs ago0xfd34206001dd9ff4fda419c1a84f3faca45f1df4  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.0011064054
0xddd5adad8840e9f3ff9173308bfaf4e19ee7947932db00f697b2a6cf7dab7a2440 days 2 hrs ago0xc2986e57c7eae78726e094a03329d0425f35991f  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.00322254
0x018bee8959698c74839f2a9ea8e4fd894f23bd88934eafaecec968929f6e717747 days 1 hr ago0x3cd9f8b8862c6f2f0c04d0ff3adacd69bd50d44e  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.00600222578
0x6aa02e387695703404e13878866329d7472165fd958b81be171049aac07f9b9f47 days 1 hr ago0xc04f887c60d3697464b15c4ee65c2b93e8636ca4  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.009949115677
0xfc0b6ff6ecff0dd5269b031c35092939455a3373aca80d5b662f42295d7b700347 days 1 hr ago0x1d76b2cdf8964d1f9bc5d22625a00586839dacc4  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.010132568948
0x3bd489b06c1530ac20bbdd38c0325bff464d009507b78a5f6e2801a523f1588847 days 1 hr ago0xfd34206001dd9ff4fda419c1a84f3faca45f1df4  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.0088721875
0x6bb7e61e5889701b256434a4d7826894cb69fd217e23a50cbc5aa533e702d6a647 days 1 hr ago0xc2986e57c7eae78726e094a03329d0425f35991f  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.007416941
0xd11357d42a128cbb226c36c8d13a9cc30def972d579600c983bbe10ba735bc0347 days 1 hr ago0xef2c700943b7bd72cae6c938188dd1ac9537b228  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.008031941
0x3c8568cc5f55520db7df31c8e0122200d4803b8e4d17ce0b8b7ede256daf4bf849 days 3 hrs ago0x1b380dc721280ddbd4e0cbf342bf2c23a5fec96a  IN   0x6a0da963533662c2ed687e67237681f765306ec90 Ether0.000027194
0x4200572cf080d7622e17e70a75df93dd83c54a66e134f9ade1ad23d73f9c612e70 days 14 hrs ago0x1b380dc721280ddbd4e0cbf342bf2c23a5fec96a  IN    Contract Creation0 Ether0.001864641
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x748f811ac11e0d40d9855db75a11152d411cc1b937f1a3a2df9f77eccdc8e088491349123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xc073ae35e62f648c5b5467f6ff2095d248b8a25f47f5e5bab0a27f95ee638d73491349123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x54c8ef9ec2e59b8b4c264ea8c3ffe7f5faff058ad0174be175ec6499a1018a5d491348223 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x6ce89bbc9c9221c9ac7ec3ce26faf2287b8aa3f7a1d12a35c8a65e8e7b12461c491348223 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x1b022d85d15d0517b70eea0ded227351ccfe840b6519c4efbdb0824431fb7798491348223 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x9bc952c25cd9d9d22ffb32da743f6dbd488f275acdfbced793ced6d045ab622b491347223 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x92a6d55d2ce2466ca2e9888ed150969d3e0d690a4fc9213fd6f03f3271ce5622491346723 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x99759f4ca708f05897661f93717fe1acd16abe6c0ad6fe7d3e29b6624137f79f491346323 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x2fb6f449b0bc951c945a050b971bb7a395fa54442cac9179f1ff53555cc84097491346323 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x84aa3d663633cd7073fb953e9e948914a00a546ecdace9ab9e3e9d9f03d5f705491345123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xa916e98c4927a1fd8248ec529181e469bd17deeb45937e3f819a05d17bd2f50d491344123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xabf5d0aea43cb8e22962f4a3d491c3574260b48f5ba5af1be8ee939a63457764491344123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x5075181807f41903d2723dac5e1f03d92aa1c18c4dd58ceb2d2335b345332f06491344123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x834218da4fa553f049f7ee14ff7926a8912f8b57997b2d1e32510f71984b3709491343123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x97c4cd2433f9fe5c215c3dcb134525d010cc5837e3ebfd45aea071fd1eb1b5a2491342323 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x0cf4eb9bbb51574ec30747cdde88832f850bb2430f75e58221c3e081596dda65491342323 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xbdcc319e95cbe444b5d88231173bc49f81a19f6e9e597ac33a147b15f68d7864491340123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xf62e529e36f59ebba19860795fc31ac48a3c9c8b989d69d291b57b57ffcbeb80491340123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xd0c0c53bee1fa983bbeebb684e0cf18f87a676146ebec818f378a56e5ac21e9d491340123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xd27ea0c4f69c87ffa734fed4f1c2f604d7b58c459dc77ef8308ff808ba1601f1491339123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xea0143d6204e60e9257272740eb7e0abbe948b65c0605c54e6f098e9d691b025491338123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xfd1dd8cbbc5ef4f3d098879a8481e2017b5e6c1824de7fcc8b124f38bd26c35e491338123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x5cd31b06482dc6867c2cb214115d028cc67c70b0548f39c34af18dc749a541db491338123 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0x1568fdf018a116fa8efff37eca026c87357b6757847086eba1fad45a657021c3491337223 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
0xe7a1637ed8cb83284d6d3411b12c4fe7a1562b570aeead200fdb9d862f2bdb16491337223 days 2 hrs ago0x1f09d05c460ee0a96a4b05a5923e7e248dc1421b0x6a0da963533662c2ed687e67237681f765306ec90 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x00c5ce08a2e99d007b5d966bea21e3644e4a6b17
Contract Name: VerifierRegistry
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.24;

// File: zeppelin-solidity/contracts/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.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  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: token-sale-contracts/contracts/Token.sol

// Abstract contract for the full ERC 20 Token standard
// https://github.com/ethereum/EIPs/issues/20

contract Token {
    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    /// total amount of tokens
    uint256 public totalSupply;

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant returns (uint256 balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) returns (bool success);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);

    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) returns (bool success);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// File: token-sale-contracts/contracts/StandardToken.sol

/*
You should inherit from StandardToken or, for a token like you would want to
deploy in something like Mist, see HumanStandardToken.sol.
(This implements ONLY the standard functions and NOTHING else.
If you deploy this, you won't have anything useful.)

Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
.*/

contract StandardToken is Token {

    function transfer(address _to, uint256 _value) returns (bool success) {
        //Default assumes totalSupply can't be over max (2^256 - 1).
        //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
        //Replace the if with this one instead.
        //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
        if (balances[msg.sender] >= _value && _value > 0) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);
            return true;
        } else { return false; }
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        //same as above. Replace this line with the following if you want to protect against wrapping uints.
        //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
            balances[_to] += _value;
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            Transfer(_from, _to, _value);
            return true;
        } else { return false; }
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
}

// File: token-sale-contracts/contracts/HumanStandardToken.sol

/*
This Token Contract implements the standard token functionality (https://github.com/ethereum/EIPs/issues/20) as well as the following OPTIONAL extras intended for use by humans.

In other words. This is intended for deployment in something like a Token Factory or Mist wallet, and then used by humans.
Imagine coins, currencies, shares, voting weight, etc.
Machine-based, rapid creation of many tokens would not necessarily need these extra features or will be minted in other manners.

1) Initial Finite Supply (upon creation one specifies how much is minted).
2) In the absence of a token registry: Optional Decimal, Symbol & Name.
3) Optional approveAndCall() functionality to notify a contract if an approval() has occurred.

.*/

contract HumanStandardToken is StandardToken {

    function () {
        //if ether is sent to this address, send it back.
        throw;
    }

    /* Public variables of the token */

    /*
    NOTE:
    The following variables are OPTIONAL vanities. One does not have to include them.
    They allow one to customise the token contract & in no way influences the core functionality.
    Some wallets/interfaces might not even bother to look at this information.
    */
    string public name;                   //fancy name: eg Simon Bucks
    uint8 public decimals;                //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It's like comparing 1 wei to 1 ether.
    string public symbol;                 //An identifier: eg SBX
    string public version = 'H0.1';       //human 0.1 standard. Just an arbitrary versioning scheme.

    function HumanStandardToken(
        uint256 _initialAmount,
        string _tokenName,
        uint8 _decimalUnits,
        string _tokenSymbol
        ) {
        balances[msg.sender] = _initialAmount;               // Give the creator all initial tokens
        totalSupply = _initialAmount;                        // Update total supply
        name = _tokenName;                                   // Set the name for display purposes
        decimals = _decimalUnits;                            // Amount of decimals for display purposes
        symbol = _tokenSymbol;                               // Set the symbol for display purposes
    }

    /* Approves and then calls the receiving contract */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);

        //call the receiveApproval function on the contract you want to be notified. This crafts the function signature manually so one doesn't have to include a contract in here just for this.
        //receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
        //it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
        if(!_spender.call(bytes4(bytes32(sha3("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData)) { throw; }
        return true;
    }
}

// File: contracts/VerifierRegistry.sol

contract VerifierRegistry is Ownable {
  event LogVerifierRegistered(
    address id,
    string location,
    bool created,
    uint256 balance,
    uint256 shard
  );

  event LogVerifierUpdated(
    address id,
    string location,
    bool created,
    uint256 balance,
    uint256 shard
  );

  event LogBalancePerShard(uint256 shard, uint256 balance);

  struct Verifier {
    address id;
    string location;
    bool created;
    uint256 balance;
    uint256 shard;
  }

  mapping(address => Verifier) public verifiers;

  /// @dev shard => balance
  mapping(uint256 => uint256) public balancesPerShard;

  address[] public addresses;
  address public tokenAddress;
  uint256 public verifiersPerShard;

  constructor(address _tokenAddress, uint256 _verifiersPerShard)
  public {
    tokenAddress = _tokenAddress;
    verifiersPerShard = _verifiersPerShard;
  }

  function create(string _location) public {
    Verifier storage verifier = verifiers[msg.sender];

    require(!verifier.created, "verifier already exists");

    verifier.id = msg.sender;
    verifier.location = _location;
    verifier.created = true;
    verifier.shard = uint256(addresses.length) / verifiersPerShard;

    addresses.push(verifier.id);

    emit LogVerifierRegistered(
      verifier.id,
      verifier.location,
      verifier.created,
      verifier.balance,
      verifier.shard
    );
  }

  function getNumberOfVerifiers() public view returns (uint) {
    return addresses.length;
  }

  function receiveApproval(address _from, uint256 _value, address _token, bytes _data) public returns (bool success) {
    Token token = Token(tokenAddress);

    uint256 allowance = token.allowance(_from, this);

    require(allowance > 0, "nothing to approve");

    require(token.transferFrom(_from, this, allowance), "transferFrom failed");

    verifiers[_from].balance += allowance;

    uint256 shard = verifiers[_from].shard;
    uint256 shardBalance = balancesPerShard[shard] + allowance;
    balancesPerShard[shard] = shardBalance;

    emit LogBalancePerShard(shard, shardBalance);

    return true;
  }

  function update(string _location) public {
    Verifier storage verifier = verifiers[msg.sender];

    require(verifier.created, "verifier do not exists");

    verifier.location = _location;

    emit LogVerifierUpdated(
      verifier.id,
      verifier.location,
      verifier.created,
      verifier.balance,
      verifier.shard
    );
  }

  function withdraw(uint256 _value) public returns (bool) {
    Verifier storage verifier = verifiers[msg.sender];

    require(_value > 0 && verifier.balance >= _value, "nothing to withdraw");

    verifier.balance -= _value;

    uint256 shard = verifier.shard;
    uint256 shardBalance = balancesPerShard[shard] - _value;
    balancesPerShard[shard] = shardBalance;

    emit LogBalancePerShard(shard, shardBalance);

    Token token = Token(tokenAddress);

    require(token.transfer(msg.sender, _value), "transfer failed");

    return true;
  }

  function updateTokenAddress(address _newTokenAddress) public onlyOwner {
    require(_newTokenAddress != address(0), "empty token address");

    tokenAddress = _newTokenAddress;
  }

  function updateVerifiersPerShard(uint256 _newVerifiersPerShard) public onlyOwner {
    require(_newVerifiersPerShard > 0, "_newVerifiersPerShard is empty");

    verifiersPerShard = _newVerifiersPerShard;
  }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"verifiersPerShard","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_location","type":"string"}],"name":"update","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"balancesPerShard","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newTokenAddress","type":"address"}],"name":"updateTokenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verifiers","outputs":[{"name":"id","type":"address"},{"name":"location","type":"string"},{"name":"created","type":"bool"},{"name":"balance","type":"uint256"},{"name":"shard","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNumberOfVerifiers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_token","type":"address"},{"name":"_data","type":"bytes"}],"name":"receiveApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newVerifiersPerShard","type":"uint256"}],"name":"updateVerifiersPerShard","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_location","type":"string"}],"name":"create","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"addresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_verifiersPerShard","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"address"},{"indexed":false,"name":"location","type":"string"},{"indexed":false,"name":"created","type":"bool"},{"indexed":false,"name":"balance","type":"uint256"},{"indexed":false,"name":"shard","type":"uint256"}],"name":"LogVerifierRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"address"},{"indexed":false,"name":"location","type":"string"},{"indexed":false,"name":"created","type":"bool"},{"indexed":false,"name":"balance","type":"uint256"},{"indexed":false,"name":"shard","type":"uint256"}],"name":"LogVerifierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"shard","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalancePerShard","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 Switch To Opcodes View
608060405234801561001057600080fd5b50604051604080611aac8339810180604052810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060058190555050506119d6806100d66000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063043d9aaa146100e05780632e1a7d4d1461010b5780633d7403a3146101505780634ff85794146101b95780636691461a146101fa5780636c8244871461023d5780637104a14214610345578063715018a6146103705780638da5cb5b146103875780638f4ffcb1146103de578063969eb430146104a95780639d76ea58146104d6578063b6a46b3b1461052d578063edf26d9b14610596578063f2fde38b14610603575b600080fd5b3480156100ec57600080fd5b506100f5610646565b6040518082815260200191505060405180910390f35b34801561011757600080fd5b506101366004803603810190808035906020019092919050505061064c565b604051808215151515815260200191505060405180910390f35b34801561015c57600080fd5b506101b7600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610929565b005b3480156101c557600080fd5b506101e460048036038101908080359060200190929190505050610b58565b6040518082815260200191505060405180910390f35b34801561020657600080fd5b5061023b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b70565b005b34801561024957600080fd5b5061027e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb4565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200185151515158152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156103065780820151818401526020810190506102eb565b50505050905090810190601f1680156103335780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b34801561035157600080fd5b5061035a610daf565b6040518082815260200191505060405180910390f35b34801561037c57600080fd5b50610385610dbc565b005b34801561039357600080fd5b5061039c610ebe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ea57600080fd5b5061048f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ee3565b604051808215151515815260200191505060405180910390f35b3480156104b557600080fd5b506104d46004803603810190808035906020019092919050505061132e565b005b3480156104e257600080fd5b506104eb61140b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053957600080fd5b50610594600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611431565b005b3480156105a257600080fd5b506105c160048036038101908080359060200190929190505050611766565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060f57600080fd5b50610644600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a4565b005b60055481565b6000806000806000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093506000861180156106a9575085846003015410155b151561071d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6e6f7468696e6720746f2077697468647261770000000000000000000000000081525060200191505060405180910390fd5b858460030160008282540392505081905550836004015492508560026000858152602001908152602001600020540391508160026000858152602001908152602001600020819055507f083a443e29e540b0046ce75d1318183bc3b44597b1d8594999179e773cc3439e8383604051808381526020018281526020019250505060405180910390a1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561086d57600080fd5b505af1158015610881573d6000803e3d6000fd5b505050506040513d602081101561089757600080fd5b8101908080519060200190929190505050151561091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7472616e73666572206661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b6001945050505050919050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020160009054906101000a900460ff1615156109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f766572696669657220646f206e6f74206578697374730000000000000000000081525060200191505060405180910390fd5b81816001019080519060200190610a0a929190611905565b507f323d446bdd943279d2cfc24d9c0ae53f58e5de975996d75c19b276a9a9bfda5a8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001018360020160009054906101000a900460ff1684600301548560040154604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200185151515158152602001848152602001838152602001828103825286818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610b425780601f10610b1757610100808354040283529160200191610b42565b820191906000526020600020905b815481529060010190602001808311610b2557829003601f168201915b5050965050505050505060405180910390a15050565b60026020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bcb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f656d70747920746f6b656e20616464726573730000000000000000000000000081525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d865780601f10610d5b57610100808354040283529160200191610d86565b820191906000526020600020905b815481529060010190602001808311610d6957829003601f168201915b5050505050908060020160009054906101000a900460ff16908060030154908060040154905085565b6000600380549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e1757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8a306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050506040513d602081101561100957600080fd5b81019080805190602001909291905050509250600083111515611094576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7468696e6720746f20617070726f7665000000000000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8a30866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561116b57600080fd5b505af115801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b8101908080519060200190929190505050151561121a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7472616e7366657246726f6d206661696c65640000000000000000000000000081525060200191505060405180910390fd5b82600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282540192505081905550600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015491508260026000848152602001908152602001600020540190508060026000848152602001908152602001600020819055507f083a443e29e540b0046ce75d1318183bc3b44597b1d8594999179e773cc3439e8282604051808381526020018281526020019250505060405180910390a16001945050505050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138957600080fd5b600081111515611401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5f6e6577566572696669657273506572536861726420697320656d707479000081525060200191505060405180910390fd5b8060058190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020160009054906101000a900460ff161515156114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f766572696669657220616c72656164792065786973747300000000000000000081525060200191505060405180910390fd5b338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816001019080519060200190611556929190611905565b5060018160020160006101000a81548160ff02191690831515021790555060055460038054905081151561158657fe5b04816004018190555060038160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507fd846f6ab60404ce70c316e1f4978c5fa90bbe71456c9ce63d673629c7d86898e8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001018360020160009054906101000a900460ff1684600301548560040154604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001851515151581526020018481526020018381526020018281038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156117505780601f1061172557610100808354040283529160200191611750565b820191906000526020600020905b81548152906001019060200180831161173357829003601f168201915b5050965050505050505060405180910390a15050565b60038181548110151561177557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ff57600080fd5b6118088161180b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561184757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061194657805160ff1916838001178555611974565b82800160010185558215611974579182015b82811115611973578251825591602001919060010190611958565b5b5090506119819190611985565b5090565b6119a791905b808211156119a357600081600090555060010161198b565b5090565b905600a165627a7a72305820c3285418447072dc504f5f4899c9d3a03e7ef054076eb0ee0c97eac3940d39ed00290000000000000000000000001588d300a9995934aa9daae19be285a66eb46c1c0000000000000000000000000000000000000000000000000000000000000001

   Swarm Source:
bzzr://c3285418447072dc504f5f4899c9d3a03e7ef054076eb0ee0c97eac3940d39ed

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward