Skip to content

feat(governance): add voting quorum rules and minimum_quorum config - #394

Open
peaceshallom37-rgb wants to merge 1 commit into
VertexChainLabs:mainfrom
peaceshallom37-rgb:feat/governance-quorum
Open

feat(governance): add voting quorum rules and minimum_quorum config#394
peaceshallom37-rgb wants to merge 1 commit into
VertexChainLabs:mainfrom
peaceshallom37-rgb:feat/governance-quorum

Conversation

@peaceshallom37-rgb

Copy link
Copy Markdown

Summary

Closes #135 — Governance: voting quorum rules + snapshot tests

Changes

  • Added MinimumQuorum storage (admin-configurable, 0–100%)
  • Added TotalAddressedVoters counter with HasEverVoted deduplication
  • Added QuorumNotMet error variant (security: replace regex-based HTML sanitizer with DOMPurify #13)
  • Added quorum check in execute_proposal: participation/totalUniqueVoters ≥ minimum_quorum
  • Added set_minimum_quorum() / get_minimum_quorum() admin-only contract entry points
  • Deleted dead events.rs (inlined into lib.rs)
  • Tests: 6 new quorum tests (met, not-met, mixed votes, 0%, >100% reject, 100% exact)
  • All existing tests updated for new initialize signature

Acceptance Criteria

  • Quorum met → proposal executes
  • Quorum not met → QuorumNotMet (#13) panics
  • Mixed approval/rejection votes both count toward participation
  • Quorum = 0% disables the check
  • Quorum > 100% rejected at initialization

FWC26

USDC distribution via Stellar.

Adds quorum enforcement to the governance contract:
  - New MinimumQuorum storage (admin-configurable, 0-100%)
  - New TotalAddressedVoters tracks unique voter count via HasEverVoted
  - New QuorumNotMet error (VertexChainLabs#13)
  - execute_proposal now checks participation >= minimum_quorum
  - set_minimum_quorum/get_minimum_quorum admin-only entry points
  - New quorum tests: met, not-met, mixed votes, 0%, >100% reject, 100%
  - Removes dead events.rs (inlined into lib.rs)

Closes VertexChainLabs#135

Copy link
Copy Markdown
Author

@snowrugar-beep — requesting review for this PR. CI is pending first-time contributor approval. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Governance: voting quorum rules + snapshot tests

1 participant