pragma solidity >=0.4.22 <0.6.0;
contract RigidBit
{
address public owner;
struct Storage
{
uint timestamp;
}
mapping(bytes32 => Storage) s;
constructor() public
{
owner = msg.sender;
}
modifier onlyOwner
{
require(msg.sender == owner);
_;
}
function transferOwnership(address _newOwner) public onlyOwner
{
owner = _newOwner;
}
function getHash(bytes32 hash) public view returns(uint)
{
return s[hash].timestamp;
}
function storeHash(bytes32 hash) public onlyOwner
{
assert(s[hash].timestamp == 0);
s[hash].timestamp = now;
}
}
{
"compilationTarget": {
"RigidBit.sol": "RigidBit"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"getHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"storeHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]