From cf9dc8b4930b19958d637b9d151ce9722d29f894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Thei=C3=9Fen?= Date: Tue, 7 Apr 2020 12:53:45 +0200 Subject: [PATCH] Companion of SignedExtension refactor (#5540) --- runtime/common/src/parachains.rs | 9 +++++---- runtime/common/src/registrar.rs | 14 +++++++------- runtime/kusama/src/lib.rs | 15 +++++++++++---- runtime/polkadot/src/lib.rs | 12 ++++++++---- runtime/test-runtime/src/lib.rs | 15 +++++++++++---- 5 files changed, 42 insertions(+), 23 deletions(-) diff --git a/runtime/common/src/parachains.rs b/runtime/common/src/parachains.rs index 20ff0cf4a31f..55083ec91334 100644 --- a/runtime/common/src/parachains.rs +++ b/runtime/common/src/parachains.rs @@ -25,6 +25,7 @@ use sp_runtime::{ traits::{ Hash as HashT, BlakeTwo256, Saturating, One, Zero, Dispatchable, AccountIdConversion, BadOrigin, Convert, SignedExtension, AppVerify, + DispatchInfoOf, }, transaction_validity::{TransactionValidityError, ValidTransaction, TransactionValidity}, }; @@ -35,7 +36,7 @@ use sp_staking::{ use frame_support::{ traits::KeyOwnerProofSystem, dispatch::{IsSubType}, - weights::{DispatchInfo, SimpleDispatchInfo, Weight, WeighData}, + weights::{SimpleDispatchInfo, Weight, WeighData}, }; use primitives::{ Balance, @@ -1456,7 +1457,6 @@ impl SignedExtension for ValidateDoubleVoteReports wh type Call = ::Call; type AdditionalSigned = (); type Pre = (); - type DispatchInfo = DispatchInfo; fn additional_signed(&self) -> sp_std::result::Result @@ -1468,7 +1468,7 @@ impl SignedExtension for ValidateDoubleVoteReports wh &self, _who: &Self::AccountId, call: &Self::Call, - _info: DispatchInfo, + _info: &DispatchInfoOf, _len: usize, ) -> TransactionValidity { let r = ValidTransaction::default(); @@ -1538,6 +1538,7 @@ mod tests { use frame_support::{ impl_outer_origin, impl_outer_dispatch, assert_ok, assert_err, parameter_types, traits::{OnInitialize, OnFinalize}, + weights::DispatchInfo, }; use crate::parachains; use crate::registrar; @@ -1900,7 +1901,7 @@ mod tests { let call = Call::Parachains(inner.clone()); ValidateDoubleVoteReports::(sp_std::marker::PhantomData) - .validate(&0, &call, DispatchInfo::default(), 0)?; + .validate(&0, &call, &DispatchInfo::default(), 0)?; Ok(inner) } diff --git a/runtime/common/src/registrar.rs b/runtime/common/src/registrar.rs index ee9f19345f92..8d8ad68207f7 100644 --- a/runtime/common/src/registrar.rs +++ b/runtime/common/src/registrar.rs @@ -25,13 +25,13 @@ use codec::{Encode, Decode}; use sp_runtime::{ transaction_validity::{TransactionValidityError, ValidTransaction, TransactionValidity}, - traits::{Hash as HashT, SignedExtension} + traits::{Hash as HashT, SignedExtension, DispatchInfoOf}, }; use frame_support::{ decl_storage, decl_module, decl_event, decl_error, ensure, dispatch::{DispatchResult, IsSubType}, traits::{Get, Currency, ReservableCurrency}, - weights::{SimpleDispatchInfo, DispatchInfo, Weight, WeighData}, + weights::{SimpleDispatchInfo, Weight, WeighData}, }; use system::{self, ensure_root, ensure_signed}; use primitives::parachain::{ @@ -588,7 +588,6 @@ impl SignedExtension for LimitParathreadCommits where type Call = ::Call; type AdditionalSigned = (); type Pre = (); - type DispatchInfo = DispatchInfo; fn additional_signed(&self) -> sp_std::result::Result @@ -600,7 +599,7 @@ impl SignedExtension for LimitParathreadCommits where &self, _who: &Self::AccountId, call: &Self::Call, - _info: DispatchInfo, + _info: &DispatchInfoOf, _len: usize, ) -> TransactionValidity { let mut r = ValidTransaction::default(); @@ -673,6 +672,7 @@ mod tests { use frame_support::{ traits::{KeyOwnerProofSystem, OnInitialize, OnFinalize}, impl_outer_origin, impl_outer_dispatch, assert_ok, parameter_types, assert_noop, + weights::DispatchInfo, }; use keyring::Sr25519Keyring; @@ -969,7 +969,7 @@ mod tests { let inner_call = super::Call::select_parathread(id, col.clone(), hdh); let call = Call::Registrar(inner_call); let origin = 4u64; - assert!(tx.validate(&origin, &call, Default::default(), 0).is_ok()); + assert!(tx.validate(&origin, &call, &Default::default(), 0).is_ok()); assert_ok!(call.dispatch(Origin::signed(origin))); } @@ -1416,7 +1416,7 @@ mod tests { let bad_para_id = user_id(1); let bad_head_hash = ::Hashing::hash(&vec![1, 2, 1]); let good_head_hash = ::Hashing::hash(&vec![1, 1, 1]); - let info = DispatchInfo::default(); + let info = &DispatchInfo::default(); // Allow for threads assert_ok!(Registrar::set_thread_count(Origin::ROOT, 10)); @@ -1481,7 +1481,7 @@ mod tests { let head_hash = ::Hashing::hash(&vec![x; 3]); let inner = super::Call::select_parathread(para_id, collator_id, head_hash); let call = Call::Registrar(inner); - let info = DispatchInfo::default(); + let info = &DispatchInfo::default(); // First 3 transactions win a slot if x < 3 { diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index ddd0f29690a2..698c207efd55 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -39,7 +39,10 @@ use sp_runtime::{ TransactionValidity, InvalidTransaction, TransactionValidityError, TransactionSource, }, curve::PiecewiseLinear, - traits::{BlakeTwo256, Block as BlockT, SignedExtension, OpaqueKeys, ConvertInto, IdentityLookup}, + traits::{ + BlakeTwo256, Block as BlockT, SignedExtension, OpaqueKeys, ConvertInto, IdentityLookup, + DispatchInfoOf, + }, }; #[cfg(feature = "runtime-benchmarks")] use sp_runtime::RuntimeString; @@ -51,7 +54,6 @@ use sp_core::OpaqueMetadata; use sp_staking::SessionIndex; use frame_support::{ parameter_types, construct_runtime, traits::{KeyOwnerProofSystem, SplitTwoWays, Randomness}, - weights::DispatchInfo, }; use im_online::sr25519::AuthorityId as ImOnlineId; use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId; @@ -104,11 +106,16 @@ impl SignedExtension for RestrictFunctionality { type Call = Call; type AdditionalSigned = (); type Pre = (); - type DispatchInfo = DispatchInfo; fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { Ok(()) } - fn validate(&self, _: &Self::AccountId, call: &Self::Call, _: DispatchInfo, _: usize) + fn validate( + &self, + _: &Self::AccountId, + call: &Self::Call, + _: &DispatchInfoOf, + _: usize + ) -> TransactionValidity { match call { diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 102b328b6866..48e329c8aa13 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -42,7 +42,7 @@ use sp_runtime::{ curve::PiecewiseLinear, traits::{ BlakeTwo256, Block as BlockT, SignedExtension, OpaqueKeys, ConvertInto, - IdentityLookup + IdentityLookup, DispatchInfoOf, }, }; #[cfg(feature = "runtime-benchmarks")] @@ -55,7 +55,6 @@ use sp_core::OpaqueMetadata; use sp_staking::SessionIndex; use frame_support::{ parameter_types, construct_runtime, traits::{KeyOwnerProofSystem, SplitTwoWays, Randomness}, - weights::DispatchInfo, }; use im_online::sr25519::AuthorityId as ImOnlineId; use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId; @@ -112,11 +111,16 @@ impl SignedExtension for OnlyStakingAndClaims { type Call = Call; type AdditionalSigned = (); type Pre = (); - type DispatchInfo = DispatchInfo; fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { Ok(()) } - fn validate(&self, _: &Self::AccountId, call: &Self::Call, _: DispatchInfo, _: usize) + fn validate( + &self, _: + &Self::AccountId, + call: &Self::Call, + _: &DispatchInfoOf, + _: usize + ) -> TransactionValidity { match call { diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index b2b5c45a28ef..dc34e40180e4 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -39,7 +39,10 @@ use sp_runtime::{ TransactionValidity, InvalidTransaction, TransactionValidityError, TransactionSource, }, curve::PiecewiseLinear, - traits::{BlakeTwo256, Block as BlockT, StaticLookup, SignedExtension, OpaqueKeys, ConvertInto}, + traits::{ + BlakeTwo256, Block as BlockT, StaticLookup, SignedExtension, OpaqueKeys, ConvertInto, + DispatchInfoOf, + }, }; use version::RuntimeVersion; use grandpa::{AuthorityId as GrandpaId, fg_primitives}; @@ -50,7 +53,6 @@ use sp_staking::SessionIndex; use frame_support::{ parameter_types, construct_runtime, traits::{KeyOwnerProofSystem, Randomness}, - weights::DispatchInfo, }; use pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo; use session::historical as session_historical; @@ -100,11 +102,16 @@ impl SignedExtension for RestrictFunctionality { type Call = Call; type AdditionalSigned = (); type Pre = (); - type DispatchInfo = DispatchInfo; fn additional_signed(&self) -> rstd::result::Result<(), TransactionValidityError> { Ok(()) } - fn validate(&self, _: &Self::AccountId, call: &Self::Call, _: DispatchInfo, _: usize) + fn validate( + &self, + _: &Self::AccountId, + call: &Self::Call, + _: &DispatchInfoOf, + _: usize + ) -> TransactionValidity { match call {