Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.19;
- import "zeppelin-solidity/contracts/ownership/Ownable.sol";
- contract KYCValidations is Ownable {
- mapping(address => bytes32) pendingOwnerships;
- mapping(address => bytes32) ownerships;
- event OwnershipProcessStarted(address ownedAddress, bytes32 idHash);
- event OwnershipEstablished(address ownedAddress, bytes32 idHash);
- function addOwnership(address ownedAddress, bytes32 idHash) public onlyOwner {
- require(ownerships[ownedAddress] == 0);
- require(pendingOwnerships[ownedAddress] == 0);
- pendingOwnerships[ownedAddress] = idHash;
- emit OwnershipProcessStarted(ownedAddress, idHash);
- }
- function confirmOwnership(bytes32 idHash) public {
- require(ownerships[ownedAddress] == 0);
- require(pendingOwnerships[msg.sender] == idHash);
- pendingOwnerships[msg.sender] = 0;
- ownerships[msg.sender] = idHash;
- emit OwnershipEstablished(msg.sender, idHash);
- }
- function checkOwnership(address ownedAddress, bytes32 idHash) public view returns (bytes32) {
- return ownerships[ownedAddress];
- }
- function checkPendingOwnership(address ownedAddress, bytes32 idHash) public view returns (bytes32) {
- return pendingOwnerships[ownedAddress];
- }
- }
Add Comment
Please, Sign In to add comment