ETH Price: $1,998.29 (+0.27%)

Contract

0x6A9633aC967C6dA43bca00A601D9cd8c74D4c099
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add Hash80452442019-06-28 8:19:282465 days ago1561709968IN
0x6A9633aC...c74D4c099
0 ETH0.000363078
Add Hash80386362019-06-27 7:25:092466 days ago1561620309IN
0x6A9633aC...c74D4c099
0 ETH0.0008169118
Add Hash80323162019-06-26 7:33:002467 days ago1561534380IN
0x6A9633aC...c74D4c099
0 ETH0.0007715217
Add Hash80258262019-06-25 7:37:212468 days ago1561448241IN
0x6A9633aC...c74D4c099
0 ETH0.0010438323
Add Hash80063372019-06-22 6:48:532471 days ago1561186133IN
0x6A9633aC...c74D4c099
0 ETH0.000181534
Add Hash80000892019-06-21 7:14:122472 days ago1561101252IN
0x6A9633aC...c74D4c099
0 ETH0.00027236
Add Hash79935972019-06-20 6:55:032473 days ago1561013703IN
0x6A9633aC...c74D4c099
0 ETH0.0010438323
Add Hash79872162019-06-19 6:51:402474 days ago1560927100IN
0x6A9633aC...c74D4c099
0 ETH0.00027236
Add Hash79808182019-06-18 6:55:172475 days ago1560840917IN
0x6A9633aC...c74D4c099
0 ETH0.000226925
Add Hash79614882019-06-15 6:12:072478 days ago1560579127IN
0x6A9633aC...c74D4c099
0 ETH0.0005899913
Add Hash79550462019-06-14 6:00:022479 days ago1560492002IN
0x6A9633aC...c74D4c099
0 ETH0.000181284
Add Hash79486892019-06-13 6:18:032480 days ago1560406683IN
0x6A9633aC...c74D4c099
0 ETH0.000226925
Add Hash79422572019-06-12 6:08:502481 days ago1560319730IN
0x6A9633aC...c74D4c099
0 ETH0.000363078
Add Hash79360032019-06-11 6:48:022482 days ago1560235682IN
0x6A9633aC...c74D4c099
0 ETH0.00027236
Add Hash79164632019-06-08 5:17:172486 days ago1559971037IN
0x6A9633aC...c74D4c099
0 ETH0.000226925
Add Hash79155482019-06-08 1:47:012486 days ago1559958421IN
0x6A9633aC...c74D4c099
0 ETH0.000271926
Add Hash79101532019-06-07 5:18:002487 days ago1559884680IN
0x6A9633aC...c74D4c099
0 ETH0.000181534
Add Hash79092072019-06-07 1:46:082487 days ago1559871968IN
0x6A9633aC...c74D4c099
0 ETH0.00027236
Add Hash79037882019-06-06 5:32:212487 days ago1559799141IN
0x6A9633aC...c74D4c099
0 ETH0.000407889
Add Hash79027572019-06-06 1:43:432488 days ago1559785423IN
0x6A9633aC...c74D4c099
0 ETH0.000181534
Add Hash78973212019-06-05 5:24:102489 days ago1559712250IN
0x6A9633aC...c74D4c099
0 ETH0.000226925
Add Hash78963882019-06-05 1:46:252489 days ago1559699185IN
0x6A9633aC...c74D4c099
0 ETH0.000226925
Add Hash78924182019-06-04 10:52:022489 days ago1559645522IN
0x6A9633aC...c74D4c099
0 ETH0.00027236
Add Hash78899772019-06-04 1:45:482490 days ago1559612748IN
0x6A9633aC...c74D4c099
0 ETH0.0005899913
Add Hash78716502019-06-01 4:42:172493 days ago1559364137IN
0x6A9633aC...c74D4c099
0 ETH0.000408459
View all transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HashStore

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
Yes with 200 runs

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

pragma solidity 0.5.0;

/**
 * @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 private _owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

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

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return 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 {
        _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;
    }
}

/**
 * @title StateDrivenHashStore
 * @dev The contract has his state and getters
 */
contract HashStore is Ownable {
    mapping(bytes32 => uint256) private _hashes;
    event HashAdded(bytes32 hash);

    function addHash(bytes32 rootHash) external onlyOwner {
        require(_hashes[rootHash] == 0, "addHash: this hash was already deployed");

        _hashes[rootHash] = block.timestamp;
        emit HashAdded(rootHash);
    }

    function getHashTimestamp(bytes32 rootHash) external view returns (uint256) {
        return _hashes[rootHash];
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"rootHash","type":"bytes32"}],"name":"addHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"rootHash","type":"bytes32"}],"name":"getHashTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"hash","type":"bytes32"}],"name":"HashAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604081905260008054600160a060020a0319163317808255600160a060020a0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a361035d806100576000396000f3fe60806040526004361061006c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166343e08ad1811461007157806382eed7cd1461009d5780638da5cb5b146100d95780638f32d59b1461010a578063f2fde38b14610133575b600080fd5b34801561007d57600080fd5b5061009b6004803603602081101561009457600080fd5b5035610166565b005b3480156100a957600080fd5b506100c7600480360360208110156100c057600080fd5b5035610263565b60408051918252519081900360200190f35b3480156100e557600080fd5b506100ee610275565b60408051600160a060020a039092168252519081900360200190f35b34801561011657600080fd5b5061011f610284565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061009b6004803603602081101561015657600080fd5b5035600160a060020a0316610295565b61016e610284565b151561017957600080fd5b6000818152600160205260409020541561021a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f616464486173683a207468697320686173682077617320616c7265616479206460448201527f65706c6f79656400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600081815260016020908152604091829020429055815183815291517f43af73c832d9fe061da0a995686f56bf3de033272274905119d6d7441fa1d89c9281900390910190a150565b60009081526001602052604090205490565b600054600160a060020a031690565b600054600160a060020a0316331490565b61029d610284565b15156102a857600080fd5b6102b1816102b4565b50565b600160a060020a03811615156102c957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a72305820032b5bad7acee1dbf72a7cd9aa01c54e0cf632d0f6ba33b031bb3d609ccf54870029

Deployed Bytecode

0x60806040526004361061006c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166343e08ad1811461007157806382eed7cd1461009d5780638da5cb5b146100d95780638f32d59b1461010a578063f2fde38b14610133575b600080fd5b34801561007d57600080fd5b5061009b6004803603602081101561009457600080fd5b5035610166565b005b3480156100a957600080fd5b506100c7600480360360208110156100c057600080fd5b5035610263565b60408051918252519081900360200190f35b3480156100e557600080fd5b506100ee610275565b60408051600160a060020a039092168252519081900360200190f35b34801561011657600080fd5b5061011f610284565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061009b6004803603602081101561015657600080fd5b5035600160a060020a0316610295565b61016e610284565b151561017957600080fd5b6000818152600160205260409020541561021a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f616464486173683a207468697320686173682077617320616c7265616479206460448201527f65706c6f79656400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600081815260016020908152604091829020429055815183815291517f43af73c832d9fe061da0a995686f56bf3de033272274905119d6d7441fa1d89c9281900390910190a150565b60009081526001602052604090205490565b600054600160a060020a031690565b600054600160a060020a0316331490565b61029d610284565b15156102a857600080fd5b6102b1816102b4565b50565b600160a060020a03811615156102c957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fea165627a7a72305820032b5bad7acee1dbf72a7cd9aa01c54e0cf632d0f6ba33b031bb3d609ccf54870029

Swarm Source

bzzr://032b5bad7acee1dbf72a7cd9aa01c54e0cf632d0f6ba33b031bb3d609ccf5487

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.