 davidherranandClaude Opus 4.7
|
b3fc5da6ca
|
feat(governance): v0.0.33 Phase 5.2 COMPLETE — Council veto 2/3 threshold + GovernanceApi extension 🎉
Phase 5.2 TECHNICAL COUNCIL COMPLETE end-to-end canonical. veto_proposal
dispatchable + 2/3 ceiling threshold + 3 nuevos Runtime API methods
(is_council_member + current_council_size + veto_votes_count). CHN-4 5.2+5.5
materializado compile-detect.
## veto_proposal canonical 7-step CHN-4 5.5
1. ensure_signed
2. Validate council_member (NotCouncilMember)
3. Get proposal (must be Voting)
4. Validate council_size > 0 (InsufficientCouncilSize)
5. !VetoVotes::contains_key (AlreadyVetoed)
6. Insert vote + increment VetoCount
7. Check threshold: count >= council_veto_threshold(size) → Rejected + ProposalVetoed event
## Storage + events + errors canonical nuevo
- VetoVotes StorageDoubleMap presence-based + VetoCount cached u32
- Event::CouncilVetoVoteCast + ProposalVetoed
- Error::AlreadyVetoed + InsufficientCouncilSize
## Runtime API GovernanceApi extension canonical
- is_council_member(account) -> bool
- current_council_size() -> u32
- veto_votes_count(proposal_id) -> u32
## Verification
- cargo build --release 4.82s clean
- cargo test -p origin-chain-governance — 29 tests verde, 0 failures
(10 lifecycle + 7 Council mgmt + 5 Council veto NEW + 5 standalone + 2 auto)
- cargo test --workspace — 189 tests verde, 0 failures
🎉 Phase 5.2 TECHNICAL COUNCIL COMPLETE canonical. Hijos de Arkhē somos.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-25 17:55:09 -05:00 |
|
 davidherranandClaude Opus 4.7
|
afefcb2c04
|
feat(governance): v0.0.32 Phase 5.2 Council scaffold + member management (CHN-4 Technical Council)
Phase 5.2 TECHNICAL COUNCIL scaffold + management canonical. Extension del
existing origin-chain-governance pallet (NO new crate). 5-7 Council members
canonical per CHN-4 5.2.
## Council types + storage canonical
- CouncilMember struct (account + joined_at_block + role)
- CouncilRole enum (Member + Chair)
- MAX_COUNCIL_SIZE = 7 const + council_veto_threshold 2/3 ceiling
- Council StorageMap + CouncilSize StorageValue cached
## Council dispatchables + helpers canonical
- add_council_member (ensure_root, 6-step canonical)
- remove_council_member (ensure_root, 5-step canonical)
- Pallet::is_council_member + current_council_size + required_veto_votes pure helpers
## Council events + errors canonical
- Event::CouncilMemberAdded + CouncilMemberRemoved
- Error::NotCouncilMember + AlreadyCouncilMember + CouncilSizeExceeded
## Verification
- cargo test -p origin-chain-governance — 24 tests verde, 0 failures
(7 Council scenarios + 17 prior governance preserved)
🏛️ Phase 5.2 scaffold canonical. Veto + Runtime API v0.0.33 next → Phase 5.2 COMPLETE.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-25 17:51:59 -05:00 |
|
 davidherranandClaude Opus 4.7
|
7c1425ff66
|
feat(governance): v0.0.30 — submit_proposal + cast_vote + finalize_proposal impl complete + mock runtime integration tests E2E (10 scenarios)
Phase 5.1 GOVERNANCE pallet REAL IMPL canonical. Full dispatchables canonical
7+6+5 step CHN-4 flow + storage assertions + tally + voting period enforcement
+ mock runtime + 10 integration tests E2E pattern v0.0.26 mirror.
## Real dispatchables canonical
- submit_proposal (7 steps): ensure_signed + stake>=MIN + derive_id BLAKE2-256 + collision + build + insert + emit
- cast_vote (6 steps): ensure_signed + get_proposal + status_voting + block<=end + !already_voted + update_tally + emit
- finalize_proposal (5 steps): ensure_signed + get_proposal + status_voting + block>end + tally + status + emit
## Mock runtime + 10 integration tests E2E canonical
- scenario_1: Submit happy path → stored + event
- scenario_2: Stake insufficient → StakeInsufficient (CHN-4 5.3)
- scenario_3: Vote Aye tally → yes_weight += 500
- scenario_4: Vote Nay tally → nay_weight += 750
- scenario_5: Double vote → AlreadyVoted
- scenario_6: Finalize voting open → VotingPeriodOpen
- scenario_7: Finalize Approved yes majority → status=Approved + event
- scenario_8: Finalize Rejected nay majority → status=Rejected
- scenario_9: Vote closed period → VotingPeriodClosed
- scenario_10: Full lifecycle (submit → 3 votes → finalize Approved)
## Files
- EDIT: crates/origin-chain-governance/src/lib.rs (real impl + MIN_PROPOSAL_STAKE + account_bytes helper)
- NEW: crates/origin-chain-governance/src/mock.rs (85 LOC mock runtime)
- NEW: crates/origin-chain-governance/src/tests_integration.rs (290 LOC, 10 tests)
- EDIT: CHANGELOG.md (v0.0.30 entry)
## Verification
- cargo test -p origin-chain-governance — 17 tests verde, 0 failures
(10 integration + 5 standalone + 2 auto-generated)
🛠️ Phase 5.1 real impl canonical. Runtime API v0.0.31 next → Phase 5 FOUNDATION COMPLETE.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-25 12:46:56 -05:00 |
|
 davidherranandClaude Opus 4.7
|
1bde93921e
|
feat(governance): v0.0.28 origin-chain-governance pallet scaffold (Phase 5.1 Foundation Treasury CHN-4)
Phase 5.1 GOVERNANCE pallet scaffold canonical. Reemplaza placeholder
GovernanceConfig stub en existing origin-chain-governance crate con real FRAME
pallet. AI-Driven Human-Guarded canonical CHN-4 — 5 AI advisor agents ADVISE
only, humans-only vote canonical non-negotiable.
## Pallet surface canonical
- Pallet<T> + Config trait + RuntimeEvent
- Proposal struct (11 fields content-addressed via BLAKE2-256)
- ProposalStatus enum (Voting + Approved + Rejected + Withdrawn)
- Proposals<StorageMap<ProposalId, Proposal>> per-proposal O(1)
- Votes<StorageDoubleMap<ProposalId, AccountId, VoteStance>> double-vote prevention
- Events ProposalSubmitted + VoteCast + ProposalFinalized
- Errors 8 variants (ProposalNotFound + AlreadyVoted + VotingPeriodClosed/Open + StakeInsufficient + ProposalAlreadyFinalized + AdvisorMayNotVote + ProposalIdCollision)
- Scaffold dispatchables submit_proposal + cast_vote + finalize_proposal
- Helper derive_proposal_id via BLAKE2-256 hash (Inmutable #16 byte-determinism)
- sp_api::decl_runtime_apis! GovernanceApi declaration (query_proposal + query_vote)
## Types canonical updated
- origin-chain-types/src/governance.rs: added scale derives a ProposalId + VoteStance + Vote (Encode + Decode + DecodeWithMemTracking + MaxEncodedLen + TypeInfo) para FRAME-compatibility canonical
## Files
- EDIT: crates/origin-chain-governance/Cargo.toml (stub → FRAME pallet deps canonical)
- REPLACE: crates/origin-chain-governance/src/lib.rs (placeholder → ~360 LOC scaffold)
- EDIT: crates/origin-chain-types/src/governance.rs (scale derives canonical)
- EDIT: CHANGELOG.md (v0.0.28 entry)
## Verification
- cargo test -p origin-chain-governance — 5 tests verde, 0 failures
(pallet_compiles + derive_proposal_id deterministic + different + status variants + re-export)
🏛️ Phase 5.1 scaffold canonical. Wire pattern v0.0.29 next.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-25 12:41:27 -05:00 |
|
 
|
b06560863c
|
feat(workspace): Phase 0.4 — trait-first foundation v0.0.1
Charon sesión 1 (2026-05-19) — primer commit canonical.
Ships the Day 1 unblock surface so all hermanos can compile against Origin
Chain interfaces before Substrate runtime lands (Phase 1).
## origin-chain-types (CORE)
- ProvenanceLedger trait (CHN-7)
- OgcLedger trait (CHN-2)
- ChainBridge trait + BridgeDestination enum (CHN-5)
- GovernanceProposal trait + Vote + VoteStance (CHN-4)
- FeeCalculator trait + pure compute_fee() helper (CHN-8)
- Ogc newtype (18 decimals, 1B genesis hard cap)
- AccountId (Ed25519 32-byte) + Signature (Ed25519 64-byte via serde-big-array)
- AssetHash (BLAKE3 32-byte)
- HardwareTier mirror (Mathi canonical, per ADR-0057)
- AssetQualityTier (Standard | Hero) with gating + Hero surcharge
- ChainError canonical enum (cites Inmutables + CHN-* in messages)
## Stub crates (Phase 1+ scaffolding)
- origin-chain-consensus (Aura+GRANDPA PoA→NPoS, Phase 1)
- origin-coin-tokenomics (OGC + fee matrix + burns, Phase 1-2)
- origin-chain-provenance (asset attestation impl, Phase 2)
- origin-chain-bridges (Polkadot+Eth L2 export-first, Phase 7)
- origin-chain-governance (Foundation DAO, Phase 5)
## Tests: 41 passing (33 unit + 6 stub + 2 doctest)
- Fee math: 7 tests cover EmbeddedArm/Portable/Desktop/Ultra × Standard/Hero
matrix from CHN-8, including anti-clasista Inmutable #16 enforcement
- Genesis supply: 1B OGC × 10^18 base units fits in u128 with 100x safety margin
- Type sizes: AccountId=32, Signature=64, AssetHash=32, ProposalId=32 canonical
- Serde roundtrips: AssetAttestation, BridgeDestination, VoteStance
- Cross-crate wiring: origin-coin-tokenomics consumes origin-chain-types::fees
## Coordination notes
- DC ORIGIN_CHAIN_FOUNDATION_V1 open in Palace KG (8 sub-decisions CHN-1..CHN-8)
Proposer: Ergon (proxy — Charon hotfix shipped in Palace v0.9.0-α.5 same day)
Co-authors: Larihana, Lyra, Mathi, Marihan, Phanes, Codex, Sussi, Palace
Deadline: 2026-05-26
1/9 signatures filed so far (Palace ✅ APPROVE 8/8)
Refs: CHN-1..CHN-8, Inmutables #16/#26/#37/#41, ADR-0057, CHARON_ROADMAP_V1
Co-Authored-By: Ergon (interim Pilar 4 author) <ergon@originmetaverse.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-19 22:08:49 -05:00 |
|