You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 5b38e0b
Browse filesBrowse the repository at this point in the historyBrowse files
Renames:
- Layout -> StorageLayout (struct + all references)
- _isWhitelisted -> isWhitelisted (storage field)
- setValidatorNonce -> setValidatorNonceFloor (ABI break, contract not
yet deployed; matches the floor semantics)
- ValidatorNonceSet event param newNonce -> newFloor (topic hash
unchanged)
Behavior:
- QuorumSigLib rejects nonce == type(uint256).max as the retired-validator
sentinel. Without this, _removeValidator's floor saturation still left
one usable nonce (the floor itself, since the floor check is strict-<).
Closes the audit-flagged hole in the "all sigs become unusable after
removal" claim.
- _removeValidator now returns bool (false on no-op when address isn't a
validator) instead of reverting NotValidator. The strict
removeValidator / removeValidatorBySig wrap and revert NotValidator
themselves; revokeAllRoles ignores the return so the validator side
gracefully degrades to a no-op while compliance strip still runs.
revokeAllRoles becomes a thin wrapper over _removeValidator +
_setComplianceOfficer.
Documentation:
- initialize: quorum range [1, len) (strict-less-than).
- QuorumOutOfRange: "0 or >= validator count".
- removeValidator: rewrite to match floor-saturation reality.
- pauseFor: "sets to now + secs", not "extends by secs".
- _setQuorum + README A1: drop overstated iterative-shrink prevention
claim; the strict invariant is one-step anti-capture only.
- README C3 + contract header: only setValidatorNonceFloor, post-renounce
*BySig paths, and revokeAllRoles remain reachable while paused. Owner
paths (addValidator/removeValidator/setQuorum/setComplianceOfficer)
are whenNotPaused.
- revokeAllRoles: document the pause-asymmetry as intentional recovery
hook; document quorum-boundary partial-failure as caller-side
precondition.
- Various other doc references updated for the new names.
Tests:
- test/RequestWhitelist.t.sol: setValidatorNonce -> setValidatorNonceFloor.
- Invariants: bump selector array to 12, add h_revokeAllRoles (the
handler had it but it wasn't fuzzed); rename h_setValidatorNonce.
forge build, forge fmt --check, and forge test (79/79) all pass.
0 commit comments