4 bytes
Selector dictionary
A compiler keeps no function names. What survives is the first four bytes of keccak256 over the signature, and that is all a caller ever sends. This turns those four bytes back into the declaration they came from.
How resolution works
Verified ABIs
Every contract looked up here has its ABI read and each selector it declares recorded, so coverage grows with use.
Collisions kept
Four bytes are not unique. Every signature known to hash to the same selector is returned, not just the first.
Type preserved
Functions, events and errors are stored apart, so a topic0 never resolves to a function that happens to collide.
