File | Type | Proxy |
---|---|---|
ServiceManagerBase.sol |
Singleton | Transparent proxy |
The ServiceManagerBase
represents the AVS's address relative to EigenLayer core. When registering or deregistering an operator from an AVS, the AVS's ServiceManagerBase
communicates this change to the core contracts, allowing the core contracts to maintain an up-to-date view on operator registration status with various AVSs.
As of M2:
- Currently, this contract is used by the
AVSDirectory
to keep track of operator registration and deregistration. Eventually, this relationship will be expanded to allow operators to opt in to slashing and payments for services.
function registerOperatorToAVS(
address operator,
ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature
)
public
virtual
onlyRegistryCoordinator
When the RegistryCoordinator
registers an operator for an AVS and they were not previously registered, it calls this method on ServiceManagerBase
, which forwards the call to the EigenLayer core contract, the AVSDirectory
.
Entry Points:
RegistryCoordinator.registerOperator
RegistryCoordinator.registerOperatorWithChurn
Effects:
- See EigenLayer core:
AVSDirectory.registerOperatorToAVS
Requirements:
- Caller MUST be the
RegistryCoordinator
- See EigenLayer core:
AVSDirectory.registerOperatorToAVS
function deregisterOperatorFromAVS(
address operator
)
public
virtual
onlyRegistryCoordinator
When the RegistryCoordinator
deregisters an operator from an AVS, it calls this method on ServiceManagerBase
, which forwards the call to the EigenLayer core contract, the AVSDirectory
.
Entry Points:
RegistryCoordinator.registerOperatorWithChurn
RegistryCoordinator.deregisterOperator
RegistryCoordinator.ejectOperator
RegistryCoordinator.updateOperators
RegistryCoordinator.updateOperatorsForQuorum
Effects:
- See EigenLayer core:
AVSDirectory.deregisterOperatorFromAVS
Requirements:
- Caller MUST be the
RegistryCoordinator
- See EigenLayer core: [
AVSDirectory.deregisterOperatorFromAVS
][core-dmgr-deregister]