From 9cc8bd1095af181e2eab7c0c7eac0d88ade829c5 Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Tue, 10 Feb 2026 16:29:57 +0300 Subject: [PATCH] fix: forward session events to Staking pallet for era management ValidatorManager now forwards session hooks to Staking pallet: - new_session: Staking receives session changes to trigger era - start_session: Staking can initialize era stakers - end_session: Staking can finalize era rewards This fixes the issue where staking era never started because session events were not being forwarded to the Staking pallet. --- pezkuwi/runtime/pezkuwichain/src/lib.rs | 1 + .../pezkuwichain/src/validator_manager.rs | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pezkuwi/runtime/pezkuwichain/src/lib.rs b/pezkuwi/runtime/pezkuwichain/src/lib.rs index 0c500b9a..d16c5a7d 100644 --- a/pezkuwi/runtime/pezkuwichain/src/lib.rs +++ b/pezkuwi/runtime/pezkuwichain/src/lib.rs @@ -1457,6 +1457,7 @@ impl assigned_slots::Config for Runtime { impl validator_manager::Config for Runtime { type RuntimeEvent = RuntimeEvent; type PrivilegedOrigin = EnsureRoot; + type Staking = Staking; } parameter_types! { diff --git a/pezkuwi/runtime/pezkuwichain/src/validator_manager.rs b/pezkuwi/runtime/pezkuwichain/src/validator_manager.rs index 4c4928d2..d63d4cc7 100644 --- a/pezkuwi/runtime/pezkuwichain/src/validator_manager.rs +++ b/pezkuwi/runtime/pezkuwichain/src/validator_manager.rs @@ -43,6 +43,9 @@ pub mod pezpallet { /// Privileged origin that can add or remove validators. type PrivilegedOrigin: EnsureOrigin<::RuntimeOrigin>; + + /// Staking pallet for forwarding session events + type Staking: pezpallet_session::SessionManager; } #[pezpallet::event] @@ -103,6 +106,9 @@ pub mod pezpallet { impl pezpallet_session::SessionManager for Pezpallet { fn new_session(new_index: SessionIndex) -> Option> { + // Forward to Staking pallet for era management + let _ = T::Staking::new_session(new_index); + if new_index <= 1 { return None; } @@ -124,9 +130,15 @@ impl pezpallet_session::SessionManager for Pezpallet< Some(validators) } - fn end_session(_: SessionIndex) {} + fn end_session(end_index: SessionIndex) { + // Forward to Staking pallet + T::Staking::end_session(end_index); + } - fn start_session(_start_index: SessionIndex) {} + fn start_session(start_index: SessionIndex) { + // Forward to Staking pallet + T::Staking::start_session(start_index); + } } impl pezpallet_session::historical::SessionManager for Pezpallet {