all files / contracts/ Notarize.sol

100% Statements 7/7
100% Branches 2/2
100% Functions 3/3
100% Lines 7/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                           
/*
 Bitsign generic notarizacion contract v0.1f
*/
pragma solidity ^0.4.15;
 
 
contract Notarize {
  //State variables
  mapping (bytes32 => address) private proofs;
  address private owner;
  address private BSG;
 
  event Notary(bytes32 _data, address _address);
 
  /*
    Contract constructor takes _user as client Ethereum address
   */
  function Notarize(address _user) public {
    BSG = msg.sender;
    owner = _user;
  }
 
  /* @params
    _data data to sign
   */
  function notarize(bytes32 _data) external {
    if (msg.sender != owner && msg.sender != BSG)
      revert();
    proofs[_data] = msg.sender;
    Notary(_data, msg.sender);
  }
 
  function getProof(bytes32 _data) constant public returns (address) {
    return proofs[_data];
  }
}