Skip to content

Add CANCEL_ROLE to TimelockController #2980

Closed
@cygnusv

Description

🧐 Motivation
In the forthcoming Threshold Network DAO, there's a council with veto power over proposals. The only way to allow this with current implementation of TimelockController would be to grant the council the PROPOSER_ROLE, but this council shouldn't be able to make proposals, according to our governance design. We need something like a CANCEL_ROLE that's different from PROPOSER_ROLE and EXECUTION_ROLE. This feature could also be a solution for the "Proposer fight" problem that's discussed in the documentation.

Discussion
I wanted to do this by creating a contract that inherits from TimelockController, but since its variables and functions are marked as private it's being difficult. In particular, we need to further restrict the cancel operation to a different role than proposers, but the modifier in cancel() forces us to override it and re-implement it, and we encounter the problem of _timestamps being private.

Anyway, if you find this interesting, I'd love to help, since I'm working on that anyway.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions