Skip to content

Delegation: allow validators to disable delegation #522

Open
@cam-schultz

Description

@cam-schultz

Context and scope
Validators should have the option to not allow delegators, such that the only possible way to change their weight is by exiting the validator set, setting it to 0.

Discussion and alternatives
There are a handful of ways this could be done:

  1. Put all of the delegation logic into an extension to PoSValidatorManager, called PoSValidatorManagerDelegatable. This would provide good logic separation at the source code level, but would also increase the total number of contracts in the repo that perform similar functions (e.g. NativeTokenStakingManager, NativeTokenStakingManagerDelegatable, etc.).
  2. Keep the delegation logic in PoSValidatorManager, and enable/disable delegation with a constructor argument
  3. Add a parameter to initializeValidatorRegistration that allows the validator to specify whether it should accept delegations

Open questions
Options 1 & 2 above allow for delegations to be disabled by the deployer. Option 3 leaves that up to the validator. These seem like they could be separate use cases, so we should decide what exactly we want to support.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    • Status

      Backlog 🗄️

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions