From 31da4d249df8b43c2767ee23c279c46a53e902d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <bkchr@users.noreply.github.com>
Date: Wed, 31 Jul 2019 09:58:06 +0200
Subject: [PATCH] Don't set `HEAP_PAGES` in `BasicExternalities` (#3244)

* Don't set `HEAP_PAGES` in `BasicExternalities`

* Fix test
---
 substrate/core/state-machine/src/basic.rs | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/substrate/core/state-machine/src/basic.rs b/substrate/core/state-machine/src/basic.rs
index e922db260cf..0ed25980602 100644
--- a/substrate/core/state-machine/src/basic.rs
+++ b/substrate/core/state-machine/src/basic.rs
@@ -22,8 +22,7 @@ use crate::backend::{Backend, InMemory};
 use hash_db::Hasher;
 use trie::trie_root;
 use primitives::offchain;
-use primitives::storage::well_known_keys::{HEAP_PAGES, is_child_storage_key};
-use parity_codec::Encode;
+use primitives::storage::well_known_keys::is_child_storage_key;
 use super::{ChildStorageKey, Externalities};
 use log::warn;
 
@@ -42,10 +41,9 @@ impl BasicExternalities {
 
 	/// Create a new instance of `BasicExternalities` with children
 	pub fn new_with_children(
-		mut top: HashMap<Vec<u8>, Vec<u8>>,
+		top: HashMap<Vec<u8>, Vec<u8>>,
 		children: HashMap<Vec<u8>, HashMap<Vec<u8>, Vec<u8>>>,
 	) -> Self {
-		top.insert(HEAP_PAGES.to_vec(), 8u64.encode());
 		BasicExternalities {
 			top,
 			children,
@@ -188,7 +186,7 @@ mod tests {
 		ext.set_storage(b"doe".to_vec(), b"reindeer".to_vec());
 		ext.set_storage(b"dog".to_vec(), b"puppy".to_vec());
 		ext.set_storage(b"dogglesworth".to_vec(), b"cat".to_vec());
-		const ROOT: [u8; 32] = hex!("0b33ed94e74e0f8e92a55923bece1ed02d16cf424e124613ddebc53ac3eeeabe");
+		const ROOT: [u8; 32] = hex!("0b41e488cccbd67d1f1089592c2c235f5c5399b053f7fe9152dd4b5f279914cd");
 		assert_eq!(ext.storage_root(), H256::from(ROOT));
 	}
 
@@ -231,4 +229,12 @@ mod tests {
 		ext.kill_child_storage(child());
 		assert_eq!(ext.child_storage(child(), b"doe"), None);
 	}
+
+	#[test]
+	fn basic_externalities_is_empty() {
+		// Make sure no values are set by default in `BasicExternalities`.
+		let (storage, child_storage) = BasicExternalities::new(Default::default()).into_storages();
+		assert!(storage.is_empty());
+		assert!(child_storage.is_empty());
+	}
 }
-- 
GitLab