Guest User

Untitled

a guest
Jun 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. pragma solidity ^0.4.19;
  2.  
  3. import "zeppelin-solidity/contracts/ownership/Ownable.sol";
  4.  
  5. contract KYCValidations is Ownable {
  6.  
  7. mapping(address => bytes32) pendingOwnerships;
  8. mapping(address => bytes32) ownerships;
  9.  
  10. event OwnershipProcessStarted(address ownedAddress, bytes32 idHash);
  11. event OwnershipEstablished(address ownedAddress, bytes32 idHash);
  12.  
  13.  
  14. function addOwnership(address ownedAddress, bytes32 idHash) public onlyOwner {
  15. require(ownerships[ownedAddress] == 0);
  16. require(pendingOwnerships[ownedAddress] == 0);
  17. pendingOwnerships[ownedAddress] = idHash;
  18. emit OwnershipProcessStarted(ownedAddress, idHash);
  19. }
  20.  
  21. function confirmOwnership(bytes32 idHash) public {
  22. require(ownerships[ownedAddress] == 0);
  23. require(pendingOwnerships[msg.sender] == idHash);
  24. pendingOwnerships[msg.sender] = 0;
  25. ownerships[msg.sender] = idHash;
  26. emit OwnershipEstablished(msg.sender, idHash);
  27. }
  28.  
  29. function checkOwnership(address ownedAddress, bytes32 idHash) public view returns (bytes32) {
  30. return ownerships[ownedAddress];
  31. }
  32.  
  33. function checkPendingOwnership(address ownedAddress, bytes32 idHash) public view returns (bytes32) {
  34. return pendingOwnerships[ownedAddress];
  35. }
  36. }
Add Comment
Please, Sign In to add comment