From 3e6192cee7352e96a41eae2cbe6e56d851f391c5 Mon Sep 17 00:00:00 2001 From: Uncle Stinky Date: Sun, 6 Sep 2026 01:35:46 +0300 Subject: [PATCH] benchmarking for evm bridge out added Signed-off-by: Uncle Stinky --- pallets/exodus/Cargo.toml | 2 +- pallets/exodus/src/benchmarking.rs | 43 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/pallets/exodus/Cargo.toml b/pallets/exodus/Cargo.toml index 98925d0..ce1a4cd 100644 --- a/pallets/exodus/Cargo.toml +++ b/pallets/exodus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ghost-exodus" -version = "0.0.5" +version = "0.0.6" description = "Threshold signature generation with DKG included" license.workspace = true authors.workspace = true diff --git a/pallets/exodus/src/benchmarking.rs b/pallets/exodus/src/benchmarking.rs index 85401cf..832c4cb 100644 --- a/pallets/exodus/src/benchmarking.rs +++ b/pallets/exodus/src/benchmarking.rs @@ -802,6 +802,49 @@ mod benchmarks { Ok(()) } + #[benchmark] + fn register_evm_bridge_out_exodus() -> Result<(), BenchmarkError> { + let caller: T::AccountId = frame_benchmarking::whitelisted_caller(); + let (_, network_curve, _, _) = prepare_pallet::(1usize); + + let network_id = NetworkIdOf::::default(); + let amount: BalanceOf = 10_000u32.into(); + let bounty = Perbill::from_percent(5); + let receiver = EvmAddress::from([69u8; 20]); + + QualificationDkgState::::mutate(&network_curve, |state| { + loop { + if state.is_dkg_finalized() { break; } + state.next_phase(); + } + }); + + let total_existential = T::Currency::minimum_balance(); + let initial_balance = total_existential + .saturating_mul(5u32.into()) + .saturating_add(amount); + + let _ = T::Currency::make_free_balance_be(&caller, initial_balance); + let _ = T::NetworkDataHandler::register_incoming(&network_id, amount).unwrap(); + + let current_exodus_session = CurrentExodus::::get(); + + #[extrinsic_call] + _( + RawOrigin::Signed(caller.clone()), + network_id, + amount, + bounty, + receiver, + ); + + assert!(ExodusRequests::::contains_key(&network_curve, current_exodus_session)); + assert_eq!(CurrentExodus::::get(), current_exodus_session + 1); + assert_eq!(T::Currency::free_balance(&caller), initial_balance - amount); + + Ok(()) + } + impl_benchmark_test_suite!( Pallet, crate::mock::new_test_ext_benchmarks(),