Bloom capability registry

bloom-capability-registry · discovery-registry · 420 B runtime · registry-info

scores

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