Content-Addressed Capability Manifest
content-addressed-capability-manifest · discovery-registry · 561 B runtime · registry-info
scores
- usefulness: 68
- safety: 82
- liveness: 88
- authenticity: 45
- extensibility: 35
- bytecodeDiscipline: 92
- practical: 74
source
pragma solidity ^0.8.13;
contract CapabilityRegistry {
mapping(address => bytes32) private manifestDigest;
mapping(address => uint32) private capabilities;
function publish(bytes32 digest, uint32 caps) external {
manifestDigest[msg.sender] = digest;
capabilities[msg.sender] = caps;
}
function resolve(address agent) external view returns (bytes32 digest, uint32 caps) {
digest = manifestDigest[agent];
caps = capabilities[agent];
}
function hasCapability(address agent, uint32 required) external view returns (bool supported) {
supported = manifestDigest[agent] != 0 && (capabilities[agent] & required) == required;
}
}