feat(runtime): v0.0.21 — Fees pallet wired runtime composition Index 8

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<Runtime>
- 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) <noreply@anthropic.com>
This commit is contained in:
davidherranandClaude Opus 4.7 committed 2026-05-24 22:50:52 -05:00
1 parent 33b10b7545
commit 0a83395a16
7 files changed
+95 -2

No files matched your search

+52
View File
@@ -6,6 +6,58 @@ by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow
## [Unreleased] ## [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<Runtime>;`
- `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) ## [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 **🚀 Phase 2.4 FEES pallet SCAFFOLD trait-first foundation** — Vendor copy
Generated
+1
View File
@@ -2237,6 +2237,7 @@ dependencies = [
"frame-system", "frame-system",
"frame-system-rpc-runtime-api", "frame-system-rpc-runtime-api",
"log", "log",
"origin-chain-fees",
"origin-chain-provenance", "origin-chain-provenance",
"origin-chain-types", "origin-chain-types",
"pallet-aura", "pallet-aura",
+1
View File
@@ -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-chain-consensus = { path = "crates/origin-chain-consensus", version = "0.0.1" }
origin-coin-tokenomics = { path = "crates/origin-coin-tokenomics", 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-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-bridges = { path = "crates/origin-chain-bridges", version = "0.0.1" }
origin-chain-governance = { path = "crates/origin-chain-governance", 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" } origin-chain-runtime = { path = "crates/origin-chain-runtime", version = "0.0.1" }
+3 -2
View File
@@ -191,7 +191,7 @@ fn print_info() {
println!("Impl name: {}", IMPL_NAME); println!("Impl name: {}", IMPL_NAME);
println!("Runtime version: {}", RUNTIME_VERSION); println!("Runtime version: {}", RUNTIME_VERSION);
println!(); println!();
println!("Pallets canonical (8):"); println!("Pallets canonical (9):");
println!(" • Index 0 System (frame_system foundational)"); println!(" • Index 0 System (frame_system foundational)");
println!(" • Index 1 Timestamp (pallet_timestamp block clock → Aura)"); println!(" • Index 1 Timestamp (pallet_timestamp block clock → Aura)");
println!(" • Index 2 Balances (pallet_balances OGC token CHN-2)"); 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 4 Aura (pallet_aura PoA block production CHN-1)");
println!(" • Index 5 Grandpa (pallet_grandpa finality gadget 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 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!();
println!("Runtime APIs canonical (12):"); println!("Runtime APIs canonical (12):");
println!(" • sp_api::Core (version + execute_block)"); println!(" • sp_api::Core (version + execute_block)");
+5
View File
@@ -44,6 +44,10 @@ pallet-session.workspace = true
# Phase 2.1 v0.0.15: pallet-origin-provenance scaffold canonical wired # Phase 2.1 v0.0.15: pallet-origin-provenance scaffold canonical wired
origin-chain-provenance.workspace = true 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) # pallet-identity DEFERRED a Phase 2.7 (canonical decision empírica 2026-05-21)
# RuntimeAPI canonical (sp_api::impl_runtime_apis! consumers) # RuntimeAPI canonical (sp_api::impl_runtime_apis! consumers)
@@ -98,6 +102,7 @@ std = [
"pallet-grandpa/std", "pallet-grandpa/std",
"pallet-session/std", "pallet-session/std",
"origin-chain-provenance/std", "origin-chain-provenance/std",
"origin-chain-fees/std",
"sp-offchain/std", "sp-offchain/std",
"sp-genesis-builder/std", "sp-genesis-builder/std",
"sp-transaction-pool/std", "sp-transaction-pool/std",
@@ -342,3 +342,21 @@ impl pallet_session::Config for Runtime {
impl origin_chain_provenance::Config for Runtime { impl origin_chain_provenance::Config for Runtime {
type RuntimeEvent = RuntimeEvent; 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<dyn arkhe_amis_server::OitFeeSchedule>` (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;
}
+15
View File
@@ -280,6 +280,21 @@ mod runtime {
#[runtime::pallet_index(7)] #[runtime::pallet_index(7)]
pub type Provenance = origin_chain_provenance::Pallet<Runtime>; pub type Provenance = origin_chain_provenance::Pallet<Runtime>;
/// 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<Runtime>;
// Identity pallet DEFERRED a Phase 2.7 (canonical decision empírica // Identity pallet DEFERRED a Phase 2.7 (canonical decision empírica
// 2026-05-21 documentada en configs.rs). pallet-identity 41.0.0 ReservableCurrency // 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 // compat work canonical hereda al custom `pallet_agent_identity` Phase 2.7