did:cow, a proposal for an ID resolution method with most of the convenience of did:plc/did:web and the robustness of a public blockchain
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

underscores for params are more standard, pin solc version

+29 -29
+29 -29
src/CowRegistry.sol
··· 1 1 // SPDX-License-Identifier: MIT 2 - pragma solidity ^0.8.0; 2 + pragma solidity 0.8.28; 3 3 4 4 contract CowRegistry { 5 5 ··· 17 17 event ControllerUpdated(bytes32 indexed cowHash, address controller); 18 18 event WrappedDIDUpdated(bytes32 indexed cowHash, string wrappedDID); 19 19 20 - function updateWrappedDIDByHash(bytes32 cowHash, string memory wrappedDID) public { 21 - require(msg.sender == cows[cowHash].controller); 22 - require(bytes(wrappedDID).length > 5, "Use deactivate() to deactivate"); 20 + function updateWrappedDIDByHash(bytes32 _cowHash, string memory _wrappedDID) public { 21 + require(msg.sender == cows[_cowHash].controller); 22 + require(bytes(_wrappedDID).length > 5, "Use deactivate() to deactivate"); 23 23 24 - cows[cowHash].wrappedDID = wrappedDID; 25 - emit WrappedDIDUpdated(cowHash, wrappedDID); 24 + cows[_cowHash].wrappedDID = _wrappedDID; 25 + emit WrappedDIDUpdated(_cowHash, _wrappedDID); 26 26 } 27 27 28 - function updateControllerByHash(bytes32 cowHash, address controller) public { 29 - require(msg.sender == cows[cowHash].controller); 28 + function updateControllerByHash(bytes32 _cowHash, address _controller) public { 29 + require(msg.sender == cows[_cowHash].controller); 30 30 31 - cows[cowHash].controller = controller; 32 - emit ControllerUpdated(cowHash, controller); 31 + cows[_cowHash].controller = _controller; 32 + emit ControllerUpdated(_cowHash, _controller); 33 33 } 34 34 35 - function calculateCowHash(address controller, string memory wrappedDID) public pure returns (bytes32) { 36 - return keccak256(abi.encodePacked(controller, wrappedDID)); 35 + function calculateCowHash(address _controller, string memory _wrappedDID) public pure returns (bytes32) { 36 + return keccak256(abi.encodePacked(_controller, _wrappedDID)); 37 37 } 38 38 39 - function _ensureCowInitialized(address controller, string memory wrappedDID) internal returns (bytes32 cowHash) { 40 - cowHash = calculateCowHash(controller, wrappedDID); 39 + function _ensureCowInitialized(address _controller, string memory _wrappedDID) internal returns (bytes32 cowHash) { 40 + cowHash = calculateCowHash(_controller, _wrappedDID); 41 41 if (bytes(cows[cowHash].wrappedDID).length == 0) { 42 - cows[cowHash] = Cow(controller, wrappedDID); 43 - emit CowInitialized(cowHash, controller, wrappedDID); 42 + cows[cowHash] = Cow(_controller, _wrappedDID); 43 + emit CowInitialized(cowHash, _controller, _wrappedDID); 44 44 } 45 45 return cowHash; 46 46 } 47 47 48 48 // You don't particularly need to call this, you can leave it until you make an update 49 - function initializeCow(address controller, string memory wrappedDID) external { 50 - _ensureCowInitialized(controller, wrappedDID); 49 + function initializeCow(address _controller, string memory _wrappedDID) external { 50 + _ensureCowInitialized(_controller, _wrappedDID); 51 51 } 52 52 53 - function updateWrappedDID(address controller, string memory wrappedDID, string memory newWrappedDID) public { 54 - bytes32 cowHash = _ensureCowInitialized(controller, wrappedDID); 55 - updateWrappedDIDByHash(cowHash, newWrappedDID); 53 + function updateWrappedDID(address _controller, string memory _wrappedDID, string memory _newWrappedDID) external { 54 + bytes32 cowHash = _ensureCowInitialized(_controller, _wrappedDID); 55 + updateWrappedDIDByHash(cowHash, _newWrappedDID); 56 56 } 57 57 58 - function updateController(address controller, string memory wrappedDID, address newController) public { 59 - bytes32 cowHash = _ensureCowInitialized(controller, wrappedDID); 60 - updateControllerByHash(cowHash, newController); 58 + function updateController(address _controller, string memory _wrappedDID, address _newController) external { 59 + bytes32 cowHash = _ensureCowInitialized(_controller, _wrappedDID); 60 + updateControllerByHash(cowHash, _newController); 61 61 } 62 62 63 - function deactivate(bytes32 cowHash) external { 64 - require(msg.sender == cows[cowHash].controller); 63 + function deactivate(bytes32 _cowHash) external { 64 + require(msg.sender == cows[_cowHash].controller); 65 65 66 - cows[cowHash].wrappedDID = DEACTIVATED; 67 - cows[cowHash].controller = address(0); 66 + cows[_cowHash].wrappedDID = DEACTIVATED; 67 + cows[_cowHash].controller = address(0); 68 68 69 - emit CowDeactivated(cowHash); 69 + emit CowDeactivated(_cowHash); 70 70 } 71 71 }