From f7f25bd0876f73c0f09b47e99f66ae595d80aa41 Mon Sep 17 00:00:00 2001 From: Uncle Stretch Date: Sun, 10 Aug 2025 16:51:04 +0300 Subject: [PATCH] nullify bridged imbalance on each era reward payout Signed-off-by: Uncle Stretch --- Cargo.lock | 2 +- pallets/networks/Cargo.toml | 2 +- pallets/networks/src/lib.rs | 1 + pallets/networks/src/tests.rs | 17 +++++++++++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 69290f5..a5aff01 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3649,7 +3649,7 @@ dependencies = [ [[package]] name = "ghost-networks" -version = "0.1.14" +version = "0.1.15" dependencies = [ "frame-benchmarking", "frame-support", diff --git a/pallets/networks/Cargo.toml b/pallets/networks/Cargo.toml index 13f1883..243b529 100644 --- a/pallets/networks/Cargo.toml +++ b/pallets/networks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ghost-networks" -version = "0.1.14" +version = "0.1.15" license.workspace = true authors.workspace = true edition.workspace = true diff --git a/pallets/networks/src/lib.rs b/pallets/networks/src/lib.rs index 0f80760..3d42c02 100644 --- a/pallets/networks/src/lib.rs +++ b/pallets/networks/src/lib.rs @@ -786,6 +786,7 @@ impl NetworkDataMutateHandler> for Pallet::set(Default::default()); + BridgedImbalance::::set(Default::default()); } fn trigger_nullification() { diff --git a/pallets/networks/src/tests.rs b/pallets/networks/src/tests.rs index 9e3d223..0ada03d 100644 --- a/pallets/networks/src/tests.rs +++ b/pallets/networks/src/tests.rs @@ -1567,11 +1567,28 @@ fn bridged_inflation_era_payout_triggers_need_of_nullification() { #[test] fn trigger_nullification_works_as_expected() { ExtBuilder::build().execute_with(|| { + let commission: u128 = 69; + let imbalance = BridgeAdjustment { + bridged_in: 1337u128, + bridged_out: 420u128, + }; + + assert_eq!(AccumulatedCommission::::get(), 0); + assert_eq!(BridgedImbalance::::get(), BridgeAdjustment::default()); + + AccumulatedCommission::::set(commission); + BridgedImbalance::::set(imbalance.clone()); + + assert_eq!(AccumulatedCommission::::get(), commission); + assert_eq!(BridgedImbalance::::get(), imbalance); + assert_eq!(NullifyNeeded::::get(), false); GhostNetworks::trigger_nullification(); assert_eq!(NullifyNeeded::::get(), true); GhostNetworks::trigger_nullification(); assert_eq!(NullifyNeeded::::get(), false); + assert_eq!(AccumulatedCommission::::get(), 0); + assert_eq!(BridgedImbalance::::get(), BridgeAdjustment::default()); }); }