Bitmask Capability Registry

bitmask-capability-registry · discovery-registry · 225 B runtime · registry-info

scores

source

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract BitmaskCapabilityRegistry {
    uint256 private bitmap;

    function hasCapability(bytes4 selector) external view returns (bool) {
        uint8 bit = uint8(selector[3]);
        return (bitmap & (uint256(1) << uint256(bit))) != 0;
    }

    fallback() external {
        uint8 bit = uint8(msg.sig[3]);
        bitmap |= uint256(1) << uint256(bit);
    }
}