Clean up sr-io (#3609)

* Move trait `Printable` into `sr-primitives`

* Cleanup runtime io trie_root interfaces

* Remove last generic bits from sr-io interface

* Fix srml-sudo after master merge

* Fix benchmarks

* Runtime bump
This commit is contained in:
Bastian Köcher
2019-09-13 16:39:50 +02:00
committed by GitHub
parent 5cb8c0dc1c
commit 45d64a711c
34 changed files with 309 additions and 372 deletions
@@ -90,15 +90,14 @@ pub fn insert_genesis_block(
HashMap<Vec<u8>, HashMap<Vec<u8>, Vec<u8>>>,
)
) -> primitives::hash::H256 {
let child_roots = storage.1.iter().map(|(sk, child_map)| {
let state_root = <<<crate::Block as BlockT>::Header as HeaderT>::Hashing as HashT>::trie_root(
child_map.clone().into_iter()
child_map.clone().into_iter().collect(),
);
(sk.clone(), state_root.encode())
});
let state_root = <<<crate::Block as BlockT>::Header as HeaderT>::Hashing as HashT>::trie_root(
storage.0.clone().into_iter().chain(child_roots)
storage.0.clone().into_iter().chain(child_roots).collect()
);
let block: crate::Block = substrate_client::genesis::construct_genesis_block(state_root);
let genesis_hash = block.header.hash();
+1 -1
View File
@@ -188,7 +188,7 @@ pub type Header = sr_primitives::generic::Header<BlockNumber, BlakeTwo256>;
/// Run whatever tests we have.
pub fn run_tests(mut input: &[u8]) -> Vec<u8> {
use runtime_io::print;
use sr_primitives::print;
print("run_tests...");
let block = Block::decode(&mut input).unwrap();
+7 -9
View File
@@ -18,7 +18,7 @@
//! and depositing logs.
use rstd::prelude::*;
use runtime_io::{storage_root, ordered_trie_root, storage_changes_root, twox_128, blake2_256};
use runtime_io::{storage_root, storage_changes_root, twox_128, blake2_256};
use runtime_support::storage::{self, StorageValue, StorageMap};
use runtime_support::storage_items;
use sr_primitives::{
@@ -29,7 +29,7 @@ use codec::{KeyedVec, Encode};
use crate::{
AccountId, BlockNumber, Extrinsic, Transfer, H256 as Hash, Block, Header, Digest, AuthorityId
};
use primitives::{Blake2Hasher, storage::well_known_keys};
use primitives::storage::well_known_keys;
const NONCE_OF: &[u8] = b"nonce:";
const BALANCE_OF: &[u8] = b"balance:";
@@ -101,8 +101,7 @@ fn execute_block_with_state_root_handler(
// check transaction trie root represents the transactions.
let txs = block.extrinsics.iter().map(Encode::encode).collect::<Vec<_>>();
let txs = txs.iter().map(Vec::as_slice).collect::<Vec<_>>();
let txs_root = ordered_trie_root::<Blake2Hasher, _, _>(&txs).into();
let txs_root = BlakeTwo256::ordered_trie_root(txs);
info_expect_equal_hash(&txs_root, &header.extrinsics_root);
if let Mode::Overwrite = mode {
header.extrinsics_root = txs_root;
@@ -211,8 +210,7 @@ pub fn execute_transaction(utx: Extrinsic) -> ApplyResult {
pub fn finalize_block() -> Header {
let extrinsic_index: u32 = storage::unhashed::take(well_known_keys::EXTRINSIC_INDEX).unwrap();
let txs: Vec<_> = (0..extrinsic_index).map(ExtrinsicData::take).collect();
let txs = txs.iter().map(Vec::as_slice).collect::<Vec<_>>();
let extrinsics_root = ordered_trie_root::<Blake2Hasher, _, _>(&txs).into();
let extrinsics_root = BlakeTwo256::ordered_trie_root(txs).into();
let number = <Number>::take().expect("Number is set by `initialize_block`");
let parent_hash = <ParentHash>::take();
let mut digest = <StorageDigest>::take().expect("StorageDigest is set by `initialize_block`");
@@ -311,9 +309,9 @@ fn info_expect_equal_hash(given: &Hash, expected: &Hash) {
#[cfg(not(feature = "std"))]
fn info_expect_equal_hash(given: &Hash, expected: &Hash) {
if given != expected {
runtime_io::print("Hash not equal");
runtime_io::print(given.as_bytes());
runtime_io::print(expected.as_bytes());
sr_primitives::print("Hash not equal");
sr_primitives::print(given.as_bytes());
sr_primitives::print(expected.as_bytes());
}
}