From 23a737257d952a59300560b3b58dcf9868cd66be Mon Sep 17 00:00:00 2001 From: Ankan <10196091+Ank4n@users.noreply.github.com> Date: Mon, 22 May 2023 22:04:12 +0200 Subject: [PATCH] Have OCW mined election once a week on Westend (#7248) * disable signed phase on westend once a week * use maybe signed phase * current era is already u32 --- polkadot/runtime/westend/src/lib.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index fcfc3cf7724..008c519ff7c 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -334,6 +334,20 @@ impl pallet_session::historical::Config for Runtime { type FullIdentificationOf = pallet_staking::ExposureOf<Runtime>; } +pub struct MaybeSignedPhase; + +impl Get<u32> for MaybeSignedPhase { + fn get() -> u32 { + // 1 day = 4 eras -> 1 week = 28 eras. We want to disable signed phase once a week to test the fallback unsigned + // phase is able to compute elections on Westend. + if Staking::current_era().unwrap_or(1) % 28 == 0 { + 0 + } else { + SignedPhase::get() + } + } +} + parameter_types! { // phase durations. 1/4 of the last session for each. pub SignedPhase: u32 = prod_or_fast!( @@ -415,7 +429,7 @@ impl pallet_election_provider_multi_phase::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type EstimateCallFee = TransactionPayment; - type SignedPhase = SignedPhase; + type SignedPhase = MaybeSignedPhase; type UnsignedPhase = UnsignedPhase; type SignedMaxSubmissions = SignedMaxSubmissions; type SignedMaxRefunds = SignedMaxRefunds; -- GitLab