Skip to content

Latest commit

 

History

History
67 lines (50 loc) · 2.61 KB

ServiceManagerBase.md

File metadata and controls

67 lines (50 loc) · 2.61 KB

ServiceManagerBase

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.

registerOperatorToAVS

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:

Requirements:

deregisterOperatorFromAVS

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:

Requirements:

  • Caller MUST be the RegistryCoordinator
  • See EigenLayer core: [AVSDirectory.deregisterOperatorFromAVS][core-dmgr-deregister]