From 0a83395a16eac6b394099c946e620154ebba3631 Mon Sep 17 00:00:00 2001 From: DavidHerran Date: Sun, 24 May 2026 22:50:52 -0500 Subject: [PATCH] =?UTF-8?q?feat(runtime):=20v0.0.21=20=E2=80=94=20Fees=20p?= =?UTF-8?q?allet=20wired=20runtime=20composition=20Index=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 2.4 FEES pallet wired canonical en `frame_support::runtime` macro como Index 8 (post-Provenance Index 7). 8 → 9 pallets composed canonical. Config trait RuntimeEvent association wired canonical en configs.rs (pattern Provenance Phase 2.1 mirror). ## Changes - crates/origin-chain-runtime/src/lib.rs:285 — Index 8 pub type Fees = origin_chain_fees::Pallet - crates/origin-chain-runtime/src/configs.rs:347 — impl origin_chain_fees::Config for Runtime { type RuntimeEvent = RuntimeEvent } - crates/origin-chain-runtime/Cargo.toml — origin-chain-fees workspace dep + std feature - Cargo.toml — origin-chain-fees workspace dependency - crates/origin-chain-node/src/main.rs — 8 → 9 pallets listed + Fees Index 8 highlighted + Provenance status updated v0.0.15 → v0.0.17 ## Verification - cargo build -p origin-chain-runtime 13.63s clean - cargo test --workspace — 123 tests passing, 0 failures - cargo build --release -p origin-chain-node 4.39s clean - origin-chain-node info muestra 9 pallets canonical 🔌 Phase 2.4 wired canonical. Real impl v0.0.22 next. Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 52 ++++++++++++++++++++++ Cargo.lock | 1 + Cargo.toml | 1 + crates/origin-chain-node/src/main.rs | 5 ++- crates/origin-chain-runtime/Cargo.toml | 5 +++ crates/origin-chain-runtime/src/configs.rs | 18 ++++++++ crates/origin-chain-runtime/src/lib.rs | 15 +++++++ 7 files changed, 95 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1eafec..08d8ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,58 @@ by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow ## [Unreleased] +## [0.0.21] — 2026-05-24 — Phase 2.4 wired — Fees pallet runtime composition Index 8 + +**🔌 Phase 2.4 FEES pallet WIRED runtime composition canonical** — `origin-chain-fees` +añadido al `#[frame_support::runtime]` macro como Index 8 (post-Provenance Index 7). +8 → **9 pallets** composed canonical. Config trait `RuntimeEvent` association wired +canonical en `crates/origin-chain-runtime/src/configs.rs` (pattern Provenance Phase 2.1). + +### Deliverables v0.0.21 + +**Runtime composition canonical (Index 8 added)**: +- `crates/origin-chain-runtime/src/lib.rs:285` — `#[runtime::pallet_index(8)] pub type Fees = origin_chain_fees::Pallet;` +- `crates/origin-chain-runtime/src/configs.rs:347` — `impl origin_chain_fees::Config for Runtime { type RuntimeEvent = RuntimeEvent; }` + +**Workspace deps canonical**: +- `Cargo.toml:154` — `origin-chain-fees = { path = "crates/origin-chain-fees", version = "0.0.1" }` workspace dep +- `crates/origin-chain-runtime/Cargo.toml:47` — `origin-chain-fees.workspace = true` dep + std feature +- Documentación canonical pattern Provenance (deferred fields OitFeeSchedule post-OCAFB ratify) + +**Node info subcommand update canonical**: +- `crates/origin-chain-node/src/main.rs:194` — 8 → **9 pallets** listed canonical +- `crates/origin-chain-node/src/main.rs:203` — Index 8 Fees highlighted `[Phase 2.4 scaffold v0.0.21]` +- Provenance status updated `[Phase 2.1 scaffold v0.0.15]` → `[Phase 2.1 COMPLETE v0.0.17]` + +### Verification end-to-end canonical + +- ✅ `cargo build -p origin-chain-runtime` 13.63s clean (warnings cosméticos macro-generated) +- ✅ `cargo test --workspace` — **123 tests passing**, 0 failures: + - origin-chain-types: 55 (+8 ChainAction + SubscriptionTier) + - origin-chain-fees: 20 (16 vendor + 4 pallet scaffold) + - origin-chain-provenance: 17 (9 integration + 6 standalone + 2 auto) + - origin-chain-runtime: 16 (no regressions) + - origin-coin-tokenomics: 2 + - origin-chain-bridges/consensus/governance: 3 + - origin-chain-node chain_spec: 10 +- ✅ `cargo build --release -p origin-chain-node` 4.39s clean +- ✅ `origin-chain-node info` muestra 9 pallets canonical + 12 Runtime APIs (FeesApi pendiente v0.0.23) +- ✅ Existing subcomandos canonical NO regression (version + list-presets + print-preset + info + build-spec) + +### Roadmap canonical post-v0.0.21 + +| Version | Trigger | +|---------|---------| +| **v0.0.22** | **Real `compute_fee_for_action` impl + storage assertions + mock runtime integration tests E2E (sesión 3+ shipping ahora, pattern v0.0.18 mirror)** | +| v0.0.23 | Runtime API canonical `FeesApi.query_fee_for_action` read-only RPC → **Phase 2.4 COMPLETE 7/7 OCAFB** | +| v0.1.0 | Slice 2e WASM resolved + full testnet Q3 2026 launch | + +### Cross-pillar consumers status post v0.0.21 + +- ✅ Mathi `OitFeeSchedule` trait wired canonical (Config association deferred v0.0.22) +- 🟢 `Fees` pallet runtime composition canonical activated Index 8 +- 🟢 Mock runtime integration tests pattern v0.0.18 ready para mirror v0.0.22 + ## [0.0.20] — 2026-05-24 — Phase 2.4 scaffold — pallet-origin-fees trait-first foundation (OCAFB-1..6) **🚀 Phase 2.4 FEES pallet SCAFFOLD trait-first foundation** — Vendor copy diff --git a/Cargo.lock b/Cargo.lock index e966d78..1ff2a19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2237,6 +2237,7 @@ dependencies = [ "frame-system", "frame-system-rpc-runtime-api", "log", + "origin-chain-fees", "origin-chain-provenance", "origin-chain-types", "pallet-aura", diff --git a/Cargo.toml b/Cargo.toml index d9e5852..0a82e26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -151,6 +151,7 @@ origin-chain-types = { path = "crates/origin-chain-types", version = "0.0.1" } origin-chain-consensus = { path = "crates/origin-chain-consensus", version = "0.0.1" } origin-coin-tokenomics = { path = "crates/origin-coin-tokenomics", version = "0.0.1" } origin-chain-provenance = { path = "crates/origin-chain-provenance", version = "0.0.1" } +origin-chain-fees = { path = "crates/origin-chain-fees", version = "0.0.1" } origin-chain-bridges = { path = "crates/origin-chain-bridges", version = "0.0.1" } origin-chain-governance = { path = "crates/origin-chain-governance", version = "0.0.1" } origin-chain-runtime = { path = "crates/origin-chain-runtime", version = "0.0.1" } diff --git a/crates/origin-chain-node/src/main.rs b/crates/origin-chain-node/src/main.rs index 86622ca..fc8b19a 100644 --- a/crates/origin-chain-node/src/main.rs +++ b/crates/origin-chain-node/src/main.rs @@ -191,7 +191,7 @@ fn print_info() { println!("Impl name: {}", IMPL_NAME); println!("Runtime version: {}", RUNTIME_VERSION); println!(); - println!("Pallets canonical (8):"); + println!("Pallets canonical (9):"); println!(" • Index 0 System (frame_system foundational)"); println!(" • Index 1 Timestamp (pallet_timestamp block clock → Aura)"); println!(" • Index 2 Balances (pallet_balances OGC token CHN-2)"); @@ -199,7 +199,8 @@ fn print_info() { println!(" • Index 4 Aura (pallet_aura PoA block production CHN-1)"); println!(" • Index 5 Grandpa (pallet_grandpa finality gadget CHN-1)"); println!(" • Index 6 Session (pallet_session 4h epoch rotation CHN-1)"); - println!(" • Index 7 Provenance (pallet_origin_provenance asset attestation CHN-7) [Phase 2.1 scaffold v0.0.15]"); + 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 scaffold v0.0.21]"); println!(); println!("Runtime APIs canonical (12):"); println!(" • sp_api::Core (version + execute_block)"); diff --git a/crates/origin-chain-runtime/Cargo.toml b/crates/origin-chain-runtime/Cargo.toml index 7dc9eba..d401f19 100644 --- a/crates/origin-chain-runtime/Cargo.toml +++ b/crates/origin-chain-runtime/Cargo.toml @@ -44,6 +44,10 @@ pallet-session.workspace = true # Phase 2.1 v0.0.15: pallet-origin-provenance scaffold canonical wired origin-chain-provenance.workspace = true +# Phase 2.4 v0.0.21: pallet-origin-fees wired runtime composition Index 8 canonical +# (OCAFB-1..6 consumer Mathi OitFeeSchedule via vendor copy interim Option B) +origin-chain-fees.workspace = true + # pallet-identity DEFERRED a Phase 2.7 (canonical decision empírica 2026-05-21) # RuntimeAPI canonical (sp_api::impl_runtime_apis! consumers) @@ -98,6 +102,7 @@ std = [ "pallet-grandpa/std", "pallet-session/std", "origin-chain-provenance/std", + "origin-chain-fees/std", "sp-offchain/std", "sp-genesis-builder/std", "sp-transaction-pool/std", diff --git a/crates/origin-chain-runtime/src/configs.rs b/crates/origin-chain-runtime/src/configs.rs index ef4ecff..427cabc 100644 --- a/crates/origin-chain-runtime/src/configs.rs +++ b/crates/origin-chain-runtime/src/configs.rs @@ -342,3 +342,21 @@ impl pallet_session::Config for Runtime { impl origin_chain_provenance::Config for Runtime { type RuntimeEvent = RuntimeEvent; } + +// ============================================================ +// origin_chain_fees::Config — Phase 2.4 v0.0.21 wired +// ============================================================ +// +// pallet-origin-fees scaffold canonical (DC `origin_chain_amis_fee_bridge_v1` +// OCAFB-1..6 sesión 3+ 6/7 firmas, ratify target 2026-06-21). Scaffold-level +// Config canonical v0.0.21: solo RuntimeEvent association. Future canonical +// fields post-OCAFB ratify + Mathi sub-crate ship: +// +// - `OitFeeSchedule: Arc` (post-OCAFB +// ratify swap canonical cross-workspace) +// - Pallet weights canonical desde benchmarking real (post-Phase 4 testnet) +// - Custom origin canonical para fee waiver scenarios (governance Phase 5) + +impl origin_chain_fees::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} diff --git a/crates/origin-chain-runtime/src/lib.rs b/crates/origin-chain-runtime/src/lib.rs index 2fed5f1..45839ff 100644 --- a/crates/origin-chain-runtime/src/lib.rs +++ b/crates/origin-chain-runtime/src/lib.rs @@ -280,6 +280,21 @@ mod runtime { #[runtime::pallet_index(7)] pub type Provenance = origin_chain_provenance::Pallet; + /// Fees pallet canonical (Phase 2.4 v0.0.21 wired canonical per OCAFB-1..6 + + /// DC `origin_chain_amis_fee_bridge_v1` 6/7 firmas sesión 3+ Charon ratified). + /// Cross-pillar fee economy consumer Mathi `OitFeeSchedule` trait (commit + /// `ce4fafb` 2026-05-24 `arkhe-amis-server/src/fee_schedule.rs`) via vendor + /// copy interim Option B (swap canonical post-OCAFB ratify o post Mathi + /// sub-crate ship). Scaffold-level v0.0.21: dispatchable + /// `compute_fee_for_action` placeholder, real impl v0.0.22 + Runtime API + /// v0.0.23. + /// + /// Naming canonical: alias `Fees` (NO `OriginFees` que conflictaría con + /// el trait existente del mismo nombre en `origin_chain_types::pallets`, + /// pattern análogo Provenance Index 7). + #[runtime::pallet_index(8)] + pub type Fees = origin_chain_fees::Pallet; + // Identity pallet DEFERRED a Phase 2.7 (canonical decision empírica // 2026-05-21 documentada en configs.rs). pallet-identity 41.0.0 ReservableCurrency // compat work canonical hereda al custom `pallet_agent_identity` Phase 2.7