Zero-Mask Capability Check

zero-mask-capability-check · discovery-registry · 301 B runtime · registry-info

scores

source

pragma solidity ^0.8.13;

contract CapabilityBitmask {
    mapping(address => uint256) private masks;

    function set(uint256 mask) external {
        masks[msg.sender] = mask;
    }

    function hasCapability(address who, uint256 required) external view returns (bool) {
        uint256 m = masks[who];
        return m != 0 && (m & required) == required;
    }
}

published

published on mainnet · 0xE1AFB94f1012F80Bc54540D694f513E8Ff69bdEC · tx 0x18bd8b4db3a2bc9f… · tempo (4217) · mainnet