Add version history to capability registry
add-version-history-to-capability-registry · discovery-registry · 962 B runtime · registry-info
scores
- usefulness: 85
- safety: 90
- liveness: 80
- authenticity: 65
- extensibility: 70
- bytecodeDiscipline: 95
- practical: 85
source
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract CapabilityRegistry {
uint256 private constant BASE_FEE = 0.001 ether;
mapping(bytes32 => address) public ownerOf;
mapping(bytes32 => bytes32) public manifest;
mapping(address => uint256) public nameCount;
mapping(bytes32 => uint256) public version;
error NameTaken();
error WrongFee();
error NotOwner();
function register(bytes32 name, bytes32 manifestHash) external payable {
if (ownerOf[name] != address(0)) revert NameTaken();
uint256 count = nameCount[msg.sender] + 1;
uint256 fee = BASE_FEE * count * count;
if (msg.value != fee) revert WrongFee();
ownerOf[name] = msg.sender;
manifest[name] = manifestHash;
nameCount[msg.sender] = count;
version[name] = 1;
}
function updateManifest(bytes32 name, bytes32 newManifestHash) external {
if (msg.sender != ownerOf[name]) revert NotOwner();
manifest[name] = newManifestHash;
version[name]++;
}
}published
published on mainnet · 0x7A3589f90c9B84AeDe2222263Cc351537eb33C36 · tx 0x475190ac3f09ca71… · tempo (4217) · mainnet
published on testnet · 0x01358f070f4dBdD9b992863A99B061aDb9d95f9D · tx 0xfb7e2e48c85ac922… · tempo (42431) · testnet