const VotingPeriod
VotingPeriod is fixed by the approved founding policy, not proposer input.
Package memba\_weighted\_policy implements the approved founding coalition and delay rules. The hosting DAO must auth...
Package memba_weighted_policy implements the approved founding coalition and delay rules. The hosting DAO must authenticate callers, classify and freeze typed actions, and keep every Policy and Proposal private. This package grants no authority over a realm and is not a replacement for those integration gates.
VotingPeriod is fixed by the approved founding policy, not proposer input.
PersonID is the directory's unique human identity, never a wallet alias. The host must establish that different PersonIDs really are different people.
Policy fixes one founding seven-person roster. Reconfiguration deliberately invalidates every pending proposal, including already mature proposals. Only a reviewed critical-action handler in the host may call Reconfigure.
MayPause establishes member eligibility only. The host must dispatch only a typed, allowlisted pause operation; this is never spend or unpause authority.
Reconfigure is a host-only operation, not an authenticated public DAO API. It preserves the approved seven seats and 2/1 weights. Invalid input cannot mutate the roster or invalidate proposals, even if the host recovers a panic.
Proposal freezes the category, exact action bytes and roster generation. The host determines the category from the action handler, never user input. Each proposal has its own vote storage and qualification clocks. yesSince[i] is the start of seat i's current uninterrupted YES ballot and is meaningful only while votes[i] is Yes.
Consume binds execution to the frozen action and marks it consumed BEFORE the host invokes its typed handler. The host must let handler failure abort the transaction: recovering a panic does not roll back Gno realm state. Caller authentication and current-member executor eligibility belong to the host. Do not expose Proposal pointers or call Consume from a read endpoint.
Vote requires a caller identity already authenticated by the host realm. Voting closes at the deadline, including changes to existing ballots. A critical route starts when some coalition that is still voting YES without interruption first met its threshold. A withdrawal moves the clock only when every such coalition needed that ballot, so voters the rest of the YES set does not need cannot postpone execution by withdrawing and rejoining.
1type State struct {
2 Category Category
3 CreatedAt time.Time
4 VotingDeadline time.Time
5 VotingClosed bool
6 Qualified bool
7 Expired bool
8 WeightYes int
9 PeopleYes int
10 DevelopersYes int
11 WeightedAfter time.Time
12 DeveloperAfter time.Time
13 Invalidated bool
14 Consumed bool
15 Ready bool
16}State is a copy for rendering. Reading never starts or advances a clock. An invalidated proposal reports no current tally or execution authorization.