|
@@ -11,7 +11,7 @@ import {SafeCast} from "../../utils/math/SafeCast.sol";
|
|
|
/**
|
|
|
* @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a
|
|
|
* delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The
|
|
|
- * {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly.
|
|
|
+ * {Governor} needs the proposer (and ideally the executor and canceller) roles for the {Governor} to work properly.
|
|
|
*
|
|
|
* Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus,
|
|
|
* the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be
|
|
@@ -21,9 +21,6 @@ import {SafeCast} from "../../utils/math/SafeCast.sol";
|
|
|
* risky, as it grants them the ability to: 1) execute operations as the timelock, and thus possibly performing
|
|
|
* operations or accessing funds that are expected to only be accessible through a vote, and 2) block governance
|
|
|
* proposals that have been approved by the voters, effectively executing a Denial of Service attack.
|
|
|
- *
|
|
|
- * NOTE: `AccessManager` does not support scheduling more than one operation with the same target and calldata at
|
|
|
- * the same time. See {AccessManager-schedule} for a workaround.
|
|
|
*/
|
|
|
abstract contract GovernorTimelockControl is Governor {
|
|
|
TimelockController private _timelock;
|