Contract is used to store mapping between keccak signatures and address of deployed contract. It is used by router to resolve and call correct contract address. This contract is an essential part of Elektro's Proxy Pattern architecture! It does NOT get redeployed during a system on-chain upgrade, only internal storage gets updated to store data for newly deployed/upgraded implementations contracts throughout the system.
Contract Members
Constants & Variables
bytes32privateconstantGOVERNOR_ROLE_NAME;
mapping(bytes4=>address) internalpointers;
IMPORTANT: This is a signature of the native Router function that can NOT be shadowed by any implementation contract. We check a keccak signature against it for every register() to make sure this doesn't happen. In the case of shadowing, Resolver's lookup() will return an incorrect address, since with any call in this case only {Router.setResolver()} will be called.
bytes32internalconstantSET_RESOLVER_SIG;
SignatureRegistered
Event fired for every newly registered function signature on Resolver.
Parameters
Name
Type
Description
keccakSignature
bytes32
destination
address
SignatureUpdated
Event fired for every updated (e.g. arguments changed after upgrade) function signature on Resolver.
Parameters
Name
Type
Description
keccakSignature
bytes32
destination
address
SignatureRemoved
Event fired for every updated (e.g. arguments changed after upgrade) function signature on Resolver.