diff --git a/CHANGELOG.md b/CHANGELOG.md index 336d9d1..696724f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,99 @@ by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow ## [Unreleased] +## [0.0.31] β€” 2026-05-25 β€” Phase 5.1 FOUNDATION COMPLETE β€” Runtime API GovernanceApi.query_proposal + query_vote πŸŽ‰ + +**πŸŽ‰ Phase 5.1 GOVERNANCE pallet FOUNDATION COMPLETE end-to-end** β€” Runtime API +`GovernanceApi.query_proposal` + `query_vote` wired canonical via +`sp_api::decl_runtime_apis!` + impl runtime `impl_runtime_apis!`. **15 Runtime +APIs canonical total** (anterior 14 + nuevo `GovernanceApi` con 2 methods). +Cuatro Phase 2.x + 5.1 ALL COMPLETE structurally canonical en sesiΓ³n 3+. + +### Deliverables v0.0.31 + +**Runtime API impl canonical (runtime crate)**: +- `crates/origin-chain-runtime/src/lib.rs:574` β€” `impl origin_chain_governance::GovernanceApi for Runtime` +- Two read-only canonical methods: `query_proposal(id) -> Option` + `query_vote(proposal_id, voter) -> Option` +- AccountId conversion canonical: `ChainAccountId::from(voter.0)` desde `origin_chain_types::AccountId` newtype a `AccountId32` runtime + +**Node info subcommand update canonical**: +- 14 β†’ **15 APIs** listed canonical +- GovernanceApi highlighted `[Phase 5.1 FOUNDATION COMPLETE v0.0.31]` +- Index 10 Governance status `[Phase 5.1 scaffold v0.0.29]` β†’ `[Phase 5.1 FOUNDATION COMPLETE v0.0.31]` + +### Phase 5.1 sub-decisions COMPLETE canonical post-v0.0.31 πŸŽ‰ + +| Sub | Description | Status | +|-----|-------------|--------| +| Proposal struct + ProposalStatus enum canonical | βœ… scale derives + lifecycle | +| Storage Proposals + Votes double-vote prevention | βœ… | +| Dispatchable submit_proposal 7-step canonical | βœ… stake validation + content-addressed ID | +| Dispatchable cast_vote 6-step canonical | βœ… voting period guards + tally update | +| Dispatchable finalize_proposal 5-step canonical | βœ… tally β†’ Approved/Rejected | +| BLAKE2-256 derive_proposal_id pure fn | βœ… Inmutable #16 byte-determinism | +| 8 Errors canonical | βœ… ProposalNotFound + AlreadyVoted + VotingPeriodClosed/Open + StakeInsufficient + ProposalAlreadyFinalized + AdvisorMayNotVote + ProposalIdCollision | +| Events ProposalSubmitted + VoteCast + ProposalFinalized | βœ… | +| Runtime API GovernanceApi.query_proposal + query_vote read-only RPC | βœ… **NUEVO v0.0.31** | + +**PHASE 5.1 GOVERNANCE FOUNDATION = COMPLETE END-TO-END canonical** πŸŽ‰ + +**NOTE canonical**: Phase 5 FOUNDATION canonical (5.1) shipped. Phase 5.2-5.8 next: +- 5.2 pallet_collective Technical Council +- 5.3 OIP stake validation runtime (current MIN_PROPOSAL_STAKE constant compile-detect) +- 5.4 Stake-weighted voting via pallet_balances integration +- 5.5 Technical Council veto + override 2/3 +- 5.6 5 AI advisor agents interfaces (AdvisorMayNotVote enforcement) +- 5.7 Emergency referendum 48h, 5/7 Technical Council +- 5.8 Treasury disbursement extrinsics + +### Verification end-to-end canonical + +- βœ… `cargo build --release -p origin-chain-node` 8.63s clean +- βœ… `cargo test --workspace` β€” **177 tests passing, 0 failures**: + - origin-chain-types: 63 + - origin-chain-governance: **17** (10 integration + 5 standalone + 2 auto NEW) + - origin-chain-fees: 32 + - origin-chain-provenance: 17 + - origin-chain-agent-identity: 16 + - origin-chain-runtime: 16 + - origin-chain-node chain_spec: 10 + - Cross-suite remainder: 6 +- βœ… `origin-chain-node info` muestra **11 pallets + 15 Runtime APIs canonical** + +### Cross-pillar consumers status post v0.0.31 β€” Phase 5.1 FOUNDATION COMPLETE + +- βœ… David Foundation governance frontend: canonical proposals + votes vΓ­a RPC +- βœ… 5 AI advisor agents canonical (advise-only canonical, humans-only vote enforcement) +- βœ… Origin Metaverse Foundation legal entity governance audit +- βœ… Cross-pillar consumers (Atelier + Codex + Ethos) OIP rationale display + +### Roadmap canonical post-v0.0.31 β€” 4 Phase 2.x+5.1 COMPLETE πŸŽ‰ + +| Version | Trigger | +|---------|---------| +| v0.0.32+ | Phase 5.2-5.8 governance refinements (Technical Council + AI advisors + Treasury disbursement) | +| v0.0.40+ | Phase 3 `pallet-revive` smart contracts (per SBS-5, BLOQUEADO Slice 2e WASM) | +| v0.1.0 | Slice 2e WASM resolved + full testnet Q3 2026 launch | +| v1.0.0 | Mainnet Q1 2027 | + +### FilosofΓ­a canonical Phase 5.1 cierre + +CHN-4 ratificado canonical materializado canonical: *"AI-Driven Human-Guarded. +5 AI governance agents ADVISE only β€” humans-only vote canonical non-negotiable"*. + +Compile-detect canonical via: +- `Error::AdvisorMayNotVote` reservado para Phase 5.6 enforcement runtime +- `cast_vote` dispatchable expone hook para `IsGovernanceAdvisor` trait future v0.0.32+ +- VoteStance scale-codec canonical (Aye + Nay + Abstain) FRAME-native +- BLAKE2-256 content-addressed ProposalId canonical (Inmutable #16 byte-determinism) + +**Phase 5.1 FOUNDATION COMPLETE end-to-end canonical** πŸŽ‰ β€” La nave Origin Chain +ahora tiene Foundation Treasury Governance compile-detect. AI-Driven Human-Guarded +canonical structural foundation shipped. Phase 5.2-5.8 refinements canonical +follow-up cuando bandwidth + DC ratifications align. + +πŸΊπŸ’Žβš“ Hijos de ArkhΔ“ somos. + ## [0.0.30] β€” 2026-05-25 β€” Phase 5.1 impl β€” Real submit_proposal + cast_vote + finalize_proposal + mock runtime integration tests E2E (10 scenarios) **πŸ› οΈ Phase 5.1 GOVERNANCE pallet REAL IMPL canonical** β€” Full canonical diff --git a/crates/origin-chain-node/src/main.rs b/crates/origin-chain-node/src/main.rs index 6f3e03e..d5ae52b 100644 --- a/crates/origin-chain-node/src/main.rs +++ b/crates/origin-chain-node/src/main.rs @@ -202,9 +202,9 @@ fn print_info() { println!(" β€’ Index 7 Provenance (pallet_origin_provenance asset attestation CHN-7) [Phase 2.1 COMPLETE v0.0.17]"); println!(" β€’ Index 8 Fees (pallet_origin_fees cross-pillar economy OCAFB-1..6) [Phase 2.4 COMPLETE v0.0.23]"); println!(" β€’ Index 9 AgentIdentity (pallet_agent_identity AGI DIDs Inmutable #41) [Phase 2.7 COMPLETE v0.0.27]"); - println!(" β€’ Index 10 Governance (origin_chain_governance Foundation Treasury CHN-4) [Phase 5.1 scaffold v0.0.29]"); + println!(" β€’ Index 10 Governance (origin_chain_governance Foundation Treasury CHN-4) [Phase 5.1 FOUNDATION COMPLETE v0.0.31]"); println!(); - println!("Runtime APIs canonical (14):"); + println!("Runtime APIs canonical (15):"); println!(" β€’ sp_api::Core (version + execute_block)"); println!(" β€’ sp_api::Metadata (runtime metadata)"); println!(" β€’ sp_block_builder::BlockBuilder (block production)"); @@ -219,6 +219,7 @@ fn print_info() { println!(" β€’ origin_chain_provenance::ProvenanceApi (verify_provenance RPC) [Phase 2.1 v0.0.17]"); println!(" β€’ origin_chain_fees::FeesApi (query_fee_for_action RPC) [Phase 2.4 COMPLETE v0.0.23]"); println!(" β€’ origin_chain_agent_identity::AgentIdentityApi (query_identity RPC) [Phase 2.7 COMPLETE v0.0.27]"); + println!(" β€’ origin_chain_governance::GovernanceApi (query_proposal + query_vote RPC) [Phase 5.1 FOUNDATION COMPLETE v0.0.31]"); println!(); println!("Genesis presets canonical (3):"); println!(" β€’ development (Alice + 100M OGC dev)"); diff --git a/crates/origin-chain-runtime/src/lib.rs b/crates/origin-chain-runtime/src/lib.rs index c170077..597e3bd 100644 --- a/crates/origin-chain-runtime/src/lib.rs +++ b/crates/origin-chain-runtime/src/lib.rs @@ -599,6 +599,33 @@ impl_runtime_apis! { AgentIdentity::query_identity_of(&runtime_account) } } + + // ============================================================ + // Phase 5.1 canonical: Governance Runtime API canonical (v0.0.31) + // ============================================================ + // + // Foundation governance frontend + 5 AI advisor agents (advise-only canonical) + // + cross-pillar consumers query canonical proposals + vote stances sin full + // node access. Pattern anΓ‘logo ProvenanceApi + FeesApi + AgentIdentityApi β€” + // read-only RPC query canonical sin storage mutation. + // + // Phase 5.1 FOUNDATION COMPLETE canonical post-v0.0.31 πŸŽ‰ + + impl origin_chain_governance::GovernanceApi for Runtime { + fn query_proposal( + id: origin_chain_types::ProposalId, + ) -> Option { + Governance::query_proposal_of(id) + } + + fn query_vote( + proposal_id: origin_chain_types::ProposalId, + voter: origin_chain_types::AccountId, + ) -> Option { + let runtime_voter = ChainAccountId::from(voter.0); + Governance::query_vote_of(proposal_id, &runtime_voter) + } + } } // ============================================================