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
Vote polls: yes/no poll kind with supermajority and minimum voting power (moderation teams A2) #4875
Part of #4865 (decentralized moderation teams). Item A2 of the PR split. Wave 1: no dependency, can start now.
Summary
Add a yes/no masternode vote poll kind, resolved by a supermajority of yes plus no with a minimum amount of cast voting power. It serves stage 1 of a challenge ("replace the incumbent?") and charter amendment votes.
VotePoll has only the contested-document variant. YesNoAbstainVoteChoice (YES, NO, ABSTAIN) already exists in packages/rs-dpp/src/voting/vote_choices/yes_no_abstain_vote_choice/mod.rs but nothing uses it. Masternode voting power is 1 per masternode and 4 per evonode (masternode_vote/transform_into_action/v0/mod.rs).
Scope
A new VotePoll variant: a yes/no poll keyed by a resource path chosen by the caller, with a vote window, using YesNoAbstainVoteChoice.
Resolution rule, parameters carried by the poll: it passes when yes power is strictly more than two thirds of yes plus no power (2/3 + 1, abstain excluded from the denominator) and yes plus no power is at least the minimum (400 for moderation, evonode 4, masternode 1). Otherwise it fails. Both numbers are poll parameters, so other features can reuse the kind.
Storage of votes and tallies, end-date index, stored result (passed or failed with the final tallies), clean-up.
check_for_ended_vote_polls dispatches on the variant and records the outcome; the callback that acts on it is filled in by the challenge and amendment PRs.
Masternode vote validation accepts the new poll kind, same per-vote cost and prefunded balance rules as today.
Proof verification for the poll's queries.
Out of scope
Fund amounts and target-contract windows (A3).
Opening these polls (H4, H5).
Tests
Passes at exactly the threshold and fails one power below it, with abstain votes present in both cases.
Fails when yes plus no is below the minimum even with 100% yes.
Evonode votes count 4.
Clean-up leaves nothing behind.
Coordination
A1 adds another variant to the same enum. Trivial conflict, merge either first.
Activity
feat(platform)!: yes/no masternode vote poll kind with supermajority …
QuantumExplorer commentedon Sep 23, 2026
Deferred to 4.3 or 4.4 together with challenges and amendments, its two users (#4865, D73). PR #4899 stays in draft until then.