diff --git a/frame/system/src/lib.rs b/frame/system/src/lib.rs index da9e5fabd3a43..e3fa45e70f7df 100644 --- a/frame/system/src/lib.rs +++ b/frame/system/src/lib.rs @@ -78,9 +78,8 @@ use sp_runtime::{ self, CheckEqual, AtLeast32Bit, Zero, Lookup, LookupError, SimpleBitOps, Hash, Member, MaybeDisplay, BadOrigin, MaybeSerializeDeserialize, MaybeMallocSizeOf, StaticLookup, One, Bounded, - Dispatchable, AtLeast32BitUnsigned, Saturating, StoredMapError, + Dispatchable, AtLeast32BitUnsigned, Saturating, StoredMapError, BlockNumberProvider, }, - offchain::storage_lock::BlockNumberProvider, }; use sp_core::{ChangesTrieConfiguration, storage::well_known_keys}; diff --git a/primitives/runtime/src/offchain/storage_lock.rs b/primitives/runtime/src/offchain/storage_lock.rs index 3189a814e06fd..7ea52775c5e05 100644 --- a/primitives/runtime/src/offchain/storage_lock.rs +++ b/primitives/runtime/src/offchain/storage_lock.rs @@ -62,7 +62,7 @@ //! ``` use crate::offchain::storage::{StorageRetrievalError, MutateStorageError, StorageValueRef}; -use crate::traits::AtLeast32BitUnsigned; +use crate::traits::BlockNumberProvider; use codec::{Codec, Decode, Encode}; use sp_core::offchain::{Duration, Timestamp}; use sp_io::offchain; @@ -440,29 +440,6 @@ where } } -/// Bound for a block number source -/// used with [`BlockAndTime`](BlockAndTime). -pub trait BlockNumberProvider { - /// Type of `BlockNumber` to provide. - type BlockNumber: Codec + Clone + Ord + Eq + AtLeast32BitUnsigned; - /// Returns the current block number. - /// - /// Provides an abstraction over an arbitrary way of providing the - /// current block number. - /// - /// In case of using crate `sp_runtime` without the crate `frame` - /// system, it is already implemented for - /// `frame_system::Pallet` as: - /// - /// ```ignore - /// fn current_block_number() -> Self { - /// frame_system::Pallet::block_number() - /// } - /// ``` - /// . - fn current_block_number() -> Self::BlockNumber; -} - #[cfg(test)] mod tests { use super::*; diff --git a/primitives/runtime/src/traits.rs b/primitives/runtime/src/traits.rs index fac4adf48c266..f03e1be2a5ce7 100644 --- a/primitives/runtime/src/traits.rs +++ b/primitives/runtime/src/traits.rs @@ -1459,6 +1459,29 @@ pub trait BlockIdTo { ) -> Result>, Self::Error>; } +/// Get current block number +pub trait BlockNumberProvider { + /// Type of `BlockNumber` to provide. + type BlockNumber: Codec + Clone + Ord + Eq + AtLeast32BitUnsigned; + + /// Returns the current block number. + /// + /// Provides an abstraction over an arbitrary way of providing the + /// current block number. + /// + /// In case of using crate `sp_runtime` with the crate `frame-system`, + /// it is already implemented for + /// `frame_system::Pallet` as: + /// + /// ```ignore + /// fn current_block_number() -> Self { + /// frame_system::Pallet::block_number() + /// } + /// ``` + /// . + fn current_block_number() -> Self::BlockNumber; +} + #[cfg(test)] mod tests { use super::*;