Implement GoodDaoHouses MVP smart contract build#299
Draft
Copilot wants to merge 6 commits into
Draft
Conversation
Copilot
AI
changed the title
[WIP] Implement MVP outline for GoodDaoHouses
Add maintainer-reviewable GoodDaoHouses MVP implementation plan
Jun 10, 2026
Contributor
Author
Contributor
The deliverible is: the smart-contract build. |
Author
... Addressed in 478c1c7: removed the committed skills payload and replaced the plan-only change with the GoodDaoHouses contract implementation, FlowSplitter integration surface, and focused governance tests. |
Copilot
AI
changed the title
Add maintainer-reviewable GoodDaoHouses MVP implementation plan
Implement GoodDaoHouses MVP smart contract build
Jun 10, 2026
Implement GoodDaoHouses MVP smart contract build
🚨 Report Summary
For more details view the full report in OpenZeppelin Code Inspector |
sirpy
requested changes
Jun 11, 2026
sirpy
left a comment
Contributor
There was a problem hiding this comment.
- the fields should be written on chain. for distribution strategy it should be a url to a post on our forum.
- quarterly/term vote: modulo timestamp by termDuration if result is between 0 and votingTermLength then we are in voting period time frame, first vote will "create" the vote record by calling an internal createAlignmentVote, the voteId can simply be the result of timestamp divided by termDuration..
- no need for _activeAlignment or _activeCitizens.
- no need for _voteAlignmentVoters,_voteCitizensVoters, _voteWeightSnapshot assume voting weight for citizen/alignment wont change during vote. check member join date to verify he can participate in current vote.
- totalUnits + totalWeights not required for "vote" record in createAlignmentVote
- voteRecipientWeightedVotes should be divided by BASIS_POINTS
7, finalizeAlignmentVote step is not required. - in executeVote each member units is simply the value he got in voteRecipientWeightedVotes
Contributor
|
Author
Addressed in 6fb9881. |
This was referenced Jun 11, 2026
This was referenced Jun 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements the
GoodDaoHousesMVP as an actual smart-contract deliverable, replacing the earlier planning-only artifact. It adds the governance contract, the FlowSplitter integration surface it depends on, a mock for focused testing, and targeted governance tests covering the core membership and vote execution flows.GoodDaoHouses contract
contracts/governance/GoodDaoHouses.sol.Citizens/Alignmenthouse model with per-house minimum stake configuration.transferAndCallregistration, direct register-and-stake, additional staking, approval, revocation, and unstake flows.name/socialLinks, and alignmentname/projectWebpage/missionStatement/distributionStrategy.DAOUpgradeableContract,NameService, access control, pausing, and avatar-authorized upgrades.Membership and voting model
None,Pending,Active,Revoked,Unstaked) and alignment eligibility records onchain.Citizensmembers immediately after staking and gatesAlignmentmembers behind committee-managed eligibility and approval.termDurationandvotingTermLength, where the first ballot cast during the voting window lazily creates the vote record and usestimestamp / termDurationas thevoteId.joinedAtrelative to the current term vote start.voteRecipientWeightedVotes, dividing weighted allocations byBASIS_POINTS.FlowSplitter execution boundary
contracts/governance/IFlowSplitter.solto mirror the pool-based integration surface needed by the MVP.voteRecipientWeightedVotesvalues intoIFlowSplitter.Member[]at the integration boundary.Tests and supporting mock
contracts/mocks/MockFlowSplitter.solfor focused governance testing.test/governance/GoodDaoHouses.test.ts.Cleanup
skills-lock.json.Testing
yarn compile(blocked in this sandbox because Hardhat could not reachbinaries.soliditylang.orgto download the Solidity compiler)yarn hardhat test test/governance/GoodDaoHouses.test.ts(blocked for the same compiler-download reason)solccompile check forcontracts/governance/GoodDaoHouses.soltest/governance/GoodDaoHouses.test.tsExample of the implemented execution boundary: