From bc5fb364ee94ffcb6e8306c82c5f6b162dfdb415 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 29 Mar 2019 18:00:21 +0100 Subject: [PATCH 1/9] Bump versionb globally --- Cargo.lock | 1094 ++++++++--------- Cargo.toml | 2 +- core/basic-authorship/Cargo.toml | 2 +- core/cli/Cargo.toml | 2 +- core/client/Cargo.toml | 2 +- core/client/db/Cargo.toml | 2 +- core/consensus/aura/Cargo.toml | 2 +- core/consensus/aura/primitives/Cargo.toml | 2 +- core/consensus/aura/slots/Cargo.toml | 2 +- core/consensus/authorities/Cargo.toml | 2 +- core/consensus/common/Cargo.toml | 2 +- core/consensus/rhd/Cargo.toml | 2 +- core/executor/Cargo.toml | 2 +- core/executor/wasm/Cargo.toml | 2 +- core/finality-grandpa/Cargo.toml | 2 +- core/finality-grandpa/primitives/Cargo.toml | 2 +- core/inherents/Cargo.toml | 2 +- core/keyring/Cargo.toml | 2 +- core/keystore/Cargo.toml | 2 +- core/network-libp2p/Cargo.toml | 2 +- core/panic-handler/Cargo.toml | 2 +- core/peerset/Cargo.toml | 2 +- core/primitives/Cargo.toml | 2 +- core/rpc-servers/Cargo.toml | 4 +- core/rpc/Cargo.toml | 2 +- core/serializer/Cargo.toml | 2 +- core/service/Cargo.toml | 2 +- core/service/test/Cargo.toml | 2 +- core/sr-api-macros/Cargo.toml | 2 +- core/sr-io/Cargo.toml | 2 +- core/sr-primitives/Cargo.toml | 2 +- core/sr-sandbox/Cargo.toml | 2 +- core/sr-std/Cargo.toml | 2 +- core/sr-version/Cargo.toml | 2 +- core/state-db/Cargo.toml | 2 +- core/state-machine/Cargo.toml | 2 +- core/telemetry/Cargo.toml | 2 +- core/test-client/Cargo.toml | 2 +- core/test-runtime/Cargo.toml | 2 +- core/test-runtime/wasm/Cargo.toml | 2 +- core/transaction-pool/Cargo.toml | 2 +- core/transaction-pool/graph/Cargo.toml | 2 +- core/trie/Cargo.toml | 2 +- core/util/fork-tree/Cargo.toml | 2 +- node-template/Cargo.toml | 2 +- node-template/runtime/Cargo.toml | 2 +- node-template/runtime/wasm/Cargo.toml | 2 +- node/cli/Cargo.toml | 2 +- node/executor/Cargo.toml | 2 +- node/primitives/Cargo.toml | 2 +- node/runtime/Cargo.toml | 2 +- node/runtime/wasm/Cargo.toml | 2 +- scripts/node-template-release/Cargo.toml | 2 +- srml/assets/Cargo.toml | 2 +- srml/aura/Cargo.toml | 2 +- srml/balances/Cargo.toml | 2 +- srml/consensus/Cargo.toml | 2 +- srml/contract/Cargo.toml | 2 +- srml/council/Cargo.toml | 2 +- srml/democracy/Cargo.toml | 2 +- srml/example/Cargo.toml | 2 +- srml/executive/Cargo.toml | 2 +- srml/finality-tracker/Cargo.toml | 2 +- srml/grandpa/Cargo.toml | 2 +- srml/indices/Cargo.toml | 2 +- srml/metadata/Cargo.toml | 2 +- srml/session/Cargo.toml | 2 +- srml/staking/Cargo.toml | 2 +- srml/sudo/Cargo.toml | 2 +- srml/support/Cargo.toml | 4 +- srml/support/procedural/Cargo.toml | 2 +- srml/support/procedural/tools/Cargo.toml | 2 +- .../procedural/tools/derive/Cargo.toml | 2 +- srml/system/Cargo.toml | 2 +- srml/timestamp/Cargo.toml | 2 +- srml/treasury/Cargo.toml | 2 +- subkey/Cargo.toml | 2 +- 77 files changed, 625 insertions(+), 625 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7edf2b97e2a97..8e5778d65404f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -215,7 +215,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitmask" version = "0.5.0" -source = "git+https://github.com/paritytech/bitmask#c2d8d196e30b018d1385be8357fdca61b978facf" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2" @@ -796,7 +796,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "fork-tree" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1867,121 +1867,121 @@ dependencies = [ [[package]] name = "node-cli" -version = "0.1.0" +version = "1.0.0" dependencies = [ "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "node-executor 0.1.0", - "node-primitives 0.1.0", - "node-runtime 0.1.0", + "node-executor 1.0.0", + "node-primitives 1.0.0", + "node-runtime 1.0.0", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-basic-authorship 0.1.0", - "substrate-cli 0.3.0", - "substrate-client 0.1.0", - "substrate-consensus-aura 0.1.0", - "substrate-finality-grandpa 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keystore 0.1.0", + "substrate-basic-authorship 1.0.0", + "substrate-cli 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura 1.0.0", + "substrate-finality-grandpa 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keystore 1.0.0", "substrate-network 0.1.0", - "substrate-primitives 0.1.0", - "substrate-service 0.3.0", - "substrate-service-test 0.3.0", - "substrate-telemetry 0.3.1", - "substrate-transaction-pool 0.1.0", + "substrate-primitives 1.0.0", + "substrate-service 1.0.0", + "substrate-service-test 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-transaction-pool 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "node-executor" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "node-primitives 0.1.0", - "node-runtime 0.1.0", + "node-primitives 1.0.0", + "node-runtime 1.0.0", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-contract 0.1.0", - "srml-grandpa 0.1.0", - "srml-indices 0.1.0", - "srml-session 0.1.0", - "srml-staking 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "srml-treasury 0.1.0", - "substrate-executor 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-contract 1.0.0", + "srml-grandpa 1.0.0", + "srml-indices 1.0.0", + "srml-session 1.0.0", + "srml-staking 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "srml-treasury 1.0.0", + "substrate-executor 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "node-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", - "substrate-serializer 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", + "substrate-serializer 1.0.0", ] [[package]] name = "node-runtime" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "node-primitives 0.1.0", + "node-primitives 1.0.0", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-aura 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-contract 0.1.0", - "srml-council 0.1.0", - "srml-democracy 0.1.0", - "srml-executive 0.1.0", - "srml-finality-tracker 0.1.0", - "srml-grandpa 0.1.0", - "srml-indices 0.1.0", - "srml-session 0.1.0", - "srml-staking 0.1.0", - "srml-sudo 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "srml-treasury 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-authorities 0.1.0", - "substrate-keyring 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-aura 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-contract 1.0.0", + "srml-council 1.0.0", + "srml-democracy 1.0.0", + "srml-executive 1.0.0", + "srml-finality-tracker 1.0.0", + "srml-grandpa 1.0.0", + "srml-indices 1.0.0", + "srml-session 1.0.0", + "srml-staking 1.0.0", + "srml-sudo 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "srml-treasury 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-authorities 1.0.0", + "substrate-keyring 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "node-template" -version = "0.9.0" +version = "1.0.0" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1989,20 +1989,20 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "node-template-runtime 0.9.0", + "node-template-runtime 1.0.0", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "substrate-basic-authorship 0.1.0", - "substrate-cli 0.3.0", - "substrate-client 0.1.0", - "substrate-consensus-aura 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", + "sr-io 1.0.0", + "substrate-basic-authorship 1.0.0", + "substrate-cli 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", "substrate-network 0.1.0", - "substrate-primitives 0.1.0", - "substrate-service 0.3.0", - "substrate-transaction-pool 0.1.0", + "substrate-primitives 1.0.0", + "substrate-service 1.0.0", + "substrate-transaction-pool 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "vergen 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2010,30 +2010,30 @@ dependencies = [ [[package]] name = "node-template-runtime" -version = "0.9.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-aura 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-executive 0.1.0", - "srml-indices 0.1.0", - "srml-sudo 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-authorities 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-aura 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-executive 1.0.0", + "srml-indices 1.0.0", + "srml-sudo 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-authorities 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] @@ -2985,41 +2985,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sr-api-macros" -version = "0.1.0" +version = "1.0.0" dependencies = [ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "criterion 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-test-client 0.1.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-test-client 1.0.0", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-io" -version = "0.1.0" +version = "1.0.0" dependencies = [ "environmental 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3028,61 +3028,61 @@ dependencies = [ "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "sr-sandbox" -version = "0.1.0" +version = "1.0.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-std" -version = "0.1.0" +version = "1.0.0" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-version" -version = "0.1.0" +version = "1.0.0" dependencies = [ "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "srml-assets" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-aura" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3090,56 +3090,56 @@ dependencies = [ "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-session 0.1.0", - "srml-staking 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-session 1.0.0", + "srml-staking 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-balances" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-consensus" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-contract" -version = "0.1.0" +version = "1.0.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3148,92 +3148,92 @@ dependencies = [ "pwasm-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-sandbox 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-sandbox 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-primitives 1.0.0", "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-council" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-democracy 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-democracy 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-democracy" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-example" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "srml-balances 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "srml-balances 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-executive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-indices 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-indices 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-finality-tracker" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3241,37 +3241,37 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-grandpa" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-finality-tracker 0.1.0", - "srml-session 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-finality-grandpa-primitives 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-finality-tracker 1.0.0", + "srml-session 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-finality-grandpa-primitives 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-indices" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3279,29 +3279,29 @@ dependencies = [ "ref_thread_local 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-metadata" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-session" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3309,59 +3309,59 @@ dependencies = [ "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-staking" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-session 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-session 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-sudo" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-support-procedural 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-support-procedural 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-support" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)", + "bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3369,39 +3369,39 @@ dependencies = [ "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-metadata 0.1.0", - "srml-support-procedural 0.1.0", - "substrate-inherents 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-metadata 1.0.0", + "srml-support-procedural 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-support-procedural" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "srml-support-procedural-tools 0.1.0", + "sr-api-macros 1.0.0", + "srml-support-procedural-tools 1.0.0", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "srml-support-procedural-tools-derive 0.1.0", + "srml-support-procedural-tools-derive 1.0.0", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools-derive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3415,59 +3415,59 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "srml-support 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "srml-support 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-system" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-timestamp" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-treasury" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] @@ -3585,7 +3585,7 @@ dependencies = [ [[package]] name = "subkey" -version = "0.2.0" +version = "1.0.0" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3593,36 +3593,36 @@ dependencies = [ "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "schnorrkel 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-bip39 0.2.0 (git+https://github.com/paritytech/substrate-bip39)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", "tiny-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate" -version = "0.11.0" +version = "1.0.0" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "node-cli 0.1.0", + "node-cli 1.0.0", "vergen 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-basic-authorship" -version = "0.1.0" +version = "1.0.0" dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", - "substrate-telemetry 0.3.1", - "substrate-test-client 0.1.0", - "substrate-transaction-pool 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-test-client 1.0.0", + "substrate-transaction-pool 1.0.0", ] [[package]] @@ -3638,7 +3638,7 @@ dependencies = [ [[package]] name = "substrate-cli" -version = "0.3.0" +version = "1.0.0" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3654,16 +3654,16 @@ dependencies = [ "names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", + "sr-primitives 1.0.0", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-client 0.1.0", - "substrate-keyring 0.1.0", + "substrate-client 1.0.0", + "substrate-keyring 1.0.0", "substrate-network 0.1.0", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-service 0.3.0", - "substrate-state-machine 0.1.0", - "substrate-telemetry 0.3.1", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-service 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-telemetry 1.0.0", "sysinfo 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3672,7 +3672,7 @@ dependencies = [ [[package]] name = "substrate-client" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3685,24 +3685,24 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-telemetry 0.3.1", - "substrate-test-client 0.1.0", - "substrate-trie 0.4.0", + "sr-api-macros 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-test-client 1.0.0", + "substrate-trie 1.0.0", ] [[package]] name = "substrate-client-db" -version = "0.1.0" +version = "1.0.0" dependencies = [ "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3713,21 +3713,21 @@ dependencies = [ "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-db 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-test-client 0.1.0", - "substrate-trie 0.4.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-db 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-test-client 1.0.0", + "substrate-trie 1.0.0", ] [[package]] name = "substrate-consensus-aura" -version = "0.1.0" +version = "1.0.0" dependencies = [ "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3735,71 +3735,71 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "srml-aura 0.1.0", - "srml-consensus 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-aura-slots 0.1.0", - "substrate-consensus-authorities 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "srml-aura 1.0.0", + "srml-consensus 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-aura-slots 1.0.0", + "substrate-consensus-authorities 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", "substrate-network 0.1.0", - "substrate-primitives 0.1.0", - "substrate-service 0.3.0", - "substrate-telemetry 0.3.1", - "substrate-test-client 0.1.0", + "substrate-primitives 1.0.0", + "substrate-service 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-test-client 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-consensus-aura-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-consensus-aura-slots" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-consensus-authorities" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-consensus-common" -version = "0.1.0" +version = "1.0.0" dependencies = [ "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3808,17 +3808,17 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", - "substrate-test-client 0.1.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", + "substrate-test-client 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-consensus-rhd" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3827,23 +3827,23 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rhododendron 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "srml-consensus 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-transaction-pool 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "srml-consensus 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-transaction-pool 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-executor" -version = "0.1.0" +version = "1.0.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3856,13 +3856,13 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-version 0.1.0", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-serializer 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-io 1.0.0", + "sr-version 1.0.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-serializer 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3870,66 +3870,66 @@ dependencies = [ [[package]] name = "substrate-finality-grandpa" -version = "0.1.0" +version = "1.0.0" dependencies = [ "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "finality-grandpa 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "fork-tree 0.1.0", + "fork-tree 1.0.0", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "srml-finality-tracker 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-finality-grandpa-primitives 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", + "sr-primitives 1.0.0", + "srml-finality-tracker 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-finality-grandpa-primitives 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", "substrate-network 0.1.0", - "substrate-primitives 0.1.0", - "substrate-service 0.3.0", - "substrate-telemetry 0.3.1", - "substrate-test-client 0.1.0", + "substrate-primitives 1.0.0", + "substrate-service 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-test-client 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-finality-grandpa-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-inherents" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "substrate-keyring" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum_macros 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-keystore" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3938,7 +3938,7 @@ dependencies = [ "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3951,7 +3951,7 @@ dependencies = [ "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "fork-tree 0.1.0", + "fork-tree 1.0.0", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "linked_hash_set 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3961,20 +3961,20 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-keyring 0.1.0", - "substrate-network-libp2p 0.1.0", - "substrate-peerset 0.1.0", - "substrate-primitives 0.1.0", - "substrate-test-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-keyring 1.0.0", + "substrate-network-libp2p 1.0.0", + "substrate-peerset 1.0.0", + "substrate-primitives 1.0.0", + "substrate-test-client 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-network-libp2p" -version = "0.1.0" +version = "1.0.0" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3990,7 +3990,7 @@ dependencies = [ "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-peerset 0.1.0", + "substrate-peerset 1.0.0", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4007,14 +4007,14 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-inherents 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-inherents 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", - "substrate-test-client 0.1.0", - "substrate-transaction-pool 0.1.0", + "substrate-primitives 1.0.0", + "substrate-test-client 1.0.0", + "substrate-transaction-pool 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4022,13 +4022,13 @@ dependencies = [ name = "substrate-offchain-primitives" version = "0.1.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-panic-handler" -version = "0.1.0" +version = "1.0.0" dependencies = [ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4036,7 +4036,7 @@ dependencies = [ [[package]] name = "substrate-peerset" -version = "0.1.0" +version = "1.0.0" dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4052,7 +4052,7 @@ dependencies = [ [[package]] name = "substrate-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4074,9 +4074,9 @@ dependencies = [ "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", + "sr-std 1.0.0", "substrate-bip39 0.2.0 (git+https://github.com/paritytech/substrate-bip39)", - "substrate-serializer 0.1.0", + "substrate-serializer 1.0.0", "tiny-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4085,7 +4085,7 @@ dependencies = [ [[package]] name = "substrate-rpc" -version = "0.1.0" +version = "1.0.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4101,37 +4101,37 @@ dependencies = [ "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", "substrate-network 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-test-client 0.1.0", - "substrate-test-runtime 0.1.0", - "substrate-transaction-pool 0.1.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-test-client 1.0.0", + "substrate-test-runtime 1.0.0", + "substrate-transaction-pool 1.0.0", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-rpc-servers" -version = "0.1.0" +version = "1.0.0" dependencies = [ "jsonrpc-http-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-pubsub 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-ws-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-rpc 0.1.0", + "sr-primitives 1.0.0", + "substrate-rpc 1.0.0", ] [[package]] name = "substrate-serializer" -version = "0.1.0" +version = "1.0.0" dependencies = [ "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4139,7 +4139,7 @@ dependencies = [ [[package]] name = "substrate-service" -version = "0.3.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4152,57 +4152,57 @@ dependencies = [ "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-client-db 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keystore 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-client-db 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keystore 1.0.0", "substrate-network 0.1.0", "substrate-offchain 0.1.0", - "substrate-primitives 0.1.0", - "substrate-rpc-servers 0.1.0", - "substrate-telemetry 0.3.1", - "substrate-test-client 0.1.0", - "substrate-transaction-pool 0.1.0", + "substrate-primitives 1.0.0", + "substrate-rpc-servers 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-test-client 1.0.0", + "substrate-transaction-pool 1.0.0", "target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-service-test" -version = "0.3.0" +version = "1.0.0" dependencies = [ "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "fdlimit 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-common 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-common 1.0.0", "substrate-network 0.1.0", - "substrate-primitives 0.1.0", - "substrate-service 0.3.0", + "substrate-primitives 1.0.0", + "substrate-service 1.0.0", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-state-db" -version = "0.1.0" +version = "1.0.0" dependencies = [ "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-state-machine" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4210,16 +4210,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-trie 0.4.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-trie 1.0.0", "trie-db 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-telemetry" -version = "0.3.1" +version = "1.0.0" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4236,24 +4236,24 @@ dependencies = [ [[package]] name = "substrate-test-client" -version = "0.1.0" +version = "1.0.0" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-client-db 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-test-runtime 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-client-db 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-test-runtime 1.0.0", ] [[package]] name = "substrate-test-runtime" -version = "0.1.0" +version = "1.0.0" dependencies = [ "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4261,26 +4261,26 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-executive 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-authorities 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-executive 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-authorities 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", - "substrate-test-client 0.1.0", + "substrate-primitives 1.0.0", + "substrate-test-client 1.0.0", ] [[package]] name = "substrate-transaction-graph" -version = "0.1.0" +version = "1.0.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4291,31 +4291,31 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-primitives 0.1.0", - "substrate-test-runtime 0.1.0", + "sr-primitives 1.0.0", + "substrate-primitives 1.0.0", + "substrate-test-runtime 1.0.0", ] [[package]] name = "substrate-transaction-pool" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "substrate-client 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-test-client 0.1.0", - "substrate-transaction-graph 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-test-client 1.0.0", + "substrate-transaction-graph 1.0.0", ] [[package]] name = "substrate-trie" -version = "0.4.0" +version = "1.0.0" dependencies = [ "criterion 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4323,7 +4323,7 @@ dependencies = [ "keccak-hasher 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", "trie-bench 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-db 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -5117,7 +5117,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" "checksum bindgen 0.43.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d52d263eacd15d26cbcf215d254b410bd58212aaa2d3c453a04b2d3b3adcf41" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)" = "" +"checksum bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" "checksum blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91721a6330935673395a0607df4d49a9cb90ae12d259f1b3e0a3f6e1d486872e" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" "checksum block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" diff --git a/Cargo.toml b/Cargo.toml index b6eac3e381e07..0c04ab3c10815 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ path = "node/src/main.rs" [package] name = "substrate" -version = "0.11.0" +version = "1.0.0" authors = ["Parity Technologies "] build = "build.rs" edition = "2018" diff --git a/core/basic-authorship/Cargo.toml b/core/basic-authorship/Cargo.toml index d173ac66ee243..fdd1be8177726 100644 --- a/core/basic-authorship/Cargo.toml +++ b/core/basic-authorship/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-basic-authorship" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/cli/Cargo.toml b/core/cli/Cargo.toml index c5bf34063d806..1309e788de77c 100644 --- a/core/cli/Cargo.toml +++ b/core/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-cli" -version = "0.3.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Substrate CLI interface." edition = "2018" diff --git a/core/client/Cargo.toml b/core/client/Cargo.toml index cfc7eb3e3447e..b7236b5a4be93 100644 --- a/core/client/Cargo.toml +++ b/core/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-client" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index cc6e38d0174e5..4f2aa8c5019c3 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-client-db" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/consensus/aura/Cargo.toml b/core/consensus/aura/Cargo.toml index 190ace413de83..da7e855a35cc1 100644 --- a/core/consensus/aura/Cargo.toml +++ b/core/consensus/aura/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-consensus-aura" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Aura consensus algorithm for substrate" edition = "2018" diff --git a/core/consensus/aura/primitives/Cargo.toml b/core/consensus/aura/primitives/Cargo.toml index cc7fbeb3dd31d..759dfae37cd69 100644 --- a/core/consensus/aura/primitives/Cargo.toml +++ b/core/consensus/aura/primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-consensus-aura-primitives" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Primitives for Aura consensus" edition = "2018" diff --git a/core/consensus/aura/slots/Cargo.toml b/core/consensus/aura/slots/Cargo.toml index 3ad763cc181e1..68d066191efa8 100644 --- a/core/consensus/aura/slots/Cargo.toml +++ b/core/consensus/aura/slots/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-consensus-aura-slots" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Generic slots-based utilities for consensus" edition = "2018" diff --git a/core/consensus/authorities/Cargo.toml b/core/consensus/authorities/Cargo.toml index 0800656f76f6e..f9170133458e2 100644 --- a/core/consensus/authorities/Cargo.toml +++ b/core/consensus/authorities/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-consensus-authorities" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Primitives for Aura consensus" edition = "2018" diff --git a/core/consensus/common/Cargo.toml b/core/consensus/common/Cargo.toml index 814857fe69f2e..9708b24dec227 100644 --- a/core/consensus/common/Cargo.toml +++ b/core/consensus/common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-consensus-common" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Common utilities for substrate consensus" edition = "2018" diff --git a/core/consensus/rhd/Cargo.toml b/core/consensus/rhd/Cargo.toml index 71b45cf41b674..354a608d22a97 100644 --- a/core/consensus/rhd/Cargo.toml +++ b/core/consensus/rhd/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-consensus-rhd" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Rhododendron Round-Based consensus-algorithm for substrate" edition = "2018" diff --git a/core/executor/Cargo.toml b/core/executor/Cargo.toml index f34bfbbe91641..48c9aa7d98264 100644 --- a/core/executor/Cargo.toml +++ b/core/executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-executor" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/executor/wasm/Cargo.toml b/core/executor/wasm/Cargo.toml index 9683cd764eebb..709711bae8ee6 100644 --- a/core/executor/wasm/Cargo.toml +++ b/core/executor/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "runtime-test" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/finality-grandpa/Cargo.toml b/core/finality-grandpa/Cargo.toml index 070b073b99774..297aa7a80814f 100644 --- a/core/finality-grandpa/Cargo.toml +++ b/core/finality-grandpa/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-finality-grandpa" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/finality-grandpa/primitives/Cargo.toml b/core/finality-grandpa/primitives/Cargo.toml index a0bd36eb9a43d..39f480f7915a9 100644 --- a/core/finality-grandpa/primitives/Cargo.toml +++ b/core/finality-grandpa/primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-finality-grandpa-primitives" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/inherents/Cargo.toml b/core/inherents/Cargo.toml index d3292095cc5f4..7e0f6957e368e 100644 --- a/core/inherents/Cargo.toml +++ b/core/inherents/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-inherents" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/keyring/Cargo.toml b/core/keyring/Cargo.toml index db480744b74fa..8159e4252e684 100644 --- a/core/keyring/Cargo.toml +++ b/core/keyring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-keyring" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/keystore/Cargo.toml b/core/keystore/Cargo.toml index 9a028d21d975c..d0c8a93473fe1 100644 --- a/core/keystore/Cargo.toml +++ b/core/keystore/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-keystore" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 78bda5b193d6f..0d01fddee692f 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -3,7 +3,7 @@ description = "libp2p implementation of the ethcore network library" homepage = "http://parity.io" license = "GPL-3.0" name = "substrate-network-libp2p" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/panic-handler/Cargo.toml b/core/panic-handler/Cargo.toml index fb870fd8a357e..10b80cc9b7ff6 100644 --- a/core/panic-handler/Cargo.toml +++ b/core/panic-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-panic-handler" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Substrate panic handler." edition = "2018" diff --git a/core/peerset/Cargo.toml b/core/peerset/Cargo.toml index 3eaf1d974790d..68b7e47f3dcce 100644 --- a/core/peerset/Cargo.toml +++ b/core/peerset/Cargo.toml @@ -3,7 +3,7 @@ description = "Connectivity manager based on reputation" homepage = "http://parity.io" license = "GPL-3.0" name = "substrate-peerset" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index fb4893613858b..d3222a5ea4609 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-primitives" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/rpc-servers/Cargo.toml b/core/rpc-servers/Cargo.toml index 9b744eaaa6f69..e4c72be4d7de0 100644 --- a/core/rpc-servers/Cargo.toml +++ b/core/rpc-servers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-rpc-servers" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" @@ -10,5 +10,5 @@ pubsub = { package = "jsonrpc-pubsub", version = "10.0.1" } ws = { package = "jsonrpc-ws-server", version = "10.0.1" } log = "0.4" serde = "1.0" -substrate-rpc = { path = "../rpc", version = "0.1" } +substrate-rpc = { path = "../rpc" } sr-primitives = { path = "../sr-primitives" } diff --git a/core/rpc/Cargo.toml b/core/rpc/Cargo.toml index 8998ebe81f5e4..ffb279e07006a 100644 --- a/core/rpc/Cargo.toml +++ b/core/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-rpc" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/serializer/Cargo.toml b/core/serializer/Cargo.toml index 8788f776e5a28..6aade8fc6ad5e 100644 --- a/core/serializer/Cargo.toml +++ b/core/serializer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-serializer" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index b2f431a5db336..f4eca01300684 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-service" -version = "0.3.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/service/test/Cargo.toml b/core/service/test/Cargo.toml index 1167bbd9486fc..b06e7fcb08eab 100644 --- a/core/service/test/Cargo.toml +++ b/core/service/test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-service-test" -version = "0.3.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/sr-api-macros/Cargo.toml b/core/sr-api-macros/Cargo.toml index e7f46129db6df..2dfedcfe3bcae 100644 --- a/core/sr-api-macros/Cargo.toml +++ b/core/sr-api-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sr-api-macros" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/sr-io/Cargo.toml b/core/sr-io/Cargo.toml index 01555a6f473c3..4951ea3b58f1e 100644 --- a/core/sr-io/Cargo.toml +++ b/core/sr-io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sr-io" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] build = "build.rs" edition = "2018" diff --git a/core/sr-primitives/Cargo.toml b/core/sr-primitives/Cargo.toml index 565b9fb1e400a..edaad9d4df251 100644 --- a/core/sr-primitives/Cargo.toml +++ b/core/sr-primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sr-primitives" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/sr-sandbox/Cargo.toml b/core/sr-sandbox/Cargo.toml index 599e66d6638b1..eac21de9527a4 100755 --- a/core/sr-sandbox/Cargo.toml +++ b/core/sr-sandbox/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sr-sandbox" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] build = "build.rs" edition = "2018" diff --git a/core/sr-std/Cargo.toml b/core/sr-std/Cargo.toml index da1c799159e51..2c4a63af1b886 100644 --- a/core/sr-std/Cargo.toml +++ b/core/sr-std/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sr-std" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] build = "build.rs" edition = "2018" diff --git a/core/sr-version/Cargo.toml b/core/sr-version/Cargo.toml index cf3062faac01b..e86c938ccf0d8 100644 --- a/core/sr-version/Cargo.toml +++ b/core/sr-version/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sr-version" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/state-db/Cargo.toml b/core/state-db/Cargo.toml index 28d5696928ef5..ea40a24f9bf8b 100644 --- a/core/state-db/Cargo.toml +++ b/core/state-db/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-state-db" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/state-machine/Cargo.toml b/core/state-machine/Cargo.toml index d81079b5f9c39..6550a82efda1a 100644 --- a/core/state-machine/Cargo.toml +++ b/core/state-machine/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-state-machine" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Substrate State Machine" edition = "2018" diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index 0553c4f16b757..231206fffd8cd 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-telemetry" -version = "0.3.1" +version = "1.0.0" authors = ["Parity Technologies "] description = "Telemetry utils" edition = "2018" diff --git a/core/test-client/Cargo.toml b/core/test-client/Cargo.toml index 5049b2ff9fd62..613fb065f98c1 100644 --- a/core/test-client/Cargo.toml +++ b/core/test-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-test-client" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/test-runtime/Cargo.toml b/core/test-runtime/Cargo.toml index eb74eb68abb3b..7c0d46bb65048 100644 --- a/core/test-runtime/Cargo.toml +++ b/core/test-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-test-runtime" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/test-runtime/wasm/Cargo.toml b/core/test-runtime/wasm/Cargo.toml index 7b11859874e94..e78de31f3a99e 100644 --- a/core/test-runtime/wasm/Cargo.toml +++ b/core/test-runtime/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-test-runtime-wasm" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/transaction-pool/Cargo.toml b/core/transaction-pool/Cargo.toml index 1286b7bde4b09..5460663e3e04d 100644 --- a/core/transaction-pool/Cargo.toml +++ b/core/transaction-pool/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-transaction-pool" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/transaction-pool/graph/Cargo.toml b/core/transaction-pool/graph/Cargo.toml index 58aeec885d849..1c7f44109c389 100644 --- a/core/transaction-pool/graph/Cargo.toml +++ b/core/transaction-pool/graph/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-transaction-graph" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/core/trie/Cargo.toml b/core/trie/Cargo.toml index a75aac23431e9..cfdd489fa1d63 100644 --- a/core/trie/Cargo.toml +++ b/core/trie/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-trie" -version = "0.4.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Patricia trie stuff using a parity-codec node format" repository = "https://github.com/paritytech/parity-common" diff --git a/core/util/fork-tree/Cargo.toml b/core/util/fork-tree/Cargo.toml index 4098fb80fad28..1bc08c07c9840 100644 --- a/core/util/fork-tree/Cargo.toml +++ b/core/util/fork-tree/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fork-tree" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/node-template/Cargo.toml b/node-template/Cargo.toml index 786f49023b403..d59c50b4aca69 100644 --- a/node-template/Cargo.toml +++ b/node-template/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-template" -version = "0.9.0" +version = "1.0.0" authors = ["Parity Technologies "] build = "build.rs" edition = "2018" diff --git a/node-template/runtime/Cargo.toml b/node-template/runtime/Cargo.toml index 6a312e5530fa5..d1b7566d14a20 100644 --- a/node-template/runtime/Cargo.toml +++ b/node-template/runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-template-runtime" -version = "0.9.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/node-template/runtime/wasm/Cargo.toml b/node-template/runtime/wasm/Cargo.toml index dbb935c6befbc..884a42e7225ee 100644 --- a/node-template/runtime/wasm/Cargo.toml +++ b/node-template/runtime/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-template-runtime-wasm" -version = "0.9.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 28fb297e5731a..ad72818e586b2 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-cli" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Substrate node implementation in Rust." build = "build.rs" diff --git a/node/executor/Cargo.toml b/node/executor/Cargo.toml index 3c2e9a688cb9b..2e7a49455e1ec 100644 --- a/node/executor/Cargo.toml +++ b/node/executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-executor" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] description = "Substrate node implementation in Rust." edition = "2018" diff --git a/node/primitives/Cargo.toml b/node/primitives/Cargo.toml index b7da80c9a879e..c062d092df1c9 100644 --- a/node/primitives/Cargo.toml +++ b/node/primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-primitives" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/node/runtime/Cargo.toml b/node/runtime/Cargo.toml index 3fe3adce30a49..c32cf1a67e01a 100644 --- a/node/runtime/Cargo.toml +++ b/node/runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-runtime" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/node/runtime/wasm/Cargo.toml b/node/runtime/wasm/Cargo.toml index 3512971a44d43..8fd90890e9552 100644 --- a/node/runtime/wasm/Cargo.toml +++ b/node/runtime/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-runtime-wasm" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/scripts/node-template-release/Cargo.toml b/scripts/node-template-release/Cargo.toml index 95538e8b210b3..2dfc0b5255348 100644 --- a/scripts/node-template-release/Cargo.toml +++ b/scripts/node-template-release/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "node-template-release" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/assets/Cargo.toml b/srml/assets/Cargo.toml index 129f884bd9cad..9fe1fd20e0384 100644 --- a/srml/assets/Cargo.toml +++ b/srml/assets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-assets" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/aura/Cargo.toml b/srml/aura/Cargo.toml index 9d1eda38c055f..c78805333f416 100644 --- a/srml/aura/Cargo.toml +++ b/srml/aura/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-aura" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/balances/Cargo.toml b/srml/balances/Cargo.toml index 43759643ddfad..700a2871db12d 100644 --- a/srml/balances/Cargo.toml +++ b/srml/balances/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-balances" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/consensus/Cargo.toml b/srml/consensus/Cargo.toml index 6adeb90d0248c..e3d5f5a3b7552 100644 --- a/srml/consensus/Cargo.toml +++ b/srml/consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-consensus" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/contract/Cargo.toml b/srml/contract/Cargo.toml index ae91f6632d69b..2f0ce687ce937 100644 --- a/srml/contract/Cargo.toml +++ b/srml/contract/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-contract" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/council/Cargo.toml b/srml/council/Cargo.toml index e26003a73e4f1..20a24fec76447 100644 --- a/srml/council/Cargo.toml +++ b/srml/council/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-council" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/democracy/Cargo.toml b/srml/democracy/Cargo.toml index 890882c485a10..a8518c613b09b 100644 --- a/srml/democracy/Cargo.toml +++ b/srml/democracy/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-democracy" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/example/Cargo.toml b/srml/example/Cargo.toml index 57abe374c9b13..753f88b2d9994 100644 --- a/srml/example/Cargo.toml +++ b/srml/example/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-example" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/executive/Cargo.toml b/srml/executive/Cargo.toml index 31ca69fa55b3a..1e2d880b9f863 100644 --- a/srml/executive/Cargo.toml +++ b/srml/executive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-executive" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/finality-tracker/Cargo.toml b/srml/finality-tracker/Cargo.toml index 22691e1aa7b14..f6d512a137f3a 100644 --- a/srml/finality-tracker/Cargo.toml +++ b/srml/finality-tracker/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-finality-tracker" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/grandpa/Cargo.toml b/srml/grandpa/Cargo.toml index b7cc5dc231f3d..075cbff070d97 100644 --- a/srml/grandpa/Cargo.toml +++ b/srml/grandpa/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-grandpa" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/indices/Cargo.toml b/srml/indices/Cargo.toml index 2331f325d1dd1..c4fb01530806d 100644 --- a/srml/indices/Cargo.toml +++ b/srml/indices/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-indices" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/metadata/Cargo.toml b/srml/metadata/Cargo.toml index eed5e6b4e3379..04fd1af4eca76 100644 --- a/srml/metadata/Cargo.toml +++ b/srml/metadata/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-metadata" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/session/Cargo.toml b/srml/session/Cargo.toml index 4f1fe086cffda..fb96bdc11ab52 100644 --- a/srml/session/Cargo.toml +++ b/srml/session/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-session" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/staking/Cargo.toml b/srml/staking/Cargo.toml index 967cee3391f08..f7366c96de001 100644 --- a/srml/staking/Cargo.toml +++ b/srml/staking/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-staking" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/sudo/Cargo.toml b/srml/sudo/Cargo.toml index ef0bb59b538c5..3b0306b30f8e4 100644 --- a/srml/sudo/Cargo.toml +++ b/srml/sudo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-sudo" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/support/Cargo.toml b/srml/support/Cargo.toml index 318eba343b95e..764efd119940d 100644 --- a/srml/support/Cargo.toml +++ b/srml/support/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-support" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" @@ -17,7 +17,7 @@ inherents = { package = "substrate-inherents", path = "../../core/inherents", de srml-support-procedural = { path = "./procedural" } paste = "0.1" once_cell = { version = "0.1.6", default-features = false, optional = true } -bitmask = { git = "https://github.com/paritytech/bitmask", default-features = false } +bitmask = { version = "0.5", default-features = false } [dev-dependencies] pretty_assertions = "0.5.1" diff --git a/srml/support/procedural/Cargo.toml b/srml/support/procedural/Cargo.toml index b01b45a445322..180c4be6b6d4c 100644 --- a/srml/support/procedural/Cargo.toml +++ b/srml/support/procedural/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-support-procedural" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/support/procedural/tools/Cargo.toml b/srml/support/procedural/tools/Cargo.toml index 0c8dfe156844e..fedff54c49a3b 100644 --- a/srml/support/procedural/tools/Cargo.toml +++ b/srml/support/procedural/tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-support-procedural-tools" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/support/procedural/tools/derive/Cargo.toml b/srml/support/procedural/tools/derive/Cargo.toml index aa6e6e736e0d1..20ced99629815 100644 --- a/srml/support/procedural/tools/derive/Cargo.toml +++ b/srml/support/procedural/tools/derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-support-procedural-tools-derive" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/system/Cargo.toml b/srml/system/Cargo.toml index bd199b97f902a..f8210163ca933 100644 --- a/srml/system/Cargo.toml +++ b/srml/system/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-system" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/timestamp/Cargo.toml b/srml/timestamp/Cargo.toml index 30c3779f31c64..e910b34e87e02 100644 --- a/srml/timestamp/Cargo.toml +++ b/srml/timestamp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-timestamp" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/srml/treasury/Cargo.toml b/srml/treasury/Cargo.toml index 825fc73532cbc..0b76dc6f2d911 100644 --- a/srml/treasury/Cargo.toml +++ b/srml/treasury/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "srml-treasury" -version = "0.1.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" diff --git a/subkey/Cargo.toml b/subkey/Cargo.toml index 984820a123846..12ae7bdbbe0e2 100644 --- a/subkey/Cargo.toml +++ b/subkey/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "subkey" -version = "0.2.0" +version = "1.0.0" authors = ["Parity Technologies "] edition = "2018" From 65e401333a6ec1135c15994c943adc2174e24d1e Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 29 Mar 2019 18:21:15 +0100 Subject: [PATCH 2/9] Rebuild and fix --- core/executor/wasm/Cargo.lock | 26 +- core/executor/wasm/Cargo.toml | 4 +- core/test-runtime/wasm/Cargo.lock | 228 ++++---- .../substrate_test_runtime.compact.wasm | Bin 60111 -> 60111 bytes node-template/runtime/wasm/Cargo.lock | 354 ++++++------- node/runtime/wasm/Cargo.lock | 486 +++++++++--------- .../release/node_runtime.compact.wasm | Bin 968726 -> 969038 bytes 7 files changed, 549 insertions(+), 549 deletions(-) diff --git a/core/executor/wasm/Cargo.lock b/core/executor/wasm/Cargo.lock index d7ff3a8d2350a..ad4dd6aa36c92 100644 --- a/core/executor/wasm/Cargo.lock +++ b/core/executor/wasm/Cargo.lock @@ -108,11 +108,11 @@ dependencies = [ [[package]] name = "runtime-test" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "sr-io 0.1.0", - "sr-sandbox 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-sandbox 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] @@ -148,28 +148,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sr-io" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "sr-sandbox" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "sr-std" -version = "0.1.0" +version = "1.0.0" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -181,7 +181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "substrate-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -189,7 +189,7 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", + "sr-std 1.0.0", ] [[package]] diff --git a/core/executor/wasm/Cargo.toml b/core/executor/wasm/Cargo.toml index 709711bae8ee6..be60dfa1c9401 100644 --- a/core/executor/wasm/Cargo.toml +++ b/core/executor/wasm/Cargo.toml @@ -8,8 +8,8 @@ edition = "2018" crate-type = ["cdylib"] [dependencies] -runtime_io = { package = "sr-io", path = "../../sr-io", version = "0.1", default-features = false } -sandbox = { package = "sr-sandbox", path = "../../sr-sandbox", version = "0.1", default-features = false } +runtime_io = { package = "sr-io", path = "../../sr-io", default-features = false } +sandbox = { package = "sr-sandbox", path = "../../sr-sandbox", default-features = false } substrate-primitives = { path = "../../primitives", default-features = false } [profile.release] diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index e3c211fa936c9..a401ef6de577b 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -136,7 +136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitmask" version = "0.5.0" -source = "git+https://github.com/paritytech/bitmask#a84e147be602631617badd18b6b9af83391db4a9" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2" @@ -2005,7 +2005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sr-api-macros" -version = "0.1.0" +version = "1.0.0" dependencies = [ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2016,23 +2016,23 @@ dependencies = [ [[package]] name = "sr-io" -version = "0.1.0" +version = "1.0.0" dependencies = [ "environmental 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2040,98 +2040,98 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "sr-std" -version = "0.1.0" +version = "1.0.0" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-version" -version = "0.1.0" +version = "1.0.0" dependencies = [ "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "srml-executive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", ] [[package]] name = "srml-metadata" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-support" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)", + "bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "paste 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-metadata 0.1.0", - "srml-support-procedural 0.1.0", - "substrate-inherents 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-metadata 1.0.0", + "srml-support-procedural 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-support-procedural" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "srml-support-procedural-tools 0.1.0", + "sr-api-macros 1.0.0", + "srml-support-procedural-tools 1.0.0", "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "srml-support-procedural-tools-derive 0.1.0", + "srml-support-procedural-tools-derive 1.0.0", "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools-derive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2140,18 +2140,18 @@ dependencies = [ [[package]] name = "srml-system" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] @@ -2250,7 +2250,7 @@ dependencies = [ [[package]] name = "substrate-client" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2262,45 +2262,45 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-telemetry 0.3.1", - "substrate-trie 0.4.0", + "sr-api-macros 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-trie 1.0.0", ] [[package]] name = "substrate-consensus-aura-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-consensus-authorities" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-consensus-common" -version = "0.1.0" +version = "1.0.0" dependencies = [ "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2309,16 +2309,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-executor" -version = "0.1.0" +version = "1.0.0" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2329,49 +2329,49 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-version 0.1.0", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-serializer 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-io 1.0.0", + "sr-version 1.0.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-serializer 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-inherents" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "substrate-keyring" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum_macros 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-offchain-primitives" version = "0.1.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-panic-handler" -version = "0.1.0" +version = "1.0.0" dependencies = [ "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2379,7 +2379,7 @@ dependencies = [ [[package]] name = "substrate-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2399,7 +2399,7 @@ dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", + "sr-std 1.0.0", "substrate-bip39 0.2.0 (git+https://github.com/paritytech/substrate-bip39)", "tiny-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2409,7 +2409,7 @@ dependencies = [ [[package]] name = "substrate-serializer" -version = "0.1.0" +version = "1.0.0" dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2417,7 +2417,7 @@ dependencies = [ [[package]] name = "substrate-state-machine" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2425,16 +2425,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-trie 0.4.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-trie 1.0.0", "trie-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-telemetry" -version = "0.3.1" +version = "1.0.0" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2451,7 +2451,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" -version = "0.1.0" +version = "1.0.0" dependencies = [ "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2459,31 +2459,31 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-executive 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-authorities 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-executive 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-authorities 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-test-runtime-wasm" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "substrate-test-runtime 0.1.0", + "substrate-test-runtime 1.0.0", ] [[package]] name = "substrate-trie" -version = "0.4.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3004,7 +3004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)" = "" +"checksum bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" "checksum blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91721a6330935673395a0607df4d49a9cb90ae12d259f1b3e0a3f6e1d486872e" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" "checksum block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 8f90cec76d61d5d4c596a975dc52d018a7d82f24..7b81180d05a2dd1a5b2cb440a3db144553c444f1 100644 GIT binary patch delta 6030 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 nXgZ#cYLQ4Rq2%}`WobgY8o+ADq#izbF delta 6049 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 diff --git a/node-template/runtime/wasm/Cargo.lock b/node-template/runtime/wasm/Cargo.lock index 824a8f3650fec..a409935f9808a 100644 --- a/node-template/runtime/wasm/Cargo.lock +++ b/node-template/runtime/wasm/Cargo.lock @@ -136,7 +136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitmask" version = "0.5.0" -source = "git+https://github.com/paritytech/bitmask#a84e147be602631617badd18b6b9af83391db4a9" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2" @@ -1252,37 +1252,37 @@ dependencies = [ [[package]] name = "node-template-runtime" -version = "0.9.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-aura 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-executive 0.1.0", - "srml-indices 0.1.0", - "srml-sudo 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-authorities 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-aura 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-executive 1.0.0", + "srml-indices 1.0.0", + "srml-sudo 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-authorities 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "node-template-runtime-wasm" -version = "0.9.0" +version = "1.0.0" dependencies = [ - "node-template-runtime 0.9.0", + "node-template-runtime 1.0.0", ] [[package]] @@ -2040,7 +2040,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sr-api-macros" -version = "0.1.0" +version = "1.0.0" dependencies = [ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2051,23 +2051,23 @@ dependencies = [ [[package]] name = "sr-io" -version = "0.1.0" +version = "1.0.0" dependencies = [ "environmental 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2075,215 +2075,215 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "sr-std" -version = "0.1.0" +version = "1.0.0" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-version" -version = "0.1.0" +version = "1.0.0" dependencies = [ "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "srml-aura" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-session 0.1.0", - "srml-staking 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-inherents 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-session 1.0.0", + "srml-staking 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-balances" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", ] [[package]] name = "srml-consensus" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-executive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", ] [[package]] name = "srml-indices" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-metadata" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-session" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", ] [[package]] name = "srml-staking" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-session 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-session 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", ] [[package]] name = "srml-sudo" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-support-procedural 0.1.0", - "srml-system 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-support-procedural 1.0.0", + "srml-system 1.0.0", ] [[package]] name = "srml-support" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)", + "bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "paste 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-metadata 0.1.0", - "srml-support-procedural 0.1.0", - "substrate-inherents 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-metadata 1.0.0", + "srml-support-procedural 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-support-procedural" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "srml-support-procedural-tools 0.1.0", + "sr-api-macros 1.0.0", + "srml-support-procedural-tools 1.0.0", "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "srml-support-procedural-tools-derive 0.1.0", + "srml-support-procedural-tools-derive 1.0.0", "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools-derive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2292,32 +2292,32 @@ dependencies = [ [[package]] name = "srml-system" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-timestamp" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] @@ -2416,7 +2416,7 @@ dependencies = [ [[package]] name = "substrate-client" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2428,45 +2428,45 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-telemetry 0.3.1", - "substrate-trie 0.4.0", + "sr-api-macros 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-trie 1.0.0", ] [[package]] name = "substrate-consensus-aura-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-consensus-authorities" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-consensus-common" -version = "0.1.0" +version = "1.0.0" dependencies = [ "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2475,16 +2475,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-executor" -version = "0.1.0" +version = "1.0.0" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2495,49 +2495,49 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-version 0.1.0", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-serializer 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-io 1.0.0", + "sr-version 1.0.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-serializer 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-inherents" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "substrate-keyring" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum_macros 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-offchain-primitives" version = "0.1.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-panic-handler" -version = "0.1.0" +version = "1.0.0" dependencies = [ "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2545,7 +2545,7 @@ dependencies = [ [[package]] name = "substrate-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2565,7 +2565,7 @@ dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", + "sr-std 1.0.0", "substrate-bip39 0.2.0 (git+https://github.com/paritytech/substrate-bip39)", "tiny-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2575,7 +2575,7 @@ dependencies = [ [[package]] name = "substrate-serializer" -version = "0.1.0" +version = "1.0.0" dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2583,7 +2583,7 @@ dependencies = [ [[package]] name = "substrate-state-machine" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2591,16 +2591,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-trie 0.4.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-trie 1.0.0", "trie-db 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-telemetry" -version = "0.3.1" +version = "1.0.0" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2617,7 +2617,7 @@ dependencies = [ [[package]] name = "substrate-trie" -version = "0.4.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3138,7 +3138,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)" = "" +"checksum bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" "checksum blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91721a6330935673395a0607df4d49a9cb90ae12d259f1b3e0a3f6e1d486872e" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" "checksum block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index d9bb349bc9823..b24d89f9695b4 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -136,7 +136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitmask" version = "0.5.0" -source = "git+https://github.com/paritytech/bitmask#a84e147be602631617badd18b6b9af83391db4a9" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2" @@ -1252,61 +1252,61 @@ dependencies = [ [[package]] name = "node-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "node-runtime" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "node-primitives 0.1.0", + "node-primitives 1.0.0", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-aura 0.1.0", - "srml-balances 0.1.0", - "srml-consensus 0.1.0", - "srml-contract 0.1.0", - "srml-council 0.1.0", - "srml-democracy 0.1.0", - "srml-executive 0.1.0", - "srml-finality-tracker 0.1.0", - "srml-grandpa 0.1.0", - "srml-indices 0.1.0", - "srml-session 0.1.0", - "srml-staking 0.1.0", - "srml-sudo 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "srml-treasury 0.1.0", - "substrate-client 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", - "substrate-consensus-authorities 0.1.0", - "substrate-keyring 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-aura 1.0.0", + "srml-balances 1.0.0", + "srml-consensus 1.0.0", + "srml-contract 1.0.0", + "srml-council 1.0.0", + "srml-democracy 1.0.0", + "srml-executive 1.0.0", + "srml-finality-tracker 1.0.0", + "srml-grandpa 1.0.0", + "srml-indices 1.0.0", + "srml-session 1.0.0", + "srml-staking 1.0.0", + "srml-sudo 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "srml-treasury 1.0.0", + "substrate-client 1.0.0", + "substrate-consensus-aura-primitives 1.0.0", + "substrate-consensus-authorities 1.0.0", + "substrate-keyring 1.0.0", "substrate-offchain-primitives 0.1.0", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "node-runtime-wasm" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "node-runtime 0.1.0", + "node-runtime 1.0.0", ] [[package]] @@ -2074,7 +2074,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sr-api-macros" -version = "0.1.0" +version = "1.0.0" dependencies = [ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2085,23 +2085,23 @@ dependencies = [ [[package]] name = "sr-io" -version = "0.1.0" +version = "1.0.0" dependencies = [ "environmental 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2109,310 +2109,310 @@ dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "sr-sandbox" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-std" -version = "0.1.0" +version = "1.0.0" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-version" -version = "0.1.0" +version = "1.0.0" dependencies = [ "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "srml-aura" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-session 0.1.0", - "srml-staking 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-inherents 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-session 1.0.0", + "srml-staking 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-balances" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", ] [[package]] name = "srml-consensus" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-contract" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", "pwasm-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-sandbox 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-sandbox 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-council" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-democracy 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-democracy 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-democracy" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", ] [[package]] name = "srml-executive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", ] [[package]] name = "srml-finality-tracker" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-grandpa" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-finality-tracker 0.1.0", - "srml-session 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-finality-grandpa-primitives 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-finality-tracker 1.0.0", + "srml-session 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-finality-grandpa-primitives 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-indices" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-metadata" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", - "substrate-primitives 0.1.0", + "sr-std 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-session" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "srml-timestamp 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "srml-timestamp 1.0.0", ] [[package]] name = "srml-staking" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-consensus 0.1.0", - "srml-session 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-keyring 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-consensus 1.0.0", + "srml-session 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-keyring 1.0.0", ] [[package]] name = "srml-sudo" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-support-procedural 0.1.0", - "srml-system 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-support-procedural 1.0.0", + "srml-system 1.0.0", ] [[package]] name = "srml-support" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)", + "bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "paste 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-metadata 0.1.0", - "srml-support-procedural 0.1.0", - "substrate-inherents 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-metadata 1.0.0", + "srml-support-procedural 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-support-procedural" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "srml-support-procedural-tools 0.1.0", + "sr-api-macros 1.0.0", + "srml-support-procedural-tools 1.0.0", "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro-crate 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "srml-support-procedural-tools-derive 0.1.0", + "srml-support-procedural-tools-derive 1.0.0", "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools-derive" -version = "0.1.0" +version = "1.0.0" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2421,47 +2421,47 @@ dependencies = [ [[package]] name = "srml-system" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "srml-timestamp" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", - "substrate-inherents 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", + "substrate-inherents 1.0.0", ] [[package]] name = "srml-treasury" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "srml-balances 0.1.0", - "srml-support 0.1.0", - "srml-system 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "srml-balances 1.0.0", + "srml-support 1.0.0", + "srml-system 1.0.0", ] [[package]] @@ -2560,7 +2560,7 @@ dependencies = [ [[package]] name = "substrate-client" -version = "0.1.0" +version = "1.0.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2572,45 +2572,45 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-api-macros 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "substrate-consensus-common 0.1.0", - "substrate-executor 0.1.0", - "substrate-inherents 0.1.0", - "substrate-keyring 0.1.0", - "substrate-primitives 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-telemetry 0.3.1", - "substrate-trie 0.4.0", + "sr-api-macros 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "substrate-consensus-common 1.0.0", + "substrate-executor 1.0.0", + "substrate-inherents 1.0.0", + "substrate-keyring 1.0.0", + "substrate-primitives 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-telemetry 1.0.0", + "substrate-trie 1.0.0", ] [[package]] name = "substrate-consensus-aura-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-consensus-authorities" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "sr-version 0.1.0", - "srml-support 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", + "sr-io 1.0.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "sr-version 1.0.0", + "srml-support 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-consensus-common" -version = "0.1.0" +version = "1.0.0" dependencies = [ "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2619,16 +2619,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-version 0.1.0", - "substrate-inherents 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-version 1.0.0", + "substrate-inherents 1.0.0", + "substrate-primitives 1.0.0", "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-executor" -version = "0.1.0" +version = "1.0.0" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2639,60 +2639,60 @@ dependencies = [ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0", - "sr-version 0.1.0", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-serializer 0.1.0", - "substrate-state-machine 0.1.0", - "substrate-trie 0.4.0", + "sr-io 1.0.0", + "sr-version 1.0.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-serializer 1.0.0", + "substrate-state-machine 1.0.0", + "substrate-trie 1.0.0", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-finality-grandpa-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", - "substrate-client 0.1.0", - "substrate-primitives 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", + "substrate-client 1.0.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-inherents" -version = "0.1.0" +version = "1.0.0" dependencies = [ "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0", - "sr-std 0.1.0", + "sr-primitives 1.0.0", + "sr-std 1.0.0", ] [[package]] name = "substrate-keyring" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum_macros 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0", + "substrate-primitives 1.0.0", ] [[package]] name = "substrate-offchain-primitives" version = "0.1.0" dependencies = [ - "sr-primitives 0.1.0", - "substrate-client 0.1.0", + "sr-primitives 1.0.0", + "substrate-client 1.0.0", ] [[package]] name = "substrate-panic-handler" -version = "0.1.0" +version = "1.0.0" dependencies = [ "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2700,7 +2700,7 @@ dependencies = [ [[package]] name = "substrate-primitives" -version = "0.1.0" +version = "1.0.0" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2720,7 +2720,7 @@ dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0", + "sr-std 1.0.0", "substrate-bip39 0.2.0 (git+https://github.com/paritytech/substrate-bip39)", "tiny-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2730,7 +2730,7 @@ dependencies = [ [[package]] name = "substrate-serializer" -version = "0.1.0" +version = "1.0.0" dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2738,7 +2738,7 @@ dependencies = [ [[package]] name = "substrate-state-machine" -version = "0.1.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2746,16 +2746,16 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-panic-handler 0.1.0", - "substrate-primitives 0.1.0", - "substrate-trie 0.4.0", + "substrate-panic-handler 1.0.0", + "substrate-primitives 1.0.0", + "substrate-trie 1.0.0", "trie-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-telemetry" -version = "0.3.1" +version = "1.0.0" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2772,7 +2772,7 @@ dependencies = [ [[package]] name = "substrate-trie" -version = "0.4.0" +version = "1.0.0" dependencies = [ "hash-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory-db 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3293,7 +3293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum bitmask 0.5.0 (git+https://github.com/paritytech/bitmask)" = "" +"checksum bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" "checksum blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91721a6330935673395a0607df4d49a9cb90ae12d259f1b3e0a3f6e1d486872e" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" "checksum block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 53c5a9e15e62c336bdc60a099e749cd65657a04e..22a8856152d07c23c4f0b88fbc98cd66b6cf690b 100644 GIT binary patch delta 53915 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 From acb2746385e312abfcb7cd106fd612173bd34a8f Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 08:50:36 +0200 Subject: [PATCH 3/9] Rename fixes --- srml/consensus/src/tests.rs | 6 +++--- srml/staking/src/phragmen.rs | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/srml/consensus/src/tests.rs b/srml/consensus/src/tests.rs index 4fb5bb614d5f4..bf8b3a09f3768 100644 --- a/srml/consensus/src/tests.rs +++ b/srml/consensus/src/tests.rs @@ -47,10 +47,10 @@ fn authorities_change_logged() { #[test] fn partial_authorities_change_logged() { with_externalities(&mut new_test_ext(vec![1, 2, 3]), || { - System::initialise(&2, &Default::default(), &Default::default()); + System::initialize(&2, &Default::default(), &Default::default()); Consensus::set_authorities(&[UintAuthorityId(2), UintAuthorityId(4), UintAuthorityId(5)]); - Consensus::on_finalise(2); - let header = System::finalise(); + Consensus::on_finalize(2); + let header = System::finalize(); assert_eq!(header.digest, testing::Digest { logs: vec![ generic::DigestItem::AuthoritiesChange( diff --git a/srml/staking/src/phragmen.rs b/srml/staking/src/phragmen.rs index bb939baa7998a..a0bf37e09cd51 100644 --- a/srml/staking/src/phragmen.rs +++ b/srml/staking/src/phragmen.rs @@ -93,12 +93,12 @@ pub struct Edge { /// Returns an Option of elected candidates, if election is performed. /// Returns None if not enough candidates exist. pub fn elect( - get_rounds: FR, - get_validators: FV, - get_nominators: FN, - stash_of: FS, - minimum_validator_count: usize, - config: ElectionConfig>, + get_rounds: FR, + get_validators: FV, + get_nominators: FN, + stash_of: FS, + minimum_validator_count: usize, + config: ElectionConfig>, ) -> Option>>> where FR: Fn() -> usize, FV: Fn() -> Box( >>, for <'r> FS: Fn(&'r T::AccountId) -> BalanceOf, { - let expand = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; + let expand = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; let shrink = |b: ExtendedBalance| >>::convert(b); let rounds = get_rounds(); let mut elected_candidates; @@ -164,7 +164,7 @@ pub fn elect( .collect::>>>(); // 4- If we have more candidates then needed, run Phragmén. - if candidates.len() >= rounds { + if candidates.len() > rounds { elected_candidates = Vec::with_capacity(rounds); // Main election loop for _round in 0..rounds { @@ -254,7 +254,7 @@ pub fn elect( } } } else { - if candidates.len() > minimum_validator_count { + if candidates.len() >= minimum_validator_count { // if we don't have enough candidates, just choose all that have some vote. elected_candidates = candidates; for n in &mut nominators { From 0def513d2274f8b94d8652a78304461dc91ae740 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 09:04:11 +0200 Subject: [PATCH 4/9] Rebuild --- .../release/node_runtime.compact.wasm | Bin 969038 -> 968958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 22a8856152d07c23c4f0b88fbc98cd66b6cf690b..9bbeb1ba0716026d6f9ba860c4cfb9a8ee5f9bb3 100644 GIT binary patch delta 8226 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 VQGeBk3nd;8k3aU|!p7yB{|}+Oce(%o delta 8476 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 GUH^Y+oSp0d From 1a48bdd81fc4564297d0405b1f09513e239f5e5d Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 09:44:30 +0200 Subject: [PATCH 5/9] Minor fix and code formatting for validator election --- node/runtime/src/lib.rs | 4 ++-- .../release/node_runtime.compact.wasm | Bin 968958 -> 954276 bytes srml/consensus/src/lib.rs | 2 +- srml/staking/src/lib.rs | 10 +++++----- srml/staking/src/phragmen.rs | 14 ++++++-------- srml/staking/src/tests.rs | 8 ++++---- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 8be70a6bcfb1e..cdab34ed9e1e6 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -59,8 +59,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 53, - impl_version: 53, + spec_version: 54, + impl_version: 54, apis: RUNTIME_API_VERSIONS, }; diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 9bbeb1ba0716026d6f9ba860c4cfb9a8ee5f9bb3..5084096f3e5ebd02fcabeeeb8c7ff11f8797e9e7 100644 GIT binary patch delta 67524 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 z%0D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 diff --git a/srml/consensus/src/lib.rs b/srml/consensus/src/lib.rs index 4c2a57b83c1de..68faf8838224f 100644 --- a/srml/consensus/src/lib.rs +++ b/srml/consensus/src/lib.rs @@ -70,7 +70,7 @@ //! Log changes in the authorities set: //! //! ```rust,ignore -//! >::on_finalise(5); // finalize UintAuthorityId(5) +//! >::on_finalize(5); // finalize UintAuthorityId(5) //! ``` //! //! ### Example from SRML diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index 32b44f0264bd8..6b8cf0ac4e370 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -944,16 +944,16 @@ impl Module { /// /// Returns the new SlotStake value. fn select_validators() -> BalanceOf { - let rounds = || >::get() as usize; + let validator_count = Self::validator_count() as usize; + let min_validator_count = Self::minimum_validator_count().max(1) as usize; let validators = || >::enumerate(); let nominators = || >::enumerate(); - let min_validator_count = Self::minimum_validator_count() as usize; - let maybe_elected_candidates = elect::( - rounds, + let maybe_elected_candidates = elect::( + validator_count, + min_validator_count, validators, nominators, Self::slashable_balance_of, - min_validator_count, ElectionConfig::> { equalize: false, tolerance: >::sa(10 as u64), diff --git a/srml/staking/src/phragmen.rs b/srml/staking/src/phragmen.rs index a0bf37e09cd51..8e540e0a2cd57 100644 --- a/srml/staking/src/phragmen.rs +++ b/srml/staking/src/phragmen.rs @@ -92,15 +92,14 @@ pub struct Edge { /// /// Returns an Option of elected candidates, if election is performed. /// Returns None if not enough candidates exist. -pub fn elect( - get_rounds: FR, +pub fn elect( + validator_count: usize, + minimum_validator_count: usize, get_validators: FV, get_nominators: FN, stash_of: FS, - minimum_validator_count: usize, config: ElectionConfig>, ) -> Option>>> where - FR: Fn() -> usize, FV: Fn() -> Box>) >>, @@ -111,7 +110,6 @@ pub fn elect( { let expand = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; let shrink = |b: ExtendedBalance| >>::convert(b); - let rounds = get_rounds(); let mut elected_candidates; // 1- Pre-process candidates and place them in a container @@ -164,10 +162,10 @@ pub fn elect( .collect::>>>(); // 4- If we have more candidates then needed, run Phragmén. - if candidates.len() > rounds { - elected_candidates = Vec::with_capacity(rounds); + if candidates.len() > validator_count { + elected_candidates = Vec::with_capacity(validator_count); // Main election loop - for _round in 0..rounds { + for _round in 0..validator_count { // Loop 1: initialize score for c in &mut candidates { if !c.elected { diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 2d6ce5aa7ae1c..52a666fc36cb2 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -1494,17 +1494,17 @@ fn phragmen_election_works_with_post_processing() { assert_ok!(Staking::bond(Origin::signed(3), 4, 1000, RewardDestination::default())); assert_ok!(Staking::nominate(Origin::signed(4), vec![11, 31])); - let rounds = || 2 as usize; + let validator_count = 2; let validators = || >::enumerate(); let nominators = || >::enumerate(); let min_validator_count = Staking::minimum_validator_count() as usize; - let winners = phragmen::elect::( - rounds, + let winners = phragmen::elect::( + validator_count, + min_validator_count, validators, nominators, Staking::slashable_balance_of, - min_validator_count, ElectionConfig::> { equalize: true, tolerance: >::sa(10 as u64), From 56bb12ce28e38701b4d21f9c6a962a40a67c29d6 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 09:59:35 +0200 Subject: [PATCH 6/9] Fix tests --- srml/staking/src/mock.rs | 13 +++++++------ srml/staking/src/tests.rs | 11 ++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/srml/staking/src/mock.rs b/srml/staking/src/mock.rs index 17723cb362604..88b401b19eb51 100644 --- a/srml/staking/src/mock.rs +++ b/srml/staking/src/mock.rs @@ -101,7 +101,7 @@ pub struct ExtBuilder { nominate: bool, validator_count: u32, minimum_validator_count: u32, - fare: bool, + fair: bool, } impl Default for ExtBuilder { @@ -116,7 +116,7 @@ impl Default for ExtBuilder { nominate: true, validator_count: 2, minimum_validator_count: 0, - fare: true + fair: true } } } @@ -154,8 +154,8 @@ impl ExtBuilder { self.minimum_validator_count = count; self } - pub fn fare(mut self, is_fare: bool) -> Self { - self.fare = is_fare; + pub fn fair(mut self, is_fair: bool) -> Self { + self.fair = is_fair; self } pub fn build(self) -> runtime_io::TestExternalities { @@ -205,7 +205,7 @@ impl ExtBuilder { stakers: if self.validator_pool { vec![ (11, 10, balance_factor * 1000, StakerStatus::::Validator), - (21, 20, balance_factor * if self.fare { 1000 } else { 2000 }, StakerStatus::::Validator), + (21, 20, balance_factor * if self.fair { 1000 } else { 2000 }, StakerStatus::::Validator), (31, 30, balance_factor * 1000, if self.validator_pool { StakerStatus::::Validator } else { StakerStatus::::Idle }), (41, 40, balance_factor * 1000, if self.validator_pool { StakerStatus::::Validator } else { StakerStatus::::Idle }), // nominator @@ -214,7 +214,8 @@ impl ExtBuilder { } else { vec![ (11, 10, balance_factor * 1000, StakerStatus::::Validator), - (21, 20, balance_factor * if self.fare { 1000 } else { 2000 }, StakerStatus::::Validator), + (21, 20, balance_factor * if self.fair { 1000 } else { 2000 }, StakerStatus::::Validator), + (31, 30, 1, StakerStatus::::Validator), // nominator (101, 100, balance_factor * 500, if self.nominate { StakerStatus::::Nominator(vec![11, 21]) } else { StakerStatus::::Nominator(vec![]) }) ] diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 52a666fc36cb2..a2dc132cb2fa4 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -45,6 +45,7 @@ fn basic_setup_works() { // ValidatorPrefs are default, thus unstake_threshold is 3, other values are default for their type assert_eq!(>::enumerate().collect::>(), vec![ + (31, ValidatorPrefs { unstake_threshold: 3, validator_payment: 0 }), (21, ValidatorPrefs { unstake_threshold: 3, validator_payment: 0 }), (11, ValidatorPrefs { unstake_threshold: 3, validator_payment: 0 }) ]); @@ -435,7 +436,7 @@ fn staking_should_work() { with_externalities(&mut ExtBuilder::default() .sessions_per_era(3) .nominate(false) - .fare(false) // to give 20 more staked value + .fair(false) // to give 20 more staked value .build(), || { // remember + compare this along with the test. @@ -879,7 +880,7 @@ fn cannot_transfer_staked_balance_2() { // 21 has 2000 free balance but 1000 at stake with_externalities(&mut ExtBuilder::default() .nominate(false) - .fare(true) + .fair(true) .build(), || { // Confirm account 21 is stashed @@ -1182,7 +1183,7 @@ fn slot_stake_is_least_staked_validator_and_exposure_defines_maximum_punishment( // Test that slot_stake is the maximum punishment that can happen to a validator with_externalities(&mut ExtBuilder::default() .nominate(false) - .fare(false) + .fair(false) .build(), || { // Confirm validator count is 2 @@ -1750,7 +1751,7 @@ fn phragmen_linear_worse_case_equalize() { with_externalities(&mut ExtBuilder::default() .nominate(false) .validator_pool(true) - .fare(true) + .fair(true) .build(), || { let bond_validator = |a, b| { @@ -1810,7 +1811,7 @@ fn phragmen_chooses_correct_number_of_validators() { with_externalities(&mut ExtBuilder::default() .nominate(true) .validator_pool(true) - .fare(true) + .fair(true) .validator_count(1) .build(), || { From b480892509adbe6ed279cd77e385f86bde3c0eca Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 10:14:54 +0200 Subject: [PATCH 7/9] More test fixes --- srml/staking/src/tests.rs | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index a2dc132cb2fa4..93158ebae8e3d 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -519,17 +519,14 @@ fn less_than_needed_candidates_works() { // The expected behavior is to choose all the candidates that have some vote. with_externalities(&mut ExtBuilder::default() .minimum_validator_count(1) - .validator_count(3) + .validator_count(4) .nominate(false) .build(), || { assert_eq!(Staking::era_length(), 1); - assert_eq!(Staking::validator_count(), 3); + assert_eq!(Staking::validator_count(), 4); assert_eq!(Staking::minimum_validator_count(), 1); - // initial validators - assert_eq_uvec!(Session::validators(), vec![20, 10]); - // 10 and 20 are now valid candidates. // trigger era System::set_block_number(1); @@ -537,11 +534,12 @@ fn less_than_needed_candidates_works() { assert_eq!(Staking::current_era(), 1); // both validators will be chosen again. NO election algorithm is even executed. - assert_eq_uvec!(Session::validators(), vec![20, 10]); + assert_eq_uvec!(Session::validators(), vec![30, 20, 10]); // But the exposure is updated in a simple way. No external votes exists. This is purely self-vote. assert_eq!(Staking::stakers(10).others.iter().map(|e| e.who).collect::>>(), vec![]); assert_eq!(Staking::stakers(20).others.iter().map(|e| e.who).collect::>>(), vec![]); + assert_eq!(Staking::stakers(30).others.iter().map(|e| e.who).collect::>>(), vec![]); }); } @@ -703,9 +701,7 @@ fn nominators_also_get_slashed() { assert_eq!(Staking::offline_slash_grace(), 0); // Account 10 has not been reported offline assert_eq!(Staking::slash_count(&10), 0); - // initial validators - assert_eq_uvec!(Session::validators(), vec![20, 10]); - >::put(Perbill::from_percent(12)); + >::put(Perbill::from_percent(12)); // Set payee to controller assert_ok!(Staking::set_payee(Origin::signed(10), RewardDestination::Controller)); @@ -1483,7 +1479,7 @@ fn phragmen_election_works_with_post_processing() { assert_eq_uvec!(Session::validators(), vec![20, 10]); // Bond [30, 31] as the third validator - assert_ok!(Staking::bond(Origin::signed(31), 30, 1000, RewardDestination::default())); + assert_ok!(Staking::bond_extra(Origin::signed(31), 999)); assert_ok!(Staking::validate(Origin::signed(30), ValidatorPrefs::default())); // bond [2,1](A), [4,3](B), as 2 nominators @@ -1642,14 +1638,12 @@ fn bond_with_no_staked_value() { .minimum_validator_count(1) .build(), || { // setup + assert_ok!(Staking::chill(Origin::signed(30))); assert_ok!(Staking::set_payee(Origin::signed(10), RewardDestination::Controller)); let _ = Balances::deposit_creating(&3, 1000); let initial_balance_2 = Balances::free_balance(&2); let initial_balance_4 = Balances::free_balance(&4); - // initial validators - assert_eq_uvec!(Session::validators(), vec![20, 10]); - // Stingy validator. assert_ok!(Staking::bond(Origin::signed(1), 2, 0, RewardDestination::Controller)); assert_ok!(Staking::validate(Origin::signed(2), ValidatorPrefs::default())); @@ -1705,14 +1699,13 @@ fn bond_with_little_staked_value_bounded_by_slot_stake() { .minimum_validator_count(1) .build(), || { + // setup + assert_ok!(Staking::chill(Origin::signed(30))); assert_ok!(Staking::set_payee(Origin::signed(10), RewardDestination::Controller)); let initial_balance_2 = Balances::free_balance(&2); let initial_balance_10 = Balances::free_balance(&10); - // initial validators - assert_eq_uvec!(Session::validators(), vec![20, 10]); - // Stingy validator. assert_ok!(Staking::bond(Origin::signed(1), 2, 1, RewardDestination::Controller)); assert_ok!(Staking::validate(Origin::signed(2), ValidatorPrefs::default())); From 55cb0f8ab9d6cc32d67848795eb93d68c5c954d7 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 13:59:59 +0200 Subject: [PATCH 8/9] Fix several bugs in phragmen elections. --- srml/staking/src/phragmen.rs | 145 +++++++++++++++++------------------ srml/staking/src/tests.rs | 21 +++-- 2 files changed, 80 insertions(+), 86 deletions(-) diff --git a/srml/staking/src/phragmen.rs b/srml/staking/src/phragmen.rs index 8e540e0a2cd57..702954fb0fe87 100644 --- a/srml/staking/src/phragmen.rs +++ b/srml/staking/src/phragmen.rs @@ -108,41 +108,53 @@ pub fn elect( >>, for <'r> FS: Fn(&'r T::AccountId) -> BalanceOf, { - let expand = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; - let shrink = |b: ExtendedBalance| >>::convert(b); + let into_currency = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; + let into_votes = |b: ExtendedBalance| >>::convert(b); let mut elected_candidates; - // 1- Pre-process candidates and place them in a container - let mut candidates = get_validators().map(|(who, _)| { - let stash_balance = stash_of(&who); - Candidate { - who, - exposure: Exposure { total: stash_balance, own: stash_balance, others: vec![] }, - ..Default::default() - } - }).collect::>>>(); - - // 1.1- Add phantom votes. - let mut nominators: Vec> = Vec::with_capacity(candidates.len()); - candidates.iter_mut().enumerate().for_each(|(idx, c)| { - c.approval_stake += expand(c.exposure.total); - nominators.push(Nominator { - who: c.who.clone(), - edges: vec![ Edge { who: c.who.clone(), candidate_index: idx, ..Default::default() }], - budget: expand(c.exposure.total), - load: Fraction::zero(), + let get_validators = get_validators(); + let get_nominators = get_nominators(); + + // 1- Pre-process candidates and place them in a container, optimisation and add phantom votes. + // Candidates who have 0 stake => have no votes or all null-votes. Kick them out not. + let mut nominators: Vec> = Vec::with_capacity(get_validators.size_hint().0 + get_nominators.size_hint().0); + let mut candidates = get_validators.map(|(who, _)| { + let stash_balance = stash_of(&who); + Candidate { + who, + exposure: Exposure { total: stash_balance, own: stash_balance, others: vec![] }, + ..Default::default() + } }) - }); + .filter_map(|mut c| { + c.approval_stake += into_currency(c.exposure.total); + if c.approval_stake.is_zero() { + None + } else { + Some(c) + } + }) + .enumerate() + .map(|(idx, c)| { + nominators.push(Nominator { + who: c.who.clone(), + edges: vec![ Edge { who: c.who.clone(), candidate_index: idx, ..Default::default() }], + budget: into_currency(c.exposure.total), + load: Fraction::zero(), + }); + c + }) + .collect::>>>(); // 2- Collect the nominators with the associated votes. // Also collect approval stake along the way. - nominators.extend(get_nominators().map(|(who, nominees)| { + nominators.extend(get_nominators.map(|(who, nominees)| { let nominator_stake = stash_of(&who); let mut edges: Vec> = Vec::with_capacity(nominees.len()); for n in &nominees { if let Some(idx) = candidates.iter_mut().position(|i| i.who == *n) { candidates[idx].approval_stake = candidates[idx].approval_stake - .saturating_add(expand(nominator_stake)); + .saturating_add(into_currency(nominator_stake)); edges.push(Edge { who: n.clone(), candidate_index: idx, ..Default::default() }); } } @@ -150,19 +162,15 @@ pub fn elect( Nominator { who, edges: edges, - budget: expand(nominator_stake), + budget: into_currency(nominator_stake), load: Fraction::zero(), } })); - - // 3- optimization: - // Candidates who have 0 stake => have no votes or all null-votes. Kick them out not. - let mut candidates = candidates.into_iter().filter(|c| c.approval_stake > 0) - .collect::>>>(); - // 4- If we have more candidates then needed, run Phragmén. - if candidates.len() > validator_count { + if candidates.len() >= minimum_validator_count { + let validator_count = validator_count.min(candidates.len()); + elected_candidates = Vec::with_capacity(validator_count); // Main election loop for _round in 0..validator_count { @@ -176,7 +184,7 @@ pub fn elect( for n in &nominators { for e in &n.edges { let c = &mut candidates[e.candidate_index]; - if !c.elected { + if !c.elected && !c.approval_stake.is_zero() { let temp = n.budget.saturating_mul(*n.load) / c.approval_stake; c.score = Fraction::from_max_value((*c.score).saturating_add(temp)); } @@ -184,25 +192,28 @@ pub fn elect( } // Find the best - let winner = candidates + if let Some(winner) = candidates .iter_mut() .filter(|c| !c.elected) .min_by_key(|c| *c.score) - .expect("candidates length is checked to be >0; qed"); - - // loop 3: update nominator and edge load - winner.elected = true; - for n in &mut nominators { - for e in &mut n.edges { - if e.who == winner.who { - e.load = Fraction::from_max_value(*winner.score - *n.load); - n.load = winner.score; + { + // loop 3: update nominator and edge load + winner.elected = true; + for n in &mut nominators { + for e in &mut n.edges { + if e.who == winner.who { + e.load = Fraction::from_max_value(*winner.score - *n.load); + n.load = winner.score; + } } } - } - elected_candidates.push(winner.clone()); - } // end of all rounds + elected_candidates.push(winner.clone()); + } else { + break + } + } + // end of all rounds // 4.1- Update backing stake of candidates and nominators for n in &mut nominators { @@ -211,13 +222,13 @@ pub fn elect( if let Some(c) = elected_candidates.iter_mut().find(|c| c.who == e.who) { e.elected = true; // NOTE: for now, always divide last to avoid collapse to zero. - e.backing_stake = n.budget.saturating_mul(*e.load) / *n.load; + e.backing_stake = n.budget.saturating_mul(*e.load) / n.load.max(1); c.backing_stake = c.backing_stake.saturating_add(e.backing_stake); if c.who != n.who { // Only update the exposure if this vote is from some other account. - c.exposure.total = c.exposure.total.saturating_add(shrink(e.backing_stake)); + c.exposure.total = c.exposure.total.saturating_add(into_votes(e.backing_stake)); c.exposure.others.push( - IndividualExposure { who: n.who.clone(), value: shrink(e.backing_stake) } + IndividualExposure { who: n.who.clone(), value: into_votes(e.backing_stake) } ); } } @@ -252,24 +263,8 @@ pub fn elect( } } } else { - if candidates.len() >= minimum_validator_count { - // if we don't have enough candidates, just choose all that have some vote. - elected_candidates = candidates; - for n in &mut nominators { - let nominator = n.who.clone(); - for e in &mut n.edges { - if let Some(c) = elected_candidates.iter_mut().find(|c| c.who == e.who && c.who != nominator) { - c.exposure.total = c.exposure.total.saturating_add(shrink(n.budget)); - c.exposure.others.push( - IndividualExposure { who: n.who.clone(), value: shrink(n.budget) } - ); - } - } - } - } else { - // if we have less than minimum, use the previous validator set. - return None - } + // if we have less than minimum, use the previous validator set. + return None } Some(elected_candidates) } @@ -283,9 +278,9 @@ pub fn equalize( elected_candidates: &mut Vec>>, _tolerance: BalanceOf ) -> BalanceOf { - let expand = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; - let shrink = |b: ExtendedBalance| >>::convert(b); - let tolerance = expand(_tolerance); + let into_currency = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; + let into_votes = |b: ExtendedBalance| >>::convert(b); + let tolerance = into_currency(_tolerance); let mut elected_edges = nominator.edges .iter_mut() @@ -322,7 +317,7 @@ pub fn equalize( difference = max_stake.saturating_sub(min_stake); difference = difference.saturating_add(nominator.budget.saturating_sub(stake_used)); if difference < tolerance { - return shrink(difference); + return into_votes(difference); } } else { difference = nominator.budget; @@ -333,7 +328,7 @@ pub fn equalize( // NOTE: no assertions in the runtime, but this should nonetheless be indicative. //assert_eq!(elected_candidates[e.elected_idx].who, e.who); elected_candidates[e.elected_idx].backing_stake -= e.backing_stake; - elected_candidates[e.elected_idx].exposure.total -= shrink(e.backing_stake); + elected_candidates[e.elected_idx].exposure.total -= into_votes(e.backing_stake); e.backing_stake = 0; }); @@ -365,11 +360,11 @@ pub fn equalize( e.backing_stake = (excess / split_ways as ExtendedBalance) .saturating_add(last_stake) .saturating_sub(c.backing_stake); - c.exposure.total = c.exposure.total.saturating_add(shrink(e.backing_stake)); + c.exposure.total = c.exposure.total.saturating_add(into_votes(e.backing_stake)); c.backing_stake = c.backing_stake.saturating_add(e.backing_stake); if let Some(i_expo) = c.exposure.others.iter_mut().find(|i| i.who == nominator_address) { - i_expo.value = shrink(e.backing_stake); + i_expo.value = into_votes(e.backing_stake); } }); - shrink(difference) + into_votes(difference) } diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 93158ebae8e3d..179d2c13e3528 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -1638,24 +1638,23 @@ fn bond_with_no_staked_value() { .minimum_validator_count(1) .build(), || { // setup - assert_ok!(Staking::chill(Origin::signed(30))); assert_ok!(Staking::set_payee(Origin::signed(10), RewardDestination::Controller)); let _ = Balances::deposit_creating(&3, 1000); let initial_balance_2 = Balances::free_balance(&2); let initial_balance_4 = Balances::free_balance(&4); // Stingy validator. - assert_ok!(Staking::bond(Origin::signed(1), 2, 0, RewardDestination::Controller)); + assert_ok!(Staking::bond(Origin::signed(1), 2, 1, RewardDestination::Controller)); assert_ok!(Staking::validate(Origin::signed(2), ValidatorPrefs::default())); System::set_block_number(1); Session::check_rotate_session(System::block_number()); // Not elected even though we want 3. - assert_eq_uvec!(Session::validators(), vec![20, 10]); + assert_eq_uvec!(Session::validators(), vec![30, 20, 10]); - // min of 10 and 20. - assert_eq!(Staking::slot_stake(), 1000); + // min of 10, 20 and 30 (30 got a payout into staking so it raised it from 1 to 11). + assert_eq!(Staking::slot_stake(), 11); // let's make the stingy one elected. assert_ok!(Staking::bond(Origin::signed(3), 4, 500, RewardDestination::Controller)); @@ -1670,9 +1669,9 @@ fn bond_with_no_staked_value() { // Stingy one is selected assert_eq_uvec!(Session::validators(), vec![20, 10, 2]); - assert_eq!(Staking::stakers(1), Exposure { own: 0, total: 500, others: vec![IndividualExposure { who: 3, value: 500}]}); + assert_eq!(Staking::stakers(1), Exposure { own: 1, total: 501, others: vec![IndividualExposure { who: 3, value: 500}]}); // New slot stake. - assert_eq!(Staking::slot_stake(), 500); + assert_eq!(Staking::slot_stake(), 501); // no rewards paid to 2 and 4 yet assert_eq!(Balances::free_balance(&2), initial_balance_2); @@ -1682,10 +1681,10 @@ fn bond_with_no_staked_value() { Session::check_rotate_session(System::block_number()); let reward = Staking::current_session_reward(); - // 2 will not get any reward - // 4 will get all the reward share - assert_eq!(Balances::free_balance(&2), initial_balance_2); - assert_eq!(Balances::free_balance(&4), initial_balance_4 + reward); + // 2 will not get a reward of only 1 + // 4 will get the rest + assert_eq!(Balances::free_balance(&2), initial_balance_2 + 1); + assert_eq!(Balances::free_balance(&4), initial_balance_4 + reward - 1); }); } From de09ae2f59ae6eebf8e8946ae97d5989f7de4eef Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 1 Apr 2019 14:13:04 +0200 Subject: [PATCH 9/9] Rebuild, remove pointless closures --- .../release/node_runtime.compact.wasm | Bin 954276 -> 948993 bytes srml/staking/src/lib.rs | 12 +++------ srml/staking/src/phragmen.rs | 23 ++++++------------ srml/staking/src/tests.rs | 13 +++------- 4 files changed, 16 insertions(+), 32 deletions(-) diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 5084096f3e5ebd02fcabeeeb8c7ff11f8797e9e7..e3ea2c3402ad457b15d49bcec8ec1410e9ed7ca2 100644 GIT binary patch delta 61350 zcmd?Sd7zC|7e9XXe#Z0M>2NPDE}rKY?qImrJP*$`D;c6$kp>+yD+-55D#}o{P*Frh zL_DOphKi7TC4@@v8>#fBkxFmB&)Uy9*S)CT@9+Ej@0a(zd)|BPwbov1?X~x_&(h~x zO#Y?$tQw&}e-;h&=g}yO_Sd4(=1fKRlKi8fsGJr+vONB; zDix?3wF32&o~~9*Pp?F2wTx0ZJ-tGPqN=<~idgbcVp_B+I;e(f$-1K2Xo~-kiv5=& zhm5BbTS-!x!;&xnjfhbsuOAc)~NB1zeUeht*m;H^FRHaj&vZIm6c|A1FJO&Fq0DjT=qn z4I9+YdtvS^X2s}_{13vqi-8*S(hGseq+v7B_SbT2W)2ZP=S(QARgMHBqRsit!uUi+;He^ zB@jrk0`81;pKn`eu%+uJ?7m$`aAJQg#+J?0*dV_8jY>=iG09uL3A0?5-jfGZvcL>_UT*08^8kxp{wN zmCQujzv{C%zZ8VUxg{a+&~@)nX>61%|NmqBPVePv>=Cf1sGrFm=JN~1#!S|q7riPf zWwA>7&R4<9Nup{NE6+E+>h;cI*RX^)Uf&t8xtksdZ5OX*vrK)55=d~DdPlNZ9!F2X zI_xl8>U~}ZVwtTJr|Pmy_LfMl$2zkaerl1JSdX>kN8a$Z)?-g>;9ndNJx;P(%HG4< z#f5}~9Pfpbtc8wp;cU=S#RG4vmA%9>ELCCKg#8_BW}Ge98EC>ob7%jQ8ngjRDB_+k z5D$LGhEb#MA23qAKfhy56;>#k{>WM*81p0B!3w?RKS5yev!}cder9tRRo)f}rg~$} zvAhI=XF2D~6t+lQQ<3LU>7@fPb`~0sCRUrgG8(kZ;N56Ie|&-Q+j(D9;cjUlu1_qF z(M|*+?!iE)Pyn79UKyJga+=-0!+bu4OFmXpm(QvWMvGP#f7^3!Q#Y>dJv}Zl1{n2mva!B)6I(5 zJU?LT`GJs3o00rLJne1F1s}$v?i|q~gAS$oZkk6nnUNXC6 zqOy3R5x=WsjxDkqbIBgE!K%i5OmQ(1mAqa}cz@0gh_%i5R7|yLbKVfC!Oi)@nDO_` zc@IK>+mbgya%@XJh4EkJh(B8KYx#n?UhmetGv_R+_u`Rss~ z>GGZ`d(j))ksFN9SturV;@fHTj-4g8yzQO&Luq{1cG2k;aKTbBt{=Zzg!}R9u#OO~ zXR&48io5wp#+Hf7_wZ(ZmHOi0d-!eCNOM-au zA^a}j!@QSY<;27eFMqSx%Q3YQlV^*5U%ztx z1~GgX*PXgBvY3e2nAGS1cRl;_2TVLZM3 zuBVa567NfJbAY^Kerk;P{0?4Dv>nb(zDkI$!+9piHexsy@Fel_aDGkAqXNzPN$N4X zZl|OgFkXejfcS58iD%vA? z8Y(m%$(vS`6?i+8bnBE9u)87B75yeT;+aw05igD8eNpuSs+Om!L0Pp8Rc(W+tnm0%F;iF*>9uPTWDCONThCiYZ z?B9;%*;j3t?{nPl09bBff}Iu003Q+(z=w$wF3lK!X~u&WGsJ*#JUb=c^u7f2Q}B%U z%s4)i^FQZ{tnvKn@-Hdi#>9{e3_nN-y(AtR&xf$(;@o&Xpz8|7na5luRF#$s7Ldy$ zZlG>p$I|>3fdKJuZeZKe{FZ@$tW&;YQaQVPtj@cBo$^#?=TdLU1pY2djRSOV2}mD^ z@-1b2rE!);pgPtlkl@FJ=^2o zk{0q(Ht}`_|8ctLRe;R_>MGl$mhlE}WPd!TR*c-CH?z`)t%_W^N*UgLdy z6yuL6qJC3ePaOGxmyg*NYjoeXc*?*S$Hg`KVOz|&Agb=i@V@nNg&NAP|LhRe_Vdbr zU4<|D$4-v?V<*m;Pj&=Cy+H0GpCVElk;Nhw*(f74pNe8}6~h!y6!M)ggT&-dc|-9? z5r3BOUh4pMeq>Jdc6(=Q^k9Scr{^v%+tkN zAHxRtW3H%s)aQgJjzZ}#cuJf-%IEM+Pl>6=xD9kKI|dsJ<34tr|4c?1L9@T)u(CT% zJo*`bfU?Vc&htd$6KH!-Tz7(RqPECOmFz3|srgC%XuJdO@JU`qf-H^CKTd(h{5vkJ z)BGTxb4Hvv&0A63s$cOZ9Pf-9Rv`;u<(d!^*@4x_(3;8&q?Vr%`@Z5+ih+3OYkrz< zIwPD5JS?90h9?!5?E8j46Nf;6y~pbZ&TI>~6~ypwP_^2(ybP5}h&q1DPiQ5It9o63 zy0*-AQ?I6Z>-W-9@^h21jrp*Z_19~Xz-oA?{=!}M9- z0{n6We$@n8Uywl|*a059z|(l{S2VfQP|H99VJ=h+Om{xcbhGCB+*e#O|8ddbzdVaL zZ0LXas33bs{L4_9l)Hef4zvX7kvwU_L50v;qOPel;HRDv15BkafAVRu(NrRAjaNOW zJi%b)t+kYV&S6RYlBm2+Fu$CnJc7_`kgRM^!z%tctn4EJx1*+V7)GVHFjE<a~1I8Dk=ReUWlZML2Vba+vDhxmu}B(9C{asfGQFx6xDH zM13)8ld>4ev^SMe)O`A8Wh;OaUEWbP!2ApyRkFRTca^V$Y`;h?R31dplZDDS)C?9W zsT!)(|5Qm6vkoh!`17z*QS?5fTvZ~sir9ZhXol zY>G!KBgTE9>_$fWlS&87diqJCgE(?h8IGXqDP>^1hl8h-e(=#0x2!DMd<`_*b6SCO zhQ_Mvsb4A9WmT>((WZ>I`D>*M?a0(`<*0FVmhpc4R@qA%?cyA9@~kqmM20Dz{9b_% zgs4>0>+yr~I|IB|{iNK0?w0;U#PaN)mGU9vHq}(hou#SwA=l7Vi@X77SXZ=7QhWNn z+TNNZRm9*eC;FwRggcBc;}ym4DQYid45*~ql3L!lkh(brqAiA$S5w3tsp^NZHeUBM zHJLiQrJULW!Ad{4;0ITiR|g?;US+kGI96U==r@Y>@=^u0ub<(M?B%4Z@Knm79nqtr z`YPh+wyLODNhL-ANH3NsZYug!RoO2+hSxNA2QQkw7GQ6~gLb;uK&_a;ql3$coQaE`jpmU)gGG*`P*_I^S>a7kX1_ zt52i7SFwSr5v8g%RI%w4%NnZpBdF3yjiT_`Mrs8>?5%ICHYC(8X$AzPG*f3I5AjsS z53Th!G*_Qg&_k!zYCocNYuQ6a8>%HUgv2$x71wQ>LH#p|luI-3Bid zicj}fe_#p6*X;BSkfjT~leeqKXnk$FQ+*CW|GU(a5@_-?+;q3PjuOb7ELsmz zr9UB_(-Ueec#pbI?s+)SU`N8b%{wJ=8-Z(MkMi9;@Z)3498t-p$d0J>5Zn+^9|1Tg zBI-MYjF*O}@1^XAfymu8u+vT32o-wc?^RC_Wc`M#lM#G2TWzHo*W&jl)US#w|N11B7p2N@_cn&F+AtDfe`FZsrbMkdta zqvH5Hm8>D}egXDKK2oCaz)^47e6=Pk^Xk-mGH+yymnc4WL_#@H^o+Wq3XC!`gfwDX z-y|!px%`YbZ-H80E+>M)0}R(nZyQp_XgbpW^qHzn6U&#V^Z&u9y5$84r|%83UQ}EB zlNB~#nL0AwXCMY&%uovutT5EhE>oW)KxVz9&H%-#ELY*c6fKv7e`boGm#ao6n|m6O_h{9oyrQl~+pVvtd3@Qo;`>+B#<8%R zcvif%)cAUxdJ{L6ky-g+K(JTUnly=# z8`MGqDb7#{;?6hKG6Gyx&70#vOq440Q1~(9PkrmPdkah?=K>$L2Ostqk|(76pcUX@ z1?0*KZQg~xI=Wqbn`%p$xpIekDqd7a6uhI3ry|rl9t-P>?(eBTAmO>Y)Y};^I3$+s zR@+d<$=&KT9KN?kdsRXC`}RV5JnYrmr`|+edXIge){!vFk@gg-3*<;x=Uu$j2Oz4b z63Tv+*{ct!^~7%As2bPczRpCUJ+TgENxr^p-WCS#W*hajgU zQfYpQT#(pLmGe{IJn!uYYEuZ&ofEXp(hD}sbfNX7ieCYGp@u45UsPE=z?c*giYReJ~ zUD2CWTT55|X8is2w3-;-`#D!jWo)Vl*4LT=g#7y2BDT`|tiHAoCm7y?jkF6K-H&Z5 z(Q>M(_B6&E-%P`?k(l31d!820(dJqMoNj3M#uC%fU|p_0QvD>jq z3%v{5wQ`Jqc*slLsZEHR_O-l??*SXA)q1xE7lF8Uw|1}ePI8wlaqfN*KPUXpZY>?V zdNND>5}dHg1H_8&YYtkrd|$f)!Y<1MBwfUg9e@iLrV7l?;@>w5EXDnqa>z@0Uv5PUh@N5HC?t+sMRf(w;FXs zb}x=#));iv$3Pl(Fdxg@GaqZ+(=%yM*}TGK%`qDG9#z9?$E3bu(h;q^{ojKn09Lk0X{wX^=}b%A@!o8z*M}2{5^ee70J@o(CNZu#i^t~!u;=R&C zug3ZD@4Y>}bTvp=FSho7$BiI!pWVfq-74Bnbi`Zi>Uk@xAe$9(@jeY6JQ*>=2Mk!E(|Bz-lik!v^A zt1?;dE~!4`A$?9T&-bXG#aT9;=kJu~`SOUr08w&9Dv>5QVn?iiN8DLL)SICnGyXjd z8ufW52F%sViHt9JP}G~L_aPJWmbrQ*@!U+k2H@B+Q>Trg_vn-Q_oZfdA3;+*U9agJ zy*fi<4~;`~e&G$BuO~?$Cp@D!lM!!$epLeIqP(PUMDW&2dKQ9{FX?d8iQAUzD=?0^ zLSIYQ7&gDAkCX>EU!$+QtW;#Yt}kIlV$17#9)j;)*N33$ zEo=4L5o}$nmqYN;T0MfYcIz;7k+^4_-VMPU>-0RcNG`}XqGH%Oy`s?G(0@hsKi|;F zr`BV=UM>TYu!3#4UqF=y-ARy7%zXeS%q|}dwLWRRz6L$j-vIcEM4t_MZv@LX=%W#2 zczRs~-8>MjNX+;20(5!fMg&Eo(k3i0z_Ure3BkfmSj~mrus8J=X_l#P>7OI``7Isl z$!q(z{w0a9%xyY3Li%jeGpW+}?Rs;7hi4HJ0UY~hkgfwr+4UgBKUoWj%yOM zeXl3h?$ie(F7;TmcXZO7GCubm{h`>dyAT$GW~-PLm3VF5)vxC?!rU_NKjqcgtv}2X zNP6kE+BIno6R(fJ_W9uZI;qOg9-aI=L-**U-lp#XPZWxkdnBDvR#W`8N6(a(M`Y{S zf*sH^MCZMFhuGM=$b};fr3HKS7yKS;ire?;MSeU@Jo=%YB>H}!_m>h_kIU`(Qf{9$ zVsg9i13fOcRmknOg%Tiu5Ejk$>&?;G*24ft?AN!&;}Z+@rw~s(qC28dk>ttOiX`UG z7wJJlHUCg2FA!>Ei|0PnVXlke2hrmnAL==XzkLw-y$NaTh#kVuZ{Rk zA4!&aKvBPb~-H47dfo=K_=j(1{fS7U5r1XlS&as zWR=ZFz}4_eeXO@;mmzZGQT=rk);OlWLjvdPPxKQsnLVHBI}yw}A=hHp&-G_f_~qyN zH%f^fG+PH7e11~@?y}6!PU#EK{(&#`XAq>F*2g25eOiZ?$2)Oa@1@1ataMEpCYF2$ zrF89o^oAw6Ns%nJOGPA{j5Iu zvOXUFUZ01u@DI9gZ*!N}NcQic{~Kt!zx}B117y2?(r*D4M9p)gJiOKC^yg6OUGuA+ zlt4nOpKA0|`I-~rEz{_c>YuXQfa^h!t5-u1?K&Z<295IUCvjU=LQ`IN!W$Yi-j;H) zZh|35Bz~S@R1zl=40*(IPojbAl?TMEBx5@j!q<`~rY0NGsenY=q@`c^YB&G1;h19b z4QSjn#b`&B(PN%?ImO851)qv}8MjdW_DaS;ng4lB zfOLI^F`aVJ>!VCxJc%YC*m$F&c(kg~119&!RgI5e1Fo)S^pZv|uVH-5H%{_CsbTPV zH@ywWkoHO$Z+8jC!t?@d+g+WEwMLVV-D}Wek$WA#*2TtuuGA8i9cb z_S~3dko9;v%ODFqGut35`o?Ud1%jutjR{w7RWrwceiPktjK&Bi<;YfRbBv{6hwEz_ zWeHGka2?|UanGQ7Ml%FU>KP3X9IR)&MQ{ND^+Z9gu|$fZpc^7@E8I{LyfrvkmnP)+ zJlXYYdElEu@lKwxssV{lS)HLeD*BD&K|D&B9c;o+8xXLv&_ADFTHlygk@(RWi+ecZ z+^F*aif3UEdB}Ke1LFk(^p}Q4wW`#8Wt-FaAg(7hRTitZjmm_!>cCgSM#f2yr($EH zhsq9#dzu>^5WLph=z`!}bE76mSfz!r0;zXf$g+f%vaC-_S@u9nv0#WuYGOkpxE2WcpTff8(JF;5zJ_9bn$ByK+pKKu7jua zRBL0Ambml#m=%hMc%nT~Lp1DQYzI+(>0qo<%AP3L5wHuG{SFHqV=!dT7Krs-j3cZ_ zJkizY#&;Enqg{>PQTTdr^2pcVi44E`D&Wkx1+RSRccZ z1pl(Hu~xDuUH20`ZZK+y1J@h!f?qsm8j+s()cg7dTHQrnnVXEt6xO}jNTGG)b1_P* zh@t(A>xq%x>u0Q&{mOOu+HJl^(@-`9$W5tdc4eA2}igMsyfUiuKDfT!(zEoSwvh@CjQ zP$6fA8kzcWSwi<7a%&u<>k)J-!i*hM$HPJ#SldCIIUi&G4T(?EtQ7IoFoUeQ?!yfy zg*cD7EA)t+VK)b>O&D&RL)n-S#xY>I*GQw0#E-m7xnQ)BLbmfO_Zv4#c%?C!KF;Vd zc!ps0S(H!YQDtIslp$mj6&WfM(_{JNW9ceLYlxdNpG{0e8>(Mcmh*|!4?bp?7?gF` zL>1`-S+_c_OF`sj=@s*A))AM!aI7wme!?t2&=g1gxE0z|Iik3;H*X8Lv`<5Eh#@>7 z+$lzCH5~RTCp6x!bK_|`evw%SPwO~ZlDB~1sy4erT<~n=w2r+cOUPFo zg*L8NhT+1SfT5gUTmpu27h#AGgS!E8Oq^pYaej z2^l4ah17*|Ww;9A*TV!P4CE!iL{UrvNkY*2Eapx)^dX@lR3RLM2nS(CccDmLq;yBX zq4(*Ag@Y&|MVxui=y+2ctkM+uKL87xqR=!uFv$rJnJxt}`oDmv`5Iv9gXHIG_P2MwTng1j4ApN>Fe*nu?n_3-#4o2acmta^HIbtaq2nO5;xig=V}d!-piFJr2b3k!Y8g{3Cg zmn>%gnoev?hK!B9XH3ty9>H6^A6>2dDNV;hKeyr|8o4U*YWg($nw}eW|GNWiI^qjujuX^u*{3 zjYeN!sbU-mqb9gHh8Q@J(pn@mfB-qIhZ8!I@Xg|9bSDu-XLT`hvT=PiX<=1_byX>! zIYhu&M#RZ*^PDP(&oIR4$wmv2{~u*i)Moe+jq$Q&B^SWpF`*i*RfI3O{H3`Slrqv^ z2&i!}MF+KXyOz6Zi-4p9Kn#(1y0XA~gw6@^p+qr5MM=_LiXET3P%AEmS#(j zM@m>p+at^Y69Riu35oZpc=4u`mgJRPmt-hpB{G60BEL#Jip?h;zCblZ;vk$tYDZ8kbVQJxWiBbTg`4 zR6q-XsqW9HI^e27l-?+crW)x{n7{B9V|EZT8wt4^FrBvRtH9JvD&&arY`{( zfJu`FI)Y3dDfI*6!!gwkrKgU^yp0knpcnw)n^Ztz$E31$LMX#!_(Y)9UrWyU#OP&< z@q~d(@_7c>lu+(7y5wHJMzPJ&?{9@#%(Td7<9*f594Lst;0 z>;X$#E3e2y{^B`ZiS}2pp8j6JVJ1F@k{*^a?#hI`L^)i7&woVcfXnAs!hD4j&j$h; zA`wJZ;l=2c#QqwkSAa&M^v?fNl$Np_{z8lU)&ngnvOMEP>EELjn(Hs@hD%iX6^RI% z`~^!~L`n2gYi}oU$3^x1cNBu!s|g``aYk`5LDn5;>EcfCWdwt=gz*9qqIOTh%8iox zb821$=u&u&5F zJl%?+b`M76jb?M9`DmzVQmqlGhz3#knIfvi|VM6=^%K4Z$Yev$VwZ9P_=ZD*CN zc>Rw8-%#KM3b|%qGwKI!J1|Z@jLo`mZ zOrK=Fo~O%ynI)-30LeViDjMg>;!H`c`LIa&MS?+)Y=nx*hsnBzOr7&MSVbx&XcIn(+5wUHi+)4jaxUcv$0Ds8 zIBkSAmv@%pjJF7!&|#~fB4oJV2+l=$@<&}0F{ZLeRv^$MKo%JUN#H9uk_!oBDwK^# z{L4m;gX}0x1=j}vEKLKPSKN``Z?O=S9gOtrV3=4b7msE?C4-^vmR zGv&)IL$R;tywOydf02IZ<8u0COZq|hLANVr!L|v&4`nS@GF$n zvvUEMQ{Ux|4%i)Bb9ERsSHKllqJBMBDM9#p!~;ZkB5^UnE7`ereVbvqLjT3+9lea; zc9ztd1QE%p%P5^qlm_f^D(7Hi;YCIZA|xCC^sbe|wO8d&XA{F}zCC?83e@G{ zY&Xy)slDt}S^{-!&CU*03D4J9BdnIk0u+!2*5>2tAUY4BpifqVkiBTh{G0a%~1 zc9z^aQgweu7>X7rKJ5f(P7ZpMq&$HNSgipfHcbq)MgbNsO(~3CX;NVZ5=YCZ0Rl9O z<9-Y7EQc~s%g*tafL*%@-$@I(P7{u$P}iv^*FHeb3_XJUEIvsO=XFd9gEJZcNTL@T z=`?h+oJKJOXGNUGZVjhNELkIh52Vxafpo}ej^)(CjoMC2l+ldrh|?;+FyOS#xAAp! z6rVxgG1p%j*+sx?=7s9pf-hk7m8$fpw(-Q1wpp(P+YtI0> z5G-K!&zq^}vAihLl-~%pAUC~8Ux?!d zd$W}&LJN%qvG+54yg2vSgf!9rfR))Em|Ygh z>_F^_Hluife=(ZjL^TyW1+WvuCku_%or!15!nU!~eerawrc?FCXRdXWzSvZe~8IBZZf9-e1mtQQ94kzEQ zeM0P7WK^+EgZIc9IH8H}78z}-qCeXXJxz#S$f(Hgq=0YQlZ+16HU!}s^#b71OZ4b6gT`NiZ7kj?^Jy+Iow8+8^_ z9jY(ugcinx1{D>^N$sKvtU#F08BR1AasM_OK`f_;9Ez7C=r2M*mr~HhENV;*E`flG zWtNYiN!$t8Rk0$;DW``ruyn!mazA_;`pvcjc6dBoG-AbbMq;!ijHek5a~6NW_c4e< zLn!ZrMtvin6rUW+cPSNbivV?K4nyb3FpnJ@7)k1!ltQweoC1wW1@yI>Qg9u5fef;n zMZ(w9u7P@NM)UQZXjIfZ62{rQENNc4q(vlrW2~e_afuILOnpgtD}~&DV&(@KA7I}G zzC0#-qgljmNMixp5!QULj%V+WRF zr_uK6q#WLk{`qHFWDneoCk=20+io)B{Rdi(EWVe|%HQdi` zkC@x1vU4kjx($TsZ|6A!+-ShLJrVaRFIIK>#VaH_2^ckpq5m|(vIt(8T{tSX~+csm2k%NSbhV92sp0G~VYmI9E4>R&Q@ zmz)ns`y~ktEI6NC_d=fMQu#rY7jqIgd>;yyFe>?|R7vLubrpU=79F}+MEwT(%Pq#2 z61ePD_F>otihYEEIWlc!Ipp)l>}o{O>0Z(76$2)KuX(G6osQVAW*0MuLvhmJFf`t$ zS!IC%blV|vf_m|j651^K6QeKhGurEYg5|6#PLJ-Z8*V;c;d= z(&DqRPH7KFA_%VFPp~lHf}u6Y>`&3lXF%XH|B+vgGntqZPkh4c6ATKkJ{=X*k4cX} z3ZkE*T`oZ#2q5(@q?SnB$mG9~d?B8cicpd+%l<;LAh*AWA_7TMAKha*B{e0mT6!NJ z^NVExGJiHF{k9}yfd_xXMdo{~qi;|EoLnjYI9XphgX}k=a@eu8u1T(>+-NYigMYa&R2_ibh4Q7y%i@?cxG5B^ z64oJ)h?tb;=p^MF2rSei{X>*HPF5f&dIV>yS^g-50NANya1fq+Zo=XL*5k}X92d{= zIgYq8p5rrH0Q`q0#oN`=*po~LEM?oLFt2P_y7+L%-p%?TPqh!QUSLoP`+z|uMjYDt zleX9g)Y5b?YeG?o^LDhH0+<<0T(GCDRYoURh0#LrH^Ta%4AePB#GrbTKvb9d$D2V8 z{?gDC#a}cig58(oQ<^+8153C$aCm#!84>M+pe6^#))!dAx4m$7gy|muC(+pmM!14w z3r>6c1NydZNO&Or-s_B&yfKgf9lI)Dn-<%Cw5II`qwPm)=&P#XeOOvaXbFlZR!M;5 z+=oJEEOL@EXa#HbewLM#fil~1{qIm?9 zeTIBTApm1H~`n zegJ)mb_sF`h^zjibdI0-krh3c+4n>o{Hph-ye&D-T5 zHq?hQU^4(V$Oc0)8g!sNMapp~9uj6V?bxeUUUR?rnPm91LU)4$! zpbuw}M9gD|Jqw306lpoXK|2^3k_B&<=dMJ90VK!q+Lqli;tY_4=n6t$FAOfL=jc3& z1^^$M=D~Ki?n$%+uc9qCqkDQ9#0pyCIVj|G=uCxhG>AQF6=?O=J`iZeW0?Gx5ljStg>L!8w1v5|8V8D6ATv(OY$7x8wG zJEVDGj}u6~S&SNfE=+MkX9>F)b)ztF;k{rbO=D)j>LB#1Fr(Y)7(L$PWU~B?! z$Plmy<=FP4SP=|V$RXDWlsCwX+C*qt&stq9Bs77Sndqw7ld&A(Y7Yne<97Ol0v-8_ z8}y&aDD{Bk1_LR73wy+`G*)JZ{Yu0y)r)IPhvKCaI3?bQJ}`t84#Z4n*o%_kPEC7{ zfU7fG8BS3+QL~l)u^6;Tq!}`P${U!)0FeT#pq-#ZC3+*!dc*EV%;e5wv9i%@DQJ5XN@{h(05ZMk90D`1xW?$ z5nz$fN&-@VP5hk)$>ysFCjq+vs+kLXKP9OnEhLKCXs!{J{QVAO7gjA1?qSUF*(d|m zKR->*Pm}Y@bj z(e4C#pClk?bm`s%vy=MKsZSG~6qS8DVM+|4VVvp|rKO2@4T?YH$Dfl__f@F#e2fLC z(qdMO4+xE=xZXWETD{i89#WFF=S+#g6brCJEEQ zevvJw8h1jFlB0bt~={!m78C#6qP*vHpnGx9{vMEdT-{a6)Sm zn2Z%@AQE!d zNnGx4-DK-W&}2HJvx5M!1kDA=q>V;BxV2&3-O)8kPsBO&b_N0TGDI+$4a*R2kKql< z@D(s}zg#9x=$ zu-PC8Iwhq^5&=Aaq_mPFQ37)YNpoonUJhIE>G-Y?!{qpv?@OiZT>rW_P7>t%X5gCG z{c-L%Fk73l#HJ)sZ^y;Sc)GTpgOoT{Q_YG3?dut7Tu$%x!qu`= zt{lku4aI68E^bQvFPo-^;Ry+WoSRWeqsAbSIJ?~_ zFFI|+x{LKjt8yo?6%ku9jz;MiClVV0rG9%ls|F@WGXcSGv1u3x_>s350Oeb3`czED z4)lat9WUKNs7CqI?6*OU%BA!$4!keZ!_1$euatcS15^_@gz*3rAI;7$z`#^M^g)4i z_V@(=mkNjxP#^^cM+PMzg5dM!H4oG_~5r-hCC4D8xu8)yO zT*=CDL5MYrE^+lkF6JmYCc1*j=!QWEL#dKfL|LDZYENnIlb-a+4J!KfzeWO}*d;~s z1u_=sB=Ts4%M!xW7Zp+%0xblU1UlLo^RW`#`4AoSSqZ?8$pvzg%1w4GV19}vk|p*o zHq8-y zQU6gde4{e3u75U*MH~0fYsH1qC5M$39s~`I5DevWBRq9! zTu4WkP`B>+iIMPK{tgm#$R%VyKq>*q^YI2eMVZ8ne|+oWKpKdZ-2rci)$mUnXbhX8 z5<(2MfYIijD6yZc1R@9(aeHhN{ssAu_JQ$EPy{=w)2ds1eH&h<&@=_axr`XTWtBMZ271kXM3RG|4PS=u03BM68w`iTU?rDpV?E##2;|^|32X_{%5({`2CxgHrBO`Ni?fU2tmGtz zVw&1$EJI=_n(#nk`GHNi^pxJ!1m6q9I9_*G&}U&~fjPK3!127Djrl+<(lQxDM{h%M zeiuxLk|6<;F^ph2wucIAA+m=Uou|pGH#U4K%)XvTB()y7^Wjj@>>EmD!I`4lH^#Gw z(DPwopT~~LzK#aYqk(be7gwC<6-GIE0WK<2bPF>v-iPF8bn8e}DQi);bjRnkj&5;~ zjm-v)3&B7tB#XbHkmB=2Y9?+T`FQ|eR>>V~x22pDS~!o~I`yHTqIpn-d308gYv)Cf zpW8Jl142-Gdh&1vNhbxlB|JSDBn|S&(*yT7ppd>0bc%~;c;bBs=7~!PU>umRdEg`z zrxKBJn*cb35KC*opne0*?iiJulAB9zK6oAU)F@*2_f=<;h~3wZ!S6$c)NOXYJOvHs z!ckx%gN{WhPKvf!v7@L{#C8akQvc$FPAW#3=n~VJNa(OXfC}nAjy1Z;B5jeDByhud zNwCW^Lv$99W7h(rC_-e+ftVfwIbWB={XnH1@(1Ed8`@CmK!il`xNcxl8_-fEH&Sh? zQU~Smf?~9dxGaUCV&b5gi^xf4+03fBrE;T^FZCNv9nn0H_*zyxFu zeC>pi@ZAw-5EQ~aIL{`@1t!G;cLvinogs87=U!L}P#4p=Gt8Y8<<4;2z8T@pQk;?Q ze8m~%o_Nq1O?Pz0xbs!#J~)${`*BBTta~y4anezy6?EV`UuAJ!*HO`~V zJrQsoBV;;{6SbTfEI;7PWVmMZ1arGMPcpZiGmGUjXEt*;Mx8li;>>06f;;2|H=U)_ zp+8%qCM^t_^RgH%Ny0E>U?aMmxpkZs1kcOxLcwD4QS=I(=s2%3LefeJ&MJcJHF`VI zS`#gs*k^L*+{T%BKY6Lo#KGAnE^|0 zF?oe*xbrq)VhigH>}{o)6flrs8=a2RbclZn6bDul&xSt%4j^PKR-AXqEa7ee1P=`H z_%tyuS_^dA2#yus55W8Ec_)luYfW;!7UOz!u~Q+=$LHZ-{Surng@{BBI+3g!?+0F5 z;7mH_B%7D$>kZkLtW7KJU0)I*Y$7k}VHbg0Z2*?EHH^n9`Xoh3A@*OfIU$6GjD7P9lb};lvOSPKM8(A>_=2K30Q0Q? zI=Xoetm1<$EsJc@^>|89S`6^exVVuTC_b^5kDa7I8`GPLUSwl7D9MWyjC%)-YHF2)TJx4#YB}BV;CC^-&$7!5MaI$ zhW!@d02M+ZdekNZ4;{*R80Z66kOR2^yxbZMXSI|N&^Lkpd-|#m5>m_Yy1swH?Ur>L z__L#Jnh#`I^pg|8Nqx)^(%dk-Va16`5nRfMr7oXD?EYj3^5HLl2Q~Kkt5MEDUO@+O zN_-0of$h_o<`|=M$xl1vQp43I*z(1QfEd{e8yD!n`o!rl?6bZ2rJTKxFWn)}VkojC zitJ+4z~4tmvM)sjI{Lpv2KHwdD~=5bsDEyL1$xqU2Y^PQ&M)I{6({D>_9F=e^}36Z z?Tpn&dnkqO>N+0~Hs6y{B%1^Z9g`oAX|!eZbi_L&MwM=)PT&O`vC7s zC;4s?z7nT$VMUw|A+7_?K@!XW4{GcqNc4bnh(Y!qCZT);Ksz6k0Dhm8!XBC?wZ&~& z+y+5n2Da44NEeVmmPMGvaeV0Me8TV}M4yrX|BSi0&I#sbI-lcH7w2Eht>FBdG{P68 z2Tp>3w0e6wrwC45aF9pxWyr|AOz23NGkYpzUAd@VUQ$9{c4Og$%E|h4)jE z6*GU*Q{Nm{CQ&?uuc={2mSmn}Upj_(V%Y?|%_oMLcoOTe&y0|`ZG&1S`lcudxDDkG zN94u)CKt2Z^Dpkig2a-PkD-((V2;1XxYCsd>0gmJ3QYyIvj{PArQ&1gy9mv=ZL7y@ z#VE;QMjQ5b*sA=j_^osJNS9+@NcTR-?E$fd9Sco(ZeJ$Gh{%Tsh#AbNLwyK;xYT^uSpbK7tD1K_W zyd*Y|;!nim$!-ROGR$gns*p&p8+dNH+d_g0@xEv|9_CJ#ygLx@++OS9OAtA>b~pa^k|K=TLu1?EcVPd>eej@|7{qGJ z59Gtk8~Q>5{RMO|4#*_T1!km1AVu0@SukYCI72}Kv?WCcQ54pmDfXsWwy1j2XvfZo z+fEwiiXXWde#QuknWqf-`*`Y?##}1FgWUDJ_r5fg_@g?h0`)S)@28C%{q$CPz=ocv zNf+(EGUN}n$oFz&S3iDb++C`3D~zkP^v1!`g<|2?#$)mRMc;4ywuRpqkH=eh=wm+T zlM00OogtsWj`v*M+wz?;fZn(90G%pdIYrA{@4BCjB1(DLzZ#t+yd!=ymc%>s;coxC z(TQ>%|J{FDiaPafxnRtf4`|8R)?nsu^3`gj8hd?H%!DAHRUmFpH($g%k$OdQDpNsJ zMf_RGtRh~mWLBW0>L>qQ$)vacFH|yHA!uINdb=B~AZ9$u=F$o6!E5jwZbkUbd6j4q#l{$s8=ffUSKI#t%A~%~5D}Hpd}& zsIxihavW)0%w{NT)5UxY-RGT=8~Sv#MCr*;K{6 zZf4KR`}(CDS{Hc@uQCtf{U%}dFsFg1+=zL%_@#&W9EN$ir`ZBQVNdfkDs1Xy_Q4x$ zPNH4bodLR-?g{)Y18O+E&4H+wa;=#zp6zW`L40#>^IAWvk)N`?JFYbw(@S0p`j|J= zMn6q$%g&D27457Dco7-RkWrg5U<)VOb?_*sU6+VmrLVaPo$Tpr)19s9V~eyK&9vN--MSx7W$sC2{ z^ZiX`Z9MxWs@wun6^XI8m~W%7Nk8*N{4jxI+9{Ian)?>EvfNDs!Nu8r=EJCZ->v4| z2tK{lq!&T!+-43#?~86T)9Go#^#jZ$_0WN9C)jl{Lre%(XFbU;`N+$oyxa)pTt5;H z+G&`nH}!TCFY6YGr2|3HB2o4ZvnPUqcL2^Jarh4EUv$3Hyb8n2z0>S~Nq9%@GLskt zQzg(NU3_wfnJH2S$!2#9GH*ovErU$FqbAdb!G&UE#hMK8f-C<@X&Asmk zf9_o|J9yVy#Et)sl z9FD|@(GXBYV)bYm)vG@S3zZdmqwg~_sKxC2%?=U+I9CCfS~+ohhGK+4^Z>>Zx23Aoq7ZA2+C&<1tN{TSMChXmD;TB zpx`7K!7r)ZAQf5Vp?IMX)95`sSThKjK6YFXGF`klF4%@?-oM5L@na1eH;PXl3}*5l z-xm7#;6^@ulPDM;%+H>_X*+P-r|HY?u1j`t5;8ZXketKdc|<01)k_ zhl8is9^p<4PC@X_v|v*Ne@qKLiJ@mc60C;Qsz-u-kmA#Ww;{NFdTiQ z_ltp#1}}h6{T~Z1A!g(=f}OCKyUqyGYv|tiCxbUhC46K-a2Rn8y)G?oSr{Bk>~Lsd z@GJQ=^|r;q+4Kt;qR*?r+bP`mYH&EZ$zBMsOIa~hJ-+%W8tBVV7$~lx6W5woRGdyhh`R3r6*x*ft z{&w(HO2pe$7N5TzTuM2QYzZ#M%yPE|Ya_UMD}F@$fSA5D*a*SfTZ1s7yx+D4?V0|>3wj)?gA^UOpyTOL^3xCJo_1Cobz^&5Waad_$)o-eZ#5X zS74+3FN2J@tHbFa*@}Zt2b=n~;&6Q8AUCG471y2yW~sv)z6ma(@Rx6bchZpk&IG5) zkxqUa96$y59hR!%uKxt-hcmtO?}DQ&vU6wt8vKn)VQSX$R{sV@#E5182zCZMH~kUJ zCc!@SzrZxYReuJ%AzXjn8m*$%y_z)+xnF8lM>3Ouw@c+WK_3~BlxwtwE?}YsbN)Ry4YXC`VpCX^Q^19 zk7T(nMmS$Q@XcnF7SY6P~lXa|CDne9^GJaya=-$Ap#TUIJ#x$_rLbV1B ztv)Dzq@gv*Bz)nC`ZQ6cm32M3AJfXJg|bDhtS*uia>4%E#u`Cz4ry!6k^uiV-x?(e zGOB|`FN*rh(xg<8lt-^ErHM%@E0oxNq#G7wa>` z{9e|0Y#qw=w)$~aBu4eI78m!8SyUG7`&!*f<#=!RwaU??isw*Cup6zP0qnUOtyBeJ zLO*Mz1-xy%+uDNQ{z29u1lQaHOcjYS_gFDj9%;8PX63i;vB)6xeu!9_G!vx!0D{6^ zz0p7!jfW>rYl%AdTUQnTAX^q}dpkgv`Vq(Ib)A8VdU{UK)sxTvJO~)YRCV^K>`pxTr``&8t@nkCuKrT$S=#}Hf4_UN1dgLLi zihS5u%~yH>YVOXG&uP$6(plPfZAAst`{W_;CDzImYaW8Pr^w7>Q>=>eH!ko!CN?}= z9zf9({$%sXr}1QWen*w3QX8-NRI9Dr!m47zG%H&yd)UecRHq*XwhxG^)2y2jJTT45 z<*yv}UY%x@rPZ|M5o;)dy3=K)fzz#9kSdsN6<(a({6}ea-sVTGj;u?;>Fxe4B)Cw1 z(!#M92^As>-r}Rv`B||V?))$Ps_uz+WLG?L{!7v2aVw+wPV9(rMhT|}@$gf0jI&o} z%_2`RW=;2?7E?BG=N?3n{N3R-Uy5fRx30@2e~@2Z+caZ zA`3rrBTg@}=s{&~__F{b?F%1yKpi2Z2Eg6BS1f+cD$ft@^)^0d)nG~Izuys{qb-Pr z3*U>cp0^rCC;i}O`S)-XcWNw+D%0ap4)0uOJN*X649b!>8sudtx@$t&@kV%_g4}8H z4^iPt&2S}2dJ4Jpzlnv5vA7ofAZjhK)=_wDiFJ;z{6QRi!Rn0AtMZ~%h7?ZjG7CS> z;N7>(`ol=VN=W!K$b!-85C-%LajG|Wl{JU4H$|=0SW$`?w%WReZ5CTrL*i~0pRR_K zP{sFeSQ%dBHP+piSFF5NR&2S}dWmfkv)5UfXlAVg8*COuZ=g)JZm%ceq$^ZhVUu6s z@H%U8>Sk${>kv)wgOJ}86f~WKZiKUJk zuxty(gBz@s_0CAz;}nTV{}Yq6r`1L83`jcQ;UJ2j2dpH~mwt?#`lg@6Y_id!Et>b* zMk_?B%PZJqHKqr?f7xnPmbxr;n^ja?{nu^Q=#q&H@!WQ6K<-Zxg5f>{;9BcLEY6;V+T5rgnBPZ9p#>Y3i1U4rlZKL6ztYP!0*y1Tl%y84)&-imyQv8`u< z??4Fa&IV6GBQ*XLT^?0=`5Y>K)>w8fxR5H|;q&0ZRqt;&;E3u(hu+$l#|EZ!te=Hz zfX;6)iarniK?B|D%kVt#HIyG9UpR9=1os6v^#iiR*DQX3mQ(%1t^}Lj_?uUQ)2$(p z76HxmN76OFaI|N_Tp`D!&Xm(UNIiBU020y}X-3uO7zTC!+?rgV< z4ZhENtMT>y;62>8qAqW2lGQL-F2J4i0czcdtHtJON0K5qru%a@?DD%cc!XJdmZ6PrChu}={v7hN;JX1pZ6X3D=f z42R6RDhIob{A;H9y2__FO`PhGM@)Cebj9356ZQ)S2onwN9B>TV?Nl$*$I(_)R5t}m zYgzYjwO(Y=_Ja<3*A|;^#~fYxHR(!vLdgO4PPkf4DrE14t2HYZ9l=6^Nz|$<-uuMi zn)HOCPuL~Uv@0ya{v!_gls6sM&1UepwO3eV1~ch4f4q}hYy|_%;3d{NLj9sV->}+Y z7?G9LXJu&*8&pN@AYEpwtEgSD>~ph<+7h99Rn@1Z+iX--wL|bcTBafAWROY6&BgQ1S}Hz<#X{U_Tj`w9 z&8?1A01wtyYX`_zZ?K>0sn0YpohV!cL;d0z$o1$YYQ#i5MYY1bLM8`_`iu3^mdsy` zg)wS%sj7Kn9QI`KMhAb@A*f@?mW+-W_+-VY`fBZ3wpAMV2NSX4noy82++AU4f|QvqcUy>2Wb4$1LY@T)X!Ij zMay+)D+Bu^{MbDH3y6_5-26qo*4#UmdZ63lQ+O~j0Yjr`;lB_UZ{uhhnGk4}dD@wq zIqE@HJofW&6JNqXTD2=@MPHWgT$ zYtm>$@?gyaCJHxvre=f8IuA{SZtN(;cB6Spv;;-P*<9;HG=BpNg9k4^Ki}cWiExlY z87HDk$ULIT_#Z@ci%xlXXVE(CFq*P34@dCBM1?Yz261^Bf2UqIug@t@o2>lyoQ#S% zs{o6o;CvEyAcKaQPiC1Q72O>y4rf`#grHO(6y)J@YXU`WR7w{qSfwO!g@7rXLfoSy6E#^Ax65K1fJB~>1ds%EksY#h0Kl6>;DMVK?sd3GGhD_c7k%eMDlcTIB(Tx39N0T%S;m5Rn^4AW47^ z0_8C!Zyqb>szRCwt5)8JFh&r@@bl+5iOdVmC02~)qv{u;`i1mdfxm{ggrj2|i}3lH zg><$g47>2EyJA!&w=*gnegaNIs_qChbLA+fJ2Hx2zn*DU%&d?{-lm_1>WGT6f**r| zGRW^CVVk{&E03w|ghyRXym>mFSB>yym646D%7phAayPG`hu*9?=*^moiWf_`|1?w7 z9L)#U37ueIW1+S6^_iGHaZ1YiV?#SzTRMEViDfO2Y@_6c;<(w^C)!kNOE8|t%YqS_zgqO;|Z7#ND zY-O_J8#bVc`mB^~Y-ys_Q^ZHug_mZ1-JN@B__{m1w8~6troIpFVox);F~#h+X6jeu zg%vkfnNs6MK}T{+`M3%l`AG!v{A~ftdQ4qNj&{w~>T@((NNuCiKEdKPaAVH0BW+ad z6Bu{fsO#lMcb0S{*P0d*NZD>I@!|WU2qNm@5_Yz&y1X5Cy3j*iIDUkWE#X}WIx`!9 zVG#u?fj^@pqp!L`V`Qjin*doYrF{L(xt#_35~_wgv)GHM|C^W#&qJc z>)DCRZc-B;~S#C)G3Z#-+x{&gwZn%jHGrm8kCf`-U=FJgv5t z{%>utu#39PQ_HShQ4V~`vMU@$d|$Y$Iv?QiXVfTw*Pc;#pllJ(sLcvgkt*K+CH4k5Wl=fUtx@U@=X+UJPer9yXR)25)eodu#)vWMZb=Lu zvNe3P8f&Ty-}eYln4E3g7^`lPvsBsD}dRVa`PLTS*iXg{WshK8J~z z4VjFY#DZ-0>twZ)PeVzSj5l~$l)Q7|J>f!Yu?LB$Qp3$l$~+3H`Cydv93 z%2j)Mrl!JbSyNM9%%Xp>W7E|6B#yq*)zy+bIoAlvQ^(43=`So}mfC`1KAfcv@o)*Y zTHoRlOqB(fxO|m=RPuJdI*fnG5d9g$t%8?fJTqLyt>Nl!>hzbeTOf_5J`ZPz=D)`5 z+3FDqmFhKDU4p!gJ9E_cbEY7^Rqom;5( zlEmoFC5F-cj}_==(7x6GRQvcfx)HWgbxHnO(sUKnV;1{mmAVtW*SxFtBi_NQ)jkjK z9=As22j3#ss&yWrtr(dfJVn>VSzPPP>1y-pT}#i5erwh62l!;IQ~8!PH;L`mV{u@% z(QCc>q~c$h4I5QM%3}jJVKVU3RF=I-of}TeUr`#?c#s8mwF9vtW;A(Uy)B1$;=&Nm z@y)lY*OUqte&<{Nf_+ZSAuEH%RZN3pSDmpWJ`&W5^Ijh5u^vyDgh;Ujt?Gj4k-83p^*H31Dx z?TX|l6SK43KxGd({8~ii4I8dq`N7V$Ubt5GA^5)!N<&T+*I^^IPJC3O-O2AfG zlFfrPPn}fjmkYmd^KmR^ZN_zD>Zj@+#qhW5Q#baGO)IU{N~0 z@Qis$1%aUA=3^d}=6%mR$ebzBGC)u?e_K_d)6bCG(-;)-oDLC{$G-}AU$MeQTmU{X zTH{x#!)mRGhM7wwI$B?#l?0@~8+90aYebhvAH@}e91SN7Pr(pQc^z*+!d7O`WrTF1 z9Q4+S@*p>axvXan`fC;&*1|Q)}X(aNpam!!}yNY;#tNR^e1zG!Wx;ZAQshye$qS50G2j! zWDNEOf%MGVInqt~BPX~8Wd_G$!HD{uM}avKU5$F6N6k4B{fzpbr!Vj(M6;v4`LKze zB3{Zi5m-N?vn#fJ&z=1 zNy%C~Fgv(H+go&GA5BX_u2uR+3vHMZ%a(=@GLyknadTJzDhEbOxSBc>96T*h)U z9PJl>RM$(NF1VsLl)s$I8edV5%74vezh6-p{xjFr-=#C`*e_~RfIokM&wx{_H`Hbku*DUyY*UHqcmm=rkEM9*IxW4S z(#h?MH!!<7!_;3@I>+ATR~{Plt9lH{V@uSya3pVpgCY1pi_2Xdsogaxbw&x+67XU4 z66`yiVIenFI+W7-rrH@GA&(h`UkrhYzm1^1k3)t7=ZM9`c8 zPZ2?LZt-WKMGVSYg~q=2+Wi3OeYUTYcB{*;g+6?*2vU>pHzH{A{agf1zNbYHe2)~e zKcCR5H2P3vZKil%1kDs{L=Y*KuQ1}D)EdcBmNDWf?W`0HEf-84FiKdqbgC1{eL)857l5m>LR!0#qMLN`&-!R_S|HSV9! zX@wvz=&m&bINe=)383!tByA(U_w{1PNQN&_AmXqmv^9v@6K#N8D7c`ulVXwZR z-A3BydupU)6MLfl&amq}wM>8!FKP_|f|Inz*=H|mbkIHcCG9(;`sF3 zbNw{z*0Pj-TJ?^!$>whA(CPhVg$^3w|IHY2*UJ33kr^-}Jg9tZD0r#Zk$&2XmYYc_ zy~LQ?YLEHEP)cIM-t4bsgl!;?0`}6z%+LpD=M?$&yX^8H?KS!KYNOL&?Y1I)$XXB6 zo|U#4*~7FbI)1)(xYi8<{Czk?{UKX0f?C7KPSsi|@wagj&i%SO-JJ0Mxf~Oj6ApR@ zFyZ!UJh$YJ;%naSH!XLgmI*;)+#Ln^fL+8G4R0&`x!l-1RvRQqYmCa{w99e`iA>0) z2wz2A$FvDB3LhBTCulgr^De9Kmd2NQ+Pqj&eUqd2t1ytb&{m* zM#dzqvm_a;%M>k^-I=U~;5ldtrWG7TAkPe)GJz{gI}PNeEbU!sJIkJ`xhoqGWQ-iE zC!k#1Z$uxLTn5`am9x1&RSQRo@N6D>Ia`Ylvr^!?Y3)($>EPVvyKKD~e?41!0gU5w zw3?D(^vTi6N$9|Xay2)2T(8%!`UYuLmYT07^rHr&6~uw#TPvEhE=xJE2K zPYZc`{#uKHY0&aT&@@lEB53B8DT2tYbPdbP)7t(2GHAqNXQCK;1ZT4tABvz^jEy2_ z7UNwJL@}1GWqb3rI;?P}_PX<1Tf~=Z+3ZDH1J-Sp_C%Qx#~&8a`JIQPIPkED_W9Zq zkLRxQk>n&1G^_9*Q8cp(H$@Ot_=#5`wah{en5{ig<5NLwrad8oNPBQCyEh-TyfIsg zD3d|kIa;A}fhY@7|8JEsP?@??nZbvn)3s7SUl*nW~fezvR|=F$U5sW8h+KDVaaHz%+j? z3$(TfjxNw}v;Q_$P@okfIAW=`TFNsjEz^FMoC{XMAb)Kd=gZr;Vv`ay{2kv8Z}P1fdrnt!L5ewN8z$ujdAa-jODw@`E5Tb?<8tMAW(U zZ1#GsyEKn|w_a-i)1|+st#=wGg-nSzuV;te)1H2Ot-zVRd!-1PSu7DjGmE(*2nI9O z8&7Z0-g9A`{r4W2&eKN3UhSkLWwFcqw66gUe5B3C8z@OdT2jS%+c09`BOB(3wTgXI zgz+Yj)!nacln-rT=k}wJWxqU=S8TLBpiNOgU37>is&`oXUMe=!Big^o2a=9y3)O9S z<%Z9oTnE^yV;F7%+0VzciEzP&9@nbku<6v}+M_{%4jgEfqhxkwez{7l__#K=#*Q5a zuxNtSExcG6RRLdSiVEhh8)3HuuOwxDqBXB^YcEJDfg~Ix5m+*es?6URii!jnrs91pnal-4>}yswn7%J}h=mMfvWBa5|K zcs=T!Vy&wreQtbtMq4RM=UK*QTJNxPnD^7P8uMt(9PT?txz4ka&$M6l1^WYJ%yBb| z9O~?1q=|2nwpkmP;?-6IFN zUr6saEG2cYyW7YSDXIO^M~)uDwk7HHnbBIGWhD2~V**%XNl#>3E@@FlL~s3|#3o33 zM|L7XuWbCQkG?q2IFzhkkYtC$V1xDgl@k^gA8@E8B~m!Hr|LKyj!g?)j>>@XAgKUI zzpc8<5oA6(v~@0rVm%Y6gQMtrwUAd&x*SO1`88sV3EeX+#36Z*4o3^t3+P^Nf!dC4 z3#Rt)SQIAMO7;Ze?3{br!WFVzypRGu#ZG4E^(u&=CUWJviw|Y+? z&YoMkU%2N?mm|O`Sr+2NGodc8XR|W(s-e~2^TogQ9@~|PuQ??xWLf22N6$*?>t%W61a1`%b~H^X?jCW zlD5?(Big)O?CfMc`tL~Q?P9H_{5?s*F1Gl;kgVFp?v+83X)8s!O%C=0^ALX1c*`iCfvfrlaJwixur8ayJ>zAd6 zu_4)dJdaEKz$-DA8Fxa&McU$G%(&Pb-4%Fm90^^@1)qg!dL-x5*G3!5CgtcaJb-RZ z=rC5AV`Xhm5^u)6np;M(lFY1&a&=b-&zft3!!a<(I}VVNWh1_DqV*ynxR)~AUc|WPYriD%7c}F zyTG~;!dK?Ai!=1PPZofUy?32JSQr*6L1{(QiXQOOw)^(do(OYV)^w5{=Jf4EY-pZd zl{!v#o?e&WraZl-oSVi@<(VDIIn%_qnrUgGw%gnGZ$Zz?!e>Fb%fh2~^`BJ+A9Sh1 zW#Q3}8oW~mJvz^|(!x+)}~kXIlN0Crq0$|5nOG-i?j8Js=^pG4|h3U zLo?+AHUZfA0G*1ho~QT7_#n%xxy2v(YPArNS!Rc0L=BgtoE5kPTKm}JPdf&*)Pv|(`f$E% z+&N4QU$~~*>v;InUOm8;A-~X4q_H<){KxD#@GO$)uJFDe`xfSDFw|Ku24iV2<4Zt` z7AW*fvg2dcZ6WfpON&~q=wmhk_@@5!NBz=|18-qeixDTYy~v(jTBvIkJUrRgOs_1D z&tc9*dPKCZ7vge+BfE{!E=LUIiy!DZFVdUH={fB6MKB6hI(c0VJG@Abme-AA*B0sR z<2H^ookvQO9OdGhCy*ht17XB`V3^fEGSB>BhLY9jIDvd~7d_Bab( zY8A|FE7<1aEOqIFN$mwFy~xgrr1rWVJgsWJZy5#=UP=-? ze&5x0IU0JsgA!Yb9jxDS{n5bQsV+wdrwAmS2x23a=(X5|<(3O#uS+beU#Qpi8Kg`n zh`bNpRQBQ|eZpoH`i*H_>xeOpXV#bXTdG&vzCw>7Cxtcmr+&W4@DslMCJSM^sj1e) z+le=hWKC9LsPQ*D!%wn_E75WM%})ABwjTHt|5-r-l4*k`KGd0WMfyE1McEgdK1%KJL}b9H~Rw7mMhC+hkWCWjbSU^ zh2Pj6PTIprVu_@-Py1(*+4Q!5rY*bHEO0f?uKsGvbB?#gc0bF8u7=)v7?@KFJA=cps^@_eWE@@|3vo(LuW&ByT;J=XMpJjinu{y#In@AR(Wxdy0_(EH*oAHv~T77$H z+GoB^SNIv5z7C#-KYp_x-K`cbM;Pxuu(gO2V+Ntz?Avv4DH6~5YH8nd%()&KH^dL0 zd5*;a-)IptOvnt$E?@g?8JIq3r#xjn|a!Kc8xOk$7h~r z5%0m<&B z^Pj)=z3A;3X&2dojZiYbS@3upN$y4VM;RpfHj=`NtoJ70ndDkq^p1<{0HXbs{i=W8PGT_E!JGro+RE(lE1}oPPyQ5C;_(`+^X9-C4R%c+k$}}19Z8q)~vy9rjov4 zowuSI=D?8fzBM(mlZ^j{ttS%C$kUJy20K`l_c8LgKfv7D8^wiSFF>wY<}8reXZ`kS zLGR9gAnbxoLYu!~aoeob06WX0CdcSU^hdPaE{Dm$v#;lTRpCvdB_+AX{PR^=gPQWJFgN zT`uH!6@TR0aXkBW4=pJedi5@LKl$qKzIHL)8!0(?lc$tq5w!FlxK> z_D>S+Z5yq8Ovn#>4w#z>oIwvu3;DW!cF+y~lLQd~;?CcI!|&n{@44bjbI>om z`~`2bue$F`d*TYaxEJd88PeFt&FfcK@IJlT(|+W){aAnSH>~g4Xj8LU>OMUpBo&>G z6h_QJE3o;1rE)P9}9c{yy;e!V|8;(0ejP7X&~7Ii?c?LT6t z+bEv7!LkoLD9WBTl7TnawF8!!w=*Ap18)Ezsn;K9Lmke}Jqv7v90hze*VkxpouEOm zVJk{*&!M1<_#$b?D#xVOs@304)@ znZtVJDpjz~^A7}Pf<1X^R}tL~unLoo=(XBiws8Q~aTj5`n)L7ET{v+B`fmDY?6o6$ zb(bHu5}S5Je=58iHZjCj4>9&wF>~h8_O@4jp23AVN6SzS8_B@iEV~Sn;yYe0!*8=| zN3E8y- zQE;1GJgzSbxr#aol_IG)*vwD#hV{h=GHQUi_<9Nu*A8OXHtY8n!UGUi*|(qQFK{bl zui~XUtn&%0>h^+_-eK#3H$6{y58~%y`bl`6Hi^XAV&i{j-A-fOEAON}FGQ%%HcNe~ zu%@TccrBE_UxJm0Q+l=N$Wq^`#v*Jtgjj1@c1o|>Ow@7yV3(tXRl=l^URp8T zXpMMUn1;)8?G&W#S*vKs>$d^y#cvNAbrMsoA*b~^Wb|jDHc~gX?zH}t)RWyLki^;) z1N38)2n=P%2#jJOX8_({y$EEo6$EnFPXzK=)3X4Ky+PnzwjV&=mcoKR)jP`vQ&H#BY1%ZB7|MKl&r3edSFIFB>hMMbYHz4L{q!BX0 z9Y>A?gr5hbK2E=}cousr6wXArA~$s0QMq)_E0+>H3+)r|9gve(Cc->9@xjm2XU)y1 zQX8uvHtC#ROWMFzoYN}@E&!7VHv6<*IpeEg-bHbLH(-O`IR71J#U8*m#MuqcLBDVb zXlbdDexLcpUH0i@>i0e9{&#oQ1o{s4MXF>pQ~RHkopW zkNzG-ShO3_4g_s5K4QjyR}m>B$`MM4XRCn1sUQ|x2eF8=(_nPjcKUO@LdK!LA$0pC`~tLMc__v&F5WME z9kgO5lIR!L7hy|*O(pmbi0Q-y{rnlH`6YIxdfRxsUtGRlcw(A&WEIAd^6+|e$ltyg zgF`BwwhP2FDO2KDm!mJ>TEMD+qD>DV{4~P!i^H>M8o@6Ui#%k7zXqfx7U_OOxTgqH z{p+KY)XnJUEt$7qUyU~7n~pJ8p+*5d3tGW&AHqElc7buM4ga3SSJ1^HzAoY;z>m5u z;ko?#0YMBm0aE*l1pW;6Bfc8q>GyA&r2fEjb>Mab;>B=J`rj}%;f-@oSnvbNkq25B zQ?vc&A`k;)BH$CY1P@~n0lH@Y106^lWi{zR6pVbyq{SJg$$wZzl)fw_@-iqpy}e28 zBea;S=b!-86t869fsO~z&rT>-6k8+S&0`&ohIkfTO1Q9d(Hova{C9w)j3WW-SoA&d zEUY6RpMZ}7t~p@rIF}<4u*OZOrqJB+K#FJLVV*5%N$Qa15_T14yvC;^!_S=@P$Oy=xXc`4C(3m@<+ZNG_y8*&IZeFZ?&;$zyHFRUlh&Nv~~I4oSstvyF{NCT3KUg|JtS8!KKS&T5B^)zLCoC80!ob*cRvS?;;bA4}lbZ%L<9M6lL|SLrCs*sQ)&3Bv|w^CIRmig49oY^nfpi6qq@ajO@Z9+qYV>lUA;V?*E z+mh*WG(i53SY@EHjmKX<;JX912CNTgkADN<5)5@@@$L8t2p0fP?npPlZcO?_4|~Lo zM;acVndow)0DcHK3{V4%2i*O(%key$Jx>qIn2g6ZK-syziEvXQ0le^*%hAg({w;(f zfgcW-1sDq`T#juB)A;qpn=VHOzypBf8MXwZwV8JSY5WQS1YLwr##H7nCSWeZq7La{ zjbFp#Ge8O6>ky{A>}4fhKS9XpygGrW@mQ5b&C$a~ynsh4saSvd5^`;da3d%x$-H>7 z%TWa|6OiP(8_33h@d%Sd1l|RD!oQ6_@^PpuPsE?;`QQP+OkDY@4_@%5p2P~%^y(R6 zbp9E-N`2NpZ%SidaK0VtH4zk7$?weZZmettQUre05htE0`~cT78km3nE&?=os&LCS?jD6C)`7> zMfP2!eIODpx*c!dC9&^d=Yc+gIO6xPT_>@?Yf{0IAdOgGpcBA#_(0k^!aF7>;+gsg z{RI5GZJu&ifySbUILe!3W7VCF`WdTe)j?tRG3@n;W-ETi=@J;od)KfS_twvPP>BDU zw&{XfTz)^1lmKr zU%1ikX{J?(2gLisj(_2gmY;I)=f)rP{#^V`!{2oL&A?wC{$}Fums#ea_>Td}!ne+G zW%y`UNxsW55D~Q@Q!iJK)O*Qvs;acOgvk zwl#oZfa6d)SRBWBgy|T=nmJH!ib#cCQpCEsW=6XKNdpS!nFGU7JX7nZ%{QeX?ABKZ zlf4lArQ!n9s*^N`pFcj|!UJIP0rx=|N&mjkBGRj1L>vubF>d_Tvuwd z9Uvgr^DrRQ;y9oS&`jW^zX*EDcs$}80xt4(6Sxh%L=Tff(^j|~T@Wr>iQ<8<=v|}PP5sA!jP8hV zBcdMusPRQO2G4F=m=wVtPqiSC3i?KPcH>VJNYpSG1)-Wd^0&zWsr^PIOF7%*3yPys z^7!;VgOd$*NB?F*t-);vj2xXD7nhQrJUT9}-@txpco-8G_iVqkwofK>Eu??T)C3iAYgpYMrSMG_p3DMfUC6DB9!WoDJn{h0T7_`5HSk&glxsQA#8xjQ|^Iyz^*4u9A%X+R4t!?DBZ$ zv(hxy>NY0DqrbfqGnBYR$TD5v$8asMZWFasLWBG@I+KIHcWKxkZTV$wP<7- zRAsAAjn=eLAP1`x^vR!XFYbr~W$IN^uPIA`7O*Ts>IUkpo zDr}VIj0#I0*nCj4?!=GtW{nxL)lr*meM-5C(F4(TF+9ZI@?O`vDH(Zk189K?k35dsmNp_lGm7qw(Xn^ zP22>vL#Q5`osD*XUwP6jz@cns6M3`3{;1%r%_4J<>lQSlnJmXyN7~AU`A1Lho za?T#CVlFz*Hs;QCzM_1H0wp{NE$i?Pl<|XHlyN)ig|tnWJk1%2SM{q+b3Uu=0Fu)^ zS>9PIbYQD~vCUgFZQZ<8t5(gLCAZwEu)<{L3#{C9aNfl#Pj@aazgy|p_LZKmvDraj z^)n*E_b4Hw$Bs$w(?5A|N@}06spC>o2kvFA8P3k}`;_25eMS%N1GN}A;3Gxjfq}_9 zSY!o9o5B4`h?lg_gyhj9lLsDP3uZVUkv~@0{*KOC?5i0l#zFSW3}?J_2;Vw_bPk&u z!!q&^b%f>TLEuN($vkH}=@^CTvZgbg5z=v%IMdl&`2=bbn}_~&`USM(KW92?1)Na2 zv}Fk+o%punOlMQ+B&#^f*+M$So|xrq)$X)XZbb5kG0Ex0{9!=a8)uaAz>FCAdh%Hl zH6ra(r9z)RV+W?Zo}SYDGbN}`pAln+>B!@$50MeZm`KtM6eimq`)5CkLIpom}uK??;H zL`7Xt5ac2zKvYzc5mem8UECcLVpzre|DCFPyL$lFec$hWo{!P4s#EFIsZ-~iI#u`H zY2WpH@cv%2+ay?OjFX~&u`vw)^OapEGv>~Hj5Wt^U#m&oapzthv#fK+T~?^h`g>k| z)%T;kIFC7VU49yK=AOj|G;t|6aqbn9&b)Ne_=#tof9{zR$B& zWF!3VxQ(e9r!lqEq>0nCNt0%jcIvr>O`0@r?m7-{QJ~~$c@0u6(LgH{%eP%epep_$ z75*#GT}CNaxOonfEDs$}zvv3MIE-`7+$5E93LJpwKl86XA;+x(%W54j!1x#n(jW*$ z{KFtp7?q2$V33Z}gyp+!+5m1@2&irwg!te5BiyKID~h=Jj&6(q8gr8o{-OcKKtB3M z)k372P)WBfr7So9cq-&t%tCLVD1IEY8q1FrSTP5)+_0`?Suy-;-n?DABHLq^u-ozH zSS)sg+tf-if9llrv7A)QpS@v|30J-8bm2L3IE(o#=Qh^v@wo-@9!)n}uUen;W!7uf zdg~c>Rb{uX(|JXg&gJ*b9TRVw+RwjZ2iRBqYrcnn#Q(-`WHZ?e_6`4*|C@iuFTe7V z@A-%PuY5N@z;Cziux_({;7_x4Y%Tkd|H6J{Ke3ei>$}_G0XT0 zzMMb7H(D=Ro2-|tm#w<5++DG5Rhv5ZuWkQ~m6H<_F~I~+JZt56h$q%rIr%aFx0M@X zelqbi$dyw!=FeO8#fAkQTefP}t7p3iKHuJsv1NDsTC%Fo8}n_pZ0@XAXRZ3vyBAo9 ze!hLos-pMvBj^i%Ee@k|C;a27F#pEASca%yysGU#2iB$7J?Wp0b9a1oF{RQG}IL(h`B%f)IyJ?#oYB@CFUOUbC)bMsJr%a`}|Uz106R~PeGG0&|RixnVU%$xYrDKGEvc?XsSe=26jv7BdDZi)%+H>plMuYwX*M(PhI@wv#Ojz9=QhxLSSP5k)pVxha+ysh;S_s@OaYVh^gD%GgnS{+i(R zGIrY<{@~l{^p9CP>z4O6s(pLwwhtcvnDugzug>z~^@CqNV`Ub5PL+PidUyxcZ;Dm& z#N5Td)>qel$vi%FgSzocHl9kayufZ05K|64Yf@f9_} z`~PNlFkSdNUO$-jJuA;4L{@SBkOjm}Ys$+h_m-wy2FqOTaJ2DcoVP)+GY$c-0Z_h^*Co7c-vM6gnK&;*g@MiavFwlV4S?^o+NhqazG%gBfHv@L6SNR~ z2PevW^{QQ8@z(qXBHOIiygpIr-nP6ig57O-IfA@)d_6ke){b|lCf#B_6Up0)`Smun zK$EKat#O8{%R2IF2*Un~HsfXd>U3g$86;tpb9^U0Qtlw46juvg6%%e%ETPl!>Z(|j z4mNed5Kt)?*qNWK=h)xk)mN#myijfH!Y`oqH1euW%&|<3xsZ2OYer+-Wuy5?As_(YmpW{5u=;#H zk+H?9=tADZA$`}J$ezJS$Cg;NU2Qpj^)giuT50T$MW+)kp>s@A^i4*>a2@- z3;xtXHT7cNj{U5bUd+dJUTg`wm^bf_MHTb6qk1K`{Z=xWdsU9#+;1tQ&n6^Up-lSQ z7ohFW7N`N^K(EE>_Hn#*o%w4vLM0Z;wra#U-au_1$IFoQ>p0$$Fm5@XH%(1@7#Mc| zmZko5igxswY>h=L%ltgq$-h#T`}wl7|K%d&b@4q};eU5OqFsGgcB}e${~JF&wQT;H z&ttOE|CQj~{kpP;Ka)!L#PEChcTlvqzmS4HevUlSUr*7#{%Q)2N`Y4W{G}B4{Tmk} zsPgZm;AnprwRenPAp86OqUZpB4;35eFQNQFAn;&+6-AHrzoU#HemyzVf1RSk{D$&4 zzquUl$K;6IiX6W_2=u~T$YHsc<@oK9defv-w@W~b2j{C3FX2U)i)${y3jJO^bqPPN z?Hlt^VYJ^)CSg`|9FW(B0?|IP&FYVMN2Cx}#S{3M{Ehi))&$-g4ZJjgpHM<2>LP!@ zfV}!*03!W$rTV-d;sXcd#l%1ZRQ^QXy^$`i^NyvwW05x)E#EegUx^mumjb12s^6u& z0fG~eYDyLA=n6+ug`-iSGkVBtspd@NQoVd>h(jG@^c;{^AbKLwL*r1OtM#U8y$w)R zP2xS#@{~z1-nOaA$&?B%napprXk0&B!ApiLzuR!$t1+%K3M9tFBY{&_)kfP`kMa9e5@vNIanKn!?Aj zCCa*npEdYFOWwtNE73BU-#@Q`$oHWVVjW}GKU~!-7DF=DDK_ols@}1fF4L%gUPI9+ zEHlHDX+&kFKO8K-hQG|}M+jYa$UUr*ueL-ZF*0mzX>iW1 z{B*`YxkqidjgMhVg5>S|eAfCAl&0?Ry9gt@g(VCgGkF>hwQM%u#vWBy&*AO(^$UU} zb9hUZmk}{OFxz$q@9gr27btc&pT{4)D^PdyW1yab-3xd}t$K16@hYhB4W@Z(rs&&@>4mxAvo<(zQQ7zk-Hp2MtJ6OemjL)Pr*7r2Z`Xq$NAqKf(}~^ zAs*%4_&IM8yt$ehnh}%+{0ps-3ZLfvJig>6HF`bldXz2Lz|W&bF5kfSG0HgqMU&BV z6F&ix|Kd%&`CuY~yR_IJau0EmMfVIOEPG9xf(SP8t51xot%L{moR25)ZS zqb$B+Pf)y>-%Hlf%dbNrZ3`N0frb~fz+(QAts7#}_LDLvw_6TX_Ns;J??Rt}zm;Fg zutLc^+!*Rr%X_Gi%E)8&$y$UikY(_{{w(e+O^= z`z5U1f85CYKWaoS``e4KKVhcM--Ad8ME1-NBL{RuZP><}s*b6gxJvBharM9s{w(Y( zHRcUiJeZ;`Z}Oiw8C;#-AOM)z9zqJNSw_)$9+rfDBss0Sq~Gbk}bFZ?f#D=L)s{uP_R;I%}n7|Ba^z zQg06*!FH&#_n>u?EDwf##Q&jLRqZt#zfc|DEeO0szC{0lSAXIiRJ4S$>e z{Du0whWDYe?LXnS$;JEpqzy3wBR>uaQxdxy0H?bKAT?*7dhZi{eblSE?NeUkF4?ys z<~LQHKjj_L8Sj0@?~V{qSQ1m*XQ@xL1MyVb?U3F-^2FWp-wo!i`g4$ z$^qV*%?cJB;72h)_xu3kc)R-f2V)8n*@ByXai7}rlWr!+`ysTr zWJ$CF3$497WT72lB%L$=RyE>R4vY7#;HqEwrFGZ_wa>FE8&1bI2-*YX$V{o^AaP=? z>KV7X@DJ})7sss=`HZ{Nrnptj9tk?tv2J59_@1w8RdEh`isxA?iDFOXSvMjK`sQ03 z8$htJ*49=MaNFBjJ7Hf2ON*?F9E9~dTCM6Jtf;i=Qo3(%>uJhA(8pSvhvmQWSZfx7 z-b1Y6fZjaBsz~XCDB{<*8>l_|t+;yO1FNa})4SG?ENDH| z?^CO;dhcE9s6(NHb{-BI?6i8CuE!l(<@Q}sW*_CeXZ1a_#HH^YuF=207u73LN55|k zG99#4lPuO;ZGGQ51%P%RSl1eOMX>7w>m1rOV{}4oYi@hNIe)c&${ue$b;DlkRTLTi zv2_fnGw)-XFSYk$>k(vldJrVb1RnwD_qaOasqOAvJvu$wt*Va!A_@4YN z293S&w=}6i>A$T;2|$l_Y=SOy?8^YH@7i_AT|sQ1`sdlST|vh(crMSri|}PhJE`{X zvRqZ(#CFwn1-i&VP%mMRMA>?UASKEc1Tz!%T3{TYDSnt%CN{ADjq(>Xw1*>DYl3(q zojRqFeF1fFK}YvL8b8!hZx;E*$IuaWk#7zTRY2nQZfsZ{MR zw%;;^^#W{wZ{K!Eu>i&HL`y;2F1AB+)S<%04pptJurEhY z($!8O^U-3YWpRk!jog|R|;MyQ_)`mQ$8*{7;!T%w)YT*vp2bAYTriJQ}vM@8{>CfHq~cyc1>yCpb(qD^{4$w`>qE$Y=t_HhV4nrt^#ohD<6 zY*AAu+sB7p??Ts&L<2a(P~aQny>pp8{NTKx;&S`FI1!{?L%4;G+Eyn=?VD!jE$ung z))VmITXqNa(=@x4x?!3<7zKkJ)9kI372JQl-QIIx66bnq(S*8f)Yms*{9A&xH)8>Z zG=~3YgWV(;cB|dI7N|@uyUjk8Pybwbx7(kj3lEr$!YyXo<+||jIrf9;toR*v1$m*k zp8!eWb+U~Y3KNB03et5b9h`B8eXg#oEwP$=?dB>K*sX$k^Xyl7{%m8$IAmMhv|H8O zWs{v0T(7`a`5Ut`pWPkYG2d>>>V0%W6&XId#%_u$c3PcA>aTa(OIyHPBOA%d7;EXG zbM^%f++%l6+k^oyIYB${G+rYX*_&x(#GgUO#db^f2L{W0XCHAmCGR`i3$etKA z7YlIopl<5Y5)J%pxY{4)C_{s$HQ{WuL~q+rPx9--@XTOLH2k{TsXlp?>Wen|2~* z`+43vyLkYPdNVzl0YG~he|ujr^jUBWmDI8oe)Ga$@pJa8nhCTZ!&(@q3+Tl*`ei#u z{d1%J9F6y(7wsQvWi?e>Ub3f9Yf<4>vlA`Vsjt{yQ_W$U?XwyGZl_xLs@<0WaIzl9 z*>$Sl7F&hzhHBpydkDKO=(W{8O?UIgFA%JcZnK-xID$<(?B$u>(^4R~?@jwif(H-- z20f~$w!Lc?D)(I@R&`5&00|&V9^Rn;F8e&4TK=B>E>*wbefu5Gw;WJsd}zZv{j-|> zp-tZA0IQ)(9!0u+W}j1+8mKLY6fkHJ{NvwH9Z_a5{QGc;>!L`B;FAOP1YJO{uJu3J zWx>5a+WBcv08m|>0=6C0_dnaas8b}~CwaQ;H~V-5zx@Wmv*oFB2eRt(&(v|uxdPBv zm_u6Z3hwj)pFG7Ksi$767A)Nv!34+oh2@9Npd8~23Z{6@i7Yi8UQXZg?ZjP7#I=*r zFYq0cB0nQiu1S%j(~tX}Ns)WguZ!J|u16kDr0SRyIXRK4Yf|Lv^mF_ilOo@yp9gQ2 zuD3cx$y`6rB*_siiX5JPJ^u)kBEPAhj}4jb zg50M_H83f1mih_5p-HV;9Bi-STu%f(A;)=!96sPF6#(vX05#+%0b@qU8CIfBhv%cRpk&k_#Yh#cCqbz>)>edL(FPGj|T6K5IX_cwLM zve$#$X3j9`^Rz-|But8Bg-+7KY1sCbPD2DAw{*^c3#zJ>Gn3B9UKg0V9cpSZn%N_r zlVDHnD|U`m(~?d*tt)MRD)cBihG<)pbgn_+(QTlqk8AB5kHU*vJ6EBv=53sQCWkP1 zt&KCD7p;E6m?sILcdktDTq7X3Ap`_tikwz76yR{N>Hd5yU z>eBYkpV0lA?VY2e?D7tj9bDhR>1_SiIDAm%v;__UD|hNMNbiQ7ogTpDxX#W(wmSH% zv$FtaE5VIjou4`SL8-=SL3d59ue&>Uwjf<#3#XEo!&)lW-Y?sq4UM4B;vVeb+#fAo z^+Qjm6^><`i?bn<(dhVIP6<2$clUCR#fbLya!yCkuQwr}KJ4wZ=hMGYb^3tJThy_A zoVQT}bALNhPaKK$nNIER>$Ib#-Q*~zF?rg`tDH*_z`AO#)>k=$qj#^P(IG@p&uUPB6M&U6} zJKyJTv80W)Sl5`v!QgdHGhO)HXPoE2Hm#opG127c=bQ!_e(CehdceEB;0&ipn7$EW zU`r5x5lfKI+7-0g9lGGzv{r}p{{(@x%enzEAG#R7n=KfLn;E4 zOXt20U@!!Awq~=evWbxK+P>yUv^DTG=RyQ4UvtiFfF{X}WZDeN1?^vVx)7S9w>eD_ zT)xd|4Qv-|b9!2Zgo8sJ)hrp5Dv z6W*k2MpV_Js%IQpHML9kv1Au0(wqu1D)=CT+rgc@{hls);5}zplT4G14=p(6YX~|t zrAF>{S_hAO?fmlyKJz*?+i~0R9kYV9j{6qPO>nE{UTC>%jq`O*Q@4Ri%Ns+u{m_tCi;-ec4@fNTK&sLv*p_VV&u(@+`60IQ0tF%OVr~{-JeZkor3q9 zxt$#w%)``*Dz{P!LG7XP=n7It@M5qgeBPbK=eb%K|>yPfUYz#_h9 zL(sF2n;-`L|4O9*RQk7#vzIl)-Bz40{3h5r(zWZ*%zSv7TLV4}UjCDNKrbV0%`BLM zVecQ~o=imspXDB)?OJejwVR_&w-ICAZ)rLAAMZ{ksT4eWsk;FHb?s#??YG~(%$?*w zcn_K4HifrPojcWi0>#LUT|X$9=4uHSTydRyN1gC2U_TBq=u*TceJMhpG1pG@i`&JkC5rXZvy0jk- z?!4Xos@8ZeBLvce3y!|SZOy`Z&4TOZy5H%6Ts7a#(;PeNZnuYyym*g0gswysJnXJT zu=!!P7{ON$yYN=3i9ov6=iU_JOXkRCO3lrs1UH%YTNc7?m_ zkX%)~(p}89s@GP!5fIw3!Ze(#%@P?qAuMp5ix%?ECL)Ej-{>jlWsMN4qXLI zwyMdi++z`}Uq$tUuU5HDsjr-;+~L$fBjM==>gWbwm{9{0o^qR^%q>s3D^T;uH9&8x z8nebd9>JyQd*o`ZU(~mf-4j z?h@*_)wAwL2-tHj)Lt;;Irm={T~L7_hqM`}%GSG$^2tHL{XN`>v|!8zw}`6F-01ey z!X))e-S*_J7zSXU7hUoTEq>8G7lF6Q#k~^pXWWfIE7$=q(Y%}Z;+Nd1p|@cNsOAV8 zDE(Aw!0f@0dCsi&NBe1`n{of zbKM(y3hXysxGlG+{I^{4h@lN4WW9IXq^k3_+aB>(--ZYs{kGfEz)RFaZ|mU#PL4Gc zCI8TQ@3_Meta(Qd-g;N(4SCm{4B&=$-ODlrB-L}!kdEJ}TfA(iZYml_4^&0GMESei z0U3?7fi%)V4J_HE8+c_GSRekp_uL~{IMHd^t83qPS0c0g1NS8oPTzg#?xBJ2{F}Q8 z!NNUy{hs)ddoMD-`N;ju%4z|3aIrAH_}KmO5a4J3bnij^8UNBeCu-a&NZniG!VMOD zUgM4=?`7Y8?x?Ja1)A{|?{hgJ@ZgsuB-F6|Seo!m?#FW5qHfync0jOZze_GO?<;rO z!S$8;%DoGDWna6-IOjf%Rky9scB^2^*I)~jaKCl8>RVu*um|UzpbEZq3xfmSx@4}Y z&fmMUfax>eyZ51NaM}-UUJi-u3vF+-&G&z#Hpji;?ac|*DT0#_9t!%;{QHYIvKoX~ z(@I_nxYeE0%J^CNb-eC;_TPi6>Uhs-3EMNrQzTsP>*O_4pXYdVTxIs;Gjlzd_S@9L zJZ~cb_5O8#zSly{&iBaWl7^J>y`QR<1>U&?M1$q(sRFOcovJmxIfK6C1G_+#C%m!Q z^;)QH36ETa>6Tik!S%e+wIIQ+dfsY{Y6gMl>w9adP=s`I^>_ns7D33HpoTW|ZpuzH z4eUl9E?k3f@h0A7y0NKEy)QAiOPYCS5PVxR@6YK@?rMiY{<*m~lNv!EWkF#J?{wzw znWoJOoIf{F^ICdzsQYnC?;Y5!&$RMJY70NVjrSfuFfI6`jmNXwI|`H8ubp=ywW!DO zSUc}SN@#=^7I{}?Ct9dM#oh&EdqVI|g*apWBD)$UE!cchu}Ajqx5XYw&WaL`_6Fyc zc)buTD)Fv4e67yyy*4OtQhTo(f?L|_TFitYCIjPK})xEsT zBY*OqGVfVJ4usf_I73uX7WPpr}*HYdqR$Yb3Ry`$oC99EDPyy{5GaxhS+E zycwZZboTCQO1vwtz;&rB{gk{4*|q}iU6iusTL%~Ix0eQ!vh@nUg z=+auNm)k8#Y868R!8v0Yu%$2`Tru3X6y$S^LkMstaQaBL^OPvIt^Vdgu3!R+Jk&(Q4sgmQta%+zENI@QT zjJFZf!uxy6ts@p~d@&~0Gw~8je86B?uh^(I4Dxodt?Hh^-m!e4rq~_B>r+D4fUr+Wf zps7YeUkA{fI(oF%BB+0=2Sv0sXmOfXNMX;@y#l=#jEc}z%iyii-cxC=S6WuAJJY*1 zofmkYWH+W=g{!N* zq%N=9`|Kj{?v9|%SZ_UVu;uY^8&VUU|IfZ#jUVqdRt4j|1ly~`c&}^WJi2j0$3pS& zwm=k`!k>VQr(WX80<#<+ajQjh(G$Ei>k{vKtx9Qw$-y7EeOxbTWiD3e$0xF1WzeE4|c!*F1RX69Si1+$zg1hmCIJVHOO143B)|0P0EpFXh( z;Zbl99;)DKuQA7i9K~0A$>X9vNpgS)6o3f3ug4~(c~+k_kV%IlLXAWIMxV0N13z*R z22Rw}9qTLSj2EZ=~gL)VO?k}>cL0gF^QAE{T?e#w`LaX-N{14E=ek?IV z#HLD``$JG{{5vSBl~cSXm9-I)Hcb)mqbZt6SN?=0V&O?zi8T`)%|y;@^&9Gz93Jrl zM9(HDg>21KHIC|cjn|+dF%r@6P!#`&imss|tngY?^g=2=eT`R`kD1KsS*@Ju)j!Ad zh?&N5;FKh~r&$uX2sZ@-i;Y@71sa5ArPjP9`0w*)4e=-0RtJr(h3N^DgCETNMa@P_ zr0Nh3$zCEXTp~6e_^8bXKhpgsvn2GOPL0Tz)d2{OKdd(}8yMS+Ct>G$zdw@M(@_bk z^x%;+PLBl46gBnVjUig*@Mj-1hQCl}jdW*v4F7=@%Kjsna6^mMP13509iN9&#U-li zRPV&p5+nH0!G7#i4I3mb&CEoJb$}=1VRnL6V6x8i5k#tDz8@zDpgz&zFcNY@2J?uS z4;2or49)zQtQ+-Nn|9X{uuTv{9G*@) ziB9!QcDU#@oz6Q%mDG@HHj<$c<4T$VAc+|u@u;VH2a{ky5K_xfphD~7_hi|)8@wi| zP?m*a0k^}oEK6cl>V>c#L`c%=*Azg*kP3ziO04xPNi;zbgF-S%IaJe(=`gIZ`QG&r zQybR6tY!qA(U_>Lm14AjhS$PBTVEP=p#@z-T5?N4ouHsBclgN5Y$#XDG5V0t#=O3VOco;k*%U-d~8ZGRLcT)ucv?#UPj>8LNLM4 z$q~8z^BReqM020vxr{--FE?w5(T~ui`+b2BiD*s>CgSxhLn&L|WNQK3Dk+n15Iw3*`p*GVJIFLF>;m`=_WX0&X!#4N77+5H|BSt&? zBxfm#|9k4zh0@pbh3d$KlDDgBypehA_bL24*!(_)Pd|(u7(bN42U!t^rLZw2Fbn?! z_Q8tQcJ`r0#6jBrusudB67`8N#eZylx3*6VZtP8 zrRWJvokziZuzzNchO#2FMahL|ZZ#}VTOB~A30WrdQKSj!W7GN~z*G86l`^yymB|41 zrh-=B8m^fU%YBhYGBw99#wCrS{&{(#NZ=79TNFVlZq#?}i>T-#uY1fv9`6Kuqj#*W zAD6`_lSd6x*Sg^p-JmP-8%98bg@(0=U z6+2!V&b!iM&y2$-pdR-DFI9^ol%WTXX0r%FO-_X^wTo;AEMNShWMU4qbjMhY;>m7(kpP6o2bY(=^Ml>w&ozLl56K5;-;vZRa=iE@dVXup`RwUXHK zlc5=^*ihz47*NIhSzKj>HIQhYiydAOv|UV=;Q#iN3?Hp|zSYddQP=;R zqN(mWzBdEjor%7kiPD5Mfx7|qh)4%`v_f(d_bi)(H+YH9Qq|tY@7v zz$Q@z64Zb@5!yy_R|{DSfUdGlVos(4Nxg6hV1rC?{~5cwI2Nmny{N}s99xU0$JW~- zr57+}?k39zF2yi8;bLG!Pbt{o!esm9RWsSOF!IIBrFoUYT1p;>p?Q_W?8Xp)8lj~WV4Dq(_{C?;+w7R6OyWC5VoEZtK$UnmBZj0dHdf;a$OiLP2% zXmJ4^DfatBFwAx-kw8N?!82-#f;~E>!CTT`x@4UOznumbS0~E=*8EqDr{HHJoA460YgrctZYVPL0t zF{Y#v!X=uBe{e{*5)ikR9NA)5OJZ^22{uudo8n*(N$mYBwr`yge&$xoE_gDz0{3L` z6f@ef&`!8wuy`Ee$4EHPnn{aS(#t{@uNco2dAmRc-H4;NK3=%Pz z(DLlQ2nOCS&+bTzq7(r^s<3xau49J^A{TR#>~1#JX}&PqI_U41=!|@lQr#hmV2QcJ zY_Xh-r8{dhD>xL)*=}isuWPO zG6K;IhSH@I3e*xSWg#Gy7AW)x02N6~l8zxDEka5|KqNbmG^D^}nYvlRgH$S}u}2n$ zM#}=jw7l@=r%((Fr>E$ih4mpagcQB#qUFc+TAUQeYTQabmHd|_qWwUv>JDgCc#|bc zYD*HVd6FbVt&+icBSeK@_^U9oC6y5_BaCo~4ays#nW}^w%^gHnXqOhr4lspsVFejk zlanJLY)Ha%rDnCzU_ws>!wl=mhy8&W)*c8({D?v^z`%uJIT8_WiiV9@W>T;!6;A9k=S|m_Nj+hjQkw|*<02B;L3Q)v`M>!5f$ZNnB6SM78WBN+eck3dj{pY4yV@T#v_Iz#5=b z(iXBCo}QG%!leI_u_`fRdQ}RpS0E+=pqA>Lqtgk9mLT$CO6~(JK_NvkK?zgu9`+XK}(Pn zoFS&87jy-URl~8MY0^vr3p!fem{u5pw46(^TJ&O(v}j-ebq6JYHE!7BJt252$nWpJ z%!3|a5D0MXtRyCf>6R9>L~7#_!-@*mfZnZ$9(Z*H-eeZ~+5d0$Ui4lk?7i~PlhIwo zx?0djQy(g@5ROe)tqg698U+%;X#n%VV|wq^!|c5}_0P)}okS1Xdv!|hy`bu%y%(aH zy;oy((T_bl_{$-e#b zihU-J!VpQT!e;8{7fT;Wnw#QkS>?BpN1J2{JcO6A2-%+qqRo0a0Af)NtP*$^OA7B| zapbXv>*Np^6+^31cnwPouVF!<;eJ;+!tWzTg5%`zWO<$7-*3xN5F_$LzlO<^aEKsJ z_77O{6kKtTr$S`O(;)5S>3$D+2E6VaNBdi1@=ril<~Gd{7efkOJTR{~ww>7~__WSMTKrL8g0wk#S%g0R>sFQ!IQOpNS)oEQy7Wb1{lPW}c#AxQ$dF zs~n;+U#*_!9SNUrHHu^XHlc;dDcB5oC+H?~v@mG*iYC*0nrLBUALEIHXe#Q7dWo25 zrjMUQE4(pFZ)wQ>jhs6Anl@%D(UYv|8m`$9PX9FgQ@sb;!Iu)Bnhee8#%$cB?!VJ( zQFm%waFQ5swZD9)*B9r`)j}j@p*P|L;0lg|I>PZIDg9(j6rKdHUz6j7J))4_O@w1V zQAn>LA{&ru)DU5h3!#NOr;dUmuToGSLDm5t3Ch=saA$2DT(6kfFOe1HNU? z9H-ztVALtz31*7vd}=D8-ScayCe0QhMrEkHE|a*Mum_t{)>=)3^;BT3`rBQeOwpkV zy=ldut0@x38`5Ai2pk~W0%x>Tmns~D0A*{Cq2~bx612pSNe#F#!?piiZ~FJ3qyXm0 zDM?GDY|(lOI-%3jTA1!()LRXHeX5`lON=Gh0gt)>oW`WPgdie*FiKAkByk5rANjB# zBmr+4j~&eh33 zhdG_oIR?Sdc|uD-w-4tG??->MH^M47%Gk(Y-xRtQ{qPeR9NMGPn_%cJGEZoobS4-& z3Spw3j_KnrVl=%OBqz-P42<}UC`TC@H+c>rhP@Fer=dp^U&3NbX>Sdb@c?mLxJR-f z($2{dXD$~5uT93pAidL%!4edM!<|0Hp&6O%z;nsvcBVLX67?Axfaj(Gu>AT8sL}JV zN(Rjo=ZHZwrYFxA!w?%Xs!(1~m5Rv=F*DVoue=E1*xXidoTrP*^MQ-b&xL)Tl5?0v z%cKUkX0C@)u7E(K2&n;*F**Y#F|03SAW|#i24s{{1|m_0NX;=?xyGfO8B8zN4ivx9 z#34@n9q5mmEhG39>B<^Tt#%{$qeNNp>grRkh(X?j8icx;C8fa|k}AHk|O&I9!v4Q>mLm{2-<&c{3v?rUcJW>RRI* zx|ue2NZtZUz*)p+!WI*^vH^K?`(hUsAK`+9rp+o%e*zLBbD1%((m=vu9y4Z^2Chd* z0;cZF-Zc}H>fgoEwyI%QDq115=SEj2#-@Tr8Qr1TnlLIAwAnHYLFI^&WtknVE=N?? zd-IejsAY|7TpASLf%tm30V$qwp%uq&#?C6-^MV{^&x_Rnv2RX#$*>}_h&$58o(2I| zF}F4dLlX0t-f`+7;T=yz5pidx7=ftfT^SGwD=L+tIYFq9wr6!q1R)%>QJaQ<3|T~_ zG9ZFTrCk;@RPs;g-96#K=^fH(|d?GBFinhP|%m^PYxzJuNOC8DRCAZ$5N#N?&4 z3*_LXo_fnp`$}zjYIdRJ6w*jf5_Y^MlV-C+n2C6L1{Z~l0zNY}G5U1o%rF!DhE-}v zQ!A5N1>c#>>}E-KprvGroFySq(={oRYSLacByX)e;<6rL9^$p~h}*!^rXmuxGKuZL z+a?o<5-W@Uj6rP(z5@=znIZozLYxlIiTDe^e{)0P&j;~mlh1_~B`Fjv)v4$J0qjMV z+XTCMoYjZ2GNqjkW>pZ3#@ADH$nYNli6R|p@ooqN^|RSGtPir!%djRXDQW=pPCLD{ zHlwZ-%UXd{l4v-eiBx8-5|pTSH_KiF1SPV8rkQ0xJc$Dx3ojqj{5g~OHjE!Y+<3W* zL8`Qi8>G@M?jCS*80pZRC}QYeDLRBeH#2%CGvtcQIE(OxyRdAjm>)&U#NAP}TNd_& z=L(1tGksV`h(q9NoXH0~--4H&=9QejpXmW;k1$@Wg?XJU#?iEn6W3wT3A;?TN-IjCr*`G5}_}Ww3NK8T3l*k6T4ge0Ju6M%qpSa z(z32nT$2%nSjk3GjX;g7GQzGBsx|HRtfa%iso+p3IU;=OGnag2sEbVlqSKh6w;U%B zor86C1j(}8fjMFc6APGFj8$t)u!nW}!F2jjonD$wa}+O$mFn4FfY&S+lZDil+IS2W z(Th~N81`3k6T=F=hkRo%F`vN%YLO%U#l#j859Gf27jYKm#2CD9fEP+BAJ>^8TTolV z+mO+XGTuBW0}Wx`knvU~gBp#E0cu4aqJ&$;a`85u?1*=Wkt)cOBgMOHD59wPh8nWK zg8@biCBZ#7Xss(M(gt4<#pzfYPNtnS68Q44ttm3DytLy(qJS9|o$E+J?}%aaiviMn zOYyRX;5QAycu@wwfTTN`L05bjYFc4i~(v+bLngAfD158NsI0HzCtTmU6~az=g*OYDZRi|Yw^M-|%t5Uu?JS+(gRQhBR@m_y?m=a|%-= zJj&3xDG*(RBbsJxBkGS95@etYyv$hkq7fr_hzgZlAKj3(X7=KrK?sTMD0?XU18|2i z4Bun89uZ5*LrM+d{opJi&Y;Pc6;?kU{?V%1Vw3Ao*SrYxJ6xB;48wMlbO1oJHVG_U zguhZqv?3r4r@z1p7ckCZoIapP5y@!`% zO*DK*NOIs2l?*3g{esAnSO^f}wg_UljW{xb7)CRx6fQFzGJ4QXGn^#m|0l*(q5bJG z@d_ISm@T%lky7e#6qr*}1ipB^UjqhaI2bjND8WHWEG4*T$!r2^3R#FoumWELYo`#F zC7Pqm`!p+5PEQY&rGCiqfM4pGqWDFH*CE5go0H@}XT~AQDZriP-@8~DX)~>=LUw|% z+6q3>d+k>cIpj7?0(X%%lZ$FBj)iBki)9%xg4rvUEw6HBga->lNli)e6A#tW1V;x2 zViNX=$xdR@0O+XJIS_;;KHkin1`o_j=A;1WDqdxINt6(GbMYmJg5V1V0)NKnDhu(R zU>#$cI81zw0!&Ep1KO5o7#m$CzSfchI`bQvo^RMmfbEZ9Uoqp%aSD@gu86NN2Zc#{ zIwB+U;H<#qbTG}gjQ$IqFHHO!pzkA!F+r{nEW+7(;U0_wowa}m=Gn=P;wNBt4;Nkg z=QR}_aVOkX~z=NbLx3FZ)qMNK-@f44+Vm!O`fF$u4oD8_nt<2Bp`9rh(;l*5-U} zd5&)()rpF*+%gk%G(o8eI*@mq<=Up6ML_`(T{nYW0a{Zd`&vWbb;##2292SoZamFg z?LVmfePH5b4ZBGE%!WY}z!mhV-lan8P~w*`VNqf#r~NAlXDO}&c_aa^M?}|~u5+<0 zF#rkdtW-Y|Se{`FQy6Vyb)ptn23{jX9JGi!pgnO90KcJ#L~aqbe4r4 zDC<|^Jq%f5KSb$igbqX*=PG6q^0E|SFCX)45o zl!T0sWbJFtp2JBeLWz@-`i&|1fY%xp9{O+!X-Jt0#D)NTX{;e|pr$G6OMHv~8E_xU zd%{DoQLPRz#>be2y^dgvH8$wvu5PAg10g=7P` zs0wX{ct3F@FiATN`yi3_7WP6S%S{Lm1C$qbOBmIeqM9}oXNsf9JUVl5-bjj10xDQ) z!h!N-+UZ9QxTVO1ly<~%gYrhwxH-@}7hH!!csj*{6A&Y3^2{6*s73*5 zAO6HPXf_3dK_DDTLm;H17@V9T46aQbqeCEYJstSSn4r@gb4b3(lQ<+7$I;m)6Q@V# zp5lz?*i(#-4#&x;!!fD&leX^ZT%69-N#fF>_+TJ+RJE**CaFV?fc5Vr*b=ppgbrY7V{NRn&nolv5w84ouQV~>)6cc;u$7lBe2G& z=#3IeSh~!!B(>F-%e`a@ZQ(Ru3jwo@c>rCw;zcG9N$&z_fAbJBDkuYyS{Z~u5oI6} zWgw}eFyu5sX^ms}jL1!vh=jTp&!c`Rj7}0DQoMi^Y*V@rK#57oG7t`%9f**!`1iSszaTVFAAT1Z!f0G|=r1G*R$@leAQ zfvXTI1{tvs1a9q@q-nX`)bilchD!=(%(#{Za~H&&N(M7o$QJ!hAkY;Qn@F(>!kAAj z8xsZyBI6SJ88d~B`|ME@lWrlkW(kCNXoik2rGVi9eg>Fa{8S6QMvY8?3MsM5ff||_ zL9N6_C0!^<(ukxn>1Sji+BLHoHs0MT*R)Sl5kw^Y46^(P?nQ79ADCC*$FP*Ko48Md zWfAX(sOEZ_28s#^6H4k?lzMvs3n>&fb8!v|D@k$vvfj+BNt(52!-1AD5BlN~7T7`z zA||OQtSnf5`Z_Acgi@HrB>DA|-Ze&7VqDjNP+n@(azNsmIB3E#jZm42@J<*F3EUF( zOXDnp>4q(}9wccNeH4NoN~z-;^b}JIv$VN)V>)dLV*0S8QSc_ph@8|lkXmE(zOP0L z2KbC_=Hz_5g=4Af>ta&e%7-F~s)qT1FXDzBFl?$QfGIVVfOe-4Pr;=H4nzc4@E{LU z%8x_6W?W3a{bv`G>CCKknj!eE)5DXr0s+A^F()**))Y5uO17amUjIh$`y-Q^5{q;KjZ$K`* zo*GLLCe8?*Akm(}cPAs+eg`J}0d8h|gm{22#YxB~+F=8^1tCFJ6e>cR;VM&$q>D3Q zFrx-bmvm+iOfIxB2Z@vQkI(l7G> z)eb?u2GWNYI2T4nDmq%zD=B^4frATV-i7XQwH|D&M??fAJpn&O+rfEp?4QL8929;S znt=8_OAum*uPFqb`UoO1@hEotB#Y<|11}N|nL&?ndOjUWD1~W<+8Y4B0cpQwM*cKK z*77KaR7X08A?NWZhqhJe91eL0vlV$2)E?2}Ng#yXOjHJ2Qc}$;Npay!3DHM+isFqa z{)7hOAz-*o2jn%rE%tEBzurb(3>+taES(s zZpKT2%Y6Fl8-g4hN8xUh=n=Xv94WO&qAxig#$sO{1>{RdDh$ZCf)s6LT{U5UPRkU- zAo7fFBG&{MsVi1-eTUM=UZJB{s@Ez++-h(sRvDDeYHk!LZeqGozD4oRu)oYP^@Vc>!L&A8QqboDUw=dK*d88(@oU`CK30DU`L@cCPwX9?lnqDt!X6y zX-zA&re#qdv_?0OkBTN05Wv{Yx{*sAQwB{6G9X7tfRdU7x|Bg= z!uBz##Rmt3ia{b}-K@oMWF&Tp!1x%FX@-O|4XnbPG8n;3WGFJyh?8g|i5!~PAks6) z%~;s0kit40oWf%^5I8?1rt!u zp4q@ik^))gHuVzSW{@;X>C-(%C2{6r%xw^aPziCi$W?hDlo*kW&@NH98Obwhyp2&n z22n>6weY$=h;J<9`EDpR+T?^TYwYAFk?AU-Kl~kdga#Lx;cZTpNEu3D=0BLyRDcd= z{vs2n%kDJU%zp$=@6iXd=sjC-9s1~onj(hMMWRgY`8OBG^%FRe>c&a8xjC*Mz=@zK z0_(fu^rC<8o93_ZBvrpMrbcfVI?^G4o)R1^$FO?QgQ2TVK)mQpj85Q2Z*&T!FO*`) z>C4VSYbF1{wP0p)howmR>w^Q)iS)yykX)b-345Ygda$N3kPGlOL@B+KfgnXxqlb>b z(`IM=D%lG;ViIL&OJECG0wr{MgAkYAci28&kAd6JjX*!#l}cQ1VMcH;p7{gXj=p#n zLyyj69Aah;8A{WK45iwjBr>6Wfz3$?oiS+dbPYq36(MwB9?TOQ+F4|#$k0ii(p@ zDXf7%Mq(nRgb2a1H$0}Fq=}j$)&zIyXKD;g-`O-UeTUpMn=Xgezz!g+-k9l!3_xGd zANZ9JSGdb@UX&`t)&g%j#KeXVqu{fS(O>2oqV`~GCy$<2Jh*_#BzD37##Ix}rwfk3 z(jJ4^y9k?#uD}8FNOOqo6H!QyAv2TukzhTjXc~2atSQuKJ(!R}nK407P=8o^#67-o z5J5gy@B=IJ7w=XqM@S7k68kI4hDI8iY%&Qk-22gxjo+_;UoJIi`C@ySxO^^MXSI{%tZqxI9WLTQd2NX~M7c(k&e>244r@A(FT$!P zOV#Wy8s*H(q)B6zf%t*F> z+piW{V=-}bwK&tL(GghrL?0+JCPsz=S|^SVbs`c*q3EX-WgCMNqVbrwsArQq%(y#U_F4v5bsa zPjo1l+WZ zV?gNKJU3=E1uni4nTpc)l(YQL!>HK0QDJq1gDW>wN?Q7CmdHbz8+m$Mj`AE!Ypf1e*$PAs&1S_8HRBv}whCi?z01b9VMESYVL8R0olU$%H1% zy1)wnWN2jgfqk@@leYZ~097&xpsoZ9FXHz3CWo#x8-A&kgXZW$v*DO@jxoygb!Nje=KTnIeNi5s z281Lr_AR2B1xuO0eSDaQXmmg z^hQ_k=}zxddaFz1kIOvc>Sl>jQYD~RX-3p(Eu!gLTOew>W~2oqX^N(yGE1a{(zSb* z*ddUXuH({VB@o7mOS%z=#_^x;0vka?XVy!M(4jNy6kp`{Gs$MbjorpLDbiPBL3KkF zy5EZnxNQ*Vo4GoJWOXq;S9qBiPb$^irX5eBF`A?CBsHSR98aPml+Abm@p9BEk8a#z z|J6fY0Z5OGD>5jl&j0C^Kh3VAcu|1>6V zVLq3)vMMxt8>7~T^cllK5WZBAo@(iH$Wvljy7&-ZYvh$6FbsRGv(AdQ@AiHio@ zpNdzSETZ==$i*~A4-kw5QVK5$Sb{e&$OmcG9*V$tXTZaF6@y$#)A&dP#S2g#WqzrA zjArvM#0+v7JTEGvwg`OvVc!5=w%k{(_8({Iu zjg0nVhVh&+J3_6E9Uo;U$ZJEzagZ)#XwW?-$bDAs4HAt#5$MXW8^7$ zfHny72hHj~hLa?J(&YFVU2*w~9{sQ2|8n^o;+C9BJ5xE0`+KgI*FpE#@_MpUYXnS+A2a6CnQD-7Y7ybXqaOx_N27Ym9* z)Xd?u%I@Hpz_}b$P0i!9;O_*#`wQTeyNhF*6p)C?`5>RXoBIwZjD20id`sYokGSqZ z4sLje8haS;q>xLg6&!jI9Uei9$wxVHz+<|-zfjZ5fGd;BF%T{v2hmboK7j#Ra)loL zNb?NgmC~Wb){R1{;SwAmrK^kDXx_3=q8n z(Uuc6mBKCuB1D1_!luxz-Z495#!ND=_Lu}O1?eHY4B8qhW}~*Ta$f0S%|S}LvZQ~6-^GlJuDhCX z9f3ma$rgx)l*A2>%y62KrZ-uK44_MT02*(z%_3vOpp7YZ!AqgJsNVvC8OeHeG~}JW zHm(PUawH+}{+LwyEsRhq`X!8XLq4PcCKg8*AOl*)g;JaXC0!qPg5fPQWT~skBGUB0 zaV`-;983XnkRP4`DL?r?r-0#Mm`;aze*xAFUbYMW&mouOZCsMaSZL>>orc}W1Dfil z7qmt1-I1Fa28y>^#qekX72FKQuY-G3@>Q(_USnBK_}59iZvh1S2TN0KMU=u}0gIBr9cS&pQB=xx~s*JZ|;2|0FTCw*@ zNxmHA0RIp0>Up`F`JVicl-^&N-%0+B`9*RMUOFN_Vt!-!chXJ&AhooYVJbgn{s{R` zpeg^w;HZ?j1v!a6YU2j4Bkj&$Ybd$MtIwxCsKiFE@etT#+WtUI}F9pm5kd2^VEjcbVPS4{xCsP&|iw`XckXO&gTNE1t2I=;{Zsf|~dpv|hOZU6}X3 z|Ir&(Ib=8OMKjB;b1v>XZYbMSL;&+ zxQmrucWLi)B!Fm-NVL&3n)U6?yEg$ZEQhM8^FG^cO{F-#-F-X`CJ$Mbcy@(|1e_Do z(S?>l@VjblqeU9F9~SPor@$RJYnp`TS8(7|y1c45dR-Ro#)WS`!m$Pf6I}K-oZPZn z)-YX#ZdFLwTKcp>(t?fY*E2z+Qw$P|0t;oaQIq%yg)nIwBg?QB&ZNsKG2j5bOaYh^ zA8N8FhK0&d537=NJ*0{Qp(4Y6&*kziDL!VT$3n;@PI_sK>bKVLMZwmQ3~~q z)lY{HH1GIsuYT_pggIJgzN?kayrt&(H&Q^iMe%&UITQ|L7LA&;Rma$UOZ{FNS!k|> zOYzzAd}hYu)g`laxiIie#;q>!oza9anwB)a0qyfcli zX@y5QrQuNyt_*3`0v}byh_w@YH6}lML=QaG1(bKhtJ}m1NY(&F$_O9#(vHIllK2)1 zsgE{!XR&Y9(Jy)5hu^H}rY5}XO{PT6%idfH@tyK!s@0qL5YAs-@vP`WH=WeqHhb;e zM>f!f8a<(^=vD8^bSpbw_0EqHb(4@=^s$4z3sveh^ZA@~tE%Vgrkeg5&Wc~X=IS4> zn{Qm<6FPt4eEkNsZ=0vT6AnOS@W6KOEd3=PY9at)pXyY)deG|~?+pum2YK n$6 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 Module { /// /// Returns the new SlotStake value. fn select_validators() -> BalanceOf { - let validator_count = Self::validator_count() as usize; - let min_validator_count = Self::minimum_validator_count().max(1) as usize; - let validators = || >::enumerate(); - let nominators = || >::enumerate(); let maybe_elected_candidates = elect::( - validator_count, - min_validator_count, - validators, - nominators, + Self::validator_count() as usize, + Self::minimum_validator_count().max(1) as usize, + >::enumerate(), + >::enumerate(), Self::slashable_balance_of, ElectionConfig::> { equalize: false, diff --git a/srml/staking/src/phragmen.rs b/srml/staking/src/phragmen.rs index 702954fb0fe87..1b5d493a4628d 100644 --- a/srml/staking/src/phragmen.rs +++ b/srml/staking/src/phragmen.rs @@ -92,33 +92,26 @@ pub struct Edge { /// /// Returns an Option of elected candidates, if election is performed. /// Returns None if not enough candidates exist. -pub fn elect( +pub fn elect( validator_count: usize, minimum_validator_count: usize, - get_validators: FV, - get_nominators: FN, + validator_iter: FV, + nominator_iter: FN, stash_of: FS, config: ElectionConfig>, ) -> Option>>> where - FV: Fn() -> Box>) - >>, - FN: Fn() -> Box) - >>, + FV: Iterator>)>, + FN: Iterator)>, for <'r> FS: Fn(&'r T::AccountId) -> BalanceOf, { let into_currency = |b: BalanceOf| , u64>>::convert(b) as ExtendedBalance; let into_votes = |b: ExtendedBalance| >>::convert(b); let mut elected_candidates; - let get_validators = get_validators(); - let get_nominators = get_nominators(); - // 1- Pre-process candidates and place them in a container, optimisation and add phantom votes. // Candidates who have 0 stake => have no votes or all null-votes. Kick them out not. - let mut nominators: Vec> = Vec::with_capacity(get_validators.size_hint().0 + get_nominators.size_hint().0); - let mut candidates = get_validators.map(|(who, _)| { + let mut nominators: Vec> = Vec::with_capacity(validator_iter.size_hint().0 + nominator_iter.size_hint().0); + let mut candidates = validator_iter.map(|(who, _)| { let stash_balance = stash_of(&who); Candidate { who, @@ -148,7 +141,7 @@ pub fn elect( // 2- Collect the nominators with the associated votes. // Also collect approval stake along the way. - nominators.extend(get_nominators.map(|(who, nominees)| { + nominators.extend(nominator_iter.map(|(who, nominees)| { let nominator_stake = stash_of(&who); let mut edges: Vec> = Vec::with_capacity(nominees.len()); for n in &nominees { diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 179d2c13e3528..4519b37bf6dff 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -1491,16 +1491,11 @@ fn phragmen_election_works_with_post_processing() { assert_ok!(Staking::bond(Origin::signed(3), 4, 1000, RewardDestination::default())); assert_ok!(Staking::nominate(Origin::signed(4), vec![11, 31])); - let validator_count = 2; - let validators = || >::enumerate(); - let nominators = || >::enumerate(); - let min_validator_count = Staking::minimum_validator_count() as usize; - let winners = phragmen::elect::( - validator_count, - min_validator_count, - validators, - nominators, + 2, + Staking::minimum_validator_count() as usize, + >::enumerate(), + >::enumerate(), Staking::slashable_balance_of, ElectionConfig::> { equalize: true,