Introduce original_storage and original_storage_hash (#2211)

Both functions will ignore any overlayed changes and access the backend
directly.
This commit is contained in:
Bastian Köcher
2019-04-04 16:56:16 +02:00
committed by Gav Wood
parent cb7a8161f5
commit 6920b169cd
5 changed files with 30 additions and 3 deletions
+9
View File
@@ -95,6 +95,15 @@ pub trait Externalities<H: Hasher> {
self.storage(key).map(|v| H::hash(&v))
}
/// Read original runtime storage, ignoring any overlayed changes.
fn original_storage(&self, key: &[u8]) -> Option<Vec<u8>>;
/// Get original storage value hash, ignoring any overlayed changes.
/// This may be optimized for large values.
fn original_storage_hash(&self, key: &[u8]) -> Option<H::Out> {
self.original_storage(key).map(|v| H::hash(&v))
}
/// Read child runtime storage.
fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Option<Vec<u8>>;