From b0710167d4f96f44b26cc342da67ec55d84b672d Mon Sep 17 00:00:00 2001 From: arkpar Date: Wed, 27 Jun 2018 13:06:18 +0200 Subject: [PATCH 1/6] Runtime version --- Cargo.lock | 16 + Cargo.toml | 1 + demo/executor/src/lib.rs | 2 +- demo/runtime/Cargo.toml | 2 + demo/runtime/src/lib.rs | 20 ++ demo/runtime/wasm/Cargo.lock | 298 ++++++++++++++++++ demo/runtime/wasm/Cargo.toml | 2 + .../release/demo_runtime.compact.wasm | Bin 408085 -> 407354 bytes .../release/demo_runtime.wasm | Bin 442691 -> 442296 bytes polkadot/api/src/full.rs | 69 ++-- polkadot/api/src/lib.rs | 40 +-- polkadot/api/src/light.rs | 36 +-- polkadot/consensus/src/collation.rs | 8 +- polkadot/consensus/src/lib.rs | 14 +- polkadot/executor/src/lib.rs | 2 +- polkadot/runtime/Cargo.toml | 2 + polkadot/runtime/src/lib.rs | 20 ++ polkadot/runtime/wasm/Cargo.lock | 298 ++++++++++++++++++ polkadot/runtime/wasm/Cargo.toml | 2 + .../release/polkadot_runtime.compact.wasm | Bin 439594 -> 440458 bytes .../release/polkadot_runtime.wasm | Bin 481451 -> 482638 bytes polkadot/service/src/components.rs | 6 +- polkadot/service/src/lib.rs | 10 +- polkadot/transaction-pool/src/lib.rs | 74 ++--- substrate/bft/src/error.rs | 6 + substrate/client/db/Cargo.toml | 1 + substrate/client/db/src/lib.rs | 4 +- substrate/client/src/call_executor.rs | 14 +- substrate/client/src/client.rs | 21 +- substrate/client/src/error.rs | 6 + substrate/client/src/genesis.rs | 2 +- substrate/client/src/lib.rs | 2 +- substrate/codec/src/lib.rs | 2 +- substrate/codec/src/slicable.rs | 18 +- substrate/executor/Cargo.toml | 1 + substrate/executor/src/error.rs | 6 + substrate/executor/src/lib.rs | 10 + substrate/executor/src/native_executor.rs | 47 ++- .../release/runtime_test.compact.wasm | Bin 15619 -> 15623 bytes .../release/runtime_test.wasm | Bin 16166 -> 16196 bytes substrate/runtime/version/Cargo.toml | 21 ++ substrate/runtime/version/src/lib.rs | 125 ++++++++ substrate/test-client/src/lib.rs | 2 +- substrate/test-runtime/Cargo.toml | 4 +- substrate/test-runtime/src/lib.rs | 18 +- substrate/test-runtime/wasm/Cargo.lock | 298 ++++++++++++++++++ substrate/test-runtime/wasm/Cargo.toml | 2 + .../substrate_test_runtime.compact.wasm | Bin 20287 -> 21236 bytes .../release/substrate_test_runtime.wasm | Bin 22369 -> 23465 bytes 49 files changed, 1343 insertions(+), 189 deletions(-) create mode 100644 substrate/runtime/version/Cargo.toml create mode 100644 substrate/runtime/version/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index e5d1ff228f551..15385f0ce118a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -386,6 +386,7 @@ dependencies = [ "substrate-runtime-support 0.1.0", "substrate-runtime-system 0.1.0", "substrate-runtime-timestamp 0.1.0", + "substrate-runtime-version 0.1.0", ] [[package]] @@ -1499,6 +1500,7 @@ dependencies = [ "substrate-runtime-support 0.1.0", "substrate-runtime-system 0.1.0", "substrate-runtime-timestamp 0.1.0", + "substrate-runtime-version 0.1.0", "substrate-serializer 0.1.0", ] @@ -2101,6 +2103,7 @@ dependencies = [ "patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)", "substrate-client 0.1.0", "substrate-codec 0.1.0", + "substrate-executor 0.1.0", "substrate-primitives 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-support 0.1.0", @@ -2130,6 +2133,7 @@ dependencies = [ "substrate-codec 0.1.0", "substrate-primitives 0.1.0", "substrate-runtime-io 0.1.0", + "substrate-runtime-version 0.1.0", "substrate-serializer 0.1.0", "substrate-state-machine 0.1.0", "triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2501,6 +2505,17 @@ dependencies = [ "substrate-runtime-system 0.1.0", ] +[[package]] +name = "substrate-runtime-version" +version = "0.1.0" +dependencies = [ + "serde 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", +] + [[package]] name = "substrate-serializer" version = "0.1.0" @@ -2571,6 +2586,7 @@ dependencies = [ "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-version 0.1.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index b1602fb3d270d..d345d54073988 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,7 @@ members = [ "substrate/runtime/staking", "substrate/runtime/system", "substrate/runtime/timestamp", + "substrate/runtime/version", "substrate/serializer", "substrate/state-machine", "substrate/test-runtime", diff --git a/demo/executor/src/lib.rs b/demo/executor/src/lib.rs index 538a5fc0f2aad..febae9687e95b 100644 --- a/demo/executor/src/lib.rs +++ b/demo/executor/src/lib.rs @@ -34,7 +34,7 @@ extern crate triehash; #[cfg(test)] extern crate substrate_runtime_system as system; #[cfg(test)] #[macro_use] extern crate hex_literal; -native_executor_instance!(pub Executor, demo_runtime::api::dispatch, include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm")); +native_executor_instance!(pub Executor, demo_runtime::api::dispatch, demo_runtime::VERSION, include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm")); #[cfg(test)] mod tests { diff --git a/demo/runtime/Cargo.toml b/demo/runtime/Cargo.toml index cb9988ffc9e01..e541dcb029e4c 100644 --- a/demo/runtime/Cargo.toml +++ b/demo/runtime/Cargo.toml @@ -25,6 +25,7 @@ substrate-runtime-session = { path = "../../substrate/runtime/session" } substrate-runtime-staking = { path = "../../substrate/runtime/staking" } substrate-runtime-system = { path = "../../substrate/runtime/system" } substrate-runtime-timestamp = { path = "../../substrate/runtime/timestamp" } +substrate-runtime-version = { path = "../../substrate/runtime/version" } demo-primitives = { path = "../primitives" } [features] @@ -44,6 +45,7 @@ std = [ "substrate-runtime-staking/std", "substrate-runtime-system/std", "substrate-runtime-timestamp/std", + "substrate-runtime-version/std", "demo-primitives/std", "serde_derive", "serde/std", diff --git a/demo/runtime/src/lib.rs b/demo/runtime/src/lib.rs index 77bcad3d25eb6..b7678eb3178b7 100644 --- a/demo/runtime/src/lib.rs +++ b/demo/runtime/src/lib.rs @@ -43,12 +43,15 @@ extern crate substrate_runtime_session as session; extern crate substrate_runtime_staking as staking; extern crate substrate_runtime_system as system; extern crate substrate_runtime_timestamp as timestamp; +#[macro_use] +extern crate substrate_runtime_version as version; extern crate demo_primitives; use rstd::prelude::*; use demo_primitives::{AccountId, AccountIndex, Balance, BlockNumber, Hash, Index, SessionKey, Signature}; use runtime_primitives::generic; use runtime_primitives::traits::{Convert, HasPublicAux, BlakeTwo256}; +use version::RuntimeVersion; #[cfg(any(feature = "std", test))] pub use runtime_primitives::BuildStorage; @@ -59,6 +62,22 @@ pub use runtime_primitives::BuildStorage; /// Concrete runtime type used to parameterize the various modules. pub struct Concrete; +/// Polkadot runtime version. +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: ver_str!("demo"), + impl_name: ver_str!("parity-demo"), + authoring_version: 0, + spec_version: 0, + impl_version: 0, +}; + +/// Version module for this concrete runtime. +pub type Version = version::Module; + +impl version::Trait for Concrete { + const VERSION: RuntimeVersion = VERSION; +} + impl HasPublicAux for Concrete { type PublicAux = AccountId; } @@ -185,6 +204,7 @@ impl_outer_config! { pub mod api { impl_stubs!( + version => |()| super::Version::version(), authorities => |()| super::Consensus::authorities(), initialise_block => |header| super::Executive::initialise_block(&header), apply_extrinsic => |extrinsic| super::Executive::apply_extrinsic(extrinsic), diff --git a/demo/runtime/wasm/Cargo.lock b/demo/runtime/wasm/Cargo.lock index 8532d96db9946..6334ba42e606a 100644 --- a/demo/runtime/wasm/Cargo.lock +++ b/demo/runtime/wasm/Cargo.lock @@ -1,3 +1,16 @@ +[[package]] +name = "aho-corasick" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "ansi_term" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "arrayvec" version = "0.4.7" @@ -6,6 +19,16 @@ dependencies = [ "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "atty" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "base58" version = "0.1.0" @@ -114,6 +137,7 @@ dependencies = [ "substrate-runtime-support 0.1.0", "substrate-runtime-system 0.1.0", "substrate-runtime-timestamp 0.1.0", + "substrate-runtime-version 0.1.0", ] [[package]] @@ -136,10 +160,24 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "env_logger" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "environmental" version = "0.1.0" +[[package]] +name = "error-chain" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "ethbloom" version = "0.5.0" @@ -152,6 +190,27 @@ dependencies = [ "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ethcore-bytes" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" + +[[package]] +name = "ethcore-logger" +version = "1.12.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ethereum-types" version = "0.3.2" @@ -213,6 +272,15 @@ name = "gcc" version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "hashdb" +version = "0.1.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "heapsize" version = "0.4.2" @@ -253,6 +321,25 @@ dependencies = [ "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "keccak-hash" +version = "0.1.2" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "kvdb" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "lazy_static" version = "0.2.11" @@ -284,6 +371,14 @@ dependencies = [ "cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "memchr" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "memoffset" version = "0.2.1" @@ -294,6 +389,20 @@ name = "memory_units" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "memorydb" +version = "0.1.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "plain_hasher 0.1.0 (git+https://github.com/paritytech/parity.git)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "nodrop" version = "0.1.12" @@ -338,6 +447,15 @@ dependencies = [ "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot" version = "0.5.5" @@ -358,6 +476,33 @@ dependencies = [ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "patricia-trie" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)", + "ethcore-logger 1.12.0 (git+https://github.com/paritytech/parity.git)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", + "triehash 0.1.0 (git+https://github.com/paritytech/parity.git)", +] + +[[package]] +name = "plain_hasher" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.0" @@ -449,6 +594,39 @@ dependencies = [ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "redox_syscall" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "redox_termios" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex-syntax" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ring" version = "0.12.1" @@ -461,6 +639,17 @@ dependencies = [ "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rlp" +version = "0.2.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rlp" version = "0.2.2" @@ -796,12 +985,30 @@ dependencies = [ "substrate-runtime-system 0.1.0", ] +[[package]] +name = "substrate-runtime-version" +version = "0.1.0" +dependencies = [ + "serde 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", +] + [[package]] name = "substrate-state-machine" version = "0.1.0" dependencies = [ "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity.git)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)", "substrate-primitives 0.1.0", "triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -816,6 +1023,35 @@ dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "termion" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "thread_local" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "time" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "tiny-keccak" version = "1.4.2" @@ -824,6 +1060,17 @@ dependencies = [ "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "triehash" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "triehash" version = "0.1.2" @@ -843,6 +1090,11 @@ dependencies = [ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ucd-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "uint" version = "0.1.2" @@ -869,11 +1121,29 @@ name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "untrusted" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "utf8-ranges" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "wasmi" version = "0.1.3" @@ -904,7 +1174,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] +"checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4" +"checksum ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6b3568b48b7cefa6b8ce125f9bb4989e52fbcc29ebea88df04cc7c5f12f70455" "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" +"checksum atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2fc4a1aa4c24c0718a250f0681885c1af91419d242f29eb8f2ab28502d80dbd1" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" @@ -917,7 +1190,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88d4851b005ef16de812ea9acdb7bece2f0a40dd86c07b85631d7dafa54537bb" +"checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" +"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3" "checksum ethbloom 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a93a43ce2e9f09071449da36bfa7a1b20b950ee344b6904ff23de493b03b386" +"checksum ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" +"checksum ethcore-logger 1.12.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c48729b8aea8aedb12cf4cb2e5cef439fdfe2dda4a89e47eeebd15778ef53b6" "checksum ethereum-types-serialize 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ac59a21a9ce98e188f3dace9eb67a6c4a3c67ec7fbc7218cb827852679dc002" "checksum fixed-hash 0.1.3 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)" = "" @@ -925,26 +1202,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)" = "5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb" +"checksum hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" "checksum hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4da5f0e01bd8a71a224a4eedecaacfcabda388dbb7a80faf04d3514287572d95" "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)" = "" "checksum keccak-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b7f51f30d7986536accaec4a6a288008dfb3dbffe8a2863a65292bc395a3ae7" +"checksum keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)" = "" +"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)" = "ac8ebf8343a981e2fa97042b14768f02ed3e1d602eac06cae6166df3c8ced206" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2" +"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" +"checksum memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" "checksum num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775393e285254d2f5004596d69bb8bc1149754570dcc08cf30cabeba67955e28" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum parity-wasm 0.27.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bd4dc02a80a0315b109e48992c46942c79bcdb8fac416dd575d330ed9ced6cbd" "checksum parity-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41083957b80abb8a01fac4d2773d5f92653aed8f0b740c8d3da1da62c7857abe" +"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" +"checksum plain_hasher 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum proc-macro-hack 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ba8d4f9257b85eb6cdf13f055cea3190520aab1409ca2ab43493ea4820c25f0" "checksum proc-macro-hack-impl 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5cb6f960ad471404618e9817c0e5d10b1ae74cfdf01fab89ea0641fe7fb2892" "checksum proc-macro2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1fa93823f53cfd0f5ac117b189aed6cfdfb2cfc0a9d82e956dd7927595ed7d46" @@ -954,7 +1239,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon-core 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d24ad214285a7729b174ed6d3bcfcb80177807f959d95fafd5bfc5c4f201ac8" +"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" +"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum rlp 0.2.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum rlp 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "89db7f8dfdd5eb7ab3ac3ece7a07fd273a680b4b224cb231181280e8996f9f0b" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" "checksum rustc-hex 2.0.0 (git+https://github.com/rphmeier/rustc-hex.git)" = "" @@ -967,13 +1257,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum smallvec 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03dab98ab5ded3a8b43b2c80751194608d0b2aa0f1d46cf95d1c35e192844aa7" "checksum stable_deref_trait 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15132e0e364248108c5e2c02e3ab539be8d6f5d52a01ca9bbf27ed657316f02b" "checksum syn 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6dfd71b2be5a58ee30a6f8ea355ba8290d397131c00dfa55c3d34e6e13db5101" +"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" +"checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963" +"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" +"checksum triehash 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2033893a813c70e7d8a739ca6c36dc0a7a2c913ec718d7cbf84a3837bbe3c7ce" "checksum twox-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "475352206e7a290c5fccc27624a163e8d0d115f7bb60ca18a64fc9ce056d7435" +"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" "checksum uint 0.1.2 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)" = "" "checksum uint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "38051a96565903d81c9a9210ce11076b2218f3b352926baa1f5f6abbdfce8273" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" +"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d19da510b59247935ad5f598357b3cc739912666d75d3d28318026478d95bbdb" "checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" diff --git a/demo/runtime/wasm/Cargo.toml b/demo/runtime/wasm/Cargo.toml index 32af7412f4b2c..8490777097eef 100644 --- a/demo/runtime/wasm/Cargo.toml +++ b/demo/runtime/wasm/Cargo.toml @@ -23,6 +23,7 @@ substrate-runtime-session = { path = "../../../substrate/runtime/session", defau substrate-runtime-staking = { path = "../../../substrate/runtime/staking", default-features = false } substrate-runtime-system = { path = "../../../substrate/runtime/system", default-features = false } substrate-runtime-timestamp = { path = "../../../substrate/runtime/timestamp", default-features = false } +substrate-runtime-version = { path = "../../../substrate/runtime/version", default-features = false } demo-primitives = { path = "../../primitives", default-features = false } [features] @@ -43,6 +44,7 @@ std = [ "substrate-runtime-staking/std", "substrate-runtime-system/std", "substrate-runtime-timestamp/std", + "substrate-runtime-version/std", "demo-primitives/std", ] diff --git a/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm b/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm index 9e847aac35fcc5e421329ff5b0d45236cac9c85e..75652a2a5b4a2df3b9124f5d283717dcf7d098e6 100644 GIT binary patch delta 47944 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�oMWqpbymt_K>{|myAIhQB25VAI4uiZ(u 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 diff --git a/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm b/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm index fe49b81f28780c28dd3928781948b89f74f6afe2..ae41fd372de67ea795693c1d3cb1087b60b65594 100755 GIT binary patch delta 51404 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%0Da-wwfW#1?G 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 delta 51873 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 d@k{Xk-h1=- &BlockId { - &self.0 - } -} +use {BlockBuilder, PolkadotApi, LocalPolkadotApi, ErrorKind, Error, Result}; // set up the necessary scaffolding to execute a set of calls to the runtime. // this creates a new block on top of the given ID and initialises it. macro_rules! with_runtime { ($client: ident, $at: expr, $exec: expr) => {{ - let parent = $at.block_id(); + let parent = $at; let header = Header { parent_hash: $client.block_hash_from_id(&parent)? .ok_or_else(|| ErrorKind::UnknownBlock(format!("{:?}", parent)))?, @@ -83,39 +73,29 @@ impl> BlockBuilder for ClientBlockBuilder> PolkadotApi for Client>, Block> where ::client::error::Error: From<<>::State as state_machine::backend::Backend>::Error> { - type CheckedBlockId = CheckedId; type BlockBuilder = ClientBlockBuilder>, Block>; - fn check_id(&self, id: BlockId) -> Result { - // bail if the code is not the same as the natively linked. - if self.code_at(&id.into())? != LocalDispatch::native_equivalent() { - bail!("This node is out of date. Block authoring may not work correctly. Bailing.") - } - - Ok(CheckedId(id)) - } - - fn session_keys(&self, at: &CheckedId) -> Result> { + fn session_keys(&self, at: &BlockId) -> Result> { with_runtime!(self, at, ::runtime::Consensus::authorities) } - fn validators(&self, at: &CheckedId) -> Result> { + fn validators(&self, at: &BlockId) -> Result> { with_runtime!(self, at, ::runtime::Session::validators) } - fn random_seed(&self, at: &CheckedId) -> Result { + fn random_seed(&self, at: &BlockId) -> Result { with_runtime!(self, at, ::runtime::System::random_seed) } - fn duty_roster(&self, at: &CheckedId) -> Result { + fn duty_roster(&self, at: &BlockId) -> Result { with_runtime!(self, at, ::runtime::Parachains::calculate_duty_roster) } - fn timestamp(&self, at: &CheckedId) -> Result { + fn timestamp(&self, at: &BlockId) -> Result { with_runtime!(self, at, ::runtime::Timestamp::now) } - fn evaluate_block(&self, at: &CheckedId, block: Block) -> Result { + fn evaluate_block(&self, at: &BlockId, block: Block) -> Result { use substrate_executor::error::ErrorKind as ExecErrorKind; use codec::Slicable; use runtime::Block as RuntimeBlock; @@ -136,28 +116,28 @@ impl> PolkadotApi for Client Result { + fn index(&self, at: &BlockId, account: AccountId) -> Result { with_runtime!(self, at, || ::runtime::System::account_nonce(account)) } - fn lookup(&self, at: &Self::CheckedBlockId, address: Address) -> Result> { + fn lookup(&self, at: &BlockId, address: Address) -> Result> { with_runtime!(self, at, || <::runtime::Staking as AuxLookup>::lookup(address).ok()) } - fn active_parachains(&self, at: &CheckedId) -> Result> { + fn active_parachains(&self, at: &BlockId) -> Result> { with_runtime!(self, at, ::runtime::Parachains::active_parachains) } - fn parachain_code(&self, at: &CheckedId, parachain: ParaId) -> Result>> { + fn parachain_code(&self, at: &BlockId, parachain: ParaId) -> Result>> { with_runtime!(self, at, || ::runtime::Parachains::parachain_code(parachain)) } - fn parachain_head(&self, at: &CheckedId, parachain: ParaId) -> Result>> { + fn parachain_head(&self, at: &BlockId, parachain: ParaId) -> Result>> { with_runtime!(self, at, || ::runtime::Parachains::parachain_head(parachain)) } - fn build_block(&self, at: &CheckedId, timestamp: Timestamp, new_heads: Vec) -> Result { - let mut block_builder = self.new_block_at(at.block_id())?; + fn build_block(&self, at: &BlockId, timestamp: Timestamp, new_heads: Vec) -> Result { + let mut block_builder = self.new_block_at(at)?; for inherent in self.inherent_extrinsics(at, timestamp, new_heads)? { block_builder.push(inherent)?; } @@ -165,7 +145,7 @@ impl> PolkadotApi for Client) -> Result> { + fn inherent_extrinsics(&self, at: &BlockId, timestamp: Timestamp, new_heads: Vec) -> Result> { use codec::Slicable; with_runtime!(self, at, || { @@ -229,7 +209,7 @@ mod tests { #[test] fn gets_session_and_validator_keys() { let client = client(); - let id = client.check_id(BlockId::number(0)).unwrap(); + let id = BlockId::number(0); assert_eq!(client.session_keys(&id).unwrap(), session_keys()); assert_eq!(client.validators(&id).unwrap(), validators()); } @@ -238,7 +218,7 @@ mod tests { fn build_block_implicit_succeeds() { let client = client(); - let id = client.check_id(BlockId::number(0)).unwrap(); + let id = BlockId::number(0); let block_builder = client.build_block(&id, 1_000_000, Vec::new()).unwrap(); let block = block_builder.bake().unwrap(); @@ -250,10 +230,10 @@ mod tests { fn build_block_with_inherent_succeeds() { let client = client(); - let id = client.check_id(BlockId::number(0)).unwrap(); + let id = BlockId::number(0); let inherent = client.inherent_extrinsics(&id, 1_000_000, Vec::new()).unwrap(); - let mut block_builder = client.new_block_at(id.block_id()).unwrap(); + let mut block_builder = client.new_block_at(&id).unwrap(); for extrinsic in inherent { block_builder.push(extrinsic).unwrap(); } @@ -264,16 +244,11 @@ mod tests { assert!(block.header.extrinsics_root != Default::default()); } - #[test] - fn fails_to_check_id_for_unknown_block() { - assert!(client().check_id(BlockId::number(100)).is_err()); - } - #[test] fn gets_random_seed_with_genesis() { let client = client(); - let id = client.check_id(BlockId::number(0)).unwrap(); + let id = BlockId::number(0); assert!(client.random_seed(&id).is_ok()); } } diff --git a/polkadot/api/src/lib.rs b/polkadot/api/src/lib.rs index 81e3b024201e3..27bea18a0d0a3 100644 --- a/polkadot/api/src/lib.rs +++ b/polkadot/api/src/lib.rs @@ -77,12 +77,6 @@ impl From for Error { } } -/// A checked block identifier. -pub trait CheckedBlockId: Clone + 'static { - /// Yield the underlying block ID. - fn block_id(&self) -> &BlockId; -} - /// Build new blocks. pub trait BlockBuilder { /// Push an extrinsic onto the block. Fails if the extrinsic is invalid. @@ -96,57 +90,49 @@ pub trait BlockBuilder { /// /// All calls should fail when the exact runtime is unknown. pub trait PolkadotApi { - /// A checked block ID. Used to avoid redundancy of code check. - type CheckedBlockId: CheckedBlockId; /// The block builder for this API type. type BlockBuilder: BlockBuilder; - /// Check whether requests at the given block ID can be served. - /// - /// It should not be possible to instantiate this type without going - /// through this function. - fn check_id(&self, id: BlockId) -> Result; - /// Get session keys at a given block. - fn session_keys(&self, at: &Self::CheckedBlockId) -> Result>; + fn session_keys(&self, at: &BlockId) -> Result>; /// Get validators at a given block. - fn validators(&self, at: &Self::CheckedBlockId) -> Result>; + fn validators(&self, at: &BlockId) -> Result>; /// Get the value of the randomness beacon at a given block. - fn random_seed(&self, at: &Self::CheckedBlockId) -> Result; + fn random_seed(&self, at: &BlockId) -> Result; /// Get the authority duty roster at a block. - fn duty_roster(&self, at: &Self::CheckedBlockId) -> Result; + fn duty_roster(&self, at: &BlockId) -> Result; /// Get the timestamp registered at a block. - fn timestamp(&self, at: &Self::CheckedBlockId) -> Result; + fn timestamp(&self, at: &BlockId) -> Result; /// Get the nonce (né index) of an account at a block. - fn index(&self, at: &Self::CheckedBlockId, account: AccountId) -> Result; + fn index(&self, at: &BlockId, account: AccountId) -> Result; /// Get the account id of an address at a block. - fn lookup(&self, at: &Self::CheckedBlockId, address: Address) -> Result>; + fn lookup(&self, at: &BlockId, address: Address) -> Result>; /// Get the active parachains at a block. - fn active_parachains(&self, at: &Self::CheckedBlockId) -> Result>; + fn active_parachains(&self, at: &BlockId) -> Result>; /// Get the validation code of a parachain at a block. If the parachain is active, this will always return `Some`. - fn parachain_code(&self, at: &Self::CheckedBlockId, parachain: ParaId) -> Result>>; + fn parachain_code(&self, at: &BlockId, parachain: ParaId) -> Result>>; /// Get the chain head of a parachain. If the parachain is active, this will always return `Some`. - fn parachain_head(&self, at: &Self::CheckedBlockId, parachain: ParaId) -> Result>>; + fn parachain_head(&self, at: &BlockId, parachain: ParaId) -> Result>>; /// Evaluate a block. Returns true if the block is good, false if it is known to be bad, /// and an error if we can't evaluate for some reason. - fn evaluate_block(&self, at: &Self::CheckedBlockId, block: Block) -> Result; + fn evaluate_block(&self, at: &BlockId, block: Block) -> Result; /// Build a block on top of the given, with inherent extrinsics pre-pushed. - fn build_block(&self, at: &Self::CheckedBlockId, timestamp: Timestamp, new_heads: Vec) -> Result; + fn build_block(&self, at: &BlockId, timestamp: Timestamp, new_heads: Vec) -> Result; /// Attempt to produce the (encoded) inherent extrinsics for a block being built upon the given. /// This may vary by runtime and will fail if a runtime doesn't follow the same API. - fn inherent_extrinsics(&self, at: &Self::CheckedBlockId, timestamp: Timestamp, new_heads: Vec) -> Result>; + fn inherent_extrinsics(&self, at: &BlockId, timestamp: Timestamp, new_heads: Vec) -> Result>; } /// Mark for all Polkadot API implementations, that are making use of state data, stored locally. diff --git a/polkadot/api/src/light.rs b/polkadot/api/src/light.rs index 6a4f1f0322438..e20c1a245ec82 100644 --- a/polkadot/api/src/light.rs +++ b/polkadot/api/src/light.rs @@ -24,8 +24,7 @@ use state_machine; use primitives::{AccountId, Block, BlockId, Hash, Index, SessionKey, Timestamp, UncheckedExtrinsic}; use runtime::Address; use primitives::parachain::{CandidateReceipt, DutyRoster, Id as ParaId}; -use full::CheckedId; -use {PolkadotApi, BlockBuilder, RemotePolkadotApi, CheckedBlockId, Result, ErrorKind}; +use {PolkadotApi, BlockBuilder, RemotePolkadotApi, Result, ErrorKind}; /// Light block builder. TODO: make this work (efficiently) #[derive(Clone, Copy)] @@ -47,65 +46,60 @@ pub struct RemotePolkadotApiWrapper, E: CallExecutor>(p impl, E: CallExecutor> PolkadotApi for RemotePolkadotApiWrapper where ::client::error::Error: From<<>::State as state_machine::backend::Backend>::Error> { - type CheckedBlockId = CheckedId; type BlockBuilder = LightBlockBuilder; - fn check_id(&self, id: BlockId) -> Result { - Ok(CheckedId(id)) - } - - fn session_keys(&self, at: &CheckedId) -> Result> { - self.0.executor().call(at.block_id(), "authorities", &[]) + fn session_keys(&self, at: &BlockId) -> Result> { + self.0.executor().call(at, "authorities", &[]) .and_then(|r| Vec::::decode(&mut &r.return_data[..]) .ok_or("error decoding session keys".into())) .map_err(Into::into) } - fn validators(&self, _at: &CheckedId) -> Result> { + fn validators(&self, _at: &BlockId) -> Result> { Err(ErrorKind::UnknownRuntime.into()) } - fn random_seed(&self, _at: &Self::CheckedBlockId) -> Result { + fn random_seed(&self, _at: &BlockId) -> Result { Err(ErrorKind::UnknownRuntime.into()) } - fn duty_roster(&self, _at: &CheckedId) -> Result { + fn duty_roster(&self, _at: &BlockId) -> Result { Err(ErrorKind::UnknownRuntime.into()) } - fn timestamp(&self, _at: &CheckedId) -> Result { + fn timestamp(&self, _at: &BlockId) -> Result { Err(ErrorKind::UnknownRuntime.into()) } - fn evaluate_block(&self, _at: &CheckedId, _block: Block) -> Result { + fn evaluate_block(&self, _at: &BlockId, _block: Block) -> Result { Err(ErrorKind::UnknownRuntime.into()) } - fn index(&self, _at: &CheckedId, _account: AccountId) -> Result { + fn index(&self, _at: &BlockId, _account: AccountId) -> Result { Err(ErrorKind::UnknownRuntime.into()) } - fn lookup(&self, _at: &CheckedId, _address: Address) -> Result> { + fn lookup(&self, _at: &BlockId, _address: Address) -> Result> { Err(ErrorKind::UnknownRuntime.into()) } - fn active_parachains(&self, _at: &Self::CheckedBlockId) -> Result> { + fn active_parachains(&self, _at: &BlockId) -> Result> { Err(ErrorKind::UnknownRuntime.into()) } - fn parachain_code(&self, _at: &Self::CheckedBlockId, _parachain: ParaId) -> Result>> { + fn parachain_code(&self, _at: &BlockId, _parachain: ParaId) -> Result>> { Err(ErrorKind::UnknownRuntime.into()) } - fn parachain_head(&self, _at: &Self::CheckedBlockId, _parachain: ParaId) -> Result>> { + fn parachain_head(&self, _at: &BlockId, _parachain: ParaId) -> Result>> { Err(ErrorKind::UnknownRuntime.into()) } - fn build_block(&self, _at: &Self::CheckedBlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result { + fn build_block(&self, _at: &BlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result { Err(ErrorKind::UnknownRuntime.into()) } - fn inherent_extrinsics(&self, _at: &Self::CheckedBlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result>> { + fn inherent_extrinsics(&self, _at: &BlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result>> { Err(ErrorKind::UnknownRuntime.into()) } } diff --git a/polkadot/consensus/src/collation.rs b/polkadot/consensus/src/collation.rs index 3738ae900413a..f0b1f626c68e1 100644 --- a/polkadot/consensus/src/collation.rs +++ b/polkadot/consensus/src/collation.rs @@ -22,7 +22,7 @@ use std::sync::Arc; use polkadot_api::PolkadotApi; -use polkadot_primitives::{Hash, AccountId}; +use polkadot_primitives::{Hash, AccountId, BlockId}; use polkadot_primitives::parachain::{Id as ParaId, Chain, BlockData, Extrinsic, CandidateReceipt}; use futures::prelude::*; @@ -57,7 +57,7 @@ pub trait Collators: Clone { pub struct CollationFetch { parachain: Option, relay_parent_hash: Hash, - relay_parent: P::CheckedBlockId, + relay_parent: BlockId, collators: C, live_fetch: Option<::Future>, client: Arc

, @@ -65,7 +65,7 @@ pub struct CollationFetch { impl CollationFetch { /// Create a new collation fetcher for the given chain. - pub fn new(parachain: Chain, relay_parent: P::CheckedBlockId, relay_parent_hash: Hash, collators: C, client: Arc

) -> Self { + pub fn new(parachain: Chain, relay_parent: BlockId, relay_parent_hash: Hash, collators: C, client: Arc

) -> Self { CollationFetch { relay_parent_hash, relay_parent, @@ -145,7 +145,7 @@ error_chain! { } /// Check whether a given collation is valid. Returns `Ok` on success, error otherwise. -pub fn validate_collation(client: &P, relay_parent: &P::CheckedBlockId, collation: &Collation) -> Result<(), Error> { +pub fn validate_collation(client: &P, relay_parent: &BlockId, collation: &Collation) -> Result<(), Error> { use parachain::{self, ValidationParams}; let para_id = collation.receipt.parachain_index; diff --git a/polkadot/consensus/src/lib.rs b/polkadot/consensus/src/lib.rs index 6146e6d87da90..da623bbed08a4 100644 --- a/polkadot/consensus/src/lib.rs +++ b/polkadot/consensus/src/lib.rs @@ -253,9 +253,9 @@ impl bft::ProposerFactory for ProposerFactory let parent_hash = parent_header.blake2_256().into(); - let checked_id = self.client.check_id(BlockId::hash(parent_hash))?; - let duty_roster = self.client.duty_roster(&checked_id)?; - let random_seed = self.client.random_seed(&checked_id)?; + let id = BlockId::hash(parent_hash); + let duty_roster = self.client.duty_roster(&id)?; + let random_seed = self.client.random_seed(&id)?; let (group_info, local_duty) = make_group_info( duty_roster, @@ -263,7 +263,7 @@ impl bft::ProposerFactory for ProposerFactory sign_with.public().0, )?; - let active_parachains = self.client.active_parachains(&checked_id)?; + let active_parachains = self.client.active_parachains(&id)?; let n_parachains = active_parachains.len(); let table = Arc::new(SharedTable::new(group_info, sign_with.clone(), parent_hash)); @@ -290,7 +290,7 @@ impl bft::ProposerFactory for ProposerFactory local_duty, local_key: sign_with, parent_hash, - parent_id: checked_id, + parent_id: id, parent_number: parent_header.number, random_seed, router, @@ -314,7 +314,7 @@ pub struct Proposer { local_duty: LocalDuty, local_key: Arc, parent_hash: Hash, - parent_id: C::CheckedBlockId, + parent_id: BlockId, parent_number: BlockNumber, random_seed: Hash, router: R, @@ -616,7 +616,7 @@ impl ProposalTiming { pub struct CreateProposal { parent_hash: Hash, parent_number: BlockNumber, - parent_id: C::CheckedBlockId, + parent_id: BlockId, client: Arc, transaction_pool: Arc, collation: CollationFetch, diff --git a/polkadot/executor/src/lib.rs b/polkadot/executor/src/lib.rs index be44d8afbae9e..82cd5cd47851c 100644 --- a/polkadot/executor/src/lib.rs +++ b/polkadot/executor/src/lib.rs @@ -20,4 +20,4 @@ extern crate polkadot_runtime; #[macro_use] extern crate substrate_executor; -native_executor_instance!(pub Executor, polkadot_runtime::api::dispatch, include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm")); +native_executor_instance!(pub Executor, polkadot_runtime::api::dispatch, polkadot_runtime::VERSION, include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm")); diff --git a/polkadot/runtime/Cargo.toml b/polkadot/runtime/Cargo.toml index 9ac1f50175300..40685956016c9 100644 --- a/polkadot/runtime/Cargo.toml +++ b/polkadot/runtime/Cargo.toml @@ -26,6 +26,7 @@ substrate-runtime-session = { path = "../../substrate/runtime/session" } substrate-runtime-staking = { path = "../../substrate/runtime/staking" } substrate-runtime-system = { path = "../../substrate/runtime/system" } substrate-runtime-timestamp = { path = "../../substrate/runtime/timestamp" } +substrate-runtime-version = { path = "../../substrate/runtime/version" } [dev-dependencies] hex-literal = "0.1.0" @@ -48,6 +49,7 @@ std = [ "substrate-runtime-staking/std", "substrate-runtime-system/std", "substrate-runtime-timestamp/std", + "substrate-runtime-version/std", "serde_derive", "serde/std", "log", diff --git a/polkadot/runtime/src/lib.rs b/polkadot/runtime/src/lib.rs index e0a678993ed08..e283d2a2b54cb 100644 --- a/polkadot/runtime/src/lib.rs +++ b/polkadot/runtime/src/lib.rs @@ -56,6 +56,8 @@ extern crate substrate_runtime_session as session; extern crate substrate_runtime_staking as staking; extern crate substrate_runtime_system as system; extern crate substrate_runtime_timestamp as timestamp; +#[macro_use] +extern crate substrate_runtime_version as version; #[cfg(feature = "std")] mod checked_block; @@ -69,6 +71,7 @@ pub use staking::address::Address as RawAddress; use primitives::{AccountId, AccountIndex, Balance, BlockNumber, Hash, Index, Log, SessionKey, Signature}; use runtime_primitives::{generic, traits::{HasPublicAux, BlakeTwo256, Convert}}; +use version::RuntimeVersion; #[cfg(feature = "std")] pub use runtime_primitives::BuildStorage; @@ -102,6 +105,22 @@ pub type Block = generic::Block; #[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] pub struct Concrete; +/// Polkadot runtime version. +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: ver_str!("polkatot"), + impl_name: ver_str!("parity-polkadot"), + authoring_version: 0, + spec_version: 0, + impl_version: 0, +}; + +impl version::Trait for Concrete { + const VERSION: RuntimeVersion = VERSION; +} + +/// Version module for this concrete runtime. +pub type Version = version::Module; + impl HasPublicAux for Concrete { type PublicAux = AccountId; // TODO: Option } @@ -219,6 +238,7 @@ impl_outer_config! { pub mod api { impl_stubs!( + version => |()| super::Version::version(), authorities => |()| super::Consensus::authorities(), initialise_block => |header| super::Executive::initialise_block(&header), apply_extrinsic => |extrinsic| super::Executive::apply_extrinsic(extrinsic), diff --git a/polkadot/runtime/wasm/Cargo.lock b/polkadot/runtime/wasm/Cargo.lock index aac3375c7a315..61962e6508daa 100644 --- a/polkadot/runtime/wasm/Cargo.lock +++ b/polkadot/runtime/wasm/Cargo.lock @@ -1,3 +1,16 @@ +[[package]] +name = "aho-corasick" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "ansi_term" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "arrayvec" version = "0.4.7" @@ -6,6 +19,16 @@ dependencies = [ "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "atty" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "base58" version = "0.1.0" @@ -101,10 +124,24 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "env_logger" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "environmental" version = "0.1.0" +[[package]] +name = "error-chain" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "ethbloom" version = "0.5.0" @@ -117,6 +154,27 @@ dependencies = [ "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ethcore-bytes" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" + +[[package]] +name = "ethcore-logger" +version = "1.12.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ethereum-types" version = "0.3.2" @@ -178,6 +236,15 @@ name = "gcc" version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "hashdb" +version = "0.1.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "heapsize" version = "0.4.2" @@ -218,6 +285,25 @@ dependencies = [ "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "keccak-hash" +version = "0.1.2" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "kvdb" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "lazy_static" version = "0.2.11" @@ -249,6 +335,14 @@ dependencies = [ "cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "memchr" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "memoffset" version = "0.2.1" @@ -259,6 +353,20 @@ name = "memory_units" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "memorydb" +version = "0.1.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "plain_hasher 0.1.0 (git+https://github.com/paritytech/parity.git)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "nodrop" version = "0.1.12" @@ -303,6 +411,15 @@ dependencies = [ "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot" version = "0.5.5" @@ -323,6 +440,33 @@ dependencies = [ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "patricia-trie" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)", + "ethcore-logger 1.12.0 (git+https://github.com/paritytech/parity.git)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", + "triehash 0.1.0 (git+https://github.com/paritytech/parity.git)", +] + +[[package]] +name = "plain_hasher" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "polkadot-primitives" version = "0.1.0" @@ -356,6 +500,7 @@ dependencies = [ "substrate-runtime-support 0.1.0", "substrate-runtime-system 0.1.0", "substrate-runtime-timestamp 0.1.0", + "substrate-runtime-version 0.1.0", ] [[package]] @@ -449,6 +594,39 @@ dependencies = [ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "redox_syscall" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "redox_termios" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex-syntax" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ring" version = "0.12.1" @@ -461,6 +639,17 @@ dependencies = [ "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rlp" +version = "0.2.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rlp" version = "0.2.2" @@ -796,12 +985,30 @@ dependencies = [ "substrate-runtime-system 0.1.0", ] +[[package]] +name = "substrate-runtime-version" +version = "0.1.0" +dependencies = [ + "serde 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", +] + [[package]] name = "substrate-state-machine" version = "0.1.0" dependencies = [ "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity.git)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)", "substrate-primitives 0.1.0", "triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -816,6 +1023,35 @@ dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "termion" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "thread_local" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "time" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "tiny-keccak" version = "1.4.2" @@ -824,6 +1060,17 @@ dependencies = [ "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "triehash" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "triehash" version = "0.1.2" @@ -843,6 +1090,11 @@ dependencies = [ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ucd-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "uint" version = "0.1.2" @@ -869,11 +1121,29 @@ name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "untrusted" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "utf8-ranges" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "wasmi" version = "0.1.3" @@ -904,7 +1174,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] +"checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4" +"checksum ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6b3568b48b7cefa6b8ce125f9bb4989e52fbcc29ebea88df04cc7c5f12f70455" "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" +"checksum atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2fc4a1aa4c24c0718a250f0681885c1af91419d242f29eb8f2ab28502d80dbd1" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" @@ -917,7 +1190,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88d4851b005ef16de812ea9acdb7bece2f0a40dd86c07b85631d7dafa54537bb" +"checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" +"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3" "checksum ethbloom 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a93a43ce2e9f09071449da36bfa7a1b20b950ee344b6904ff23de493b03b386" +"checksum ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" +"checksum ethcore-logger 1.12.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c48729b8aea8aedb12cf4cb2e5cef439fdfe2dda4a89e47eeebd15778ef53b6" "checksum ethereum-types-serialize 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ac59a21a9ce98e188f3dace9eb67a6c4a3c67ec7fbc7218cb827852679dc002" "checksum fixed-hash 0.1.3 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)" = "" @@ -925,26 +1202,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)" = "5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb" +"checksum hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" "checksum hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4da5f0e01bd8a71a224a4eedecaacfcabda388dbb7a80faf04d3514287572d95" "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)" = "" "checksum keccak-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b7f51f30d7986536accaec4a6a288008dfb3dbffe8a2863a65292bc395a3ae7" +"checksum keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)" = "" +"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)" = "ac8ebf8343a981e2fa97042b14768f02ed3e1d602eac06cae6166df3c8ced206" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2" +"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" +"checksum memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" "checksum num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775393e285254d2f5004596d69bb8bc1149754570dcc08cf30cabeba67955e28" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum parity-wasm 0.27.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bd4dc02a80a0315b109e48992c46942c79bcdb8fac416dd575d330ed9ced6cbd" "checksum parity-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41083957b80abb8a01fac4d2773d5f92653aed8f0b740c8d3da1da62c7857abe" +"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" +"checksum plain_hasher 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum proc-macro-hack 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ba8d4f9257b85eb6cdf13f055cea3190520aab1409ca2ab43493ea4820c25f0" "checksum proc-macro-hack-impl 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5cb6f960ad471404618e9817c0e5d10b1ae74cfdf01fab89ea0641fe7fb2892" "checksum proc-macro2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1fa93823f53cfd0f5ac117b189aed6cfdfb2cfc0a9d82e956dd7927595ed7d46" @@ -954,7 +1239,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon-core 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d24ad214285a7729b174ed6d3bcfcb80177807f959d95fafd5bfc5c4f201ac8" +"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" +"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum rlp 0.2.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum rlp 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "89db7f8dfdd5eb7ab3ac3ece7a07fd273a680b4b224cb231181280e8996f9f0b" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" "checksum rustc-hex 2.0.0 (git+https://github.com/rphmeier/rustc-hex.git)" = "" @@ -967,13 +1257,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum smallvec 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03dab98ab5ded3a8b43b2c80751194608d0b2aa0f1d46cf95d1c35e192844aa7" "checksum stable_deref_trait 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15132e0e364248108c5e2c02e3ab539be8d6f5d52a01ca9bbf27ed657316f02b" "checksum syn 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6dfd71b2be5a58ee30a6f8ea355ba8290d397131c00dfa55c3d34e6e13db5101" +"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" +"checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963" +"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" +"checksum triehash 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2033893a813c70e7d8a739ca6c36dc0a7a2c913ec718d7cbf84a3837bbe3c7ce" "checksum twox-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "475352206e7a290c5fccc27624a163e8d0d115f7bb60ca18a64fc9ce056d7435" +"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" "checksum uint 0.1.2 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)" = "" "checksum uint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "38051a96565903d81c9a9210ce11076b2218f3b352926baa1f5f6abbdfce8273" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" +"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d19da510b59247935ad5f598357b3cc739912666d75d3d28318026478d95bbdb" "checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" diff --git a/polkadot/runtime/wasm/Cargo.toml b/polkadot/runtime/wasm/Cargo.toml index f5dc280e6f6b2..3a73d894001e0 100644 --- a/polkadot/runtime/wasm/Cargo.toml +++ b/polkadot/runtime/wasm/Cargo.toml @@ -24,6 +24,7 @@ substrate-runtime-session = { path = "../../../substrate/runtime/session", defau substrate-runtime-staking = { path = "../../../substrate/runtime/staking", default-features = false } substrate-runtime-system = { path = "../../../substrate/runtime/system", default-features = false } substrate-runtime-timestamp = { path = "../../../substrate/runtime/timestamp", default-features = false } +substrate-runtime-version = { path = "../../../substrate/runtime/version", default-features = false } [features] default = [] @@ -44,6 +45,7 @@ std = [ "substrate-runtime-staking/std", "substrate-runtime-system/std", "substrate-runtime-timestamp/std", + "substrate-runtime-version/std", ] [profile.release] diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm index 990a7ac369de57780dab48c53298e9deaa6871cc..1d137cec6b954b323969aa4f2526329578d398e5 100644 GIT binary patch delta 29799 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 delta 29163 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 diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm index a950e628fc247651efdb42f1550e36472af3ac6a..9f470dad641b20bd9b1452970bdea0555f12bf70 100755 GIT binary patch delta 32955 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 Vz*M5#Wbr>8UlDk$jxU4L{{vb>0DAxc delta 32007 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 KF&MGKf0> diff --git a/polkadot/service/src/components.rs b/polkadot/service/src/components.rs index e8274f4dfccc9..ae3c997fe5f95 100644 --- a/polkadot/service/src/components.rs +++ b/polkadot/service/src/components.rs @@ -174,11 +174,7 @@ impl network::TransactionPool for TransactionPoolAdapter id, - Err(_) => return Vec::new(), - }; - + let id = BlockId::hash(best_block); let ready = transaction_pool::Ready::create(id, &*self.api); self.pool.cull_and_get_pending(ready, |pending| pending diff --git a/polkadot/service/src/lib.rs b/polkadot/service/src/lib.rs index 75ddf1ffbee7d..a472418f4d7ee 100644 --- a/polkadot/service/src/lib.rs +++ b/polkadot/service/src/lib.rs @@ -220,13 +220,9 @@ pub fn prune_imported(api: &A, pool: &TransactionPool, hash: Hash) where A: PolkadotApi, { - match api.check_id(BlockId::hash(hash)) { - Ok(id) => { - let ready = transaction_pool::Ready::create(id, api); - pool.cull(None, ready); - }, - Err(e) => warn!("Failed to check block id: {:?}", e), - } + let id = BlockId::hash(hash); + let ready = transaction_pool::Ready::create(id, api); + pool.cull(None, ready); } impl Drop for Service where Components: components::Components { diff --git a/polkadot/transaction-pool/src/lib.rs b/polkadot/transaction-pool/src/lib.rs index 843af20fb16f2..f66895cb18b7b 100644 --- a/polkadot/transaction-pool/src/lib.rs +++ b/polkadot/transaction-pool/src/lib.rs @@ -48,7 +48,7 @@ use codec::Slicable; use extrinsic_pool::{Pool, txpool::{self, Readiness, scoring::{Change, Choice}}}; use extrinsic_pool::api::ExtrinsicPool; use polkadot_api::PolkadotApi; -use primitives::{AccountId, AccountIndex, Hash, Index, UncheckedExtrinsic as FutureProofUncheckedExtrinsic}; +use primitives::{AccountId, AccountIndex, Hash, Index, BlockId, UncheckedExtrinsic as FutureProofUncheckedExtrinsic}; use runtime::{Address, RawAddress, UncheckedExtrinsic}; use substrate_runtime_primitives::traits::{Bounded, Checkable, Hashing, BlakeTwo256}; @@ -207,7 +207,7 @@ impl txpool::Scoring for Scoring { /// Readiness evaluator for polkadot transactions. pub struct Ready<'a, T: 'a + PolkadotApi> { - at_block: T::CheckedBlockId, + at_block: BlockId, api: &'a T, known_nonces: HashMap, known_indexes: HashMap, @@ -216,7 +216,7 @@ pub struct Ready<'a, T: 'a + PolkadotApi> { impl<'a, T: 'a + PolkadotApi> Ready<'a, T> { /// Create a new readiness evaluator at the given block. Requires that /// the ID has already been checked for local corresponding and available state. - pub fn create(at: T::CheckedBlockId, api: &'a T) -> Self { + pub fn create(at: BlockId, api: &'a T) -> Self { Ready { at_block: at, api, @@ -364,7 +364,7 @@ mod tests { use super::{TransactionPool, Ready}; use substrate_keyring::Keyring::{self, *}; use codec::Slicable; - use polkadot_api::{PolkadotApi, BlockBuilder, CheckedBlockId, Result}; + use polkadot_api::{PolkadotApi, BlockBuilder, Result}; use primitives::{AccountId, AccountIndex, Block, BlockId, Hash, Index, SessionKey, Timestamp, UncheckedExtrinsic as FutureProofUncheckedExtrinsic}; use runtime::{RawAddress, Call, TimestampCall, BareExtrinsic, Extrinsic, UncheckedExtrinsic}; @@ -377,15 +377,9 @@ mod tests { fn bake(self) -> Result { unimplemented!() } } - #[derive(Clone)] - struct TestCheckedBlockId(pub BlockId); - impl CheckedBlockId for TestCheckedBlockId { - fn block_id(&self) -> &BlockId { &self.0 } - } - - fn number_of(at: &TestCheckedBlockId) -> u32 { - match at.0 { - generic::BlockId::Number(n) => n as u32, + fn number_of(at: &BlockId) -> u32 { + match at { + generic::BlockId::Number(n) => *n as u32, _ => 0, } } @@ -393,26 +387,24 @@ mod tests { #[derive(Clone)] struct TestPolkadotApi; impl PolkadotApi for TestPolkadotApi { - type CheckedBlockId = TestCheckedBlockId; type BlockBuilder = TestBlockBuilder; - fn check_id(&self, id: BlockId) -> Result { Ok(TestCheckedBlockId(id)) } - fn session_keys(&self, _at: &TestCheckedBlockId) -> Result> { unimplemented!() } - fn validators(&self, _at: &TestCheckedBlockId) -> Result> { unimplemented!() } - fn random_seed(&self, _at: &TestCheckedBlockId) -> Result { unimplemented!() } - fn duty_roster(&self, _at: &TestCheckedBlockId) -> Result { unimplemented!() } - fn timestamp(&self, _at: &TestCheckedBlockId) -> Result { unimplemented!() } - fn evaluate_block(&self, _at: &TestCheckedBlockId, _block: Block) -> Result { unimplemented!() } - fn active_parachains(&self, _at: &TestCheckedBlockId) -> Result> { unimplemented!() } - fn parachain_code(&self, _at: &TestCheckedBlockId, _parachain: ParaId) -> Result>> { unimplemented!() } - fn parachain_head(&self, _at: &TestCheckedBlockId, _parachain: ParaId) -> Result>> { unimplemented!() } - fn build_block(&self, _at: &TestCheckedBlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result { unimplemented!() } - fn inherent_extrinsics(&self, _at: &TestCheckedBlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result>> { unimplemented!() } - - fn index(&self, _at: &TestCheckedBlockId, _account: AccountId) -> Result { + fn session_keys(&self, _at: &BlockId) -> Result> { unimplemented!() } + fn validators(&self, _at: &BlockId) -> Result> { unimplemented!() } + fn random_seed(&self, _at: &BlockId) -> Result { unimplemented!() } + fn duty_roster(&self, _at: &BlockId) -> Result { unimplemented!() } + fn timestamp(&self, _at: &BlockId) -> Result { unimplemented!() } + fn evaluate_block(&self, _at: &BlockId, _block: Block) -> Result { unimplemented!() } + fn active_parachains(&self, _at: &BlockId) -> Result> { unimplemented!() } + fn parachain_code(&self, _at: &BlockId, _parachain: ParaId) -> Result>> { unimplemented!() } + fn parachain_head(&self, _at: &BlockId, _parachain: ParaId) -> Result>> { unimplemented!() } + fn build_block(&self, _at: &BlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result { unimplemented!() } + fn inherent_extrinsics(&self, _at: &BlockId, _timestamp: Timestamp, _new_heads: Vec) -> Result>> { unimplemented!() } + + fn index(&self, _at: &BlockId, _account: AccountId) -> Result { Ok((_account[0] as u32) + number_of(_at)) } - fn lookup(&self, _at: &TestCheckedBlockId, _address: RawAddress) -> Result> { + fn lookup(&self, _at: &BlockId, _address: RawAddress) -> Result> { match _address { RawAddress::Id(i) => Ok(Some(i)), RawAddress::Index(i) => Ok(match (i < 8, i + (number_of(_at) as u64) % 8) { @@ -461,7 +453,7 @@ mod tests { let pool = TransactionPool::new(Default::default()); pool.submit(vec![uxt(Alice, 209, true)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![(Some(Alice.to_raw_public().into()), 209)]); } @@ -471,7 +463,7 @@ mod tests { let pool = TransactionPool::new(Default::default()); pool.submit(vec![uxt(Alice, 209, false)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![(Some(Alice.to_raw_public().into()), 209)]); } @@ -482,7 +474,7 @@ mod tests { pool.submit(vec![uxt(Alice, 209, true)]).unwrap(); pool.submit(vec![uxt(Alice, 210, true)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![(Some(Alice.to_raw_public().into()), 209), (Some(Alice.to_raw_public().into()), 210)]); } @@ -493,7 +485,7 @@ mod tests { pool.submit(vec![uxt(Alice, 209, false)]).unwrap(); pool.submit(vec![uxt(Alice, 210, false)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![(Some(Alice.to_raw_public().into()), 209), (Some(Alice.to_raw_public().into()), 210)]); } @@ -503,7 +495,7 @@ mod tests { let pool = TransactionPool::new(Default::default()); pool.submit(vec![uxt(Alice, 208, true)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![]); } @@ -513,7 +505,7 @@ mod tests { let pool = TransactionPool::new(Default::default()); pool.submit(vec![uxt(Alice, 208, false)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![]); } @@ -521,7 +513,7 @@ mod tests { #[test] fn id_based_late_nonce_should_be_queued() { let pool = TransactionPool::new(Default::default()); - let ready = || Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = || Ready::create(BlockId::number(0), &TestPolkadotApi); pool.submit(vec![uxt(Alice, 210, true)]).unwrap(); let pending: Vec<_> = pool.cull_and_get_pending(ready(), |p| p.map(|a| (a.sender().ok(), a.index())).collect()); @@ -535,7 +527,7 @@ mod tests { #[test] fn index_based_late_nonce_should_be_queued() { let pool = TransactionPool::new(Default::default()); - let ready = || Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = || Ready::create(BlockId::number(0), &TestPolkadotApi); pool.submit(vec![uxt(Alice, 210, false)]).unwrap(); let pending: Vec<_> = pool.cull_and_get_pending(ready(), |p| p.map(|a| (a.sender().ok(), a.index())).collect()); @@ -552,7 +544,7 @@ mod tests { pool.submit(vec![uxt(Alice, 209, false)]).unwrap(); pool.submit(vec![uxt(Alice, 210, true)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![ (Some(Alice.to_raw_public().into()), 209) @@ -565,7 +557,7 @@ mod tests { pool.submit(vec![uxt(Alice, 209, true)]).unwrap(); pool.submit(vec![uxt(Alice, 210, false)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![ (Some(Alice.to_raw_public().into()), 209) @@ -578,7 +570,7 @@ mod tests { pool.submit(vec![uxt(Alice, 209, false)]).unwrap(); pool.submit(vec![uxt(Alice, 210, false)]).unwrap(); - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(0)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(0), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![ (Some(Alice.to_raw_public().into()), 209), @@ -595,7 +587,7 @@ mod tests { // out (or maybe placed in future queue). /* // TODO: uncomment once the new queue design is in. - let ready = Ready::create(TestPolkadotApi.check_id(BlockId::number(1)).unwrap(), &TestPolkadotApi); + let ready = Ready::create(BlockId::number(1), &TestPolkadotApi); let pending: Vec<_> = pool.cull_and_get_pending(ready, |p| p.map(|a| (a.sender().ok(), a.index())).collect()); assert_eq!(pending, vec![]); */ diff --git a/substrate/bft/src/error.rs b/substrate/bft/src/error.rs index c18528a3f1e09..1e3b3a523f502 100644 --- a/substrate/bft/src/error.rs +++ b/substrate/bft/src/error.rs @@ -54,6 +54,12 @@ error_chain! { display("Message sender {:?} is not a valid authority.", a), } + /// Authoring interface does not match the runtime. + InvalidRuntime { + description("Authoring for current runtime is not supported"), + display("Authoring for current runtime is not supported."), + } + /// Justification requirements not met. InvalidJustification { description("Invalid justification"), diff --git a/substrate/client/db/Cargo.toml b/substrate/client/db/Cargo.toml index b299d838a0b33..640c948acd872 100644 --- a/substrate/client/db/Cargo.toml +++ b/substrate/client/db/Cargo.toml @@ -18,6 +18,7 @@ substrate-client = { path = "../../../substrate/client" } substrate-state-machine = { path = "../../../substrate/state-machine" } substrate-runtime-support = { path = "../../../substrate/runtime-support" } substrate-codec = { path = "../../../substrate/codec" } +substrate-executor = { path = "../../../substrate/executor" } [dev-dependencies] kvdb-memorydb = { git = "https://github.com/paritytech/parity.git" } diff --git a/substrate/client/db/src/lib.rs b/substrate/client/db/src/lib.rs index f222df681fc03..843d8a9507d0d 100644 --- a/substrate/client/db/src/lib.rs +++ b/substrate/client/db/src/lib.rs @@ -27,6 +27,7 @@ extern crate substrate_primitives as primitives; extern crate substrate_runtime_support as runtime_support; extern crate substrate_runtime_primitives as runtime_primitives; extern crate substrate_codec as codec; +extern crate substrate_executor as executor; #[macro_use] extern crate log; @@ -49,6 +50,7 @@ use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, Hashing use runtime_primitives::BuildStorage; use state_machine::backend::Backend as StateBackend; use state_machine::CodeExecutor; +use executor::RuntimeInfo; /// DB-backed patricia trie state, transaction type is an overlay of changes to commit. pub type DbState = state_machine::TrieBackend; @@ -71,7 +73,7 @@ pub fn new_client( Block: BlockT, ::Number: As, Block::Hash: Into<[u8; 32]>, // TODO: remove when patricia_trie generic. - E: CodeExecutor, + E: CodeExecutor + RuntimeInfo, S: BuildStorage, { let backend = Arc::new(Backend::new(&settings)?); diff --git a/substrate/client/src/call_executor.rs b/substrate/client/src/call_executor.rs index cd67ec4d97722..8565b3094329d 100644 --- a/substrate/client/src/call_executor.rs +++ b/substrate/client/src/call_executor.rs @@ -19,6 +19,7 @@ use futures::{IntoFuture, Future}; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT}; use state_machine::{self, OverlayedChanges, Backend as StateBackend, CodeExecutor}; +use executor::{RuntimeVersion, RuntimeInfo}; use backend; use blockchain::Backend as ChainBackend; @@ -53,6 +54,9 @@ pub trait CallExecutor { /// /// No changes are made. fn prove_at_state(&self, state: S, overlay: &mut OverlayedChanges, method: &str, call_data: &[u8]) -> Result<(Vec, Vec>), error::Error>; + + /// Get runtime version if supported. + fn native_runtime_version(&self) -> Option; } /// Call executor that executes methods locally, querying all required @@ -88,7 +92,7 @@ impl Clone for LocalCallExecutor where E: Clone { impl CallExecutor for LocalCallExecutor where B: backend::LocalBackend, - E: CodeExecutor, + E: CodeExecutor + RuntimeInfo, Block: BlockT, error::Error: From<<>::State as StateBackend>::Error>, { @@ -121,6 +125,10 @@ impl CallExecutor for LocalCallExecutor .map(|(result, proof, _)| (result, proof)) .map_err(Into::into) } + + fn native_runtime_version(&self) -> Option { + ::NATIVE_VERSION + } } impl RemoteCallExecutor { @@ -160,6 +168,10 @@ impl CallExecutor for RemoteCallExecutor fn prove_at_state(&self, _state: S, _changes: &mut OverlayedChanges, _method: &str, _call_data: &[u8]) -> Result<(Vec, Vec>), error::Error> { Err(error::ErrorKind::NotAvailableOnLightClient.into()) } + + fn native_runtime_version(&self) -> Option { + None + } } /// Check remote execution proof using given backend. diff --git a/substrate/client/src/client.rs b/substrate/client/src/client.rs index 6604b3225dbee..18c55076e578d 100644 --- a/substrate/client/src/client.rs +++ b/substrate/client/src/client.rs @@ -30,12 +30,13 @@ use state_machine::{self, Ext, OverlayedChanges, Backend as StateBackend, CodeEx use backend::{self, BlockImportOperation}; use blockchain::{self, Info as ChainInfo, Backend as ChainBackend}; use call_executor::{CallExecutor, LocalCallExecutor}; +use executor::{RuntimeVersion, RuntimeInfo}; use {error, in_mem, block_builder, runtime_io, bft, genesis}; /// Type that implements `futures::Stream` of block import events. pub type BlockchainEventStream = mpsc::UnboundedReceiver>; -/// Polkadot Client +/// Substrate Client pub struct Client where Block: BlockT { backend: Arc, executor: E, @@ -146,7 +147,7 @@ pub fn new_in_mem( genesis_storage: S ) -> error::Result, LocalCallExecutor, E>, Block>> where - E: CodeExecutor, + E: CodeExecutor + RuntimeInfo, S: BuildStorage, Block: BlockT, { @@ -161,7 +162,7 @@ impl Client where Block: BlockT, error::Error: From<<>::State as StateBackend>::Error>, { - /// Creates new Polkadot Client with given blockchain and code executor. + /// Creates new Substrate Client with given blockchain and code executor. pub fn new( backend: Arc, executor: E, @@ -210,11 +211,18 @@ impl Client where /// Get the set of authorities at a given block. pub fn authorities_at(&self, id: &BlockId) -> error::Result> { - self.executor.call(id, "authorities",&[]) + self.executor.call(id, "authorities", &[]) .and_then(|r| Vec::::decode(&mut &r.return_data[..]) .ok_or(error::ErrorKind::AuthLenInvalid.into())) } + /// Get the set of authorities at a given block. + pub fn runtime_version_at(&self, id: &BlockId) -> error::Result { + self.executor.call(id, "version", &[]) + .and_then(|r| RuntimeVersion::decode(&mut &r.return_data[..]) + .ok_or(error::ErrorKind::VersionInvalid.into())) + } + /// Get call executor reference. pub fn executor(&self) -> &E { &self.executor @@ -439,6 +447,11 @@ impl bft::Authorities for Client error::Error: From<::Error>, { fn authorities(&self, at: &BlockId) -> Result, bft::Error> { + let version: Result<_, bft::Error> = self.runtime_version_at(at).map_err(|_| bft::ErrorKind::InvalidRuntime.into()); + let version = version?; + if !self.executor.native_runtime_version().map_or(true, |v| v.can_author_with(&version)) { + return Err(bft::ErrorKind::InvalidRuntime.into()) + } self.authorities_at(at).map_err(|_| { let descriptor = format!("{:?}", at); bft::ErrorKind::StateUnavailable(descriptor).into() diff --git a/substrate/client/src/error.rs b/substrate/client/src/error.rs index 7db181deae670..0a903be75c863 100644 --- a/substrate/client/src/error.rs +++ b/substrate/client/src/error.rs @@ -70,6 +70,12 @@ error_chain! { display("Current state of blockchain has invalid authority count value"), } + /// Invalid state data. + VersionInvalid { + description("Runtime version error"), + display("On-chain runtime does not specify version"), + } + /// Invalid state data. AuthInvalid(i: u32) { description("authority value state error"), diff --git a/substrate/client/src/genesis.rs b/substrate/client/src/genesis.rs index b742ced5fa1de..3fe5a7b6d558d 100644 --- a/substrate/client/src/genesis.rs +++ b/substrate/client/src/genesis.rs @@ -52,7 +52,7 @@ mod tests { use test_client::runtime::{Hash, Transfer, Block, BlockNumber, Header, Digest, Extrinsic}; use ed25519::{Public, Pair}; - native_executor_instance!(Executor, test_client::runtime::api::dispatch, include_bytes!("../../test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm")); + native_executor_instance!(Executor, test_client::runtime::api::dispatch, test_client::runtime::VERSION, include_bytes!("../../test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm")); fn construct_block(backend: &InMemory, number: BlockNumber, parent_hash: Hash, state_root: Hash, txs: Vec) -> (Vec, Hash) { use triehash::ordered_trie_root; diff --git a/substrate/client/src/lib.rs b/substrate/client/src/lib.rs index 1e69b2faa869b..04731ff7e258e 100644 --- a/substrate/client/src/lib.rs +++ b/substrate/client/src/lib.rs @@ -36,7 +36,7 @@ extern crate triehash; #[macro_use] extern crate error_chain; #[macro_use] extern crate log; -#[cfg(test)] #[macro_use] extern crate substrate_executor as executor; +#[cfg_attr(test, macro_use)] extern crate substrate_executor as executor; #[cfg(test)] #[macro_use] extern crate hex_literal; pub mod error; diff --git a/substrate/codec/src/lib.rs b/substrate/codec/src/lib.rs index b0ed6dc328dca..d38e3f6f723d8 100644 --- a/substrate/codec/src/lib.rs +++ b/substrate/codec/src/lib.rs @@ -38,6 +38,6 @@ mod slicable; mod joiner; mod keyedvec; -pub use self::slicable::{Input, Slicable}; +pub use self::slicable::{Input, Slicable, encode_slice}; pub use self::joiner::Joiner; pub use self::keyedvec::KeyedVec; diff --git a/substrate/codec/src/slicable.rs b/substrate/codec/src/slicable.rs index 8d66b896faf6d..ec8c2a0934387 100644 --- a/substrate/codec/src/slicable.rs +++ b/substrate/codec/src/slicable.rs @@ -61,6 +61,17 @@ pub trait Slicable: Sized { fn using_encoded R>(&self, f: F) -> R { f(&self.encode()) } + +} + +/// Encode a bytes slice as `Slicable` that can be decoded into a vector. +pub fn encode_slice(bytes: &[u8]) -> Vec { + let len = bytes.len(); + assert!(len <= u32::max_value() as usize, "Attempted to serialize a collection with too many elements."); + + let mut r: Vec = Vec::new().and(&(len as u32)); + r.extend_from_slice(bytes); + r } impl Slicable for Result { @@ -182,12 +193,7 @@ impl Slicable for Vec { } fn encode(&self) -> Vec { - let len = self.len(); - assert!(len <= u32::max_value() as usize, "Attempted to serialize vec with too many elements."); - - let mut r: Vec = Vec::new().and(&(len as u32)); - r.extend_from_slice(self); - r + encode_slice(&self) } } diff --git a/substrate/executor/Cargo.toml b/substrate/executor/Cargo.toml index 47ad4ee1697c0..1930540124083 100644 --- a/substrate/executor/Cargo.toml +++ b/substrate/executor/Cargo.toml @@ -10,6 +10,7 @@ substrate-runtime-io = { path = "../runtime-io" } substrate-primitives = { path = "../primitives" } substrate-serializer = { path = "../serializer" } substrate-state-machine = { path = "../state-machine" } +substrate-runtime-version = { path = "../runtime/version" } ed25519 = { path = "../ed25519" } serde = "1.0" serde_derive = "1.0" diff --git a/substrate/executor/src/error.rs b/substrate/executor/src/error.rs index 639d23c075e35..66036c0eb62be 100644 --- a/substrate/executor/src/error.rs +++ b/substrate/executor/src/error.rs @@ -63,6 +63,12 @@ error_chain! { display("Runtime error"), } + /// Runtime interface does not match native. + RuntimeVersionMismatch { + description("runtime version does not match native"), + display("Runtime version does not match native."), + } + /// Runtime failed. InvalidMemoryReference { description("invalid memory reference"), diff --git a/substrate/executor/src/lib.rs b/substrate/executor/src/lib.rs index 6c79977c5efd6..2983cf9f54e33 100644 --- a/substrate/executor/src/lib.rs +++ b/substrate/executor/src/lib.rs @@ -26,12 +26,14 @@ //! I leave it as is for now as it might be removed before this is ever done. #![warn(missing_docs)] +#![recursion_limit="128"] extern crate substrate_codec as codec; extern crate substrate_runtime_io as runtime_io; extern crate substrate_primitives as primitives; extern crate substrate_serializer as serializer; extern crate substrate_state_machine as state_machine; +extern crate substrate_runtime_version as runtime_version; extern crate ed25519; extern crate serde; @@ -61,3 +63,11 @@ pub mod error; pub use wasm_executor::WasmExecutor; pub use native_executor::{with_native_environment, NativeExecutor, NativeExecutionDispatch}; pub use state_machine::Externalities; +pub use runtime_version::RuntimeVersion; +pub use codec::Slicable; + +/// Provides runtime information. +pub trait RuntimeInfo { + /// Native runtime information if any. + const NATIVE_VERSION: Option; +} diff --git a/substrate/executor/src/native_executor.rs b/substrate/executor/src/native_executor.rs index a759c046c662b..d34d8469cb4d5 100644 --- a/substrate/executor/src/native_executor.rs +++ b/substrate/executor/src/native_executor.rs @@ -17,6 +17,9 @@ use error::{Error, ErrorKind, Result}; use state_machine::{CodeExecutor, Externalities}; use wasm_executor::WasmExecutor; +use runtime_version::RuntimeVersion; +use codec::Slicable; +use RuntimeInfo; fn safe_call(f: F) -> Result where F: ::std::panic::UnwindSafe + FnOnce() -> U @@ -41,22 +44,40 @@ pub trait NativeExecutionDispatch { /// Dispatch a method and input data to be executed natively. Returns `Some` result or `None` /// if the `method` is unknown. Panics if there's an unrecoverable error. fn dispatch(ext: &mut Externalities, method: &str, data: &[u8]) -> Result>; + + /// Get native runtime version. + const VERSION: RuntimeVersion; } /// A generic `CodeExecutor` implementation that uses a delegate to determine wasm code equivalence /// and dispatch to native code when possible, falling back on `WasmExecutor` when not. -#[derive(Debug, Default)] +#[derive(Debug)] pub struct NativeExecutor { /// Dummy field to avoid the compiler complaining about us not using `D`. - pub _dummy: ::std::marker::PhantomData, + _dummy: ::std::marker::PhantomData, +} + +impl NativeExecutor { + /// Create new instance. + pub fn new() -> Self { + NativeExecutor { + _dummy: Default::default(), + } + } } impl Clone for NativeExecutor { fn clone(&self) -> Self { - NativeExecutor { _dummy: Default::default() } + NativeExecutor { + _dummy: Default::default(), + } } } +impl RuntimeInfo for NativeExecutor { + const NATIVE_VERSION: Option = Some(D::VERSION); +} + impl CodeExecutor for NativeExecutor { type Error = Error; @@ -71,6 +92,12 @@ impl CodeExecutor for NativeExecutor CodeExecutor for NativeExecutor { + (pub $name:ident, $dispatcher:path, $version:path, $code:expr) => { pub struct $name; - native_executor_instance!(IMPL $name, $dispatcher, $code); + native_executor_instance!(IMPL $name, $dispatcher, $version, $code); }; - ($name:ident, $dispatcher:path, $code:expr) => { + ($name:ident, $dispatcher:path, $version:path, $code:expr) => { /// A unit struct which implements `NativeExecutionDispatch` feeding in the hard-coded runtime. struct $name; - native_executor_instance!(IMPL $name, $dispatcher, $code); + native_executor_instance!(IMPL $name, $dispatcher, $version, $code); }; - (IMPL $name:ident, $dispatcher:path, $code:expr) => { + (IMPL $name:ident, $dispatcher:path, $version:path, $code:expr) => { impl $crate::NativeExecutionDispatch for $name { + const VERSION: $crate::RuntimeVersion = $version; fn native_equivalent() -> &'static [u8] { // WARNING!!! This assumes that the runtime was built *before* the main project. Until we // get a proper build script, this must be strictly adhered to or things will go wrong. @@ -104,9 +132,8 @@ macro_rules! native_executor_instance { impl $name { pub fn new() -> $crate::NativeExecutor<$name> { - $crate::NativeExecutor { _dummy: Default::default() } + $crate::NativeExecutor::new() } } } - } diff --git a/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm b/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm index d22a0299c3991c3cfa6adbb685e863a27280c2c7..d9966b36fecdd1fd7016d63182674c5424e76735 100644 GIT binary patch delta 2385 zcmZuyX>43q6~6Z^;~CGqnKzr4@pflC9+Lc@sDJ(TM7oZziFyoJxsaa-`AI|`q@ zaA;D*Y_R%RJa~L_He3$^#9nyX#>|CVMLrR2&;xpDKVqV3I%D($d1ST%6|{2K+@N`;nk~du+~wsp54Ca4c-!eT^WRLZuiX0jv7sMemVqoWonr^- z6!$0=>5JUpKo%v%97?t#f(Ryz$R*>*xt$hED49ggxwumi8AOk8fA{O-F!;D*Tkd5T0kay zc&3?_2;uSwBrUW|;_aQIEr&2>=;io0$T#CZ#mvsriMLr;%nN&AaZz|R+J7+92{O!- z0eUKP6yt6Bp7(GTZn>U z2!e<}u_lv(s0;LXVG=(>Un=a$y_gYuQ8I-NZvX3_7k~5NvwvEne=W@5Yg8|4_zk*P z)S>X(#buB}+Yykjv~|%;dy0Owt=wEq-^IRA`+#A2=rOa^j~r>K!c`IBoNuQcRvdsy z$6~X?19YP6ZE#9;fALN?>G|$*!~qAF*(8)TqJcn`C=dbYh<+!hG#s_^&PQ9+`( z^S$;ij5GAzjwgY^k8~28r>8q7Kz_G#2^VRlGzE7YFZGq8-VHGiM6FMWQ3oAqktBdO zdHOYWDUeBV9f zVKNNJIdT|menvh6HrevafLt%Xfp5|$DiYvVD~AC8cg4s)pEj5w$mJWLCD7lZPX9cV z=B55Qkge5mkoD>;$V=5hkUy?o1^<%+8~qS#RJ136w)ct_G47L6IomW@8v|>rX2NYJ zYJ1yWNjov%L>1mqe9^g*c9IS!R_V1`h&yQ4pjj5nA~Q+&A;yooCPZE1o%a#6%}Fg* zvSJ6_7@W{a347TcK8zT?$k&P=Fg9mA+sAJ z4+G=cM|)vzj1B`nH~Q-)w>#`jYFP9^Y8^#@A17Y|{TIb!w=; zz_)2a8xyu;=VcYKiPkZz4r-MFcPUq~vv%H2KYQAiEnx%El&|3zf#OSU|4b{{v zMfF0-wrr_1?5(W__4)~Sb-{~L+MU+x$1UB|b=UU|&ovtjMWTI{)+K9!ugjqwm1QY897JU4zT(OaIrJo5*Y2le bqD)_%$cert>4q7azHV7cBW%!LO^p2?I$##_ delta 2492 zcmZuyYiwLc6`r{d?|QGVcXqw&*j~q;U9au6<2d)R_hmb(Z(7%m0tzaGM^$0py$|De zuoI^Q$flyD{3y^cQR+l#M0f6HbJxMq|T-{8DkDr*0*2549=bm#gf9|b3PMv$FcY=?1TjSl@vbPj!vzlQd z92;9=A#C9kJB=TGK;VZekS&j}Aaa5zBoYZxKuJ+-PGL!s5RCXI zr&5w6i1;{8CPf~jOj9#l%6*Boapg?DX~kP!Uh~l&p^<3^o8kVIEB6*tKYz3$B0`Xq zMDCqd(!~aaO`K&{guxy#k~Soz5JePIjtFp=dp7Bo2#1iwKFEJr$ac{tc2($>1(QQk zT8aaaw(U2BXK)={o4^$;4TYs^7z=fZ-Q;40Lq*ONiaa;TO}YX>C1FZNRG^%R;H-FC zjJGHkn*q64;wg7n<|*$c<8h==;$1Wo8^9S)$sA-Tz)oWvE|6@OO$CBmutbF-2n;c( z2$z725#>!zh%W_6gNoyuToST}lnG%Z;o`0BM-tN*^XyXc0LV9zzrg(V`Q|rySOoGY zESUTQT;LHT*uqH?9##`)d@(y^umQg_dJ+l@^$$k;! zpR>OP`NOt;khj}PAo<*b&1chbf}Fd>j^^?>&%)d!ewJO!?QgrBCOt@!(V?qP{_@)O zKeF#UQD=Y19l_U`ny=!UEXo_uz03J!kj?EM0eQE5kUiC2Y|IMmC++(ivuD_3XDPoW zQ(P#CadqNxxKKhQyM3y&fN_qot|x(k9R-Rr%qdKO+$=2NcJ{l%6ojaB_jW-og$nmj z+@lr}SK3t;X*0Au!@TZ(06pFPkec3MQOt~YIbMVZ#MS$dt1Oj-GPKmzOm;`@LlitY<-u3M=-9(WN_;rkkS9}0$R_@IPRK@i+tRJn5Nkxj+^@47Vq>I za=90i5Y8t{C9aIzi?S;b&i$6`iWIqxdQeP6_XXKakQ4`JA|MI8qL#f~ZM)!Y*#+J; zV6QM|Z=ar_T-PrrB@zjzYncJybYP;88x%I|C#-*)tEuyS*N6+qHbD_rB#3Is}-{ z(Zhgwojwd0x%eVjZWMotUuB;!DPaFzX&UVBmdwnBR+Fp1^)7){KtIn8_RT}tzuh+n zvZ;Ikq*%4Uo-_Kqeh;S#{Gibp9M+bXhzBV|U%@)&?5KPmwX_01W8_BZU zgQad@n^@rj8N+*{xhc7s=I#S}D!+jkf2*AD$QD~^61?SNg0_~Dv}F+jHA9RmL!AJ* zG1Lq4*3czj_{Q)6%r6ZWA=jJ3AEoW_0dwFlx_42`WYN8i7I*%yN;0ro+cyLbkL|l9 z#>`AJXJi)iY3KnA${%ZRl`!C>@T^6}FT3wE%28MPj(F=%Y;U6U?A8nBDJvF<< zIu#R;A5tb{KuSMK0`1Nwr90afm5+1Dd2jQ;gKO*I*Yq(quD^xvFu6J+Z#AL+{_e4d ztK;<V2=kuzv6sOnzyRR#!s^n(>O9X~ zPok?tSoKyye34iv6@SQfJ}o%@4!&&gm|eFH5-+TUQ7y0|)ejZLBy8I3&xV1cSel|6 zz7YhW6=lZQcP%=)9&Uu|o8j2lr!+nC4J8WfP%+fdHnUAD;fjC!Gi}NBlN%>y*Va~Y z|L@{!RYMC*Cp1k*3lt@vX+Ue?{KD$&$<GYE20O)ejHaqIjG&pL8ttwSTwFA4x&Nvm~ zc#fxOo?%s^NQtZ}d&Lj*)D!c5HV+BUW z+cSz|_*GL6BS*J=)2#Kg$HtCkEYt9Vn&(4Ptw;&%0d{k2kT|;PDK^|sscMmBSj-&% zSURXxRmBSx-%~tGQ`zP57t?y6dq$w>P}mx@iXEF!!8ufQ!;T!q)cl%fvI`Rii7ZPE RL&tP1Bd`o#V{cE4{2PgkBBB5Q diff --git a/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm b/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm index d297f18e71a59cb2a2dc6e5895bc3b8d6d84b782..8c96970bfdcbad8cb7e121cb32138904367e0a37 100755 GIT binary patch delta 2549 zcmZuydu&@*89(Rx-q?;~`zE&Yu#@=Mc{qvFS5v!?hqlk@H`%@8X!Po!M4`6>sG@Y8etchLy%fux#8G=9k>KHDzhpcP69FH`v6v9SsIx5& zHE=GSyMz+apK`f2NUpJVnnP^h9Y2jSoon~4LwLc_#nt)yR!=Uj`lzS12qox?0&1l( z0J-OxjpbZuTXC0{8y@QCTg4loPjernCr2vn?;NRK#1Rfkj_E6r3Vn+I6wZ7}sElM$ zLd>B=J0gf+!ijt$hMXHIk)T8ZIrqn$vdAI&{m2H+&|Q2*XyKca!lM}H=!G_U^P3p+ zn*@(>u@c7=Dn%T=gt@)kUWXS^nXe@g;Ry$|Wj4aGIp^?8WjO9|GD5HuW8a;HGIr1* zW`JEnEy)o9_F<>>9WIEOJmE#$ffIx;2?-*A3lbp{99w|c4UPvT7#z!l`8T*&x|N#< zF$+k{(sNMkcV`S>)*JK{gXTr=B#B?6Ool2b6rq+Y@W4nde5Tp|HSurQ)d z#}edL#+@AfLmJX+3gX8w-lCuEd>3}^?~*{C=xQ)8T@QjhmU$iIOm+n1LbeR@bJ_jz zhte!e&e@_@vN_yCuV?q-$LVNpSJ%^NaTp~!(7vs|zW3PMfBWk71`Ts};uq-)ISpT? z@8)!9z(Dsh$Va+A3i95b3T^8twMGTHzh_r#^eCl;T<0?>Cn8n}@ANLUnp&k73RhtL z;r`ETH;~2$O04Y;E=5?1&-l1ywQ7tzz&hO_vW7X*5{VNecGJPa2!IY04miba z=CSVlnQ>?cIpVQ0H;kO8l1@V8obM(bfgq<93y>n_JfC!;A_wI|&}HXk`o)2KW(WJj zq!VFz0P0nGabQU8CLHS*6dRaX7M9A$L1XB(B+w9i@=FeyM!!hTwq|WG+l78f#X%|m z$26lps|}C#Va6K?u`BU_NRJFoL9P!E68>wVNa&^FA?W}6gGa%5FLB{IY+K^wmgP+{ z4w!$C!+<$hx*afQOWy&DUA~N8qaTzduul&i1pCP$qx0)2gByeNz5!YS{Vn?H&{3$? z=jaf6As(cUS4=qISCt}+Z&c>HGNm*TMNHD9ZHaV| z46wx=EB8aAg)z=gVz??KTT8}C_7>pDu{XiT`uLZ7Go=)X!R}-!N>b$*=~x0saqv-` z=mUs7Q3QGS#1lZS_a;VRT&R{H*4@>QlU{bf0_+!@8;FreaIT^yh?sRZ3504^$6>?o zt8cZKU8EN$C-5uH>yu}(zzF`E=BcU2aK{dboJ%Q(qhA;u->yUv5a%$Cu$qw;_x`J9 zSLqXy0mxrVb4frZei8%P-5*QbXy)ZlaA|k#nCqXOUSIR3+5a^Cv^qnZ>Kph5eNdZB zZndF*|8CMBX|uJvU_Oiyii3U~R;!?Ig6;%;H`sHa+oSM-&hF?Ej0gYIPH)o-9WTbv zwG6-Nt_1k)W~k3%`m(t%FRQ-d+j3~yp<*ezRLkrxh} z#ahoxqp{M>_Kzr`8cKocDr#M+*Hxv~^S|#;FD+VYwjo=#V(GH!+qP%>VXbfHRmyKa zN*e*ZM6D;Of9FLSXgx@S^yikFwFA%c>UOC4vf*i#Rx6&x^nz*7w~Xm=sjixurKnyg z*_JKUrk0mCR;F}I*A!LKWX)DoQ!y;bpmX+sXz8Y|yS{IDu34`u5?!x*Xbp zsem^npg*>67eh}8HN|r4vMp(9-J?A-A4$uG6$G{y)Ky9LZI7Os84^9q4P{-mq(E{* z#n`K_J(v^mlW6yL>ZrT|?7CmYVF^wMk0m4AC=u!t=q%k= hT)8fXo}}yaxjnO@uSvRLhNiDumQoMv^yZ#j{{#R6Rtf+B delta 2612 zcmZuydu$v>8K2qR^PO++vG)1=IzRT#Z=db#P>QSto(sg(NZE+_TKHT>&N+m z?YOO=K39ZRs@f{mgkTCtttdf3QAjw5Dkut4AE+W=A^s^60tyI%gn$4-qT=<<+G&O8 zO7nd)-~8sA?=}0qv2%H64mq0@j1a=h!XiS8Y^_#9i@1hs!4w#VH4_MTf=M94JBu73 zYxg*MVQyAnSZ{qh;yt#t;BR;y;$HZib(*EJD3w*bO1W|t1p@w1P^oTv2agT! zkfab;Eo^R8H=HF8MM(ztP6x*mbg#7Lta{3VqUi|JOJY>G^=S364-?6Xi7?s529Aqo#&Nh>m^z z!uJp#ev?TzfM3;(#~DN?<+G2YbkoMUO)$?}T3%l`xBlqzx{KO_P4K=m45&)A8{E!N z8Fja-q2jEqRm-TG3*y#8USa;-IXW;Dy>liXLP84h5oF&<2qNNN#+V^D*dcPAo5yML z9yinj+d?biqew&|78!v9+wI+mof8;@cyfh(j!Son4dh>3SDe!s#3y;GQfRFYhMvW^ zmDC&L+GUKnnuzVl$}oenjLl_PW|oI_Fc0ZV~V z{W=o?lfgwHMV<@Wc(1-6p2L_WZH-5O&NaS`*?LoSpM}M{@d;Q6iErTyi@?Ab!}B5w z+Bq?7$Eb5T+{BV!CbIxzgaPJA0mI0s-x8#8C zwjA%>O;Q6HdoNBcWJCn!0b>m&1}?OdU$xBQ3#2bSp88@^=tq1U9eerw4=!K*E&1w` zHBw5S##hO;bOFCcex24Jg&nPHK%Z*;D9}pV5MkP~!7M}WYa0({&yw$UwoLWVBAK8%y}s6&t^p2LT+ZJf&MkKiaW?cR}oZvrK`7-27Q=0L30)p zXy|QeMQjw2&_aIRH2@&4`-I$lP)f8s{?4!=c->5`582Xcj_ZdKuwP2ptS|U7LomG!e+?RgChsN^#bAo{4Zz}#Gv;6CkpS7OOg)AA4=14K=R*-K-uj^_&fDh z`5`8<6Y3;+RsAu(L!K#&#rGP}``=yidSR+|3fBG5NgIK`1-sB+&|Tn7 zz&{T1G;k)2P!xFVkY{1u^C9wnkZ~{oxVF5$y1c%`GFKz$`zdbSsd)HSY6cxN%%E{# z+H>nqXu}wvBezYj$?-~_Uvf=fE_;%s7gGcq!zs_TBtwx@t*p7OXZXdI`vI+!PZ_a( z)h}z3@0y;Z$)2efgSH0UtThrevud@{b^!jF&JUE8f~L5-<>|VmxRO+C|NoZPL9QAb zmg^b?NAn8~U|pl66*~_bVdkI@ZhO%Df-cy7*aUlm9@tAhW;#uZTvBCObqlUsD!XQ( zNX}T@f>F@rlH|H_+4ajR*#ES3N{~vDY$>IJQ8FD%Rt@qC>!cv7s^T~%fK^MfJdbFT z_a{|PcNEXGe8-Vh-zAqO`vg;L zCi{|bP|-|TDoC>Fnk6Dn%?OrbIf~+FM#1+b-zbossnKR#HgwknodwG`O}$hcfv7BJ zT(4YpJ=u7~RVBlcTv>L@Wy>x3#Zkh}=*^O)l?%G+`Ic&ybvTwMN2i@;L)Xe~$tgop z4PSE2;uyIxJu6tM>_{d!Disvp&RlRUOThR0w7X zvSt*m6XYXD2gtRf2~gt6s%H9@q$}l;qm$c5rv%?HWY4p7%g|gyD=Vb!zVZJ8Xw_MW diff --git a/substrate/runtime/version/Cargo.toml b/substrate/runtime/version/Cargo.toml new file mode 100644 index 0000000000000..febbe10d31070 --- /dev/null +++ b/substrate/runtime/version/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "substrate-runtime-version" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +serde = { version = "1.0", default_features = false } +serde_derive = { version = "1.0", optional = true } +substrate-codec = { path = "../../codec", default_features = false } +substrate-runtime-std = { path = "../../runtime-std", default_features = false } +substrate-runtime-support = { path = "../../runtime-support", default_features = false } + +[features] +default = ["std"] +std = [ + "serde/std", + "serde_derive", + "substrate-codec/std", + "substrate-runtime-std/std", + "substrate-runtime-support/std", +] diff --git a/substrate/runtime/version/src/lib.rs b/substrate/runtime/version/src/lib.rs new file mode 100644 index 0000000000000..3dd48d449e177 --- /dev/null +++ b/substrate/runtime/version/src/lib.rs @@ -0,0 +1,125 @@ +// Copyright 2017 Parity Technologies (UK) Ltd. +// This file is part of Substrate Demo. + +// Substrate Demo is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate Demo is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate Demo. If not, see . + +//! Version module for runtime; Provide a function that returns runtime verion. + +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(feature = "std")] +extern crate serde; + +#[cfg(feature = "std")] +#[macro_use] +extern crate serde_derive; + +#[allow(unused_imports)] +#[macro_use] +extern crate substrate_runtime_std as rstd; + +#[macro_use] +extern crate substrate_runtime_support as runtime_support; + +extern crate substrate_codec as codec; + +use rstd::prelude::*; +use codec::Slicable; +#[cfg(feature = "std")] +use std::borrow::Cow; + +#[cfg(feature = "std")] +pub type MaybeCowString = ::std::borrow::Cow<'static, str>; +#[cfg(not(feature = "std"))] +pub type MaybeCowString = &'static str; + +#[cfg(feature = "std")] +#[macro_export] +macro_rules! ver_str { + ( $y:expr ) => {{ ::std::borrow::Cow::Borrowed($y) }} +} + +#[cfg(not(feature = "std"))] +#[macro_export] +macro_rules! ver_str { + ( $y:expr ) => {{ $y }} +} + +#[derive(Clone)] +#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] +pub struct RuntimeVersion { + pub spec_name: MaybeCowString, + pub impl_name: MaybeCowString, + pub authoring_version: u32, + pub spec_version: u32, + pub impl_version: u32, +} + +#[cfg(feature = "std")] +impl RuntimeVersion { + /// Check if this version matches other version for calling into runtime. + pub fn can_call_with(&self, other: &RuntimeVersion) -> bool { + self.spec_version == other.spec_version && + self.spec_name == other.spec_name + } + + /// Check if this version matches other version for authoring blocks. + pub fn can_author_with(&self, other: &RuntimeVersion) -> bool { + self.can_call_with(other) && + self.authoring_version == other.authoring_version + } +} + +impl Slicable for RuntimeVersion { + fn encode(&self) -> Vec { + let mut v = Vec::new(); + v.extend(codec::encode_slice(self.spec_name.as_bytes())); + v.extend(codec::encode_slice(self.impl_name.as_bytes())); + self.authoring_version.using_encoded(|s| v.extend(s)); + self.spec_version.using_encoded(|s| v.extend(s)); + self.impl_version.using_encoded(|s| v.extend(s)); + v + } + + #[cfg(not(feature = "std"))] + fn decode(_value: &mut I) -> Option { + unreachable!() + } + + #[cfg(feature = "std")] + fn decode(value: &mut I) -> Option { + Some(RuntimeVersion { + spec_name: Cow::Owned(String::from_utf8(Slicable::decode(value)?).expect("Invalid utf-8 version string")), + impl_name: Cow::Owned(String::from_utf8(Slicable::decode(value)?).expect("Invalid utf-8 version string")), + authoring_version: Slicable::decode(value)?, + spec_version: Slicable::decode(value)?, + impl_version: Slicable::decode(value)?, + }) + } +} + +pub trait Trait { + const VERSION: RuntimeVersion; +} + +decl_module! { + pub struct Module; +} + +impl Module { + /// Get runtime verions + pub fn version() -> RuntimeVersion { + T::VERSION.clone() + } +} diff --git a/substrate/test-client/src/lib.rs b/substrate/test-client/src/lib.rs index 1500e603a07fe..fed17e46cda72 100644 --- a/substrate/test-client/src/lib.rs +++ b/substrate/test-client/src/lib.rs @@ -37,7 +37,7 @@ mod native_executor { #![allow(missing_docs)] use super::runtime; - native_executor_instance!(pub NativeExecutor, runtime::api::dispatch, include_bytes!("../../test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm")); + native_executor_instance!(pub NativeExecutor, runtime::api::dispatch, runtime::VERSION, include_bytes!("../../test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm")); } /// Native executor used for tests. diff --git a/substrate/test-runtime/Cargo.toml b/substrate/test-runtime/Cargo.toml index bd0654e2ef945..f955d0eab3bee 100644 --- a/substrate/test-runtime/Cargo.toml +++ b/substrate/test-runtime/Cargo.toml @@ -16,6 +16,7 @@ substrate-runtime-io = { path = "../runtime-io", default-features = false } substrate-runtime-support = { path = "../runtime-support", default-features = false } substrate-primitives = { path = "../primitives", default-features = false } substrate-runtime-primitives = { path = "../runtime/primitives", default-features = false } +substrate-runtime-version = { path = "../runtime/version", default-features = false } [features] default = ["std"] @@ -31,5 +32,6 @@ std = [ "substrate-runtime-io/std", "substrate-runtime-support/std", "substrate-primitives/std", - "substrate-runtime-primitives/std" + "substrate-runtime-primitives/std", + "substrate-runtime-version/std" ] diff --git a/substrate/test-runtime/src/lib.rs b/substrate/test-runtime/src/lib.rs index 8454a8c7bd60c..1b07035e966e8 100644 --- a/substrate/test-runtime/src/lib.rs +++ b/substrate/test-runtime/src/lib.rs @@ -43,6 +43,8 @@ extern crate substrate_keyring as keyring; extern crate substrate_primitives as primitives; #[macro_use] extern crate substrate_runtime_io as runtime_io; +#[macro_use] +extern crate substrate_runtime_version as runtime_version; #[cfg(feature = "std")] pub mod genesismap; @@ -53,8 +55,22 @@ use codec::Slicable; use runtime_primitives::traits::{BlindCheckable, BlakeTwo256}; use runtime_primitives::Ed25519Signature; +use runtime_version::RuntimeVersion; pub use primitives::hash::H256; +/// Test runtime version. +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: ver_str!("test"), + impl_name: ver_str!("parity-test"), + authoring_version: 1, + spec_version: 1, + impl_version: 1, +}; + +fn version() -> RuntimeVersion { + VERSION +} + /// Calls in transactions. #[derive(Clone, PartialEq, Eq)] #[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] @@ -146,8 +162,8 @@ pub fn run_tests(mut input: &[u8]) -> Vec { pub mod api { use system; - impl_stubs!( + version => |()| super::version(), authorities => |()| system::authorities(), initialise_block => |header| system::initialise_block(header), execute_block => |block| system::execute_block(block), diff --git a/substrate/test-runtime/wasm/Cargo.lock b/substrate/test-runtime/wasm/Cargo.lock index c795055b8e86e..ef086b2d98c4c 100644 --- a/substrate/test-runtime/wasm/Cargo.lock +++ b/substrate/test-runtime/wasm/Cargo.lock @@ -1,3 +1,16 @@ +[[package]] +name = "aho-corasick" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "ansi_term" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "arrayvec" version = "0.4.7" @@ -6,6 +19,16 @@ dependencies = [ "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "atty" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "base58" version = "0.1.0" @@ -101,10 +124,24 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "env_logger" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "environmental" version = "0.1.0" +[[package]] +name = "error-chain" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "ethbloom" version = "0.5.0" @@ -117,6 +154,27 @@ dependencies = [ "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ethcore-bytes" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" + +[[package]] +name = "ethcore-logger" +version = "1.12.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ethereum-types" version = "0.3.2" @@ -178,6 +236,15 @@ name = "gcc" version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "hashdb" +version = "0.1.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "heapsize" version = "0.4.2" @@ -218,6 +285,25 @@ dependencies = [ "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "keccak-hash" +version = "0.1.2" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "kvdb" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "lazy_static" version = "0.2.11" @@ -249,6 +335,14 @@ dependencies = [ "cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "memchr" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "memoffset" version = "0.2.1" @@ -259,6 +353,20 @@ name = "memory_units" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "memorydb" +version = "0.1.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "plain_hasher 0.1.0 (git+https://github.com/paritytech/parity.git)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "nodrop" version = "0.1.12" @@ -295,6 +403,15 @@ dependencies = [ "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot" version = "0.5.5" @@ -315,6 +432,33 @@ dependencies = [ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "patricia-trie" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)", + "ethcore-logger 1.12.0 (git+https://github.com/paritytech/parity.git)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", + "triehash 0.1.0 (git+https://github.com/paritytech/parity.git)", +] + +[[package]] +name = "plain_hasher" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.0" @@ -396,6 +540,39 @@ dependencies = [ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "redox_syscall" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "redox_termios" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex-syntax" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ring" version = "0.12.1" @@ -408,6 +585,17 @@ dependencies = [ "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rlp" +version = "0.2.1" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rlp" version = "0.2.2" @@ -557,12 +745,30 @@ dependencies = [ "substrate-runtime-std 0.1.0", ] +[[package]] +name = "substrate-runtime-version" +version = "0.1.0" +dependencies = [ + "serde 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.64 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", +] + [[package]] name = "substrate-state-machine" version = "0.1.0" dependencies = [ "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity.git)", + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)", + "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)", "substrate-primitives 0.1.0", "triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -580,6 +786,7 @@ dependencies = [ "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-version 0.1.0", ] [[package]] @@ -592,6 +799,35 @@ dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "termion" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "thread_local" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "time" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "tiny-keccak" version = "1.4.2" @@ -600,6 +836,17 @@ dependencies = [ "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "triehash" +version = "0.1.0" +source = "git+https://github.com/paritytech/parity.git#dec390a89fe038337399315daf15e628ffbb4d8e" +dependencies = [ + "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)", + "rlp 0.2.1 (git+https://github.com/paritytech/parity.git)", +] + [[package]] name = "triehash" version = "0.1.2" @@ -619,6 +866,11 @@ dependencies = [ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ucd-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "uint" version = "0.1.2" @@ -645,11 +897,29 @@ name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "untrusted" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "utf8-ranges" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "wasmi" version = "0.1.3" @@ -680,7 +950,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] +"checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4" +"checksum ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6b3568b48b7cefa6b8ce125f9bb4989e52fbcc29ebea88df04cc7c5f12f70455" "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" +"checksum atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2fc4a1aa4c24c0718a250f0681885c1af91419d242f29eb8f2ab28502d80dbd1" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" @@ -693,7 +966,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88d4851b005ef16de812ea9acdb7bece2f0a40dd86c07b85631d7dafa54537bb" +"checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" +"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3" "checksum ethbloom 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a93a43ce2e9f09071449da36bfa7a1b20b950ee344b6904ff23de493b03b386" +"checksum ethcore-bytes 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" +"checksum ethcore-logger 1.12.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c48729b8aea8aedb12cf4cb2e5cef439fdfe2dda4a89e47eeebd15778ef53b6" "checksum ethereum-types-serialize 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ac59a21a9ce98e188f3dace9eb67a6c4a3c67ec7fbc7218cb827852679dc002" "checksum fixed-hash 0.1.3 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)" = "" @@ -701,25 +978,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)" = "5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb" +"checksum hashdb 0.1.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" "checksum hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4da5f0e01bd8a71a224a4eedecaacfcabda388dbb7a80faf04d3514287572d95" "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)" = "" "checksum keccak-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b7f51f30d7986536accaec4a6a288008dfb3dbffe8a2863a65292bc395a3ae7" +"checksum keccak-hash 0.1.2 (git+https://github.com/paritytech/parity.git)" = "" +"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum libc 0.2.41 (registry+https://github.com/rust-lang/crates.io-index)" = "ac8ebf8343a981e2fa97042b14768f02ed3e1d602eac06cae6166df3c8ced206" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2" +"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" +"checksum memorydb 0.1.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" "checksum num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775393e285254d2f5004596d69bb8bc1149754570dcc08cf30cabeba67955e28" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum parity-wasm 0.27.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bd4dc02a80a0315b109e48992c46942c79bcdb8fac416dd575d330ed9ced6cbd" +"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum patricia-trie 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" +"checksum plain_hasher 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum proc-macro-hack 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ba8d4f9257b85eb6cdf13f055cea3190520aab1409ca2ab43493ea4820c25f0" "checksum proc-macro-hack-impl 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5cb6f960ad471404618e9817c0e5d10b1ae74cfdf01fab89ea0641fe7fb2892" "checksum proc-macro2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1fa93823f53cfd0f5ac117b189aed6cfdfb2cfc0a9d82e956dd7927595ed7d46" @@ -728,7 +1013,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon-core 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d24ad214285a7729b174ed6d3bcfcb80177807f959d95fafd5bfc5c4f201ac8" +"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" +"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum rlp 0.2.1 (git+https://github.com/paritytech/parity.git)" = "" "checksum rlp 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "89db7f8dfdd5eb7ab3ac3ece7a07fd273a680b4b224cb231181280e8996f9f0b" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" "checksum rustc-hex 2.0.0 (git+https://github.com/rphmeier/rustc-hex.git)" = "" @@ -741,13 +1031,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum smallvec 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03dab98ab5ded3a8b43b2c80751194608d0b2aa0f1d46cf95d1c35e192844aa7" "checksum stable_deref_trait 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15132e0e364248108c5e2c02e3ab539be8d6f5d52a01ca9bbf27ed657316f02b" "checksum syn 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6dfd71b2be5a58ee30a6f8ea355ba8290d397131c00dfa55c3d34e6e13db5101" +"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" +"checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963" +"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" +"checksum triehash 0.1.0 (git+https://github.com/paritytech/parity.git)" = "" "checksum triehash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2033893a813c70e7d8a739ca6c36dc0a7a2c913ec718d7cbf84a3837bbe3c7ce" "checksum twox-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "475352206e7a290c5fccc27624a163e8d0d115f7bb60ca18a64fc9ce056d7435" +"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" "checksum uint 0.1.2 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)" = "" "checksum uint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "38051a96565903d81c9a9210ce11076b2218f3b352926baa1f5f6abbdfce8273" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" +"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d19da510b59247935ad5f598357b3cc739912666d75d3d28318026478d95bbdb" "checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" diff --git a/substrate/test-runtime/wasm/Cargo.toml b/substrate/test-runtime/wasm/Cargo.toml index 99d86cd6a4c5b..61e7c594cc2af 100644 --- a/substrate/test-runtime/wasm/Cargo.toml +++ b/substrate/test-runtime/wasm/Cargo.toml @@ -11,6 +11,7 @@ substrate-codec = { path = "../../codec", default-features = false } substrate-runtime-std = { path = "../../runtime-std", default-features = false } substrate-runtime-io = { path = "../../runtime-io", default-features = false } substrate-runtime-support = { path = "../../runtime-support", default-features = false } +substrate-runtime-version = { path = "../../runtime/version", default-features = false } substrate-primitives = { path = "../../primitives", default-features = false } substrate-runtime-primitives = { path = "../../runtime/primitives", default-features = false } @@ -24,6 +25,7 @@ std = [ "substrate-runtime-std/std", "substrate-runtime-io/std", "substrate-runtime-support/std", + "substrate-runtime-version/std", "substrate-primitives/std", "substrate-runtime-primitives/std" ] diff --git a/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index a2e791f81139948bb6eb2bd8abde1d602c681beb..f5879aebc1ad41b40d9f57c74d40cd2dd4ebf016 100644 GIT binary patch delta 3127 zcmZWreQX>@6`$GN+q>KK-R(Ihj_uf)yV#DM*yp{k-Mw=@I(D4ev6GghP$VE>cW+m@ zi$7A^i4u@@nkLey4FS;xqDU1G6mdX7AhjSQpo$=oKyCjCL?UV;^^X84tqKC( z+?|a{y}mayZ)V>6{oZ>sn%7^(53b;AFX8qCK?sWoOBe@4L6XFP6bOYC_Fdc^zIN^n zqz0eI3cHE>s-2R*=y|9sc*0v;Dlg2V&8mHT`N+azdAaN@pbEc!*ePKPTM$pOVX>V(CH%bhu4oB?7cmyAEG2JX`{ZqMU?L)r06Q&r zbOclqpi+fkB519h1QF2?BxnNcn%rK!jImTDct8jx1m2*8NTmc89uXd)l7^DfLkg6fzga9%ZlGd%Zps`Eu zKX~b#5593{LH%U_E7i@2YDbeoFNge!0)*O$0BaK>Z%{(wlo}sbgg9;pOoK-Nc*qkG zi3AcsA_JEI=O990tH6SyM3CZyO!1l-PEG?M(8~%{SDb|!&cds%f+TRX;ZJ#t`y)yv z3FfE37uZ}*ieOSA;#5~sR5xyyl@6AqQ|)APL+x=L{_2QyZ?uhU+F-SOads zWWz1gi&lXe4bV{K>KJ*B1g}0DQ~ANy)*<{%A?Q4B^d7^pvpCMq#kLf`uRuUyl2pKcQY9@09GM7^qG$yDKpEweL>Lrx zQzZ3eM1{ivhb7ML$A;iEc55GisZYc|2XZlfaqzt`&1$59j{Z=g!+bzjwSb%cO`$^? zVY${Vu>Y^!>)1l8jQiP%)&uxu_S@DOe1)xFH;umsa)`aK?t*eYY6#~62K^cvY3r3P z!3k$iwoT%W+NHK@7@AM6{|s-w)4o;29qf;tbGWTG-gQ-|+wZ{rHMJ*-@j$I}(@!yO zV}Bq+c#z@5i+C%$ka!x`SVwXOZ)1M)9Fa47x7OoR4uL7lT;lRdk>2YTa0m+d7sqWIVv~#y-f!JC@Gx z*&i8G5W4>uz3p*+OWlC13&_AM8Fsv3X2G1k}2vi(g82r z(rxUU#U}yk`^7mc6CrV>UcyP7U)e`{%@H&DwJSx6PIvcVW>RSva-~ zub$N65~A1H*+++>M*?W|?`Jam^`rgOE1(eIcR@y|7utKUBm(VZQ~wJX53JEY-qg>* z`mJm9C!o*w?E-yjjs7(BxqS)raBZ#H|4Kv8W+x-jSA*!es5EcSdHCOvk=mChQ#h8( z+OF@IZr-%=Y29MKn(EimZox13PR`Cd1*4=J?4zk6O?R_aspRXn@8$hmDb0+%JGDYK z>szp-je}4VL`&B8%_qBHp~aQ1T8h&6ZuSSUgg)T*rZb z$JH}w)Acs6xAsmB6g(I71@6Fbb5^cHp7Z9GyyZ@L&Yp#*V^{sDxp9zPnqJ=qR;;|4 z&)cPv;o7F-Wb|(K)O2@TcPvl0OK#dJl+w1Y_pn!{d*ZHT`{{hv(qYcelyaNc@1{5H z(K998vvY1flT8Eb{6xyqO_Jh?EfyP@Ef&3#$2@oWuy2=Vy%M<1rtQ3+$&@m>?WPN! zm0;PK{&=>OGt&@-f}QiSrBW`*Dl`2B$1&5UW!rAX$QK}*n^&I6y=z~|eII)y_p>)< z&X9s>nwC+3h*)Vqp6y* z_KZv^Yvi1*EVX|;o-<9SpnJKJlQkVbZ*61G?0+md^zci3_@Re*iv4~6cCC={Gp3W% LEyMJE-_89Ok&>*u delta 2236 zcmZWrd2Afj8GmnPcJ1Bu+Ov*t$M$$x+q=%%nfvgSJO?LsZDYqtDH70Vu7zEE;R7Wt z#15oV{(!ddXi|Egse%ebS_A@BiX#;j+J8W8)l{vDs`LQKksysqg<7fKtnJi=mG=AI z`_1>h_xp}FZ*Kh+@fwIYOBggG2y8IEH^T&O%kU%)Mq?|o$h#mXMX5&CP~ zvDV1tmV6&I#q8CU2N#y|D|vqzCHee3jO^L`vVX#vU2q>lcf|dZzPq}zGw-Of7Z+zw zo$ybtEam5y^DgSH%;o2IFWDD~U_@|?62Jl z!*tOc`xF(}diogi!{R?!lc~ChF}EgQQeH?isGXr=xS>qI!8k-m!~0A;5@!S~Z~{w8 z|FLGix=G-8T!CW(*A4;`t{{X2Ccu%v>I?@8)9JDWyh%68Qn;n~*RtP*BiG`=BZh3! zH!6?g_h?g9PwG~jZ$U90>;(jS27=@F#^PxB`)7Z3@uz>IKRL5Td#mf)ZbV6hY(@zp zh%YB=hvNu5A)OJKgUms4gL>6Z;Tn3gx(i>XO?&pXyd3REU?MOXRy0@vjD>;_gDnWh z*U)2ovcPS9&quK4WX*jbe_Qih=0b!hd>hc&gJR^BDCr3%2~@nfo5c;(Y@Nf2;>Fe%nC8u>4s217VJN^>>fU1tkmpo!zP%FT z&f;Uq*Dy{{BbCKn)JuI0r|HM3Gx$~dXvYN3(6>6?$FCNPovXM+G$BvsDnv-BwVk(^ezyq+hot zp*jNtV$g#PePfU`r!Q4sisEgkQ<}NPB-ug|6O=~R>9_k@s{USTBTT{tf_l*V^sT-D zh#=hG2a@z3#`W}Ef3f70)MOyNA25X!8pc(zZFcnOfsRu01OKHyNX563Pre)_Nob`H z2Qsj}c~AkGQ-c#QzDlz6&B4m{dMhmpYo!;&JG zzUoBm?qGBL$EjjC>K~?BRPs zzIpgi)lQ;za@%xd2A<3vAs}BmvKo253{KQ~dF%@98T|&`J0{i6<{fuo$=|=QxRPI( z?_FA6URhY8tz-M?zebbvzOjCcis#3U!7H9@(EofUTR9s-w|~Fns4?ETb{+r*{@)BE zlmdMNOyZzNxA8Y%p5BE|Z{rVxefKW>5f}&S4gub~3qK9xz<)X5@KU?&|J)W%|2Q76 z{8kyd8t3NiIUm0k?qf5H(*3&2M8l90P zN0B7OQ$5LXJyUH6&-ru9{z_wb&Yp#9t*LbRHD`iM_w_B>^Lh87{QLvk!@j-;4ON#M z(eotN%ejiF@1-qMEs30In2x2YmafadPHmy%Q>_V8(QU`{Jk7UdMfCkv`h}^sI@uC6 z-;{MrG89Es%#mJGl-uY_Q*8-bQe@4PL{*eb&vZK5WSqC+OV;wii)e{+G*W% zr)b%hEz1zEn#+k`klcM=-|?yIIz?Bf*9FB9UBj|uQ&L6ObL@`)zr#D}qemy{=5!>X z<#Y|mD~_dUw(ja(@Z|1<XsK diff --git a/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm b/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm index 2a2f3a4510db3532f9819074df1ad8f85b90c0ce..5e48a6a00fc03af40faf81f98ab22de4c99b7268 100755 GIT binary patch delta 3503 zcmai1Z)_CD6`$GNyS=-$@!GKi*x24XY%s>gyZ3MRFg0H63pOAyHX)&i$y%tEOODw#s^gE?W8C#|{Fq%!?laT*B=-vAx`8p9BY$(RB9(lb+Z8WmBp2!B{k1MZa_L-J!V)7AYPVWK z5*uYWs9faReErC6jJceIn;4Iup%wD8I_JksC)25OB21Y?0WMyOBu-+Y2vNPnP?-U{ z0kGR!%1T)G&}Vy10PCoSDvC1;P+%_B;UT;Em2;5Tg^=((q^tNLQ9Nt$+xdN-<$TF~ z$^q?V^oQh?vLXD0JSYqCli#7#yiMxGs@x?CQYb-NE`9dodmlgj!Go-D(~W(()ed@H z91buIP7`cgJON`Nuyb^d#56ISAAr!XIT~8wM-`p`U@RDn|0K>P7!jOFF z0C?;L_uyh8z=8)(VtZ=>Y>q;Nb^)Sakob5hmV|hzOA-JlEAjASx7QTVQtSmNpmn7s zujHG}3=agsLc)MAKez#6+yM}mjKL+0K&`W2-RaBC8vw_Gl_V&qZ#9p zIGQmm4FUkbkB1=m0?m9e1|MYbV!!po$ z(BYG~w2q583t3Ak)!FUNq5=?yO)$EcO|Af>nE60~LnfdBf~iHY!b{vd5TAHFN7t1i z@zLRajv}B50VNQ$5COQP6!?lTd{p2iALWCiFleB>Bmf_fN^~0uMLxhKz~PkLsH^s2qSm7%(aREjbPb{en@ z2Ug)^n8ax~O|Ft`bH`jf23|RO4qjpMP!5O*{+c zBkX|bZEE9Z0pyzMtFAj>=&28H0sT%vBKf9yXm0_W+v{uws>YW695DS2*?{uCoQ86j z5`yxZN)XDQD4lpJ|5Wj_AgqkM2<2FW4*eh!hSD3I@qYdWT_Cr3gWQg0Af`TTBNnF_J)r-Wy2sHUSfIP5r3+*8`(qdnoL#)i`WMN6S`_0y7D=a00wD1sxxVrLuJ<`- zy{{46z7M$mO1lPFPPgxY_M`Tenkh;hJv{HiYBw<-F##6dR61%x_lUens(3(?s2w4A zDY?@+YDIr0=B6&7=9qaZ;*z zd2tnsEB9-MlK^DyJGZ-+ z>Q5En&%PVJC_w-_;AXcVm4!H*N}mP<>q$r4TST!xeg{wI8=w1t9ytHpYC`$do>nN| z=*dt`PY%kLdnqk{=p9(Ogh_o4B6)6G62{DI>xJ^^w&UJgJRC5S9^rj*eEavw;En-q zd}1t1j2&%d6ZZJTAp`D!FSXJpd2dI1{*xX3xN;x+} zYF}Ht+1EK2`+9P|e^rGRQ6mu}k%(G`YMMbgE|FjL*Hy@-X3IvxQp{LFF=RRJCr|sO z3QIGRN+hJo(3uP-!tnrEH&Fkq98Acz5w;@1kOCA%;u|zsT}=)Q1S&#`5lIGviJ)v) zO3c>c4P+BJLfk2&<|YlkITA45?-^qQy6m6MOdr+LnIf$csO5hLx!o V`pRR$WKcE3vKCd7$)pvI{}+ECo#p@l delta 2463 zcmai0du&@*89(RRdAM$pJ1=P-&Ewihn>3A+`+hWCo15e=$!Lpd(k2~Z?R}ZpO`MRV z(}pVIiVls^ZC%gG1}&v6Wm!hYB6*^kHfasg5L*8kXoHGr3^ZV!NF_7@lZGboUE48f z5WWr7&*!83eqWKls5C&9aYNwJQ#Vks zWC53vk8tOFZONoNIXU&Pi|UGjn|0^V=Hf|nVq(fh_5S#b>!OCBd2DWcY9=w4aA(mL zI*|g-oJh>Nhb>S$inf-ykGS@+xmCHX!knI-c=WLQ$lOdKHJh+ev^<_jtzFU?2w5qln)qLyVuHWP}*(sT7fllCE-Wlu-m_eJ3Rc2O2EnNw@zX!_&|n$ry?pZK^Vj}D7Ea6)wX!L2=M><20QS*$R&Jzp*p|&Y zafhTUFW_^ep=vu`B12V8_!W|)+C33261fM5M z(VEPsbyqR4pEp!zGWA2iW42xA?Mnjz}HFhw!`=u`R2BN;Om)3+h4(}#@xbLV|H|Om8=>t-O*Ha zHEWDlTaYjP^_)bmcH~VXpVoy)bM!Qrv=nuzypd7X@I%CBMHA?|ViIVNBmkY0c%TbX z4?dT~VTy_kNPEbT~vZ~D$1DLlW*`LLYg>)QzAc^x~wB zqUd8X+|vi)c(!L3(BJgz$Ip>%`pxXt3hC&rYPy!&QvVy3YymcndT~YYKVFg}z1(Vc zy+gC5)?S^@uBQ(feKK3o5vb@7dL`I#edV=< zMfpt%fhEQLjZk%4`VWK2kM&1|53?--UQs%<1ypw=z-)k)VS?}}(NPyFxE(CG{pbE} zSRFPz`W53_5XCL$0H-3eO6XEjf;> z#ElU7(t%!D<^@rS3kvTljwrbbx$nS1T2>uF;51v{^^Asvw(|>Nt{X@&fC+MwpC`Hf`cH zR&rHd);L8FL_sw=RhEyCAB;vqCMWQc%CRELsg7!?Ml<=y8e07x$bq-MFzhdyT|5uQHx8gDY=rY%8K!CHS684 From 15468545ced365f0622c2d49f941ee9c6eb57bd0 Mon Sep 17 00:00:00 2001 From: arkpar Date: Wed, 27 Jun 2018 13:29:12 +0200 Subject: [PATCH 2/6] Updated genesis.wasm --- polkadot/runtime/wasm/genesis.wasm | Bin 235275 -> 440458 bytes .../release/polkadot_runtime.compact.wasm | Bin 440458 -> 440912 bytes .../release/polkadot_runtime.wasm | Bin 482638 -> 482654 bytes substrate/codec/src/slicable.rs | 1 - substrate/rpc/src/chain/tests.rs | 4 ++-- substrate/test-runtime/wasm/genesis.wasm | Bin 20332 -> 21236 bytes update-genesis.sh | 1 + 7 files changed, 3 insertions(+), 3 deletions(-) diff --git a/polkadot/runtime/wasm/genesis.wasm b/polkadot/runtime/wasm/genesis.wasm index 07c28e8cff59720e8d2ed27dc43f225a14628216..1d137cec6b954b323969aa4f2526329578d398e5 100644 GIT binary patch literal 440458 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

    ; zk(V|ke*lhl`@b&@F2WhRfi|4@jSCybn2b*Z!;a&i6JluTQZE-_L|;$CpEw~c8Y7%i zjgdjSYs?3%M;ps6HZ$*N9fRIKPM%a`i&Ec9QZJir2Y-%xcsl#xEqMGKhQE-c6Zh2c zJ}ao($VftP#T%bi>1k=e8q=EA>y{KQ=_9|w6$<2hypL0>^7dO@hY5Ac!DfYgw&kr*HgWLqqt<^eg-L09chvp5&M+1dx|d}x3|Arq4_3H zfY5VA3Fp&R0y?!Dm0-@-8q;9cSeUy^MJ@c^u1jTt_UIUfzyYu|1zA&s8DMe92dD={ zAB) zBAC!3CI?Np1=Kf|MSs}@bXpux*b6+``y29SQlGk6L?$Vr=F8Zp3GLP6oL zgk1Wc=es;3y!Ak>B!Xm{;2f4z>9AFUGr0vBFlsAn&?rV+Eh@ppVJ;T5yy=#3_~!JH zxvf8A0 zsJ(teNPUW)-+r^o4r(12IGv|RSXsQzL*dhOAr%+TqYp`D%_iP1-fOZ+^7c|HE*@^O z!cx4Pik-$zj8UVj-zU!x{eK)~Xb3vCM0zVNrFt>11!XM-`vKctggbgLic^qX#b)*R z19j8Xn!!;6U(g;U@HPmNDc{t-OJ3cqn+K{ksJBUbSJ`uvHw{$UjA@U#>4kktU0xb? zFxmg@C%wH*m3BQz^Rtv_e-+YOy>C!GOqZ+n*ST9M19%|_$U~i0Yo56GO$l2X@+yK` zqkqv$2a~!!oyHky0UY6lzv2TEsAy6RMI%)gLIXvov;g8=+=y(eSQQH5W#s}rvwc5k zV^!4C?iX1mW7)uEeDv>%ahgnq+)QT?y-_nv?Kl9kb845NzN!_nYA9-8oKk`#S z9fUtIY!drO_8omErgOrpdO24LXcS zf9dAMm#1*N{N>cS=iv{PmY0$aVUGYQDS8EPoT}xVmiz{HEI@_If%#4U=)lt~(s+jj z-Aw%pRcE>Y0rYx!u=LR41CY-7SeCgIFv=hn5gYul1cq_7S&w+f)5sJh_1tp5X@6hI zO7sZ+pQfYe=6MQbHcQ3=F7$FCxjJAsg`5~90{zAPb4yPTok7k{`AhW^(;Ad=7l3(t zu0~&`AA}D!_!b)WNV29?@qfc%8T9{lwmaUTocwx|1v@EBK!%6fUjkaGFz2Pu5-G_g zj@y;#2VN1wjf$Yi2ddE}Y{uGDJVQ&6TTRcn%qwT{49Lj%)-x`b^LGNqInI;1st$-H zO&t`$(Gj|~eI6dhsZ#^jRzXY%y?YuPhAkh@=@{MwF+$K<`wLX*X>RyAr$`D24wNyU z(@VM+s^?DWz9*_(3F=MLcy3*Tz$izSv5UG>Z+RZdCSv-jG z${`_8K-`V~U4OcmB~2H?C`}g=-%!X*sF9(jN25y9lkh>)(~VHiG$+xnF0+zbrU!*O zPfym&Jn}R>G+(AC5<>SVO7$@QGn4WWhrp(XP z$`j<(E?27pW+E zkTx&j$#PNBUp<_*15T`v2Ap(nG|p(vJ#d=e1*h#koG$sTvff>LyT=SB>y4eLybYW# zQH`WR51BdQ0xN`bZvvV3gm$w&a8fHx}wl!^6#xY%Q-dp zO&8>N7sirmWo^!@&Vg1CTt-oG=D-$nic}s(U@52988!3!OmcOV&eQ2iofkG=Ql@05 z58hGmZ>3ccMGQtH5mzFJG{Eb0xE)D$a5g$=DFrBCc-Jwes9mf<`VM!`6X(jN~%Y7L18MeC0T zX5xNO)c!o*aC0tA;e{n%4FUoA{G?Zzo27S|OpC%-8f(A-W^hm5urM+6HL1`vc z+SMSgf{rC3(dFZoQ@*?e8deQbI<#&JDzejC<;IH8+we^QY4y6(wNbClv-|}0+DzWW+?IURxZBemeH0}M3LO-$-Y z*dnb%xBw20w0K0BSR?qNC(<>fRx986WWb9$AlPcPkxZ|o)wWqelmqsk|KebcOy)!s zL>k6^ZuVBStamb zQ-kprg!|`6?7^<-y1g@7X;Fp_JEHV>HtN8ic5-&J0!-(m2Q+8jP*v#E+MiD5*a<4s z$!Y}!lVIYd$r77vMGm&TCqi7-R&DN>_Kd+&CpPO_AIb=_85#wQZPb7JC0N&sdOOXxAOVgLi)4Z7 z;|}v2CYgc@Lb_2BvSey4DhzT37{)$-YJ8{?IZJRMbE-$ME>M7Qk~PC8rW=6@AV;zl zSk-%w@K;V&)94Shi|<-{Gq`(TeW@BPEWTxFI5#iu)vJ}`r&MdFv>hY{l8%|(Srf&7 zM>Fj()!Ht8q$Ng|lhQuie&3%C9pHCARh~NlJ-6uCRyBx#s;qJkpO98oRBm44AQ%mS zb2Kyr>uuWml!t(V{%-aKd2-=I;+Rw|w&n~X7K)yC0*&GkT;K&$MW&BpuF!{S?q9C0?iMb|esH>v#AkjUHnlm6Dbr>T97-$lLVIlVgAxE@!( zs5-X^b643podtFgYX)(j16HE|wWJ%1-e7iT)VJ;Zc+8kYIl0p8gDq&-{CnqgA56eT zi*#%qBZ9J)z*sDoX5ZR(XuyjTrHatpjF=n#q0?MvZkUpo8&K*A&wB%ZD|2J>N4rdb zGDA1%#N3qb2Ti{Axq;!{_}q+|*}0i}Rde%&opYlC=B68q3PgDsy980q%@>%P85-I* zLqj0g4hpg&!Kq>2(GFVjO9pw4+KsnEM(uull_)B2U%P`Fa!)dGJx0Qm!u|P|wNbMa zQ4ej1GMOQeBe4%QZ@pU;hNjICYV8wM9xF4i!|f7P zcBW!bWhOmHrNjE5%A3{dv$7X?ip^C#q7@w_8>mrnvfn10+%5 z_lFLUL4_?QKYD=lDfJuca|g(sQh(>*nFA9d=-*I%;=rV#y!!D2hR>ZNTP}+FJZe$&1=;kqW2HBwZbC z?nqb1nmg0g@iIM|Wl~O*i3;`?%&&cMpTxf)aNpp${g$aNL;Ta@lhv>7mq(XRNCZNB z{fipLh3H`J{_XZznc3?JqtPh7v46H09;E$if4rj@2noc0vZEN7PAL{B-qO=RPE`K~ zBz*y{-G13$Ozsjg{rY|%+<2b1=b@n@|5bqe=ZyK#7TPPpBqTaQaHs$_QUs6RKnQeb zpf{Sc1>CjY*gV@zb1MSPixBsD$r6~(1$uZzOh@#5LsB-OYr@pTCpvnzlx3VkJD}K; zvKa^b2)GNtqBkyQkQHo_fYT!`GrqXD=PYF>g^}LT97w>Kc0kau2obcD?CAM!(eGbB zFaZxt*Z1fby7mq-=o%~_kJNz)Cf~{G`wvVY3e)qwbcKn9&q2KU({a03qGstH$+#DM z#8LOPZ+Z9H-K5Dne5U!tGcb$Sv-PDpGycRgzJGmlZ*#Y=4ma$UXTRHrCz6H0a+dJ# zD>xB^pXqgrG+q5iU?u}HW^$P+&J~K<(<3f3m219)$4p(Oa?O*9n5RtTnjaN0KX1s* z3G5PKi_Lu|{ORpN+AS0J6a%knNQ=VD)4O#|ehppUtLx3sn!ZEVCp?eS@6`1hJiF8T zb$v(UpK0SKlg2LxlF422>5s^X!0_inrrT)p;u;?43m>%1YoAf_JUmUY~A8q*A!)z`>2M5W=T~_S08D_GP^j0l2TH zb?yrz0oH{2LA{FA*pLtGE^X31(rn-ZBgh`=Zm?Ov;GWx)>?mE`ayh`$*LzB()(kB{MW2+GDJ%3hzvDNZH^cmf;q@apTX4|=rV zy=|#%q3vZ$Ve{TNmxpzQ)+T)<10#5tIlN5i;P6R!h+|}V??9U_nBXd85sA8 z0qP^h)QQ0lTCF@W`0uTDe&^sPt#;lgv4#3}vii8iQ~TMK#6iS@I}YM9~yuF;# zO<~@dWaHfEPA1VdEz$dH-(S7_# zC2_aAjK;9N>X1+LqR(Za@wK~lg}UZbU0T=Pw>i&a|KHfhS0SpE3vZ?b!EOFHJfP?GZ2`=hMysRC@U+4Tz2jXzJkIs z%Mgo5L=^;N%?~vy6^5rpnnCzkbmbS5<|o}Pb-?zVl`7U|rQ-$ZCFl+TUs!f@*cxHB z{IKM#F^*R6x+e53VGQ{hSQJm$UVQjLg9wl2G{hO!J4NFA@~DWo_afqJ5q%==fHfjM z6OGEjyC_E&=$C__d2VLPUlqmQH@JWWCPpSW{drM;!nQIDF$E7Bbn1;-#Sop}?g8nw z@dMbJg+|6t^9eVq@}hSI|8T1+@6@k0F$v~iwjPzooXyswa@V8xyLv#HVUKelip)9K zIsDPd-2czs+Xq{Aon?OK>~rqD=YIC-?%SWYyS2|zOTH~zsBN{Rw&ggzyTF!Xr!1ya zl#22nN)45AwH?ZKT$C!2tu~fDJ&AxOAyZ;tDxHEFIT@=EU>GqWRTpeBf*FX64I{vq z4&y)%(PSDhg8(z+_dM@fYwvUWcFU4A1C`kF?X&kFZL?T`P6Kk(AErug%B2{@ct`6|lmd#|f;t==IisrOS3{ z)%LX%iuGVDy|f+-P_!P5rL6T}K_Brs=*eLl$WlOun9kZ=TIMe7H64B?EP3^LoL#I= zf*Qv4Tz2}1Y0tCpYnOxE&NzVD^aoBKv@omNRco4V5zOaGIutXy0P%mM?o%T{iZ_C)WNVj(_xzS|5KY*vP*lC>b`QwLq`dd}K>7^_pWV;7|+H->@po3E!|Pf<`>wv?2es8|H(j zU=3)E!;7AJ?Cj_hXdOSIgFVBfrWrv8(Pc5mV~98&ZY1FLNx;RmJ^c1tD0Zj)5h_Hq#;)_X1TMDw%Pjye7oXy{Ni4Lm7h@3_b%Gi zAYb46>>i1&>qvwB5iO&0a;LGUN0QPa2#;)MxqE+E?jA^53XmZY&;ybP3hr(rab$M+ zPfJ3@f4$S95Atla#>FUki%X#1_d&c42kS#tkB90FA5FVYDiP>p`%Z??P9j+8HxR++ z_jrC59^{uRd$A1_62Nh_{go97M2*&SMG*|JYC{HQJ@(lO+GTlaZ$0~xV=Ow4whOmz zEib7D2!6@{`C9nnhGAeb0rrSP6j5~@698frhfF9DCV+5Wcx63aMm7!<5&*AYG-NA) zxoOdqG7MxBD%VkKU0u1|7?>-cCDxdU0y}SGfQnk$>qdc@u32nBv?!Lt>lg=WuVb(n zqM5z)T#7T*I!c16?9aBwIWBJEQm8f@1lzJqwHcTZyFWf}*Doja-b~bcKA5T3(&Lp< zFE-C@DE;9IXRiie?XCg^EOA{ki!f$pk}Z!zo^|FBF)vwJf7R>MIias|H&^zlN(g}+ zQ7bp;87#>FBp#L-pI3-5O>{wO2Y+3PNOsQ*MRaY#Z1)^|5;;U@kOBiGtZkBu-S$xb zaD^ijMd6A>-XC|VGLzIcA8au*g~e0IsY1Yj-qI<=)C|!h#YZ|Mx!dg>g#m70xp}S= zg+vUo`k43*A^a*uA@yTW_^$KJY=4&^D1r|o5^1wm z>{CP{aRZv3-=NuDiav6@(H+KcL?RuJNTi!15^1_E66xf&NTj>AMIzn3EfVRT8$=@Q zs_#j}x~Ie>-BMzbUQ=R{+W3Pu{%GP@tC*#}Dv?Nv6;qs1S@h3=M7?iby0`1zR~ZDq^IHNuhMx6fu%)Q#2Pzx49P-P&ixZu^tCyl-4n+ zNVhQ=bTw1n>my1puAS1JY6P}ay0ci5V?UMLF@(Fx9S40kxnl_Duwo4=mTbv`p&r_x=g(mQo3-E}H` zw$5j$^VzkPHIa_QYX>}E-#j6vzOQbTnhl$dIs}q?DYEMjNH@7dAl>8+fpn9Bz^*bG zQmsIA|4ag)JdhKhU9Hz_?PewDZ*b>0IOo;I@95R9QX5VGL*TcK;!614lhK*%_}_BXmYGGb6-dc9y_4jAxQ9fNd0)K>u8=xuhi}j_N^`)mCLn7|;^B$g$)N_8`#q%+i2F5E3 zx>VTS!;9EdP@|_>n1&tFRSu+UtCpM&wTq~kZFw1ooYo{WZ8J5~j5;jvLSy=dd7LI| zVS~@)FzK77oDTiz8)k|(r<`pRi1~dH*)9cek>fqYI&?+eDDQWH4?6}p8B9l+PbX8n zv`&U5qbZ|fgp-kHrBv1F6&VafbDuECyHzoE&4HBBF<|)uaA_{2j1IUS2gH^3u2fCf z<*h`BxISq>0#+a2g*h%gb_HSht`RKb55sq<BktxkCv| z?RFKhru7fhP3u!s0%|F5^n!v+OvUFC2}rPM8GuS4x^8X(x(T%)V3~lZcb>3`VkFwI z$BTEz30UIoMyU{f-mDbUvyhVZ8MFz=)$F#2O6hQRT0{av$}Wql`B?_dH0+MHf0!}t z27$-N#Gh-f^n|fo=J}C8)vaSiC8#>@Sn}wuzzGeO z)baU?R(M_MKs(n+hlI~-WCQ7e#awNc43Z{+&Y2vjFfR%t(6hc0|HFfpCVrgBfo&~K zjOiAR?E75nNCqb69mz1I`M`Lo3g$#INX97RWZOC!G$C0M6wv*GUP+b&C3G_wh-8T} zIs>69xJe!^Wpud7k|8CxtkfjAAQ=;c(he{C9>Mb+kjSiDkn9PHDSZ<6)3$_9!fwqw9-Qfo9xGEff};mDvSMD zHf(9(Uq&9Xp_M91IEhrr<8ukB>PQbt&{#)$kU)1@Z>Q>@!+E!5v|`wq7)sSYOD~ZS zn{6*cLck|h36c=%E&n;-E78I)GMb@Y3W^tf8fm&MMu1dI; zz;(BlXC*HF&SMJN1-Z4MAMFy!!bBFi-oTpe^re zIHrK9aSE6^#-hr2S;vtR{%Oxz2-#hEE1)DTr&fb!U=s?eCyAr1H zl>bi$DQN4&fH)_@OC;~*>`<_&qB2F+fWBRLRzlFmtZFHIu}v2hzEFC{tW|o@D(Nj> z*e5`P?Z&`Fj2$l{)L^P*1Q2cUMv`nICz*D-$!>>aSfZP379trA>L#BSwn#o*k|hAO zMK74Oopk~(yEB*gpzwecM(gPIP94S*bkX6NLhGWJ4vi{34b7J2d#rex#xgfL2em)tn;^EC983ipPkhsk%HLol*?JMfyQ>%c41zhwa*JojQJqfnH4p{hxHA;^puU9PA`?i$UJ8wr!z9;01cT(!3i_%z`-()LNG^;X4)iumBBLC z(*!L@vmG~BUqZuptQd7m_x8UkEIx0Ldg2yDSXxpJebB@$$aW@&K4{{moDO|I6SZmL z7Nl6dQ4Y1eDdlu%UpdrvZ^~(FvxKJ4&nFG};vxqZN%@bY{9~f`1sDNKZcm{-C1C6A z%>!>f8JpVLQ$dsf?@UYAlmPR!2A2{LDy_k#1jNZLxl&P)^!S$+gNj}tGW8372FmD> zPx9Pcu{7xzWlBK$v__c{sJ5NbDS?JtGfN3{tu?chK<8T%N(o4s)`a>p37B+uwS9%M z>C=@o&HpOY|7D(=t*E=q>6}2_c`-OjPnFe;=as7U%Yf9*@+*GGy>+@xbEUUaKJn@m4yn7m$i=VrDM{iYWHbSdx=Izw!Kb9T zo^sks%-G~eFa_ZhvJt~ko922!L8UfnFvwGaNo3HHXPRbNFe#@)(xDA4n3U6HZ0kb{ zCgpU6fi;eBcG-oBQBmHq|NgQZVEbZIXRC_s8?A}HeMNH5+H zUYjYSBfQAi3<;$#Iq>Ro0d4tU*o|Msn32%VWt|LEY3b7bN zX32FFw3|UM+PQ+i!lZKtM0;;vMx|{n8kb<&qN+~gp;axIl+$TlIW#Z9q?|4mttl;- zF3r{^9m-fFn3U70O*z!|=9JUcX60IzxKBXp;ABsA#0+&wDzl9jvC`h|^cTTbzea9gm-K9^-Xa~# zndf(r%Qpx(pAPQr{f5#Bedj{<-{P_PJJdYqSGDtTz3F0ss(G46!qU_5KBc#Icqh-* z8_{Qt;PkorSo^lsJ69ix*GqhLG#)?6qj$)GULG-=)yOkErt|fFoJSx-JhYqtDPH%A z`Th2fc`Fn3<|=Qu=0P`Ccxxxxmw9W|!t=bfTH`t1TBY(VZ_uw|xYU(D=9P_8z(sF= zsJCeQD?B=S8jZ>0>!SF1j#l?z>s(wyh*%|&{=7$3@t<-?kJ z&J$8E7YEd5etOn7^C@cCyG>9Iu}fnd``Na%D{JeePTOK9q+;CI{8o;sAxQyl6~_+g zur2i(A%Wmkys%Udk3JFD10oC2tF=32@i-_WAPeDpAZ775>}DZ;h0`f>P;4+S0gAeuN7XXtZk;!vD9 z-(Ea5myUgc@zk8S%V!i%&425@3TT>`HL1~knR)e2*Y;;#O)B$1=4icp>`4;n9oURA zL+c$dF6Kjc^bW+Aw;#geiF7*D)S81r?QN*Q0Z~pp?L|?ML{o^h0#cQtH>0?;*%(z4 zVBg(2y+=umsog9abpdAfK<2u#R3Hk98|6uj#Ts}~v4yY-wPt>gJJ zq;+;*fi%6K$rjSls}|DH@fOm&&p?{@8A$U!18Ls3L3(SC260|q!whN}RNFwUq-~&9 z(l$^lX&b1Ov<=is+6HPR?Eq>70~XT1A5g~(jMLH+k;hz(z1T?s>79-bGg0fEvCU=m zrgw%v&P1(uAk?1F%R4~qp3r-K#YglmbwG_gw7_dZ)N$e)!mluPbDpl7VH~%>Y6vBpA!In_*D;3oO%a1~8Y0%`$Q(1CqgVRtDBw_X`N8 z-E);P7-ht*K|R6ArN`=MNRCvCI;e!wLs>scC_Ph$lz_P!^{XRFC_PaJlz=(e>48)t zroXx%3ZLnM5(==?1trXMK?yTmP{K?XlrYl;CCqj~(?_}xhxb)y+W!*?2xfVXq zENHEzzqT;se}jHCl#=<`f$tOI%=rO&vT8mX@97f6=eXKPcWw^`R0$z*fVM8rK`(3f zkIts&kv%|U_SrvQ(hqjiH{0~%DP2n1mw2&Apj%6Us@wHFRbv2|sZ@7PmR#Ks#hj{n zHkH+L^tb!TP!~;kV32IVt4Zg?qB?W^&C#Tj<>U+upOo*h0l zS@4D|x*y1<`pZ3^)Yu|Dp0Iiz`v{DwJ)FIqv^MMw`&Cba=WN;BIo++Jd%df?8CJ(7 z*1B0oX049r_ErJ4OeyZSoj?0;xXwa06+fu-h$h0;F`;Ou5EzIeT5!&=9#nS z`QP~4IWJ}VKp{voGf3Z9cGUFmoEbK%Y#*G^TurVX_YSoKrd^Eqt4X1soqq zDa@m?!;~Wnxnxt0EFO!T)mKO+n{s6FScJ7i@EP4>#3di8rhYM4=E}V`P_eJQ5U98; z9_I(0xugHhG4Ue>rw4Pm+k0<~nF&p(BmbgTWRN`?4tT?8|8uK12v zXWt>C-mK0v=g$w{<(oOvF{GD+xOZwP&=kWd0<#jg0g*^9Vl$GhhZ*dw@T_%R)ion| z$pmqOV*__h7LXL_b)Z{bdKwG&0QPzEai81}i_<_j(CvANGV~&MKy%y?ggw1$uGHL` zk;rv?de?~Pa!@0ejO8>&mnrnJz_k3|9h+P5r5}Tj40RXYW$w%D>*g{^BHfSKJkjU! zHqEQB3nYp-2Q}TyfOOYJOD<*b{f2P-luHhK+oj6Of3G>Gqvz9E`nS^wnp}9t>M@99 zur}%qD~{WlA0Uus`&i+Wpl7yOxHHd8?90;t5)@r-a?oL{Q7sp$_!^zJDMeIR#yb!R zCNlJvXjiBUs3hGq?l}8nUfW;!ST}V}7dWEfBh!(#!mb{zM^Dmi&YC@{!5n0&*_$q| z9^zCQjceuT4SLU(`9<)0qY)g*Baoy%0$}El(krWL0*cNtm>EcxqBkB0Qj}VCEcY1KE{G94i-`=`9zq0Yl zt31?J33+I!q`Y!k;$zX$WI*>u1Y5r1p|0kBi9%Krg{&^G1lzn)Qm0mT4=ZUhr!C%J z2UZUhtoA4DA?Y_;T~f;p&Hj;(Iq5&$LQsBV0!iRIBU%!G@#V^_)e}O9vXsbXipP4s77~f#u7N~1y$gvh9R*(Vxpmd|Qto506 z>xc|Ch|%2thzP3tclQ2)F3juS)%(FdS9bNA7u_C?ifo}r62>$3MCpb~VPengZuDRc zp>zuo^suHuDG{)yr(U@a(p`EuM3o1@DBGrDRGo%mIM+7wV6DUMmdY7<1Uro$g9JGJ zjG1!ALV}awH^tA>VlL$vf^ofTd@~Efxa?JM(`eIuu6_j`!?*|2uVA=}^{D{48aoZ0 z^JBY2a)W_pa1=q3A(d&X9eIt3DNcct#Wz6rw1B3wg|s07dx>G{sy`Kis~+^ed2{|l zsJ?}8J%oOlRAkO$zPlNusMWz%f4Zt`F)_k>lQr@DXZsv)VmRb7PvGK^VaPfD^W-G7 zi7U$hgn?kHEX`N3w5S`7r5p@!Rx8z(r%)E4cuLr8J(r2Gq#E7G;DV&f1!?SCeGl|%+Z`??i46gHlTpm zd$M^n6&u~d@kSuS1HgBo3+8=|xU)6$H9S-ncm**0axy`Jm%grMX41Tp*4zC3EtPt#-VRv~CFp}R~_)M?izj4((8j$^AQ)y9Fi@klVOX6Z>l!Ey&W^RcmvTDYN>!-Tx$#Z)05{4MN!_p2^XhmI zOJCG5z^~rDi@3+3Se@iDh9BBB7~&JzBY((MZgTJ2AM!-pjBe~hG8)GdRlYx-OkW@` z2zP1u39e4>wGI%7=9;1OYdR-#Vv`Y*2%D=C6e3F{t6eQQXajtaFE(!*+{@4keMCd z_>J$bj`PFi^PovZakYhe+1vuQ@C(M{@Pk~2ipwCqa{cTQk{oBuOeipm55&$Gil&pr1h+BIq)?CX^hp13~#b>KS>vSr8R^yIl%gh7%7qfN$dk+d51Dz?oTUU zvmL89OH`!S1%A=pnnc{*`*J@r7i9LcG^5Okbe)4n_*}ve<3Wv81GQAO#)Is_Fdif@ zUA>Cu)hvB^ZbH644)G0$%>@4(-#~%*6HFxAa;R-@$|)od6-N&w zw=T@|KveWe87&M|&lh-RWqC2UbVWwAW>}(R;6Zo|Fg5O-1R(Z1b|Og5^e))6RGZjo zt)*LkNH2GlrSPbpA&pCjN1xU-$lYa|ms9v`Pub_?6u`Q-thajv66N>DV4magB>1#N zemo2%X`u0c&5*3;L|e|SB~4k*VaW}H-Pg&BaE`Q>f>$!m&3%YrkyP|wFTsjfJ9793 zJY0r*$rT(Txm`8fOTI4wuToGM5#0LjUWjC@6&8%>WtlqId_l8l^F{4jkyi9!V#(#NMQ4GnxvyC?HxEdYDG~!G3m`iQi~@iBQ+ipm+R~o>d|#2uG$wBE$BM?g*+`grEf=)tl91q zjeM##Ij>I@|HB<$3sne!+b#Eg*qr@ruVpab6ks+sL0%zZgGa)|W>vO}OOJoO-}j1J zZ5po5H1kk`fdWz3B0M`U8`l;St6}3u)sAg|gREV%O5fY;{ob95ebwv=*}|kPP53#? zm&NTndVg@I!Z+#hiGgM$K}rYtk+^LJRH+Up>EJ|+OVusRntFRwtePIbOEq~>(wT%j z)57h&@4ZXw!J;{hQikP!7Iy#G5e?Afz;voI*UW^V;uZD4NDgj-u9{)GYknm*1&pb> z9$=Y%?hP@=_)H7A>Ub|f&Wr#I;a9Q<)j}V$FhMy;f1O0PHhJ-_X2rY6njdfjgG^&K&^hq>0_FT4)JkVS=bSX#bi@W*_2j|mH7-`@R)d1qq7f$0J zPx0ygNlo!7Np{8MzIBZvlKV>jAcg{kNDk1d$z&Ze!Q!f5KTwjG5&Syvt0!i_hp<|~ zJto<#Q#b=vzzWs1{7hBkHKal^pV2QJtW9&`ML{%V13jdKcop;wygeb%hj`)}D5Tzo zG|pHDX(xI^k&t~Mij`B$px@!YK6YYx_r&x_epl!NGlYa^iwCe&oe?|IH__W_KXIc% z-2@$Ql!T=Qf@A}>U15NZF*o90&`9V&5(dFu4($=3fiSKZ69rVI_7c>RMnEtBy{d0> z4NVvFdX~MQ3$Yg+au+gtkt}(g*y~?@??3pN8TL|-gT06`q8rhXYuHPb!(OHG#9rfI zFR6p=>_x@0b-#Z00usRff9-<@%aU2RARGT|kmV1M!AT~R=|77fgA&bT+6?%}!(WNR! z6}WooML-*LsG1G-@-Dr=hvnUVNamr5ZdomXF2hSDprW)?Ei4etNM`AMN)QtOm#`mT zQL=N4ZzQwk)lvNK%PNL7e71)ya95FA^C7ne`q3^9@s<6t9(i_imyrt(*UBw_4X~mT z3PklGrR=knK(btt5|&V6`2|?g5hSWa2%Tba{d)4Fh$Oc1sqf;8qd zo7SnJT-f3`ts}OI)*)G%`g&St)A&f7VO?p?V74>frg&68oKfmeoKXj7Y>G2_9my3I z!)A3HlS3#sch!~Fmvqm%<@t>Gq{9JOS);7QRt$KY zM5JmSO{t4{<2^k<$Vy^Q953BJWtSW(5X?vdlbTE$iDgC@pvyzcpvwcpiE4Ypf=2}9 z0!5q%XtufK!(J9Mk%aH73}hh!UqR^uWZ^7po}kA9B6~Xp|ch1kE7+Y*sShwrw9^MMGmWoY;4bJtqO-WIK&Z} zsbv7k8|AeIJdcW*9DG0xQ3r}88l!kx*NxZ;zeKkQ**ZiA1`6sMExEV$G*0@BLc_57 z6#$gJ*C&Lk@CggyOt$KIJ{zqtRn8qEAfL~4FfnF|Izvyif}kP0j3|SH{)k=-Ck2O+ zq;&(i{Gyl4L3A%)tRSp%6Ni`ONIL{Wrb6Rq`#jDm7S&y4;=wFa{A5VQ6D7F0N;etJ zeNfBRRST+s-(*1u(5ILw`V`QnKv>wu;GX?P-FK{|T%^%kR_UV$0;823S`Tr(U)B%( zz%{0+5EiQBg*ce725>BqBO*Q{{fBJ8YS!y%)(Xk=RA|$p?@W;rgd)@qBZ=Mv!qJ7v zLZf5r9KB+i00kW85Qug{E~fQXg++^Y02_gcJcgQ40M>9ti!tG6o^UggX2iY5o&_&- zwq%&V46J4$1X1V&UoGUIb~RdAjl2$v~5I8p&GZ7VhwbP zu7Jcp2hWXvzAu;o7lBsZO-fAq1HlnVf>Z`-f@p^yLc+*%pYK6vF zr-lIfA#8Ypa?jC40cb*Mr#tS9y+di@CnWcxJ5&`fs)y-84Jt4wsMvwa0!bp!m@Ood z^H5ApQB!812+=25bOA(tB{4$KB`d>d{=Y@7$gKJ#db*dUCi9 za~xy5hiN0$23Y~bTyX}KQW?v204VxGEinIx;owJ3?32guRpOW)QB{)QX|M}AA&J=Z z{>O;JQ`)8)a)YV)9;3@WD?Lguv4eK&S9)w7Uv94av-rLEtMU8%FU9Zq&&BVh=lm4(fWgcTTp0ss)0lp(vq%x98Xn|IPXpNCc4I z=uf-~7g-dcB(|ue-^ur#YuL4zffVI`Gl6XUTd*#?FI&2w=H3jw9;nqGt(s`I7Q!9* zB&uG7_J{qLyW^A`Bs$ZK9p{|`DpWU~r=BU$$RM^1Y9D`*yJRKez`;SO4?opY`|lBP z*?*6-ORd!KI6_oHGi)7RcF)UPYpl>9Mp23dQI>>$d3d=qV_eaP2{QqN6s}%(U(=NXV_5QVF=GMgk2iY&b@DY zeNArx^=jP{Pp57t(X;BFvjQ69SSEn;y4@FX3y{J|83to2_$Y}ChuM(YvH-|qQo=Q8 z`4=}HlfRH`N$|e`Mz)V}N%Y|XW(-ZRJa0U}nSr&)Vn7_i)T@_(PT*(9vHTumSqXxJ z#Flm>v34MT{YY|{rjfLGH0^NkpM4n#V};^9}^} zRmL)(k+dU<+F|U}{k5I=2yWLvOkZo}e+VS;e^1i~#RIkslsF|OBO%U868>Q;aN|Y7 zK}!*uydndY^Jab!->1V3inoFPFhGLFp?7wK`)bi{n>!*~_4`_P=l;u;!({ zPULFBlHILu`5O+-m{XY^|80$H>=_JVY@(U&Ysx2zHp%+!as zLk?)+TkcSote4+R<6l8nPxs_%mvV{T+K(wjt)>Z6s@LAJLGzr#!Om)`#lm2fU;aEgW7n8#N2#w8U%kv~ z<+dUY)1l5K>YUA@F{0ZwmKDGi(3Ve|UW_!70P3pFV8XQ!o609E%^XFTPc6~zDl;oG z74^fgb}Y8o7NZbjpelA_2BZYt_u83&X2(-c$yK1?nU=`?e^W1pP zR1tvk*~DrU-4X>`kq_{O;&8HP>9L0Nh)HW=&+r(RA%u32UY6200844P#Kci9G}VSy z+f0B^4nVoex3IVooYq@24s(+iei@{lgD@N-5HKdHOi1I;4vVFn=XMU$B!VQ*~x9vz^c94XL4P^;fmzu0{DXXqge z0|7UnR5Y;{+4Et|+t%=n3>vm~d^4h$kHDOV1bf86)R?N=yEgHjOvvQIIq3BaJF}r z?JM+K(JnL@hWbi`S~OQ;F8%ihvB369R}#E{^uiDQ@(4^is^IJKeW$feL;xMq@&iIjDvf89d$d$m^O!E77%gNGD=ZmEa)7Fs zx(R}Owl24Mjd+khjEOUB-(3N(MP1J6IKF2V!I?%E$9E+n9@+QZS>s5t7n&44J?Jko z4|CL(c~1^3`Pk@0BZO&Q&$Jh=n>y@G!GY5S$vk=?&y`ndwY8nttFcKwJeth>5DEfD zLj*Sa6(>swrMY@(vwCrU>WNLM22)7Y^r=P;K$eJM>gLfTkK0P*d}3~~7^EFtSUgdA zPVbfg){^I+6r`Vo(#-TTx|m$9?jT*_gL?jsK8J;T=$sD3D?=?`U%z`=>F9`4YGEp> zrl~~hL_(*wFw%_`(1xMLVg%YIJHJ>+F(e!SVE7_f6@+3VP=lo+4FO<>Ex7!XgGy_2 z%$+Zl!w`T;Z~WVRNQv3W=Gp37kw>xb5YP**cs_(!#an_|NAS@vc?r{Iv$T0nLZh8i z`RPGw^)4~*Q`5X#;(0;T+HWor4@Kjhj)HO{;Ues2vQ5=0C4+phVlJ2k*w-4xJ`9$gM8(($aI(f^# zaMR)dq$xCXncvZ)L!Lq5<$>3dYP`0b_X70}&ZKk>%Kr}S}<4~AOvvFTlkiq9vE~{;M&+1RrU7e;+^b81P?XskB#KwCXCXiEh;Hg>7_lw zd>*7Y&G9d7ne-tYy7^o`sK0715djGGYmrdH+=B8YQT5E?rzYHDQ04%)S0KK^ zuP%;wfnV()`dNN;Y}RM_70AB8?{3kCX&>R3p~Yi+H^)T*R(d5GWBSm0yLWE#}Y8Q@iu3<))aKygD@5}k%*OQeR@ zMOI$PL6xbg={_Iu#(}Jr?8$YSsgDRPe!)iAC@(O@;q=0%pYH2|1P$DJHJD@x^N5V?lS4EA=|xS>|-a%9N@y)wF^|fTxNq zEl_3SYI2mu_NlRTHFi{!A^{&vLjwE9-%ldQ?(2k*Z369A-_(e^kao0u!v<#~_@IX! zr5BrW*}5q9vD}iJnl7DP`viw=J@PUB89p+t&-T8RSa-1L-qpO1|5EgbxTwixRq5=% z>OsI15zOneYZs=I@dc|>h=PRCg?e&!{u3X5a=Na4OWDGMO4seySsy>H@q1nc2q#n3 zJ)YFi&HDKJ$RhD96@B>Qlro3&HvO==^0%J)@W&tHhidnj2x9a5UQ@@kmV_LdY^GB^ zLt7%K>CJ_triGsBc#=(_r>ef$;vS*hCGF=~oPd%i^aOSoe+i*4$WmTE=$zkqQ=@at zUp9&`d{o0rC>q68;sdM62x za3b&oMp}FrWPuF#)_kHx;?RdDx>NZqm^DGupWM_@@Y>3Ajb@h;73TFX;>Vg@$g#O7is;&lyxLw=de>m&RdZ}p zP}gE4-4}tDk+|m1!-_sox?j z&zjR@QxY1Z{9+j8cAQ~U1$>Xn7O8Yt`Hup99Uy;c@Df6X6OgzGbf85;O?*A0iCU}* z#P^w15U666EvlA9^x1^qWDylY=!dA%WKR`QiUa%yVH*A9_x^Trv?P+)KD3x`0DQhk zNc>fB%8?|4$?>R3w^!?HcQx8N8m^G12h&@eI=z)6_Ms=a;OkrKqg;Ix#C=@EbS&90 zpB}iX=iCwygt(a*8j?bTn|p2m9=zWjz=jH|Z=uRe+F+(j2&Mb<53A;AeLU0j7woq< z8Z>=O-MA&5wYH&GtxBn5&^uxr-yF{!>#V66c0!8Owobu_APM38;$ziwqb@xv0C>6|&Toc7-7h==x^BCq9IA}DtWC5g1m{~>UenUF4tmbCG> z9uMRuCVCi;_GF2fAQMgK3wcN-E6t<-Ns6qUV>1}nNa*mhflk51v449H&+-TC&nAr( zq>^UetRpfM5fh#y$q=t4Iz%tUV{@o17x4*@EkAH!CA3EwvL`H+ZaPPtTf z06UU{H4C+pf!h5ohYgQ3fP83hJtX|J8Vtd%R(@zP0uKcfhMG^+bTFl(Z05J$zCbDV z&cd!jeqYNAtO*Eovi}`ZYblh5p-S@!mkMk)dDM7Pe7qgei>znqV;^TWCrOW&3q3lt z#e1FJ-MAupM@8-(QFl?1`0(rM(SXQ5Mk)~nCCNwGW86T^p|54=+d=WN-j{!KW+zTT zPQ+1xDwxEsdtlA**kphU-*I$3dSs&EpA?j?*fW5Qbr7396rjd?#OYBUQxDb>^$0F5 zOWYUwMJw9_vJFFa;HXKc&MmUt1OSw9b?zGEkSavz(J%@{UO=_h1S_?@BqXYC3F(WDp_b>&F2a(OTT~2e7n-wE;)D`QQj}QCv z5?y%_My%2-U}3ilCCu^9E_5~{Ed;blc26*Jn%-vb1@GxKj}AHAH*F(8=xHDBRqyE4 zPT!_?d+(3#e3K#V?rDap!5*}+GTSP)iZp`;Pp)x1X6SAg-QSPttn3weSb$Ub)tM?l z2iZTu0)^kTTW1*V5jJMmPzeEoBXBaa%tAmzw5U2eYHAE~YF_G{Iv(YWQ^fm}$-Txq zfh#@LqG9B7lV)q?yJ)laCd1-$7gtjVo{#RE5-E2T{h?6+nqCab;}|!8d}jkd12)D6 zYa7Y9${}!8A(XkQBmKvOTFg}N=bZ|!_iZ0GU(J%-Bx>txz^b^G$b&@PKTem1Sg=Xb z$~oGg*OF-J13V)#P0FZCrbPU7$TSZ?gO`2`I-PCWbeftLovLY8$M`v@y(`1Bk3J#< z(pAGwq)MJQmI)ww;XYw43-WYzWePBrGPU;c!r*|2gIE}RQH$j>8_d44f|ZdGGrPNN zp$^rJQ%!g&hp6R21y&MdgAo=)CAqd)EPeFUHZ((>JEFM~sDz>5Jqo z@#kZt_$9(-qIjrX{IRM+ zKP1Ft!rzp?oB2D=-!1&z%3sCbYX*W9G<6o$2ieub`!~>4pQqaZsD2HMFnGUxlhS!n zRN|zv`&oK1r6Esp8g!F+CZ_=e=rn{9_ULP9xzFE1b%ypOsRrN4BI}0_1Ay zmMHecw%Czv#onBX$y)oZw%EqDV)v$EFlqCfZL!1KioGcngZ7)>Xp0@%R_u+bn8HPv zU}S(C+*a&#Dn^`-#?cY}H?o@0y#eS_Vwr^XpyHc?|6yv0w z-01qYVy9BEy%hU=TWs&PVt1xu+RFZ`ZLvMuioGEf+efj_wZ(RCEB5+SY(K?_D9L^E z7Nia#c|Qw;bbw<2M_bIdP?(Yf^1B#s2rUn6DP^fY*0BP}_uJzt9%*HoH!-TT*RPiV=m7 z`{ww;PO;;u*v%CCOj~T=4_e`Hb1HV6Vn5#&tF{%Jree2H?C08I{cXi2so1R)+bYG> z#kR#dmBCBHl}B3dvY^%evpMz(A_yCfn0oIy3BUgnTi{lizNicy9r@X7ewW8vBK2SL zcsw4z%;U}R_@nAe&EI{_r&AB<#BgB z{wa^_w9?>T0Q-8$oGxqb~og#{7J8iD^0Wyk@08*~8vkMs`I|5(3({44qe-hZNB zfX)5f13~&v^$VD>)CPj_pXnC>|G9pF?qBE^(0*0F!1XWn3sC=^eu3y;=@)RGCt6dm z{HT5b6*z7vOzDzd-Kq=oheE&@V9iyZQxS|BZfu)_<#CK=rtO zfz$Ws7a)DFeu2>U@w=mubm40?>%t0bA zNY~;-=2)l0&eY&B`?fP8SlY0!C~!?7oBO#V#tTLA}_`?^b-iR4-&`IEio=4t1MJqLNX$!K$SejB7dc zdktqA+IbY=8$BI(Xy;OXXMcv=qpDM)FV-A-m_tV1J-t)Z@#eI5Q3ZVRp?l>woqXsG zCVHzY{E!t#4#`4h);Qmg#H&7&3#judDQ|#vJO$DyPV2Y|u#5v2t{-|LR^S0j5qQLL zA3wa%9$Kgkd2DvYp9bgG{M6@Ymb207KKEPjiRe&=`+B;{3wtyaPp1Rkd$_7_w8VcD z!xKqGqMZ4sz~K=N7~~xMv%^n3sp!skuJ%>3Jq2h4Q4V#&FRpEG=Ojc*UTMvxaQxau zmg@GrSbcMBDfvBE$bFR`P+`@&Vb|2f#bhKwVgjJ9IjziZ?$%Pn0cM)5Gq)jA;c5^9 z=L(kMti!{^96P19$XltGyLm*S)f$3ExvsVN6|F6erS-qEAk#P}jNT@#Uh=}`~ z6Mk1xjlPY6_#y&|;#10^-tahr`Fh^x7^)q-0IF^(cnvi9)RYW|Jlli;934drDXej@ zdqo{$;M(d+02jjm8F{3P8b<^vPCm`P1D%)2XxRRvp)AH;lp*`ar(nNyMPTApUJP$8 z;_yZ4;OZm%2~3HlqV-LDK|H+Lp^vHRp{gb#!`qlC+i<4^f8PB|&siGbs?C$NQ$NoUrvyz2fKXTn^J~D*e4v=@2=)*PsfvMi>#ERwkP~x3ZLf` zrvC9>6<*sA#R_FbWrRyi@(BN_Tw+LT9}VM^7%REN{`8c#lz0VaAa|Gp)sQoMaYyej zPTfl;M^xJ#_Lrvwd&@w3J0T=_!xRfQ+bX15&VQ6=Uag{Y`SCf1VBC1!X4$I*-&3wod018=}PvaLgzaWBsAUajT zp9v_>#UbeQx%w`hs`5UZD4Zqop$UBFaHoFr1~pbSs%2h#)nSJFrIsYQ^t1W^tni>y z*ytvlkhtpswzTZ}){W_SgF8XkFIJB?^Z}fnz9Cy_`sDQNC%ZS)6pgXUwnt_5MzefK zJuCI@4Ye5UtWe7uDbuwF$XTO7Lg6K8UUoVxcUg%U}K|R-l&glKrn}h&^<`t!oH3Az(##|gXQJDq9P`9 z;1LP{qw5SmYrkS=*-~Z^ z;gt?iFh;I;WFu(2@$JOEbty`e`RzebSt%?v%kO}f7Fc2DY@@fW`nVgd+;M<9M7}}L zNXhfPxL73TCdaBXFjxP(bSklwZXEY;Kf5GqPEmtthYI~?tp_7vQ9t=!>qtjvv9DCJ zD+fHPSxYsL}j7@`MA=O>4bM>>LPFX{Z`JGJ9}c4Dx#AWymu*d{)GUf&+n z^DdsL|B#-!I!Ap_NHMYOI%y7H4+~rBup^M^z`lA_f^c`uMav33-KC%PdQCrz^-cOY zQqDL(9L6bWhazg3r-S7d`u*i>a@Ms^&_&mQ?0~Z7kv;&=R6Js8zO1O9_X_yPI-htS z;_c7-tE1(Nc}qm=8X|k%MMPqc7-P|$hT@sc15^wY6vYo2Nx$eRi!tyXaAdsDu!cPg zUm=KeesWlT2TxK&E!>T7fGl?^KY7+r@FeFWJ;{5*SsbS)#*?=gBov8EGK!44gd(G^ zpa}j`Uxh<~aBrY!Jy0|X6tSUMdA&fvHhCOwj41VAiL$Ov{D=?DEuFPY9Ny7IbS-15H%-r^fd(2efO0E@mD3hmA@d6q6X} zHojr7(^OBSgOS&g&QIRbRuJ<#(&=HI$wfMSyq$D@zGRVWFDfJ zktH5VI5rQ_oM8ll)FmVFCPK!IB?)3-VlFVjmUO*+Qy}YPAd6k0N?fXMONGbvYtz$m z{krrts&7wEi}fApse>gAfL~R(hUSGFRqrYz`cPbf6cb3`iu+C61dbIu&0uGg8 z0k_Y)zZf=cd^;*rOvU4LMK3Ggx&b30|HZ(^WN06&N8xBof>DgEIfINDtoB9d<(QVT zClaNL67mp-nO6EZn;k29p>iZF;($-IS$$Mb-p=`R=lfm})2f;4aM0f$yWD%n^eEzcu{r-J?nBhw(%TVjB&P?Fe2II>dZO)UZAo*9Q&1akwbQ4ETD0 z)ZU>4Nv2hrNE``B(zn#2D;*PI>Ldq|9F`Ii41IdO+J$$f`@NA8JtH$+``Xp0U|O)3 z04x(A$=}rIVH(vA_f*r;WIr;OI`#uh6vX;_HN&ar-+@h}rfH9eTA1`^r2YEsJ*Y@R zm=szRVMhUgah!(A%^#5po!&xfI3`M2$n`a(hHIjv!hkiYCO+5eF=@xqOv9jkKfRdl zYaabC-4$`I%BxGDyYx$);l1=o-Qd0SMIGS1^g>PZp4$f|hja>I4{VQ2ZEo@WM?M&> zs#7%^YrT#TFi9OzAKaU%H}}vr^@0>&lvTg_K??9WP`;u&7Cl)_Ia*Y`Dhdii2+GKf zUJC-*7iIjr-E68|7DgHQ9$w0@!^TL(i02DU4T;H2oUadwL}_$G0)AaTY+!&2QSn4m zYiJDi<}wDxdAz(Z#9PV>qkBzx0n&AP*$)I&wSK7jV0}cuG<3&r-IyGN_Ivf=_c~D> zSt1cdLa%Hgz^yu7A{eB`y#lHV$u3b%SRI*e)!nXL25Ey8!L5UwLc0OAuH8U+s8=xK z#}}LcgD4N44w24}w{a;wITN8^qfus;bqe1e)w6U8Bp~o%oS8rby~(X6{mCW*&uS(^ zad&;IV7@1`&Hm6fheO*e)|<+^r5FRpiwSUZQT#`XE%C zgOZ0xx_Sw!013bxKo{6r9ws@FY|Lzl1aJ)G84lSUQC2L>K#p`n41gE*;JC{XImDS+B}ji3ruYuB~wYp z5oDcArA!ZBgQ>Kym`Y2%)vrJC1BUDRou%ZM6Wtg>%l1YA1rT3z78+UCly>HGfp ztv$|a{IxhivNt&a$8i40iREzawARVBPxXnl#o^q-Xuj942H46HTM6V6SAwr7PQn0E z&3wBN5YK$Dn^%yLr*`bZl_-*!(YLtL{lwI9j4?OW79a38mP6Cx2XBv@<-rI{6csx# z6(1ms#tOigN_r!bfP&&!%B1&D$eqK%BS(Tqj%FV5jB;FL(rd~D<(49yj+dLSS~+#B zJBPHXlqVC0DQAmh5MdQ90Beqy)&OhlN{yRGP6@)n#6MWD?5L&;bI4iqYZ;>x?S4YX z4#R_HJS;vEu#OUajNY}%J%1!|A+s4k^8;e~RoDGM0ZQ1VR)wT)lk?j5N`D0W#L0V# z&f8m0D6Xva!kC4Hp*mY?`1+w*T4u#S){VphHg`Rb3s|(bC@9F4eHywG4Cc_3{IGhW z9~K2P5|;Mn_<T1N!S)4fumJm**Z`v4;;LZ!O zX*AgQ^X^eWDqg>V?_dp=^W-qGhgcGXR<#Ye|IZ-ja+d<^vofrYTzTJ1>83 zwZGfm?NMykVD(4-el6c(!D%_9YA$=x%~NkLw2{WtRZDIUk;@tyh}44H>+Ji7V4R5X z(*Bg=Gl__>ITGU<5tXE(-ntHKt(X#OUIJwnlQ+@;dA~((q%qLEbnEu?EuhcKwecGbLC-dJL6*e0Fw3^2x7H5X>nfCq*BE8iw9B^)_W)#YdL+>;4^_tHLG<1x-H& zw7{9f_T800r?sOC`ehyW@qR-%wOv9{Q=B%O>-8e-gtE(&U^ zAm_PYo_NvP8qzgh6ir&>aJWoUKNYoFgs>uAix6JqrDfx~pLr%Z>}s!%vjpg?9y3V> z5snfOG6@vDBK`Q$Y!VG_szg36H=oot7bwqbX^WFVNsuJvh_^n@eXWxB_%Xah<(C#% zE$$;}CEo7l$SQ)XT*d;=2Qsrzj|k*2tAQ#ZG(8GrR3W`|de$~P5oRK3Fp~;$FhX0v zWkNYGW(bzk-WEXC0hBXDA(2tQ8DEG(BBRp-RV50Ej7}$%Aqt6%fnO*;naq zPz0zi+bsHulcdO_J31amSmV^LdLXHTsq!Hr28_$PFU$`0LqvsfBM}h7h1K`Jw&Tw( zR)1rUKSOUhVggc>8b{YkG_7;s83I1Vm=S1!n23@(l+jE2yv9BoC3y3c30!ri8f6AmXDA21 z53#D!N&Q41(1wFxDrf6@(m05HUWbh>)I=r3VPlo3lV}aaLl7A*9kas zM=@K~ymD>o$$0V}Rwc*F^5uS9gOE1q3Ivk@b!gnvyt`SGDTJtEUGjevSwL(fToo-H z@flDGfg}S>(g7TeO*9ukU=xpb?G|TWHbFoU8oRs2nL&5b1SR00y|?&Bh}g*{1Auc> zMZ{4!FYQ?N96x{5^p^k8@<8DmaUvUmrtC#F+_7=$*dHlS)T&4vL2}ymy`qRXk;DMf z=lo7U#__baAxuIRM7kfPCbT12$TBpL&Qcc&9hZ@g?9O(gauLyBu2rhpI3Z|JQ=43t zm!y$poX845_J%JAx^{xh+-;hscz!Bf%I!{Qra;JVYdQMclNvBGxP1SNic3b9lr5(q z!%NDuPC>@!6iMm(!`9$q#I`do_3PY4VtxsmvSnt%>z&0NS$7g-Xhz(OnK;R- z2g2Ku40L=lQia3l^Z+3s=B?Q+7y>zZtYOk$wy~M`uz_Mkbm7U^m76*{AoQpg0w#4Y z^~-%!t_)}mKts{3$_|ob7&^irX4cH$JS;~@YMbqG0Lahlrb{N`L5DDzLh=T>i&1Py9w9*550!$8Ec+=w8>^OAw}<9YND_%dRbn~z8d zMV(NK4nQSN);6Q7D-~_8gC45p?h&YBaMgiBvtH7S8hl8!gqF6rSz@Gci~E)ZLIQmO zXPGS+Ni)f|eU0FmD0*oacgE1v`tVjunDA}<&B_k@L8e4=)MntiW)sL7snZ!g$ zj7$AmY^3hah=}E%u3{rQ>fdsjyA`%?VqfWOCto3A5Zq!6D=bk*1~j-4p1enPtT+=$ zuNa3?L@;%4v-e~7C|1(etKCeV#J+-U>pizY1CSF4e%agB`DO$uU9)XnQ<47ozlYG; z{oXuF_kevFF_M{zL9O7o9IJR~G|*`qzUuTULEbMz$imGSL<{q9;-%};dv7_p1;+*AQo{MX! zBpv2tO((5wFGlkGB;793PIjnEfn+g7PNF+1e^PKXEV;?*ovXe4A`zu)#w#CL)buAf zVldrxv<&zYS9$Kq4YrL6K1wQlJ0j>?hvk52D{VwKnHZ0ANjsslRm|U~rB2kl?2a^& zq`v0Nmobu(#0b(zO424$E&-ShSV7S$-KE}jzP51d^J*OkrPDL#^lGJVOt>B;2 zT&Cc2XUpMgBGb5q-F-e?`iv4(pE17Y#vH50$ERc(YJ-L53#eiDDb*Tn+>b$`j_Mc* zs6`+lKCiAk;RNV0yVb!o`s@Kr(lpZPKw%D|kO{o*raqW0Qf|&=px89HPX<~C;H1KB8LIOjfdH}Vuf9>xNs}ZIR8!s>lkz900 zDxaBkx<6049h=Ug$WwIRo#zAX7g*hZ!xm)zOSs!JqQyiK7cqFyO{{x9njITS{c7`( zYa93j{WBsYe8?P(y>W4rTkKB8v$4_~`z{5iR3DH|V26;lZF%dmv~%-l!|tSd_zoiU z>)~73y`*hi%*o{Am`i>SUt_YEPJUa^5+EH@7nd4tYFesU@FiT0IUEwR^Ii5JCBeH$ zqf)i=GOq+6@1dGcidEoxCnv1nGs67>J^HDa&25z*g@+?Dv*Gwz8nRoA=-|l#i#<0_G*c zL~Q=n@?jx8(siD=&I$68wNCx5CdP-tbZhW5GXlgmMdFZqlrl73@eh@Vc&(?=HZxv- zO4(%X%#)G@L<>pPc&b4Qn^CYiy|v2DqBI%qp6CJv{n3HS7c*%9QcRlCmuCs@Dv z3cp%RxJ(v>msE;Dv8t=-04FAT{fp_Z*S}uiSMl>#`PD+gKgSaRh|}6aI_Ul~rVk#g zzS60R$Fh{E}=!bALEaV%?xcO%7?`NWH&X70UU%`${f--QRJ6r3H{S6fQiORb7 z>QVYv>9`JuW&4+b9i{ZlS-H)9HNk&Ny0E$w8VqcxZ7Cp#( zxxfhyT_#w|OKaeF#WOF=0@z#~gQ_@xwy&9q?9%|JUm$D;W%vcccO(Zdl_G&)m!tIo znHR_EgZkO8mvn|Y`lKDg@VTa8~wwYi=pi38~@l@ zv{$a2NsY)K-VZ0EuGH3EuO7Mey&`V+Ae`xnY^L;HxsIm$sAf8m0kN;0Jx`=s_Nkjg ze%$H3Ua3-#5rf7)IHxO}{>C^gC4{ZOU%I&fs3IzKj;w~hr=VfI&N$+viOeKs2Nt#@ zZ$u-hrhHuSiw-fU#rNxjGh~X>En-AZ9WkSH$csDDyEVT^&6fpNg=_+FooB30nIbNe zd5M)C)JjME+1oTQNnQk$I;oG3`IiRAUxp|(^}1+Nn1>&zrZ5E+N_0mxdfh9a&W=Z) zz1X+fGO_D!7~t)LTOIm-D851H@FjO`{dS@UfXR>~6gf8Ej!QCsrEjaTrV>)>5(RjTFgL_0)(vLt1}G9=EEp)y__GDMX~(F3biOL1cERk0GA!?7wJu7|hx9@bVM>kQ;(7F3YOWg@(zhz-QL^j;0h2c4eWnp=?2v;Csjy5FuT>)%BWO6t-HHWv5I>n>|*Y1n_11Vwag| zqQWqpP7K~7ha2KbB+ZlKH<&=GRR*n}_h5%Oo9|f^)+c1a)T+>jEi5H|ApgYR;nS}@q$AU@?8Z92_+HWnDJAu8tg(s7)(Ndu;c3y!GYu# zGGb>qOMzkq3L_FFbKO{(ElD^}Q8WpeR81tn@tS_YbGCB$2@W)osNrW2dDx#w5clyS z>O^Q16Oxj{Wq=2Mvns-6Qh^M5d3Ry3P+w0 z&9|mmT2Ci4NIIzC>0mXB=ZrE*a`}6pugVc4OU8GSI}%;0yNdV`OAo|`!bq5Dk=Obs zbjm#w&~NGYHLuvhan?t<^y!PGiDALJLLjkAPFia64?dP(MmT_8sV$#VLoNSHzp5g% zA80RcBKl+vicEfXE@gkX$ zL*$HI#QnuEY9s#|CxT^QxMNcZYJzJTGR777YliG`kj|7;+2mM|SSm26*>QVdwn*jz~ zk8#F1%RV}+1zwT1kbU5`HT$%10suqVyIy$-nQa9{E=T@=U?A_GYiWU?x3Zg8oN8*I zHWX1KE5Uf?0I_(oiCd=38FF-^n7onZIeA%tjI>P|kR?Jc(oQOEGf%;XnoN>#vLtZo zv_yJ6;3PK2D65_`C?qCL3w~8 zMUPUVfB@cdfp6x+zX=0e0kT+aSgv(crURYa={SlXt_3TfPvV6cWG%UnZe7%fN_ZQBk1t6xbieng? zZ7}nK5~SYYIRyFO15G6cMlQgA4gM;yGajru8jR_(aYkf&7>>OyM3y2^OD*$pTd1?Rg(=<|<8TzD|BAspw#x59_+yYF4$138H0k~G;#_}C0e z=eOo^GVv}c>c!9zEp-G;5LZYb2{y#d!r%-gMLy>2kOI+DF;`A(MUDJh*cb~EH4E2> znpQFvHHjWU-sq|X;<&H{-iDV^yg)aBaTXp)piFx1jT;VW&Jqs2tWj$2DVNdbPT^ck zLQyWr)Ki_Q73oMVdWx^I?P(EUgIcn?v|iR0>}AfkRptEUzgNW-#`u>b=s20|Lr@NNhoywtff| z*)PuEg&`EWF;9KJ#& zxLbJIc&I%Gm8xeJWP4lS7@j~VvixW3O{bbkBwa+>#OZH%*<^YJ41Dx~H6Y`b#7=N1 zI|3|VBnnj?S+isv6U_`BiZ5A9GnM2lda3ukV?e#8_EwYXT}z(1yhL@aRmH4p7`9cc zV4n*$pOTQ(o0L-XY2GZ@{KgfiQJobQ5W56;QneS;BOm^#fTn?LYChW0tV%;G5BMjw zN4SEhLkd+Bb_b8e%MvfGl24xFhoZ+(z1)B-40+QsT3cI1bdp*EVLK$D_Wh-w54oxd zE<4?@!b%pbrb*!@E0+B8z7(AgbqV&vc^XNRNHuI4md5b9IX9hn~G zR!Cb`xeRTcS*FM~c8Q>_#OS;e)Hdy_L7Co$5DdUaikkt1@nRf99)sFnF)#J4u>L)% zj%G9pDJPw$%@%ST^lEP+X7`1*WsdlXZHYn%g>~mEMTD}J77|P)3IBG#`iNOE#1S$i zAKFNh5+`?6+^`A7KLCf$$bbDlEx{A{2}#9FMlio%r&Bd)1!Xw$I?>U z;^a~b9bDbTD~5}1vb9{=LPVTp!T7Th6_-O9VAdA zA>GzHeS?@5CjA|uV_gJuD7si=Y4->}f}vN-1L&cPgsrTmQk=Ln5(b1c5|BhR)1HD{ zE0(G%hBX10TXflT4y( z(2A-8Pdb7a8K>DZp4EtcXM(Xp^@Pg!s1sb>4q4F;D<=4oReI6uT5@2RX$W_dsSiWb zLi`uhq~$OW4>ipPHO;TC(6pErM*xl1`r~|R9cC*9%ApDL@Fv#Jba#&n(Gxj7s)mcV zkg0TZMka3p4T-W^6UaGBfGKkyE6o28mtJ2Dj zz(70xT4&u^IZnpVEwv)vXokQy$Sj2_+2yV^4mHP7erS~mM=pdLD#b2&4AeAT)}Ua8 z7+dovr<;$zk=Th{kKI4*Z!ka?v?J=O$*3G1Vf868d_QHBx6P@JHE<2wTr8@jIG*(> zi_>q#q&D*Gp*~wOjrt-?FpD+_+1BP zwp1pJTGO^YvoM2k_SCx{z<2>X59l9`ed&>EVSYV;{=^#_?wS|Hyb>US;ja~l3eJNB zF|7owdhOe2HAs%ojMZ<`DW5uM5m3a+8;)BoGKrq$Q+hnnHQba$hjQ%7U5@C~A9>-2 zvV&Rhyc=&s!n|aZN){`|WMS)_CBAM$nD3p2(xd~_=BBt=Pg7?ET~9P`%Q*y}-$9(` z@HyY+cL-AQwJLzM&!E(^OqJD~4o^q)!sSz_#! z5;U>RNht0eKf!_!`cG2EOoI&A#uU~$*JX^og)!F67{L|(<{D`d3uhj;Y9=^MI10jo;GX@1?6Or-Y z;ju5WJ`(Rw77pss?tBq^>lM}JV&y3a7?s$=5!JRHY9^n<$J4oe45?20);fQAS~J0} zGrvQHHfAX)HN*CA#+HITBrR}DUj0*^a~7P_oPh zCE})5%$QV&OjYhVHgNXJ>)0!fSjDDAH~zyeh1;?za=ZO7FI(P~enhFLz!;9hGjX67ZrY}W{D(b2>7SSrCC4bA-4d(1-QrWrSv z!K_-4WRy)Q$@n^qa#>gC{T; zv|V-9LE4rIlBI?UI-u?O4wwR3*Y(scd$V1~sJYgz%l)P6_(g(-Gt69X>FcmGwkvgYxh5hf!N{o8wZpVz$zya; zS1({wI1}yin9DnOVN73M@oZ9_mkBP|%P)uwY)wgKrG0iRH`7u=m|R1t2t?7~I&4pF zBvdLMNvibS(R_B>)wbpXYS4r*d}v^&?Ht%?QmX126L%RU+BFk)_K_GG$Y^-j!UV^N zHg|7IbS`vK$K-&^9A{}hFiXJBkiI_gCFMo3Y14sYzNTkn^b7;zGSgnKvl$7lg8Oig ze*cy+x^iAqTMx)l=5RF=sLo|BB zIvP!}lOkmuE*MCTivbD-kYAT+lnXy{1{qrhcFQ4T;2H4KoWhMLXpSAzkiKk2|4kw$ zJ?ih$$Hd$jfWRQsmEzPNHYyz>%59LRNvnD&{w{>jvK0?S-yNP@v03`L{3e?e3=qWl z05*h$O2;*qM3%SNZr&m0axAnisgX$$83`tQMDYqkLnRuBWR*YeB$JU0_eJ04gQb#6 zvrc+)ovfm7stk4+cN@Rr-69Qg-noPfk+O8JF(aw=Wu-|<8gM>M#Tiju5HT^Q#$POX z{sI7%pveAE&IhzNXG@`UK6Am6i!(m~=Y@7;EZBFNcvs>}?nB-@^IV^%=~vW>3AdS7 zSj}Z~09>YX05myFdQzB%wILCjm%%a_37cXy;x@!czdhsce(4!uEQ1C*@*o9kKmcTH z)S?rCV&<|9d9&eP_6FnUNqWlYG7vCtKMDk2S_^_-zZwWMYnM7-U$=}$oDo?)N-7f( z{8-&|QASmoz+y<;G(@d;PuAOSz>};P$26J!mIcdmmm@oI{z{gQGjLe460IBj+uOZK zrQfC-RE^DCte~ssMRqoOp`Mdao&8feUk($YuzvCVFzI$Uhfp_)jKBo(F$xGiz*Onp zSp-AbYgl}g-4MrX1YFg-jp^1Li-XhS1)(bNo`9()rY86n8NZJ zzHc)l)W%0+hs(`>onR0SE>dQvXSS)EmPUjP$OkzPFm#jl__vd8vR+jH+etSkozy|y zTUxZbsIID;L|xr{jA~*6ezzXBY&=;92&PGY+fyW;77A(Gg44|SLxvFyX9E#+tpyR0 z2(`_|0SwYW1cm^aYBLbAgjQ`&y0$0v)S+z(pa_#%thIejqqHI`eKKu%QWxy`qfwKi z)(47$`))>!=dYIeo}dC(LJrNVO@UMx-0fOUXQ9%e@(is~qiYpfnPNtXMt41Bi)MDd zbdgO6`M{q9_Mh8{i8XGCRBi(@9*6g){+1{DISHk3n45aV6D8~1g7En~B1xrV5~?!o zK;V>bRHxhr5kGSal9!@*W%9D=7_b?0lbwu69Yc=5-FC)KBNOai1+^GIj)0P%(vPyH-(t0@c0J{+y)hlw3LG~HQlOTq1yrb?G1Bz(-t;-U zMwjdxz9zW0f2f|50G;F-d(^jJ^&aPk?a_P=x-Om1!S~#o+D@*BdZ+w-Yl^6vz;#w6 zBj=>%Z}@IqTE;iZ(lg}w@N>r+<0t8cT9`g4z`Lra-==d{=QNuY3n4%kJz*DoYE5Ok ze0v4Eng;bcpjOcu5E+BQNTOVxn^NdiX;WBGE|)?fS7)2p9eH@Jt^7Xwc^P}yyqk## z{!d??^NDX3)IjTtO#;QMDzLOJOdZ_*xcIHp<0y~cvOS+{m@?3jxcAz1|+j0(8) zAh}AvTb`-tW1PP^=9YI{Amo+rnq+o{Z7M1WGbU!B`|ypfl;3@V_a9D7^iJjJoOc;L6(6y&)GPt?~v!SXl>z8K_DkUktfC~b5g_6 zwoLXA`wSM8s;i!)CXtO`hN+13S%$7?%5hJ-Efa-ss{_VJqsh)7nu{LyzV#IuEjqjK zRn8r4!eS&Hk-B|eR?RM`D{6K?CSZ)WT7)#+;jPDbPkwg*wH$`%nB~+T_xU4eV#7k4nc(!e2#bYvI=tIz069N&+Xu@ zYJ|2^!_DLuZQ4h|?Iv**5>qFvip;$;@_(5cUYkg7u8XS(V!-F+9c~!*zJh#e4DB{p z(4ttGG6@{(`H#v!A1>S0?!2YhhZ^Xh(K0)BEFW(e&%tDBKretwL4%%8uy* z;YL_eNEriFfsJngt84)qU>clWytm|dl~e7 zZ34P5fn#LPgI}3AL|ZdoS49HiRH)ZqpKvl1KAj^)&uOtI{fnB?vaBRQKo8i8aV zcij^GY2X{SLNuKcFh-S~NawisCA-JTD>A!W6a0lTb6T}=iyp89f6<%q4iy}!93Fd( zWeRB7;}#HL>fANKGWCzfj0HR+}{ppnIAj5t9<5b!iFcW2;k!0Z6pVrZY*=5c+SJ>_a6&kjjILqfn{_uvK%3#&vJ@*-4oRJsyj8Yc1 zuV<<(EM<`XNm-~TmyJ|e74fU!cII;vlFO1*tR9(g_<6yom+*@|3PF!eu>B$e;u}&V zLfGhkjx!i57_ise3p&R|w(`6LV!15wWxbK3gnh^^D@Y776bB!Er`PF+-&qLaryqXj zfpL9uh!-wTOz(PWdgAz{@n@$ewS=2E>*R~nLcC&U)=MY+`8v23zp?7g&9brh%~EEB zI(jj~R{kRFJ>$o+Zh;MSf%E{75b+5TyJvpfG(bU`K`8r{jg4FG20S=n+ueEo#EY_5 zp;l}T-+OR+A9LXcb=@bIVG8SSA74V|WdDP=y+rRdh66A92kh;=w@n|EJFp7_rtrSK zyEGOzj)RPY1^U<)Kt$DD8ebqh>-h)Gb;D`Eb#sf7d_BvU+01j|xVU-wIe+rvAu`j5 z_t}DX-bE_<#wF^g8&5h!_s-PESw&@eK4ho3FLh8QU`Z(n+@@GXFbW`iYuQ26$c1wv zCT<@`XM*6y15BBQ7pTQYyPV@8Eu%GaKyR7U{3A*xG{p+)&GUDZrIx=8NOxhbNJ%h} z{}@n_PU@8j`<~8%fkjQQlqIf+65nh1ukCTr3tqhe8o(F;I;?%Pu zu?zTFI(}>H(9~Ftg(=)d_BcA^<>XRG_5NkV?-=$HDfb!CNX4hD$LX+cy*$A#GH4fy z?fU})4LxJ8k{ud3uBldArsmbbnQwiZO>tyjxz1k(lTam=2mk_3hsXYS?2vZX7om!> ztdCQ-QP1$bl$vW~~M(4k$du z$mui9+bCQQSl+nDjYPG;sY0*m^g9aQB6IKoCGw{dj@#MIjI?){F}FwEK$-|#pUsr( zj|VIFk^F~#CRTcrVA@|^+DEHm0a z=rrqCo6fR(6&0kiMZh*n1yMVV2)(KA8&Ly{|Dxg4A%+Nr)TvB)f>76vU+2_scjm;W z8EdNNetK{UJO8oqkc@WYCew5fw`sbII+~`t#2M#6n?#*dzhstsHUg0~4@~`4p%ckw zt09b}kkTw9^u0R@1;*g$T7qj>Dg*Nrr6NKnuHncwVjRI|_p(yenE?*YIEcVD=f&1e zikhdspxX4*-@uqXM8`w}&ecTu>_uJez0EcyL1)_z9qw_5))^)vZ<{9VgRa7KV~147 zPJiE_!q_qH@#U|=I44vq2>_Y#Z49lG=8R>~8oSE&I7??rP=K0|>f?Kf#pO;HzLygf zC{ZV&XFQxwUbkWFa`@i21$^_W?E$l2^s-NAw?r-nh_4z=V4QAE5Z^NWnXh^rK`c#ZfCp*n0)8>LY`rSFc2mvPo}m&pq7=G|AbML2o_ zp}WT3M(Cml7(Aq^$%XW>wPH+4MPf`9a0VXo3v`XW>5Z{3Ifw7o3I zAT8|NG2sh)QXe{t?4_awG-&-7iP>yE{$-b?PwaZ;Wp_Sv`5(Bi2VO{zuchT*NUvXY z$A7(VY_HoR;x!j1bbR2lj;6PpQTP+5&yDzA`AZB*A*Ey^j z98v=#C%exP*Ls7qs_!A#qpt#VsqI$;e3FldMVhjH)pL&5D@4-Aj=6t>h@=#@HY(l) z)5)Dxz!qVIL4wYaH>>W`ZtBbG6e1(uEH1m;!*qXeQ!? zP?NPpKM5b3Cwsx0p0tALeVSvlJjV&*U@p(G0H}?_E#ZYqE_x`+40jmRmce13>I-bs zMJUwnf#30bn$i&a0^Xh!HlSLER2f!m&G|*o#JwCF6Q%0s*o`(gEqM5m^-OO$qpk~>c22WID z)I1=X%;5SZ<&SD){to_WSD2^Fl(G@XWih8|Dl??4IYr88I*m!f?tI`_!AQy!&;&nX zWzm!Rg(gAR zQ7H?jdEbU%Soo9G8I5%v3um7R9AaS}dO;B8Nbh{M&Ctn|bb?s;a~u@_fN0!<1)ec_ zREh1`02cwc+sEGF0?pQ8zQ{LbIlqdw@+P0{%dQOo)$Cf^0T99kooY$BO4?469sx_` zEz?Ba5N7dywV_zD*x0?3KD=44jt=$eOQdOL-LP(bd8okp#qKTX6Kgwml}3JSsF82v zRitBQm0RAbHNrx-wT%#nV)T~1nTo?p07GEEz)_L_36{pfRD$IJm*tT#7g^^OGiEM1 zQ!XPB@eu0?(zuMx+sI@xx%|j zKj*;|6IcZfJ}P>FbretGDNnf8%>LbLB0+H+h-ddp^6H$5uz|80_!bzJ>G!FNhxSuL znouY9PVMB^EW*FveE}>F;^a}I!AUmB{1ZFI$5Fc33c7R-fVvGpSg^jEo8>_#YRvl!_kK3twa(i5d1v`2t4*28EY(O|7qP=XhyH{vzgI zR>!xt=cnHsoW4Fd{rceaYx$|(eoaHBa%7ywk!rV`qqw$RF`k+kbCG4oPm+j?PlCoC zFkBf38{@u7{7jp8X`sLvGrpL?YAis<gjWGg$W$3 z4QD42AeVW8il=_ca~}!Fk}anGCapt%hsIqWO)^m+Jvw&G3@KNXMw( zu{P3{l%QZw(~d|43gdyCM0`!jYB1>(y7AaJ6X+rtl2|e;f@aV|ild}EU^6JG!*q`) z9-U%U3o{twx4Rikt#>!=mtXU~^h|z@hS@lyxl=QmI|uSt9Z=1mS9GzLDKE-v5O_q`Q1 z3p;Se->&2KzK-l6&b?1Ob?VGCZxH795jMW};B9Qot~VhT($G-{N;A=i$F}J*%W)L8 zrYE_>A-8dmNqE}I3r2zLjR56R?_3(=Cko6BK9 z;LzG6WgG?s4lVLAN0DSs;CX~3BU}YYAY28Z91-8ZIkm`_fN-_ni?ITPi)rt^4-Da= zp488bA$B^#op6M^+Y#koiWR1{21a;U(~U$d0Kwf0nH3C z>*XI{p*d+h@Jzu+6F}_YC0f%s8Z@O(WBO;v)WvE2>6ptCp2X6G;$%8Oo+ebT>CS9@Hl(ms4OuC_Ufd3&B4eN!HxyCHY@59W)InM6w~CFqx) z-D=5rkVEQFdoyFEVeA9k`-I$m4tb^_cC01b6krivh zp@zBMAu1<_Hf{IqIfib^F*KleGV0RjHd6V%8IOEcn-EMz;un6;1d45I;Li8i`3saI zZ-&lYxkM-&q4J;Hy?p`))Y)#itp-K&Sr0VQ%s2VYq$K@gM9ZKNDWdX&L{vR3^V7d^ z`#Z+OgA9je*uE3qQM%syv)sXt%rZ0;s>4ZtoMDGus9=iO?K9z0=W=Q;qcT zgzKn65+b!+$W7Qf51~12bV7@|4aa!_TbLSx^MY5bARm&*G#~whn1EoH=@S^xnsb|S zs9|QU_Z?zxXv%-55XKf1ZdbgU9YNBM99^Qb9AhG|9BIrmSYOz@gJl73?-t1X^z?p* z!Ab5;zf;1Y_z_>^g$|$0c49I`0sxr2YNcI1l&QkcYG&;syfWX)rU(Qj9O~8qZ8;a=>8` zP#N}ev;Z!{US0smCbXGxUVxK3F$4DU0=!@mvPKNf(z7XT9CS1EhM2j<5HLOaD62&rhe|`JdxZ3~90?` z@JEEE$KW2mazkV1U-ZY$zj&JU823E1cWmYjW=>8M3vg*Ed$b`ByN}TutsxoL+iaVp z5E?;L`aAw9`m={EgQ$$qqwZ5D89Le-?zzXbBzDli-4AQWENU`G-Ui~c{Euw^L*5>; zBgWl(quXUyyZILv3dG;_x6u=pl5=u_+K7W%XKf$) zag~g%eM#LXCGTnHz z^!Po`T_T->PL8of@j6&)0gfu)MfuZHKdSS35H#2PeAt3mELv=f$>32}&^s2CZ+ z=#pQE00~@lo>kDC9oj>)EPgN>c=EXSJQHm9T)K!gwMYAB02wYR^PayrJ#pftXO7?V zbLG0ve1eIa&8Ifm>YYJzq6PLv`;DZ6N!;oV0^bKBG#*TQS7Y+p)!YI`=28?>}99kvwT{}zr=Gpp8fc=ULHKB0c3@)v)q3k z=5f_r6lH$MBNz18*fBiTR|-#yam75InB(-!Jx{-MNyMs?>21#&mi%qcL#Kcf)>QfP zhv4`P;N7g=tS+j}o1k8gR<>P&rl~h=4>G4-tgKnB?*5%eSTAv5*Y1CEcd)V&_xkhQB|iz~7viYx&o4#sIsd4?5HIz+ zU4JoHI`4Ov!)_F>oaoKRk>Bt7D|5a1rPDeK{Dq)*D(?AVupET*{qv8<{ng%*-#@<` zuc(ew{W%`*t}aA=C-#eex9680UGk~CcU~3r=VCuuT?(xaCl|ZX>Oy>y+Lqqk*9(ty zm*V&MPsh;~-Z`n4PTE_ld3L2Agr{f2?n-~fpI=eM=i|N~b{Cgd`*HN1$q9b$n~(hS z-BlW1SnyA#_lDm*dC!Tt`IVue1SzDt2|$SAWPScyvMsCWLZm0oz)srmlgYUfUdctZiaM=0Y?do` zEuRfm7VlW?&o8XpQM|K!XVKnp@SBV0PtEo30z-H9R`TA=FD`d`0_N&cUwvQd_Wh5> zz3zMb^iDS9#nqL*?*=@;%zSiCFD=9?D;gI>n8Cumz2Yi%C|ZJ&*4_85R>Gvxgxfi9@B6o>RFER=fvip7>WDuZNcunyTu#0d@I4i* z0Mdo|4yf*icb$ntE;lk}ycGFI-z%QlcrRsIyZguxv82$aXqf)E6n|#qm;)fiUn0T- z6b@Qx75PI(r3q{-&UNiNrn1+@Qr2!$9QqMf8JeX$Xej=rQ0{G8PpKfM|(oY0^|fz}m6+jjzAYxyBKH|tmfq`_nJ zOQ*!H%iU#vu?qnr0#=cPM%~M+D|2z=fB}fzu!pG&`U>ab@HB%r&VwdGD!B{d2;-FX zPKpO+;hdA1FoKnlp}p>+e{v~~qgnWS>GVp<4Qq;o5PG({5Fq&cvq%EN;z~dT^Zj_y z`YA5(Pxj*Fg&>R<5!ADb!SaB&X8OEi^~}Ta@T{YO3=z;K%;(fZ9E56s-l)$e2CYr8 zeaeG|sS`bP4}iNb=m#HMiqFBZ^zZ&|^5Bw5P?bM;*Q5UZy5n6M z=IQ@p47|@HV&(!wO&s0n&vXz?RGX7#uudgYdq~KUw$Q{Bi7xKjZ6uw&`c6v0|}UDwd0tVzpQ+ z){Bi|v)C#XOQlk|R4G+UwNky*C^bv1aRxlw6U8?{Eg(P%Uqt!A-VYL=UoX0=&s)|-uHv)O9V#TL!CsJg{# zEsBnJA&#?#Qg{0BYTvFLQ>@YCZR0h>x46*npyY=oXv#*J^6v#pr(kNttnt2NUuH~6 z7Nk!jN_q%E6qnV9hOmoVmGpwMvre6?m4mVadT_~I%iRSGg)Y)&wS)9REKqLzbeB|m zIKPm|A*356?WJ>l9nK)EG5(g9dtErx57FJHkaE!~cHt?1xfib>HykT1$G!P(G{1x( z>%rIlnQlMrzE#xe+QHQxEcbMU;K2ZtAn(P&@)c^;ZEVk6_E_b;K?^1&!c`hx>W`@L zR1XQ~tAml#CkF8Or2tuVMj9tvh=Zk7B)NKPt(KW&o z(L>LS3=k$XWa2N?mrks0C|{gkK`MoFsu`Qj8dwVL0GNWMNXBIB&jrrTikG^pr_3gb zR_0xmGMv+=Ru;P1m{WX+wpQjbLm{S-D3akXsAmwP8)xU2fB~wi(+zr&1B6*|{@FSF zg{&TbnNDT!N$buKGZ&n})L2cD`EVXQK+wqVpu@{(g~+H1=nOh;z;;@^wQDH%HR=E_6AiCIu7T7_Z3_)$;Z+9Wmx}<9Pk=+SdLb8==T=w zDmLbUUhqY5JirI7_}!(2^P*jOHd1Jb=rVw07br&(nG8W)zHha+iV}_H9p9$H8YL-H zO(snQPe43a(K7JU`=k5YU6u=id4beOAKX|U9SY47F*(?a7Xxue&zU8lo#s}Me-NwM zdusv==z|uMVQ1P-B86SfdR_hR;xj=!@==9UfQ3H{NG1OUD05E+3y%3@tDlXdtWc0V z6ZgAuCv5A$7p;m4slM;U=X9gXqxsm`a*LiukMWI(MbKnxBKsX zum3|wSMWjN#diB)3osmg!Y=Q=yWP$nTMl{w7g*=6_ux~su(Z0ca6|;!i&4f{nVBYV zzP3z0a(vRXFK>XHj# zfCa#bOmN|kZcjtbA?bhYnU%PYHh|aU)3PP0fGo z88rU@-|Au8A=^%^hw(~#VIf@6Azsn}>8Hcef?WY4@z{|3%~{7PzM8z$%luqjK5v~3 z>7~@w5EJ5niFZ!mhoMdu2L{uoEU@)f<>XoAL+!dT7SufO8Z@7i>`3ga!Oh^Mj2s7j z9z_outBX3wYU9v9*VCZ~0dhFkpFb`sh3qqH%al?~kVdNJ&8cFl zMfwi)O6?$RTyxeca@hEwH;)|oC~S^Ny-pI!{IDpVWLD~?SjaDxUlNnp^6C4?-XM#R z&~d`o={<=^dyPQhmdWsr6%6c7_neL8&O7f?JOgP&q*!6mEmwCJ6nz@YWC%2wC65o} zf~tzg^H@6uAF~L!l<3{z>in%&F_v{86lxXq0v#k~IGmkdz@7|XppYuxw7j|38N{ng z)O8y2PfUFV3%F=RwXHC^Q|&-nI)vPitelm8;u<@8X(fq!x+V}BNM~yP0V_-T47$$r z1`nI@gPsA`vk|@)V%K!a@Eg{EToMCgr@Iu1Emh?lf$X()LLAtK&R-pFJbMzyHOB04 ziYpzd4N2o1F-Bro{aN8lBje?TV19A7$GH0O8tiQ*pNH-Jtop^(K9q|oZy|>`%F45A z1FE90Xy^>69h|ZhzMb=Zok}AP`;F%D8thZWo}r`L@5D>YYJ~FvQMHU1O-AD9++i3P zuB;cQ{#=ru!NNFxOeQSQX{eYW0KNyVi3_QDusiBA062NHw9mfCK=ifAcrqzsYZ`fbcXcy;~ zoVOA8-o4@va|G;xN0ZqCP;FsT!Bs=g{1$g>WQ__5or1xba=^OFB;WwR zcV-kSA4wLtnXZF=IfHc}4@liPJNpi{wY&o}Ac#!F|I zz!AgC_)HC1T{1s0e3=P2-Ey+YMXcqQ4{*G7(zj_7n0H8ps7f^D$w!wZVcYH1rL(hJQGn0Z*! z&S?7FoF6tk&(N7evlld)4fluUQ;06eW8G-cEixJGX4*3FY}$b<)$gWC3p3yNdxhQq zXn%qD_d6NuPwXrd_H$goeV*WW2j%bL_|?6I!rM4LFy_h^zpqd@%=H_$77CAYJj1V^ zUtj)-wEVU0g~BP$4}+eA9RCv6Kge;M_H=z?+V1b|C=@2S{yN7SIQ|hw^{2@Fk8u1c zeh={bvs}M}W7gl#(oePjE0oiuB@KgQz z5!GtE9|q1o$8#L@-laqQ$$l7s>Uf1QsjZ*j8NgHc3`ZN=54bvB0tUMO%aq^5@l}re zFMNM`|F5U_GhDsS&HK17Mpr+6-!Bw+w6MPXGc-O7!|eJ8f#p7)&#wP~O7#9R188wP z#!>IxItD#)^tpcfQ2F2Gd6j4V`8@aE$F=Y~+@JO38Ek$8z)^MK7)Qb9uZ_F$KgQry z$HyptfMdchw+crnf7ejC=s@Lva3lAI%720L5Agd-lsAXUf1dL{!SC~w3x`?#f0^?# zzrR6y?;k4v`<$!(Cnz6&{&&;z`>3bH`6@^C|CiJ93=diP4^u99WN=zv{=&@;-e2c9 z4Damuv0EITHJ0Ie^sw5k(n&y{H z*Yh6b#i4S+Smj@)Ucu*&IEr4g_a08~XXD7qvv#ubKTo~t*KvN;e%7z`zgV1>I;a7Eh;rm^GzR7V-f70vq{aOEh;gDhEVLzn|l``4!z{*Ke%5R_7!Ov-{q<>({vl>hk-4xbFI& zb3Oe2zgTzu`&{3|Z&v@;I3MoMudKWOt6U4V+4H}~`EdO|$F=10GmLi!#|}rq|HB*+ z`-N}vJI3#4xaNPZQ?lz!9=^g&KwtPPJS=+4u78Q^I@ia3z`dX0CA0B<-*bVD!#96$f?znq4UJMtPx80;C(s;wHGZtr;;UlxNGe`qV)^5=Z4) zt<+*}x;LMkKQLwWxWK#h_2A7`;zBI|2H#fBem{Pjy`I4YN1=N5J(se4E)~mm@iwC8F?lDQqRJq*D!QomM?6)^FRTiTT-Xckvxp zZ8?f7<&fNjTG%PYje7XbAC`67ZZG$HOl&Z90O)2djYkdD%bjW|34^#C)`B?tzAHW4 z3L9}HsuxRPtrj;rrSE@o1QdMcq4T@}@+%_&NS3l3`F8t>^h}d1c!fkE+jG^hR;ku2 zak){9l6s}%x3hY4AUz(OH6S1HXV${GRjuK1*PFFkHH<5@;-QDG_O8JnssRk`_QyUJ zE_7GO34G=mI#MilNcbST6{L`l#Inn5S3*KdD(0|rhQ0*2Z92~yAQKi4Oe zbM(X!|3ML;66%Gn#h9QV!ogmRw4CDLh4nGWUC{Ko3(?MU>=Tu49(rED0Ccsh`EWlcl6!C z5&uIrx;2f@ciU}yf+o-ENt#186-(7d9r;nMlpCcxmanC`CxhMxQBjrhn;2lR6IDy) zVxwA=Fpe5`E?r}b4=(i^Z=$_UBdXS-CL%2^RcpoOUEOPMuU>r<4U)aq3PE1nX$4Uk zA-aVI-y}p!G5RU2HacOaUI|Kbn~l&&^TDP0{{82cnTFmnaYj*63OkK*6gNsG^7zW% zAtq=v%H>$OeQ~o=ua&Bmr>;1nt1{bt`MgpL?GI*|!~vb4M51FD zjb#f8UQSw&C)#e`7k5@qQJYjrvFtVhQ_?GFEP@K_^`u$} ztMw=(y>V08u(cWOwoUR`%Jk;gy3**XjZ(Q@Y(` z-uvJNt(w|3SJe+F{W`WQmRvD{zH4{iGcYF8*jTF_b83Ogh*2lco)^S~O2 z47elj+`ZVyX$RYFmRZb8{m!*&L8;0(OF=zoHN)`u-5JC?ef-FF+pv241n0u)Lr454 zWwzinv9OExW73qH)wtQ{)RL$f#rLkIkzVL&Sz4d58_SsR*eiK{A5(|Zau1y9u6UfO)%SPJdjG1 z^*lc7mR!x+G7a8qB(*TE*DA#lhHNpazi$hsZ><$nn@O=A^Ez4QrT6blUG4`zcy$yH zRE9|sd3z`h{z?nk#ax__-yR0_VylcRQm_5V$FB(o#~no+eL!TSB`dSp>J7%*>V(Yz zTQw>LCG==Tx* zE&VXL%Th#4$Wl;C%H;?S3QMiH`S9trBN)&`&O}$|@XbV9rO`ljR_h5usT!0^k8CPU z^TzJQRqrmo`6h9FSho<=s`$0la;y62Rs_mp_iw@y<8BE<8Jc3CqYihSo$g6(~<^qO!SfRmY&`jcTJ$U^2wUT6j%VBfDiIYtR zI;0y-UZi#r{B2742|J1(1~wW1K$Ouw4p6;WED_~+;^Wr_fXCyN`Hu<+9}qp0Kd`Bd zJJhcYttSaFA{Lu8n~2tGv3}z0wYC1fg)Z~mZvp;rF6&(qw_YY_7C-pz)b>%Z$edh7 z1%XdMG^t)etaZY;R0^t3{-(E194%Qe=lz7|7UGe&9^rw<<7DK$Mb@TD7_d?XZ}RRV zzBJYmt?cV!L8Us)wU9lEduDkfJbb0c?vGBzYg8ZRLD)ihhIkgmO0Dyu@7a-bie+qo z8jcvNnu2Qe!&^`@#TM&W16+tsPz{1o{G(fWH*D5}4iTq_)m2fa@sWqFAnq6QrH~j} zQUs_EVvv?EB1@)LX_Zk&HKH-Bsw%hsoqMiO8S&Nb!kO4~&urfm^<1e!*sw(`r&aCL z%5mk#YDa(Q-GP5%pbMS*G`~X7^E|BQ9H=6}uB3(J30c8au1EiFGmYA0YRBbCxVl6@ z1PWQfC|Oxc;zm?z1xY!Kw zOG}WW1H=DHQRJ94WEMq^aTlU8q1LG0swa4#Z!u<=SFC0580<+kD%FXVRii)c9Ub&7 zb4rE>Mph5HK+ZHX94F3pnc`SGpew!fezN4zRM5z%2^)#xIIL6~Q70~zi8Y}&57^{D zhxPnRvt;$))+LKWJsj>?I!S`!hIyhVm2$tfXV(PkVguwxbxm<3^rU`jhnvWn+onmZ z`St)h8>(|qolSl6xd_M-MBIa4>ERPvhs+}lcv1dJKunM$!IyDg8@{%l* zX<#4*a;=EQVncVJzUIQ+DQg=qUOl$LBG76;;Hgr?9!=_{#cPu&opK{?g<+{&D+QfK zSX{cpjb($k-~xO+U$Lf2r-?g))fbd2^mJ8y|t* zA&3pcIxjTv?WX*CG+REt3o$=mvI@BEO-oZ08;8fp0_ z3k&Jo$iTSGo?2O5*3J(2Q23bIssYWmdhWjTLct-l+~D3E#6Vz|z*pD`*r=p)$-8$% z+eA&>G?I&Gy9A?bxtC}w3B#Zmmuhmuo2~fY_ntiZ!L`Qxh7P6+5#)*6g68450bBAS zkDU4IYC(! zkEm|sXb0(3fqZ<#0%=vn2C;%qd+)o}O5~EvrmI32U5hANR1HJaeNbWc?oWF^dIgN; z06WFHr!-e1g`G28x;@sKB>~Iask=$&zEQ&*u0mLiM&+kQ_HrcTSh-97*Q^1MnlK~- zCWnj6NXnxq{u%F~YaMS2v}kC|aW&|$flj?tsun?R@EPw1(HqY(Jfq*=|Bj zcr-=kIKw)|cofFfpYa|Z0i}^N#(FHb4Gge4g~6VXX)u?BWbzrcmD$p$-1v{aYcNVe zCMDy9O`K{;g)F@P*!wweBWva(bGvtB!M2SL4u?ImfXw~2SA-<8h2l28l-E8i)!Ysf z@+?Ucfk27cb!teFdiApRzzE>Gh0Xc45|$ZiTRhC-3bIuV71b*skj$$}NJJ^Bm4EiT z2K7d>may$sfHF$RA1eMi@9~Xb*~lRqXlxM@)*i77eKN&wuxZ7vf$q zc|nw=O4KU(toNq|!N^oUw%d>O=FdpQujTX&!K+cptIbNKQ7>16h}27>4#{8e?jFEz z(;5`q(@kL2#54?=Exg^Z4g%u8IFg}RQt8&Rt|cp%Ry|k~NqrT~R?9uBCrPJNs{I`D zdC;TGB-o@rMRBzlmrQLo5kpR7t68bIT8W4ObntYUs>8v4!MpOrB;m8NoJ_KY8?DY? z@;*6A_T~(ivGaAcv|1!(R?9(9iz|V)XZue^D!vVU7-oL$mE$CDRF2qNj<`~il&k#t zPp=ax<&+SFwMMJhC|9d>9Mh=r^VdtWHpo$d8Zb{fon}(6{pIUbai<>DI^{Z2nWl`b4=!0I2fIyX+wUBmi6RV)71Do|DRsmb znI7?<$hO3>oV5X$ZOZo;1Ub6#2%9k(;l)z3sT{}u%)9>@Y9QRrzHX{aAB!9&VMu@nriMRD_R7hANPEUSmy;>n$@{8V2j)G>s7ZWLr*|tpSwo2qb zYyXfV{s+3<)2quz{KtaxiryaaA8;F!*+vUOAO_FE`B}1{-Ofj|OI`kxudiJ-X34-~ z$em8Bgt=I*MR7HXqWGne=F})XobFjbjqD{MGKqdvHYm(_M+yD$O2y^+8YhJ*+Vj8`x4bsTN_T zR`HA91#^WcIHM|){fOD5I5NqLVf9zO3q5fjOA{NM{Iw_v5+=Lj@K?Q`8pZL$6qn1- z_gik!(MQbMJz`t)BC?M7_u1}itaVu2g1pR^36-ks^2%&I?i1nip#E$Bf05{U4@tzY z5l`*}otow_N-uktM!_tPb&wM*r9!yKogAHU`_eoZvCb(ymAZK|&|=~;>4Xi08gq-S zV(~vmbYyul-E&eL$Ghh?gtV@txbk5(mH1GrcOZ*88|c>m3-7}N#g&PoTrlQN^(dD? z+X9h|J)5OUH=jemRNp5b| z-O%67mSB2)+okRkQ1ZPNi zZPhy@*jN7UR=Q$A#g$nWg@8%Y4uVJ_x|a@ zxj@UGbJ1!ceGqx=bSfmQv+Si=sgX@x`pxU*h16K}MBQ4H+N{>gwO0vPZ?xfteSAj& zmeECQU$gA;EAChI}}zIWnE5PFnsb`r}5L)U6Ji}@%jIT(JCOu4Y! zB#n|y%}JX7E$`!RqS~z^KwK^%L;RN%g$hX#@NqTyZLhwOg9j@s28JRcEh77i47Dn@ zQBeBw^+Fp__=sums1jCK<5`LRfww+ybi^VCjenSbGb>mAABIJ?h>|!)H(Q^HADGlx z;lplUXqQ&~cf65Vc3BN>vBaRAO*83>WhO_Gs79PCWKa0;zw(~G5<=e+C$VtPUnY|{U+>wR;S`0E*t`plOyMU|=az>N#@8abQus>|W zy`==P+(JORvZRzyLq+@RhxPw@tMZP;RdkoE)<&yb!3Fw<-hD$I&K1tu{d8qn1mJz+lHr=K#EY4ga7tBBm)SslIg+p63eDa%$fdo*GUGjVnWO8 z%H#ys$}r?V^4>EF4jUF?Id4y4TG3@#A=L{j ztoEw>4{woP^0_+Jj*&sHd1BU9w@S_b@p|{1a5(A1%(c|&W z^`zXWlhntASMd7Ctc^`79MqIe3s=awEs`07Ho#%1w*GLd2uU!zIzX3C_TXleYX983 z;!57!-X!ij%hs7vcJ;U%*JOv2!OXJkf8o7vqrx0vv8o1{-UG_U!DJH+R?3tEJlG)m zms_YwKFpvdW;$4m%F;t(xUEJQ{LkKf*W4#eRol#1>Xv2yjdG<~s&@!wCFOtR9lz#k z+%}<9QYXP#Vx2XDIQenwfAMzWif9w|Z+g46w|AF4H&`zGzj{*xYi8CaqW?E<|GFsq zzxLSSNFP!lS4MIAKl1ivwu>wH-@UiZFX@X1>=c#9=2!j?Z$B$}^aUE6d(ETu|4(l+ zFIoAPw{9)HnGqc}_B~C=hdup!OTskK@B|Bubu|&&sI-FrE1MNsV|}ne{<3!G zWX!W2mY%1>QKwdK;`m|`$JL}(xiEImX7985BcYl>4J&i1fo1(H#fg|SYE?RXi0YHq pR>P|Lz?V6xq00PCC2E%INkA%MQ2W#vqh8=1<9SZ!*vuN+{|6Tx#?Sx& literal 235275 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 T*{dE0t_DU7>M0FSVu|=abj;VM diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm index 1d137cec6b954b323969aa4f2526329578d398e5..6fbff008b4986c2232e54bfa107f1bfbcdce353b 100644 GIT binary patch delta 18280 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 F{{i!#k39eY delta 18078 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 delta 19690 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 diff --git a/substrate/codec/src/slicable.rs b/substrate/codec/src/slicable.rs index ec8c2a0934387..c6363d35025e6 100644 --- a/substrate/codec/src/slicable.rs +++ b/substrate/codec/src/slicable.rs @@ -61,7 +61,6 @@ pub trait Slicable: Sized { fn using_encoded R>(&self, f: F) -> R { f(&self.encode()) } - } /// Encode a bytes slice as `Slicable` that can be decoded into a vector. diff --git a/substrate/rpc/src/chain/tests.rs b/substrate/rpc/src/chain/tests.rs index 51fb7b907574a..e2e24b8e2c60a 100644 --- a/substrate/rpc/src/chain/tests.rs +++ b/substrate/rpc/src/chain/tests.rs @@ -34,7 +34,7 @@ fn should_return_header() { Ok(Some(ref x)) if x == &Header { parent_hash: 0.into(), number: 0, - state_root: "987aa0851a133413b42c6d9aa3c91b1dddc2ad5337508ee8815116b11e44c64d".into(), + state_root: "17dccc74bd9200b7ce5a2f6a1bf379f1cdcf91bca3d19c3d17e1478b8d404703".into(), extrinsics_root: "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421".into(), digest: Default::default(), } @@ -70,7 +70,7 @@ fn should_notify_about_latest_block() { // assert notification send to transport let (notification, next) = core.run(transport.into_future()).unwrap(); assert_eq!(notification, Some( - r#"{"jsonrpc":"2.0","method":"test","params":{"result":{"digest":{"logs":[]},"extrinsicsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","number":1,"parentHash":"0x27f04d7574733bb155bbf5a0399fcc99d3c4dbf15bf99862d261bced9444179a","stateRoot":"0x987aa0851a133413b42c6d9aa3c91b1dddc2ad5337508ee8815116b11e44c64d"},"subscription":0}}"#.to_owned() + r#"{"jsonrpc":"2.0","method":"test","params":{"result":{"digest":{"logs":[]},"extrinsicsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","number":1,"parentHash":"0x50fb1e7f32e8ad17f553846f4338861e17eb95132e7c3b433e0429ffab2f8f13","stateRoot":"0x17dccc74bd9200b7ce5a2f6a1bf379f1cdcf91bca3d19c3d17e1478b8d404703"},"subscription":0}}"#.to_owned() )); // no more notifications on this channel assert_eq!(core.run(next.into_future()).unwrap().0, None); diff --git a/substrate/test-runtime/wasm/genesis.wasm b/substrate/test-runtime/wasm/genesis.wasm index 94bf42b3f97dd3681b0d3e541fb5a276868960b4..f5879aebc1ad41b40d9f57c74d40cd2dd4ebf016 100644 GIT binary patch delta 4282 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 delta 3429 zcmZu!e{2)i9e?lcY@dCxb55GzBqVvhI6n-@IR895B#;+INeU?ev1*!_(D{5WaYD#K zsERbj*~X?wMJnZO{E*n%X=`aaLDRWgJFQ*QKc>PoP0&soonWg}iqOU+TA_8CG-=;= zc0$%I;QPM!{rx`Q_kHi~{`2_m5Af1y+|b^J5Ec=ZuuBvqNp#6B$;&R{R_}99FC)eC zP3&dwue#ZXfh@kxnrr(SZ~4`Bq^O`p5Jch+ zNnOvr7wAsj_j7xJ-teVCAP|%mWFVp;)Ifv=qzFjyqv6-@ynp7xyPy5>rIK>R!(w$0 zwcqqnFIZ7Tkt);D!+x-)V66*7!Vta5@^xcaU_Y(v!Xo>iZU{fin(No&A2FkT1kzln zACx6hL)*vv68m-ize;}M4!gu5N>rqIxBErnqNEsx9EcZu5@DDaLJ}hAMTkh$U}Y#5 zH81hPk~ANvYoLmVj|e@2u6c^UlL07rL=iF&NT|x^>VtWR&qFXTRTPM;stPWWVZfLu z94{}A$D_#3T=Nx)2bh4r0^z)sz`_u5Z3h%QD%7Y3jQyl$hac4lio%WMu-EYsmKEZ? zI844nmYUp?AGBp|--{c^~a_1}hxCq3CTN?NwXZnTBpa@$H5t z9AO_c?8T>8Z{sd}jvZ^-bs)x+oOG zunEF$_{r?It&?92HN#G&I4r?-1(=|c{5RU70bpU31YqW!)FfUi%wa5Q9zNzeu=8b# zi{NOXt$T+L5D&XKXbVCZ@(B_*t(hunE}|H)XI(_Cl$+~;mFDJCnbeK?k%M^Es{FS$ zA1sUgqkS2x>~(VJkxK!$RKoK@Ntky7?LhRZG^q&@$pf1dJ@BC0nog|WbuLq8|nhP zqP@sXj&y9{q};KUllvW{_6=yqVaX7ecv~(>j6_;WZ%APe2VzMI%TAJrCn*yT2PBNd zAyB=CiUh0OTy4fVLm+A~j6ot7;lHLR4UOrrE4{hOhEUb?qYqcrAv+`+;z`~)0)0~~YJ7>@HBsGw3caAvfC`0zInTHv zfgY@=v2&f9N>Pwjz(Mrhd{INNW4JCr2nlL@ zQmb%O_52=g-6I^A*v+nM!c~bab$_LF3l}Nuc3z>o4~D>*0}ek~_|i`Rz0Q#Z{tZqq z%W2_57{CzFOAB{66Pkcl4jz7n@ncS{g|qC(0e&^oHy!e)fXfRFsgykPxCAZ9p6W^C z5EDZhyVY|7PN%O$za#*8cVnjq-!A_>z9j5}GQtkQ^ep(VwwN#kYw<#JI9x}eB3i3^ z74fqh(-)zOxeHz-k^WVoZnc+vnkvB2`c-2STTBPw#5kLtb>CB{3?kLo<%qV1WKG%U zcY*O`$3><{t13S?a#ib*%+DMZukbpyxVh|@(1)TNc%c|U z!?<=OHhX5E)42<-^0M%|AmXo-gZ{=#HMmYb8Hj>?%U}YM*gd!l#_!Nxc6qSg_h1F= z-P|e0sEi z@iP1OBkN21U1;_16*odbm@SJ4aW<$re;A&?LeEGDfeLy8XbaFOpgy3d;Ky~J0$~K` zO)&NY9jWqv2J@aZ{P8N^bfYxdutx9%jJaU~9DQL8e;&p>z(2te>=Sg8{cdMV;JgR@ z!Y@smhiv?+zpwn+&OWRr^L934#0)*2%*O0kfhEVfYqN%7C$qVPkx3>C*%&L1^{PhR zOs3)q%hEFiJ(V!n3u9Z9hEbjW?kK6J#MYjPhlr{Hb7*?A{#iCTwe?f(85b9%y>oS1&RI_&R1 zXdC&o6*FV8R4Sjz>Dl$Hb$4qplhkcJYZr0}Jq!Qht?ZTE?ZI>+X~jWeN}j+5Z0g?BSUM6VnG~ zrc4XcI;f|UddezTF@V5G=d3Vm9PiTgn3+iwviVplVHc8mTwD8L(eXdu6%lrHe1RC* zq@9PX?VMe(?Sj?$-ya)Y?CX2R*xhk&&@e1OQjg{IIE>;}H%J}}#_U`npHIf)MlzK% z3&|e#(VlH}c`KnOa=CQINMx)`A`yL*&F=}Z@xAHJ4WIvb+4#9{m)@NN``EL48rbsQ Rh#EJt&c4VcaxtiS{6Dc5;?4j7 diff --git a/update-genesis.sh b/update-genesis.sh index 07632668c49b0..30c1951152ce7 100755 --- a/update-genesis.sh +++ b/update-genesis.sh @@ -1,3 +1,4 @@ #!/bin/bash cp polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm polkadot/runtime/wasm/genesis.wasm +cp substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm substrate/test-runtime/wasm/genesis.wasm From d80e679c6c83b150f2893f90d495894b7ff33ceb Mon Sep 17 00:00:00 2001 From: arkpar Date: Wed, 27 Jun 2018 16:28:08 +0200 Subject: [PATCH 3/6] Minor fixes --- demo/runtime/src/lib.rs | 2 +- polkadot/runtime/src/lib.rs | 2 +- substrate/runtime/version/src/lib.rs | 21 +++++++++++++-------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/demo/runtime/src/lib.rs b/demo/runtime/src/lib.rs index 5fa939f165c16..7060db993f76a 100644 --- a/demo/runtime/src/lib.rs +++ b/demo/runtime/src/lib.rs @@ -62,7 +62,7 @@ pub use runtime_primitives::BuildStorage; /// Concrete runtime type used to parameterize the various modules. pub struct Concrete; -/// Polkadot runtime version. +/// Runtime version. pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: ver_str!("demo"), impl_name: ver_str!("parity-demo"), diff --git a/polkadot/runtime/src/lib.rs b/polkadot/runtime/src/lib.rs index e283d2a2b54cb..90d156857de15 100644 --- a/polkadot/runtime/src/lib.rs +++ b/polkadot/runtime/src/lib.rs @@ -107,7 +107,7 @@ pub struct Concrete; /// Polkadot runtime version. pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: ver_str!("polkatot"), + spec_name: ver_str!("polkadot"), impl_name: ver_str!("parity-polkadot"), authoring_version: 0, spec_version: 0, diff --git a/substrate/runtime/version/src/lib.rs b/substrate/runtime/version/src/lib.rs index 3dd48d449e177..d1a8e708d64f6 100644 --- a/substrate/runtime/version/src/lib.rs +++ b/substrate/runtime/version/src/lib.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Substrate Demo. If not, see . -//! Version module for runtime; Provide a function that returns runtime verion. +//! Version module for runtime; Provide a function that returns runtime version. #![cfg_attr(not(feature = "std"), no_std)] @@ -40,9 +40,9 @@ use codec::Slicable; use std::borrow::Cow; #[cfg(feature = "std")] -pub type MaybeCowString = ::std::borrow::Cow<'static, str>; +pub type VersionString = ::std::borrow::Cow<'static, str>; #[cfg(not(feature = "std"))] -pub type MaybeCowString = &'static str; +pub type VersionString = &'static str; #[cfg(feature = "std")] #[macro_export] @@ -59,10 +59,15 @@ macro_rules! ver_str { #[derive(Clone)] #[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] pub struct RuntimeVersion { - pub spec_name: MaybeCowString, - pub impl_name: MaybeCowString, + /// Runtime name. This must be the same in native runtime and on-chain. + pub spec_name: VersionString, + /// Implementation name. Used for information only. + pub impl_name: VersionString, + /// Version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime. pub authoring_version: u32, + /// Version of the runtime specification. This must match native runtime for any call go through. pub spec_version: u32, + /// Implementation version. Used for information only. pub impl_version: u32, } @@ -100,8 +105,8 @@ impl Slicable for RuntimeVersion { #[cfg(feature = "std")] fn decode(value: &mut I) -> Option { Some(RuntimeVersion { - spec_name: Cow::Owned(String::from_utf8(Slicable::decode(value)?).expect("Invalid utf-8 version string")), - impl_name: Cow::Owned(String::from_utf8(Slicable::decode(value)?).expect("Invalid utf-8 version string")), + spec_name: Cow::Owned(String::from_utf8_lossy(&Vec::decode(value)?).into()), + impl_name: Cow::Owned(String::from_utf8_lossy(&Vec::decode(value)?).into()), authoring_version: Slicable::decode(value)?, spec_version: Slicable::decode(value)?, impl_version: Slicable::decode(value)?, @@ -118,7 +123,7 @@ decl_module! { } impl Module { - /// Get runtime verions + /// Get runtime version. pub fn version() -> RuntimeVersion { T::VERSION.clone() } From 97e3e432cf534c92357d5e48c94716c8a67e96b5 Mon Sep 17 00:00:00 2001 From: arkpar Date: Wed, 27 Jun 2018 16:30:14 +0200 Subject: [PATCH 4/6] Fresh runtime --- .../release/demo_runtime.compact.wasm | Bin 407512 -> 407512 bytes .../release/demo_runtime.wasm | Bin 442298 -> 442298 bytes .../release/polkadot_runtime.compact.wasm | Bin 441081 -> 440906 bytes .../release/polkadot_runtime.wasm | Bin 482868 -> 482648 bytes .../release/runtime_test.compact.wasm | Bin 15633 -> 15633 bytes .../release/runtime_test.wasm | Bin 16206 -> 16206 bytes .../substrate_test_runtime.compact.wasm | Bin 21236 -> 21236 bytes .../release/substrate_test_runtime.wasm | Bin 23465 -> 23465 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm b/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm index 8859848e7bbadc0da9974cf80146bf67cb93c00f..4adac7ea0475985f2ed0e355cc66fb095582057a 100644 GIT binary patch delta 7984 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 delta 7958 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 U4MwFC=_?9|3a>24G#0V{0&>b#fdBvi diff --git a/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm b/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm index f49ab7208024666eec930cb01628506b4fc4c057..de22754af3dba307a72583358659da5544e9fbc6 100755 GIT binary patch delta 7837 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 A5&!@I delta 7852 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 Rzd~-qmNI?P_VNQd{cn=}rI!Ez diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm index c862998de64143de41edd8b220614f1f4038cd91..6bc08cd2239ce5c0eb8d1ae6fbcd738f1e986cf6 100644 GIT binary patch delta 23586 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 diff --git a/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm b/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm index 8484f8fd5142c05fb077e90719432e8a374adf21..0d7958006b46a617b3c7df058de37c80feb63f1b 100644 GIT binary patch delta 89 zcmV-f0H*(udXajt@&N(~0JHP~jTMv47a9yDAOt}eY9Ik10uUv$^A}P9lYtjZvqc$U v4G$zB1wjaEL9q@&3qb@BB(t?9u@jS?I$r@LlV&3A6M8jTMvm7)+Ca7a9yCAOt}eY9Ik10uUs#rx#KIvqc$U u4G$$C1wjaEL9q@&3qb@BC9}0Au@jTVIyVC)UObckIvbONIzqGkIuruJD;qul diff --git a/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm b/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm index ed34852251fe9288a9c8f5fceb5cfc54286bcaa3..13a026b013d064d016058db6fbf5635bfc294fa2 100755 GIT binary patch delta 82 zcmV-Y0ImPde$IZdDFOls0JAFs(-o6S7#a*KAOt}eY9Ik10uU>+a2Qenll~V>v%(o+ o4G$_H1wjaEL9q@&3qb@BDzh>t78R44JaPdmlSn*KvkW~#0=ttIG5`Po delta 82 zcmV-Y0ImPde$IZdDFOlj39~B#(-o6;8BCM@7a9yIAOt}eY9Ik10uU;*Bp6Zwv%(o+ o4G$|I1wjaEL9q@&3qb@BE3+~u78R4bJW&BFlSn*rvkW~#0@3CcGynhq diff --git a/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index f5879aebc1ad41b40d9f57c74d40cd2dd4ebf016..6a5155e82b5f1a8cc6066449839129388e344db7 100644 GIT binary patch delta 160 zcmeyel<~__#tnI*jMFFQivr2bt)femg->xh8Ve{ea62Lxn{6!pnHf(_?y-qy{5$!L z%`2|IoQ_HmMVlYk%Ccy}_yWQ}jc^V>1GfUF03(V~YEDmCxZp`^ z%`2``oQ_HmMVlYk%Ccy}_yWQ}jc^V>1GfUF03(V~YEDmCxZp;g+AQk6iE;8Tk6@PK RlA`>{e?0Uz`+6?t1OPlVEjj=I diff --git a/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm b/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm index 5e48a6a00fc03af40faf81f98ab22de4c99b7268..e187bdc2ec0d673057a68da4219ecd9613ebd718 100755 GIT binary patch delta 150 zcmZ3vopI%M#tp~B8K+M^F0Rfvee-+qcs0gTljZ$HC#(1gY%Z~T%nam4IMp%!-F)3i zj8X7!XF~&nqmsbl1|ZGA?RaYQKj)b&l4!yLQ=rm+CvWgjfEc*>nTG|d;3=?vW4Qjm XoAv$fGEPnmFr3U45W0C%fH*e*3Y9nK delta 179 zcmZ3vopI%M#tp~B8Q)AkF0Rh_X7hXTcs0f8oed2Pj>ZCu8-O$ew<89BbH3dRX2$80 zBb@3OPi?;LB*rLs3am#7p=a|y=b0>$Xu<+hphljWyum|35Yym?9=5DNgD-lBZZ`3| Y!8qAIAeg1Nq$q!~V}SnVNde;A0DWaa1poj5 From 2aaf17620ea62d5a8049e3ce2fec929df2da63d6 Mon Sep 17 00:00:00 2001 From: arkpar Date: Sat, 30 Jun 2018 12:37:56 +0200 Subject: [PATCH 5/6] Default version for pre Poc-2; Fixed authorship interface check --- substrate/client/src/client.rs | 4 ++- substrate/client/src/error.rs | 2 +- substrate/executor/src/error.rs | 6 ---- substrate/executor/src/native_executor.rs | 5 ++- substrate/runtime/version/src/lib.rs | 37 ++++++++++++++++++----- 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/substrate/client/src/client.rs b/substrate/client/src/client.rs index 428c39745c6ba..b861c6db0f2d3 100644 --- a/substrate/client/src/client.rs +++ b/substrate/client/src/client.rs @@ -218,9 +218,11 @@ impl Client where /// Get the set of authorities at a given block. pub fn runtime_version_at(&self, id: &BlockId) -> error::Result { - self.executor.call(id, "version", &[]) + // TODO: Post Poc-2 return an error if version is missing + Ok(self.executor.call(id, "version", &[]) .and_then(|r| RuntimeVersion::decode(&mut &r.return_data[..]) .ok_or(error::ErrorKind::VersionInvalid.into())) + .unwrap_or_default()) } /// Get call executor reference. diff --git a/substrate/client/src/error.rs b/substrate/client/src/error.rs index 0a903be75c863..9d559ad2f1503 100644 --- a/substrate/client/src/error.rs +++ b/substrate/client/src/error.rs @@ -70,7 +70,7 @@ error_chain! { display("Current state of blockchain has invalid authority count value"), } - /// Invalid state data. + /// Cound not get runtime version. VersionInvalid { description("Runtime version error"), display("On-chain runtime does not specify version"), diff --git a/substrate/executor/src/error.rs b/substrate/executor/src/error.rs index 66036c0eb62be..639d23c075e35 100644 --- a/substrate/executor/src/error.rs +++ b/substrate/executor/src/error.rs @@ -63,12 +63,6 @@ error_chain! { display("Runtime error"), } - /// Runtime interface does not match native. - RuntimeVersionMismatch { - description("runtime version does not match native"), - display("Runtime version does not match native."), - } - /// Runtime failed. InvalidMemoryReference { description("invalid memory reference"), diff --git a/substrate/executor/src/native_executor.rs b/substrate/executor/src/native_executor.rs index d34d8469cb4d5..5625082604c12 100644 --- a/substrate/executor/src/native_executor.rs +++ b/substrate/executor/src/native_executor.rs @@ -94,10 +94,9 @@ impl CodeExecutor for NativeExecutor {{ $y }} } +/// Runtime version. +/// This should not be thought of as classic Semver (major/minor/tiny). +/// This triplet have different semantics and mis-interpretation could cause problems. +/// In particular: bug fixes should result in an increment of `spec_version` and possibly `authoring_version`, +/// absolutely not `impl_version` since they change the semantics of the runtime. #[derive(Clone)] #[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] pub struct RuntimeVersion { - /// Runtime name. This must be the same in native runtime and on-chain. + /// Identifies the different Substrate runtimes. There'll be at least polkadot and demo. A different on-chain spec_name to that of the native runtime would normally result in node not attempting to sync further. pub spec_name: VersionString, - /// Implementation name. Used for information only. + /// Name of the implementation of the spec. This is of little consequence for the node and serves only to differentiate code of different implementation teams. For this codebase, it will be parity-polkadot. + /// If there were a non-Rust implementation of the Polkadot runtime (e.g. C++), then it would identify itself with an accordingly different impl_name. pub impl_name: VersionString, - /// Version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime. + /// `authoring_version` is the version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime. pub authoring_version: u32, - /// Version of the runtime specification. This must match native runtime for any call go through. + /// Version of the runtime specification. A full-node will not attempt to use its native runtime in substitute for the on-chain Wasm runtime unless all of `spec_name`, `spec_version` and `authoring_version` + /// are the same between Wasm and native. pub spec_version: u32, - /// Implementation version. Used for information only. + /// Version of the implementation of the specification. Nodes are free to ignore this; it serves only as an indication that the code is different; + /// as long as the other two versions are the same then while the code may be different, it is nonetheless required to do the same thing. + /// Non-consensus-breaking optimisations are about the only changes that could be made which would result in only the impl_version changing. pub impl_version: u32, } +// TODO: remove this after PoC-2 +#[cfg(feature = "std")] +impl Default for RuntimeVersion { + fn default() -> RuntimeVersion { + RuntimeVersion { + spec_name: ver_str!("polkadot"), + impl_name: ver_str!("parity-polkadot"), + authoring_version: 0, + spec_version: 0, + impl_version: 0, + } + } +} + #[cfg(feature = "std")] impl RuntimeVersion { /// Check if this version matches other version for calling into runtime. pub fn can_call_with(&self, other: &RuntimeVersion) -> bool { self.spec_version == other.spec_version && - self.spec_name == other.spec_name + self.spec_name == other.spec_name && + self.authoring_version == other.authoring_version } /// Check if this version matches other version for authoring blocks. pub fn can_author_with(&self, other: &RuntimeVersion) -> bool { - self.can_call_with(other) && self.authoring_version == other.authoring_version } } From 3139f189678bc8b81674f740ccf30abbb7e01fd2 Mon Sep 17 00:00:00 2001 From: arkpar Date: Mon, 2 Jul 2018 11:49:39 +0200 Subject: [PATCH 6/6] Fixed authoring check --- substrate/runtime/version/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/substrate/runtime/version/src/lib.rs b/substrate/runtime/version/src/lib.rs index da13e265d00c3..b93ebde932208 100644 --- a/substrate/runtime/version/src/lib.rs +++ b/substrate/runtime/version/src/lib.rs @@ -105,7 +105,8 @@ impl RuntimeVersion { /// Check if this version matches other version for authoring blocks. pub fn can_author_with(&self, other: &RuntimeVersion) -> bool { - self.authoring_version == other.authoring_version + self.authoring_version == other.authoring_version && + self.spec_name == other.spec_name } }