From e9958a8e5c77a31508cae34194bf35debc3a49dc Mon Sep 17 00:00:00 2001 From: Gav Date: Wed, 31 Jan 2018 08:16:22 +0100 Subject: [PATCH] Convenient block creation logic --- substrate/Cargo.lock | 1 + substrate/executor/Cargo.toml | 1 + substrate/executor/src/lib.rs | 4 + substrate/executor/src/native_executor.rs | 97 +++++++++++++++++- substrate/executor/src/wasm_executor.rs | 2 +- substrate/primitives/src/ed25519.rs | 5 + substrate/wasm-runtime/std/src/lib.rs | 4 +- .../release/runtime_polkadot.compact.wasm | Bin 67405 -> 66916 bytes .../release/runtime_polkadot.wasm | Bin 67454 -> 66965 bytes .../release/runtime_test.compact.wasm | Bin 14114 -> 14104 bytes .../release/runtime_test.wasm | Bin 14239 -> 14229 bytes 11 files changed, 109 insertions(+), 5 deletions(-) diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock index c139749441..93f09afe02 100644 --- a/substrate/Cargo.lock +++ b/substrate/Cargo.lock @@ -986,6 +986,7 @@ dependencies = [ "assert_matches 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "native-runtime 0.1.0", "parity-wasm 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)", "polkadot-primitives 0.1.0", diff --git a/substrate/executor/Cargo.toml b/substrate/executor/Cargo.toml index 41fdef9705..18e7aa61bc 100644 --- a/substrate/executor/Cargo.toml +++ b/substrate/executor/Cargo.toml @@ -16,6 +16,7 @@ rustc-hex = "1.0.0" native-runtime = { path = "../native-runtime", version = "0.1" } runtime-std = { path = "../native-runtime/std", version = "0.1" } triehash = "0.1.0" +hex-literal = "0.1.0" [dev-dependencies] assert_matches = "1.1" diff --git a/substrate/executor/src/lib.rs b/substrate/executor/src/lib.rs index e4ed7f95b0..f82518f03b 100644 --- a/substrate/executor/src/lib.rs +++ b/substrate/executor/src/lib.rs @@ -38,6 +38,10 @@ extern crate native_runtime; extern crate runtime_std; extern crate triehash; +#[cfg(test)] +#[macro_use] +extern crate hex_literal; + #[macro_use] extern crate error_chain; diff --git a/substrate/executor/src/native_executor.rs b/substrate/executor/src/native_executor.rs index 6cf7ac6c31..afa72e7aaa 100644 --- a/substrate/executor/src/native_executor.rs +++ b/substrate/executor/src/native_executor.rs @@ -42,8 +42,9 @@ impl CodeExecutor for NativeExecutor { mod tests { use super::*; use runtime_std::TestExternalities; - use native_runtime::codec::KeyedVec; - use native_runtime::support::{one, two, StaticHexInto}; + use native_runtime::codec::{KeyedVec, Joiner, Slicable}; + use native_runtime::support::{one, two, StaticHexInto, Hashable}; + use native_runtime::primitives::*; use native_runtime::runtime::staking::balance; use primitives::twox_128; @@ -108,4 +109,96 @@ mod tests { assert_eq!(balance(&two), 69); }); } + + fn new_test_ext() -> TestExternalities { + let one = one(); + let two = two(); + let three = [3u8; 32]; + + TestExternalities { storage: map![ + twox_128(&0u64.to_keyed_vec(b"sys:old:")).to_vec() => [69u8; 32].to_vec(), + twox_128(b"gov:apr").to_vec() => vec![].join(&667u32), + twox_128(b"ses:len").to_vec() => vec![].join(&2u64), + twox_128(b"ses:val:len").to_vec() => vec![].join(&3u32), + twox_128(&0u32.to_keyed_vec(b"ses:val:")).to_vec() => one.to_vec(), + twox_128(&1u32.to_keyed_vec(b"ses:val:")).to_vec() => two.to_vec(), + twox_128(&2u32.to_keyed_vec(b"ses:val:")).to_vec() => three.to_vec(), + twox_128(b"sta:wil:len").to_vec() => vec![].join(&3u32), + twox_128(&0u32.to_keyed_vec(b"sta:wil:")).to_vec() => one.to_vec(), + twox_128(&1u32.to_keyed_vec(b"sta:wil:")).to_vec() => two.to_vec(), + twox_128(&2u32.to_keyed_vec(b"sta:wil:")).to_vec() => three.to_vec(), + twox_128(b"sta:spe").to_vec() => vec![].join(&2u64), + twox_128(b"sta:vac").to_vec() => vec![].join(&3u64), + twox_128(b"sta:era").to_vec() => vec![].join(&0u64), + twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] + ], } + } + + use primitives::ed25519::Pair; + fn secret_for(who: &AccountID) -> Option { + match who { + x if *x == one() => Some(Pair::from_seed(b"12345678901234567890123456789012")), + x if *x == two() => Some("9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60".into()), + _ => None, + } + } + + fn construct_block(number: BlockNumber, parent_hash: Hash, state_root: Hash, txs: Vec) -> (Vec, Hash) { + use triehash::ordered_trie_root; + let one = one(); + let two = two(); + + let transactions = txs.into_iter().map(|transaction| { + let signature = secret_for(&transaction.signed).unwrap() + .sign(&transaction.to_vec()) + .inner(); + UncheckedTransaction { transaction, signature } + }).collect::>(); + + let transaction_root = ordered_trie_root(transactions.iter().map(Slicable::to_vec)).0; + + let header = Header { + parent_hash, + number, + state_root, + transaction_root, + digest: Digest { logs: vec![], }, + }; + let hash = header.blake2_256(); + + (Block { header, transactions }.to_vec(), hash) + } + + fn block1() -> Vec { + construct_block(1, [69u8; 32], hex!("2481853da20b9f4322f34650fea5f240dcbfb266d02db94bfa0153c31f4a29db"), vec![Transaction { + signed: one(), + nonce: 0, + function: Function::StakingTransfer, + input_data: vec![].join(&two()).join(&69u64), + }]).0 + } + + #[test] + fn full_native_block_import_works() { + let mut t = new_test_ext(); + + NativeExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block1())).unwrap(); + + runtime_std::with_externalities(&mut t, || { + assert_eq!(balance(&one()), 42); + assert_eq!(balance(&two()), 69); + }); + } + + #[test] + fn full_wasm_block_import_works() { + let mut t = new_test_ext(); + + WasmExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block1())).unwrap(); + + runtime_std::with_externalities(&mut t, || { + assert_eq!(balance(&one()), 42); + assert_eq!(balance(&two()), 69); + }); + } } diff --git a/substrate/executor/src/wasm_executor.rs b/substrate/executor/src/wasm_executor.rs index e1e4f0b6d9..ff1b35250e 100644 --- a/substrate/executor/src/wasm_executor.rs +++ b/substrate/executor/src/wasm_executor.rs @@ -169,7 +169,7 @@ impl_function_executor!(this: FunctionExecutor<'e, E>, let r = this.ext.storage_root(); this.memory.set(result, &r[..]).map_err(|_| DummyUserError)?; }, - ext_enumerated_trie_root(values_data: *const u8, values_len: u32, lens_data: *const u32, lens_len: u32, result: *mut u8) => { + ext_enumerated_trie_root(values_data: *const u8, lens_data: *const u32, lens_len: u32, result: *mut u8) => { let values = (0..lens_len) .map(|i| this.memory.read_primitive(lens_data + i * 4)) .collect::<::std::result::Result, DummyUserError>>()? diff --git a/substrate/primitives/src/ed25519.rs b/substrate/primitives/src/ed25519.rs index b28e0bde6e..b44d59c0b3 100644 --- a/substrate/primitives/src/ed25519.rs +++ b/substrate/primitives/src/ed25519.rs @@ -55,6 +55,11 @@ impl Signature { r.copy_from_slice(data); Signature(r) } + + /// Get the inner part. + pub fn inner(self) -> [u8; 64] { + self.0 + } } impl AsRef<[u8; 64]> for Signature { diff --git a/substrate/wasm-runtime/std/src/lib.rs b/substrate/wasm-runtime/std/src/lib.rs index 3feb8c5544..7bf583af7d 100644 --- a/substrate/wasm-runtime/std/src/lib.rs +++ b/substrate/wasm-runtime/std/src/lib.rs @@ -43,7 +43,7 @@ extern "C" { fn ext_get_allocated_storage(key_data: *const u8, key_len: u32, written_out: *mut u32) -> *mut u8; fn ext_get_storage_into(key_data: *const u8, key_len: u32, value_data: *mut u8, value_len: u32, value_offset: u32) -> u32; fn ext_storage_root(result: *mut u8); - fn ext_enumerated_trie_root(values_data: *const u8, values_len: u32, lens_data: *const u32, lens_len: u32, result: *mut u8); + fn ext_enumerated_trie_root(values_data: *const u8, lens_data: *const u32, lens_len: u32, result: *mut u8); fn ext_chain_id() -> u64; fn ext_blake2_256(data: *const u8, len: u32, out: *mut u8); fn ext_twox_128(data: *const u8, len: u32, out: *mut u8); @@ -90,7 +90,7 @@ pub fn enumerated_trie_root(values: &[&[u8]]) -> [u8; 32] { let mut result: [u8; 32] = Default::default(); unsafe { ext_enumerated_trie_root( - values.as_ptr(), values.len() as u32, + values.as_ptr(), lens.as_ptr(), lens.len() as u32, result.as_mut_ptr() ); diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm index 36fe893442daba09d8a56b0e97829c475e9426de..112a5c0223c49219fec1b962d9a9aacbddd90d17 100644 GIT binary patch delta 17575 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 N>dezmyXs@v{|~QYWb^<4 delta 18097 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 delta 18046 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 AqW}N^ diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm index 3905e9d9113959f2da7e70433a3943645341db65..fde5fdad98d95d6b27bd4f30dbaa0ab961481346 100644 GIT binary patch delta 115 zcmZ3KHzSXmA+b1@k%57M(UWH)w~Q!DJrFP?FoH2-eF9@0Lju!8m+y=$lWiC^OQQ F0RXB<8bJU6 delta 126 zcmbP{wgr&ZIqRn?k&dDZ> znsS^BY^;nRz`@DL%EZCS!NJYM0|Q)>s~LYWe%V~c)Tqq(Zu1Y-$Bc~JlW(cp07-ET MYew$P!5T;T07Y0H8UO$Q diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_test.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_test.wasm index 3a909f06b3487c624a82991ec51b467cfa9996f9..3011f185a3443eb2d284bc066905bc28c7b5e59d 100644 GIT binary patch delta 121 zcmbQAKQ*75A+b1@k%57M(UWH)w~Q!DJrFP?FoH2-eF9@0Lju!A7i~sHmdOQ-nu;ty zr3`GWj3B_l!pO?R!OFqG#l#H*oSSzs$}=)f-h7K`kuu|(&9!Qe87C)cSTk}?o(Cc~ J-_khB2LRRt8d?AV delta 131 zcmbQ5KR=(FA+b1@k%57MF_3p6w~Q=nJqR!)FoH2-eF9@0Ljn^>gr&ZIqm4ErBj@A{ zMomRdpcV!;Rz?uu;ACWF;$Y?A;AY~10j|xP808rmr*6K)v`Crp-R4rY$Bc~JlfyM^ RfaDYnYew$P7c`FY0RU5~9Wwv`