diff --git a/oracle/src/lib.rs b/oracle/src/lib.rs index 3b7c60b0c8189d5178d6a41ee68393c4f9056980..15c6eb269881c99830a718341c2ce2a6a5a13d4b 100644 --- a/oracle/src/lib.rs +++ b/oracle/src/lib.rs @@ -17,7 +17,7 @@ use sr_primitives::traits::Member; // would cause compiling error in `decl_module!` and `construct_runtime!` // #3295 https://github.com/paritytech/substrate/issues/3295 use frame_system::{self as system, ensure_signed}; -pub use orml_traits::{CombineData, OnNewData}; +pub use orml_traits::{CombineData, DataProvider, OnNewData}; pub use timestamped_value::TimestampedValue; type MomentOf<T> = <<T as Trait>::Time as Time>::Moment; @@ -94,6 +94,12 @@ impl<T: Trait> Module<T> { } } +impl<T: Trait> DataProvider<T::Key, T::Value> for Module<T> { + fn get(key: &T::Key) -> Option<T::Value> { + Self::get(key).map(|timestamped_value| timestamped_value.value) + } +} + impl<T: Trait> Module<T> { fn _feed_values(who: T::AccountId, values: Vec<(T::Key, T::Value)>) -> result::Result<(), Error> { ensure!(T::OperatorProvider::can_feed_data(&who), Error::NoPermission);