CapabilityBloom

capabilitybloom · discovery-registry · 526 B runtime · registry-info

scores

source

pragma solidity ^0.8.13;

contract CapabilityBloom {
    mapping(address => uint256) private _capabilities;

    event CapabilitiesUpdated(address indexed agent, uint256 mask);

    function setCapabilities(uint256 mask) external {
        _capabilities[msg.sender] = mask;
        emit CapabilitiesUpdated(msg.sender, mask);
    }

    function getCapabilities(address agent) external view returns (uint256) {
        return _capabilities[agent];
    }

    function supportsAll(address agent, uint256 required) external view returns (bool) {
        return (_capabilities[agent] & required) == required;
    }

    function supportsAny(address agent, uint256 any) external view returns (bool) {
        return (_capabilities[agent] & any) != 0;
    }
}

published

published on testnet · 0xF672f6fd868550235280a90fc90be8654dF6227d · tx 0xa5859c83e9e4a766… · tempo (42431) · testnet