From 2963f6b911f4ab371aa7bd0ab548323920186ea5 Mon Sep 17 00:00:00 2001 From: snd Date: Wed, 11 Jul 2018 21:12:22 +0200 Subject: [PATCH] Issue 212 - refactor Checkable trait to be more generic (#287) * runtime: refactor Checkable and BlindCheckable traits * fix impl BlindCheckable for Extrinsic * fix impl Checkable for TestXt * fix impl Checkable for UncheckedExtrinsic * fix tabs * add ::Address to system::Trait since its no longer in Checkable trait * replace tab by space in comment * replace occurences of Checkable::check with ::check_with * tx-pool: replace CheckedIntrinsic type alias since it now would require type param * make more uses of Checkable compile * adapt Executive impl to new Checkable trait * fix that CheckedExtrinsic takes AccountId not Address as first type param * Checkable trait: return error again since it's required in some cases * Checkable: improve docstrings * consistent punctuation and capitalization in docstrings * Ctx -> Context addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200956240 * reduce trait bounds for impl Checkable for TestXt addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200839303 * use ::Checked addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200955165 * Revert "add ::Address to system::Trait since its no longer in Checkable trait" This reverts commit 02eb103015b833c995c9f9067aac2542bb7ce5ea. * runtime/executive: properly fix that Address no longer in Checkable * return `Result` from `Checkable::check` --- polkadot/runtime/src/utils.rs | 2 +- polkadot/transaction-pool/src/lib.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/polkadot/runtime/src/utils.rs b/polkadot/runtime/src/utils.rs index 4c16e215ba..1531590ff5 100644 --- a/polkadot/runtime/src/utils.rs +++ b/polkadot/runtime/src/utils.rs @@ -47,5 +47,5 @@ pub fn inherent_extrinsics(timestamp: ::primitives::Timestamp, parachain_heads: /// Checks an unchecked extrinsic for validity. pub fn check_extrinsic(xt: UncheckedExtrinsic) -> bool { - xt.check(Staking::lookup).is_ok() + xt.check_with(Staking::lookup).is_ok() } diff --git a/polkadot/transaction-pool/src/lib.rs b/polkadot/transaction-pool/src/lib.rs index 6e0ec39d77..a553afb94c 100644 --- a/polkadot/transaction-pool/src/lib.rs +++ b/polkadot/transaction-pool/src/lib.rs @@ -55,7 +55,7 @@ pub use extrinsic_pool::txpool::{Options, Status, LightStatus, VerifiedTransacti pub use error::{Error, ErrorKind, Result}; /// Type alias for convenience. -pub type CheckedExtrinsic = ::Checked; +pub type CheckedExtrinsic = std::result::Result>>::Checked; /// A verified transaction which should be includable and non-inherent. #[derive(Clone, Debug)] @@ -281,7 +281,7 @@ impl<'a, A> txpool::Verifier for Verifier<'a, A> where } let (encoded_size, hash) = uxt.using_encoded(|e| (e.len(), BlakeTwo256::hash(e))); - let inner = match uxt.clone().check(|a| self.lookup(a)) { + let inner = match uxt.clone().check_with(|a| self.lookup(a)) { Ok(xt) => Some(xt), // keep the transaction around in the future pool and attempt to promote it later. Err(Self::NO_ACCOUNT) => None,