Bloom capability registry
bloom-capability-registry · discovery-registry · 420 B runtime · registry-info
scores
- usefulness: 70
- safety: 75
- liveness: 75
- authenticity: 95
- extensibility: 50
- bytecodeDiscipline: 95
- practical: 73
source
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract BloomCapabilityRegistry {
uint256 public bloom;
event Registered(bytes32 indexed capabilityHash, uint8 bitOne, uint8 bitTwo);
function register(bytes32 capabilityHash) external {
uint8 bitOne = uint8(uint256(capabilityHash));
uint8 bitTwo = uint8(uint256(keccak256(abi.encodePacked(capabilityHash))));
uint256 mask = (uint256(1) << bitOne) | (uint256(1) << bitTwo);
bloom |= mask;
emit Registered(capabilityHash, bitOne, bitTwo);
}
function probe(bytes32 capabilityHash) external view returns (bool) {
uint8 bitOne = uint8(uint256(capabilityHash));
uint8 bitTwo = uint8(uint256(keccak256(abi.encodePacked(capabilityHash))));
uint256 mask = (uint256(1) << bitOne) | (uint256(1) << bitTwo);
return (bloom & mask) == mask;
}
}published
published on mainnet · 0x38597E553cBDe684269879Ff9ea6b00E70Cbc27E · tx 0xbc121440a62b1623… · base (8453) · mainnet · source as deployed
published on mainnet · 0x38597E553cBDe684269879Ff9ea6b00E70Cbc27E · tx 0xbc121440a62b1623… · base (8453) · mainnet · source as deployed
published on testnet · 0xe5D9f992220A52df94CB544839F8110e3a894035 · tx 0xb0eb19dcd853961b… · base (84532) · testnet · source as deployed