diff --git a/substrate/core/sr-io/without_std.rs b/substrate/core/sr-io/without_std.rs index e4e32bd17d..08b1a3c70a 100644 --- a/substrate/core/sr-io/without_std.rs +++ b/substrate/core/sr-io/without_std.rs @@ -367,7 +367,7 @@ pub fn set_storage(key: &[u8], value: &[u8]) { pub fn set_child_storage(storage_key: &[u8], key: &[u8], value: &[u8]) { unsafe { ext_set_child_storage.get()( - storage_key.as_ptr(), key.len() as u32, + storage_key.as_ptr(), storage_key.len() as u32, key.as_ptr(), key.len() as u32, value.as_ptr(), value.len() as u32 ); diff --git a/substrate/core/state-machine/src/ext.rs b/substrate/core/state-machine/src/ext.rs index 63a5c39fef..a9411f26ad 100644 --- a/substrate/core/state-machine/src/ext.rs +++ b/substrate/core/state-machine/src/ext.rs @@ -297,7 +297,8 @@ where } let mut transaction = B::Transaction::default(); - let child_storage_keys: Vec<_> = self.overlay.prospective.children.keys().cloned().collect(); + let child_storage_keys: std::collections::BTreeSet<_> = self.overlay.prospective.children.keys().cloned() + .chain(self.overlay.committed.children.keys().cloned()).collect(); for key in child_storage_keys { let (_, t) = self.child_storage_root_transaction(&key);