Selector Registry
selector-registry · discovery-registry · 588 B runtime · funds-movement
scores
- usefulness: 6
- safety: 3
- liveness: 4
- authenticity: 9
- extensibility: 4
- bytecodeDiscipline: 10
- practical: 5
source
pragma solidity ^0.8.13;
contract SelectorRegistry {
mapping(bytes4 => address) private registry;
function register(bytes4 selector) external payable {
require(msg.value == 0.01 ether);
require(registry[selector] == address(0));
registry[selector] = msg.sender;
}
function resolve(bytes4 selector) external view returns (address) {
return registry[selector];
}
function unregister(bytes4 selector) external {
require(registry[selector] == msg.sender);
delete registry[selector];
(bool ok, ) = msg.sender.call{value: 0.01 ether}("");
require(ok);
}
}