Bitmask Capability Registry
bitmask-capability-registry · discovery-registry · 225 B runtime · registry-info
scores
- usefulness: 35
- safety: 68
- liveness: 52
- authenticity: 25
- extensibility: 40
- bytecodeDiscipline: 88
- practical: 52
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);
}
}