diff --git a/.gitignore b/.gitignore index d9c0974..f96bd5d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,10 @@ # will have compiled files and executables **/target/ -# Cargo lock in subs -runtime/**/Cargo.lock - # These are backup files generated by rustfmt **/*.rs.bk # JetBrains IDEs .idea + +substrate-runtime-joystream/ diff --git a/Cargo.lock b/Cargo.lock index d7f8f17..2273534 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ name = "MacTypes-sys" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -13,7 +13,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "stream-cipher 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -45,16 +45,24 @@ dependencies = [ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "aho-corasick" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "aio-limited" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -63,7 +71,7 @@ name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -104,7 +112,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -112,9 +120,9 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -129,10 +137,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -141,7 +149,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -182,22 +190,23 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.43.2" +version = "0.47.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cexpr 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "which 1.0.5 (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)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -205,6 +214,11 @@ name = "bitflags" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "bitmask" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "blake2" version = "0.8.0" @@ -288,7 +302,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -305,15 +319,15 @@ dependencies = [ [[package]] name = "cexpr" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "nom 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cfg-if" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -332,7 +346,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -377,7 +391,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -385,7 +399,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -393,12 +407,12 @@ name = "crossbeam" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -430,15 +444,24 @@ dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-deque" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-epoch" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -450,19 +473,27 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-queue" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-utils" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -470,8 +501,8 @@ name = "crossbeam-utils" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -504,7 +535,7 @@ dependencies = [ [[package]] name = "ctr" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -517,7 +548,7 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -590,12 +621,12 @@ dependencies = [ [[package]] name = "either" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "elastic-array" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -603,19 +634,19 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "environmental" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -628,11 +659,11 @@ dependencies = [ [[package]] name = "exit-future" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -651,7 +682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -665,7 +696,20 @@ name = "fdlimit" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "finality-grandpa" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -675,7 +719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -701,11 +745,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "fork-tree" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -713,10 +756,10 @@ name = "fs-swap" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -740,7 +783,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -748,7 +791,7 @@ name = "futures-cpupool" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -788,45 +831,59 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "h2" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" 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)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "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)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "hash-db" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "hash256-std-hasher" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "hashbrown" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "hashmap_core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "heapsize" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -844,16 +901,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "hex-literal" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal-impl 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "hex-literal-impl" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -893,7 +950,7 @@ name = "http" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -931,26 +988,27 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.24" +version = "0.12.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -970,7 +1028,7 @@ name = "impl-codec" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -979,7 +1037,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1002,7 +1060,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1013,64 +1071,66 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "joystream-node" -version = "0.10.1" +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)", - "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.3 (registry+https://github.com/rust-lang/crates.io-index)", - "joystream-node-runtime 1.0.1 (git+https://github.com/joystream/substrate-runtime-joystream.git?tag=v3.4.0)", + "exit-future 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "joystream-node-runtime 4.1.0", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "node-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-basic-authorship 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-cli 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-service 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-transaction-pool 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "trie-root 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-basic-authorship 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-cli 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-aura 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-finality-grandpa 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-service 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-transaction-pool 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "trie-root 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "vergen 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "joystream-node-runtime" -version = "1.0.1" -source = "git+https://github.com/joystream/substrate-runtime-joystream.git?tag=v3.4.0#d1f3abe5d6c4603892a6d798d54e7e8705c561b4" +version = "4.1.0" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-aura 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-balances 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-executive 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-fees 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-indices 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-session 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-staking 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-sudo 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-timestamp 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-aura 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-balances 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-consensus 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-executive 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-finality-tracker 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-grandpa 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-indices 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-session 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-staking 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-sudo 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-timestamp 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-authorities 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-offchain-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] @@ -1078,11 +1138,11 @@ name = "jsonrpc-core" version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (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)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1092,7 +1152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1100,12 +1160,12 @@ name = "jsonrpc-http-server" version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-server-utils 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1116,7 +1176,7 @@ dependencies = [ "jsonrpc-core 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (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.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1124,15 +1184,15 @@ name = "jsonrpc-server-utils" version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1168,7 +1228,7 @@ name = "kvdb" version = "0.1.0" source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ - "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", ] @@ -1177,14 +1237,14 @@ name = "kvdb-rocksdb" version = "0.1.4" source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ - "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fs-swap 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1195,7 +1255,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lazy_static" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1205,7 +1265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.49" +version = "0.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1214,128 +1274,136 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-dns 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-floodsub 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-identify 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-kad 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-mdns 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-mplex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-noise 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-ping 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-plaintext 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-ratelimit 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-secio 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-tcp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-uds 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-websocket 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-yamux 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core-derive 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-dns 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-floodsub 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-identify 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-kad 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-mdns 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-mplex 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-noise 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-ping 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-plaintext 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-ratelimit 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-secio 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-tcp 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-uds 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-websocket 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-yamux 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multihash 0.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)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-core" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "asn1_der 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "ed25519-dalek 1.0.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", - "multistream-select 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "multistream-select 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multihash 0.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)", - "protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "rw-stream-sink 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "secp256k1 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "zeroize 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-core-derive" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-dns" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-floodsub" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "cuckoofilter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-identify" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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-multiaddr 0.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)", - "protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1343,27 +1411,28 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-identify 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-ping 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-identify 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-ping 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-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multihash 0.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)", - "protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1371,20 +1440,20 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1392,125 +1461,127 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-noise" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "curve25519-dalek 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "snow 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", + "snow 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "x25519-dalek 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "zeroize 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-ping" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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-multiaddr 0.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)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-plaintext" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-ratelimit" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aio-limited 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-secio" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ed25519-dalek 1.0.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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)", - "protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rw-stream-sink 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "secp256k1 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-tcp" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-uds" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1518,41 +1589,40 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "websocket 0.22.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rw-stream-sink 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "websocket 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-yamux" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 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)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "yamux 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "yamux 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "librocksdb-sys" -version = "5.14.3" +version = "5.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bindgen 0.43.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.47.3 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1570,12 +1640,7 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "linked-hash-map" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1583,7 +1648,7 @@ name = "linked_hash_set" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1608,22 +1673,17 @@ name = "log" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "lru-cache" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "make-cmd" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "matches" version = "0.1.8" @@ -1641,10 +1701,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memory-db" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1682,7 +1743,7 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1707,7 +1768,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1724,15 +1785,15 @@ dependencies = [ [[package]] name = "multistream-select" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1749,13 +1810,13 @@ name = "native-tls" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.18 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.20 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.41 (registry+https://github.com/rust-lang/crates.io-index)", - "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.43 (registry+https://github.com/rust-lang/crates.io-index)", + "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1766,9 +1827,9 @@ name = "net2" version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1778,81 +1839,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "node-executor" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "node-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "node-runtime 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "trie-root 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "node-primitives" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "node-runtime" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-aura 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-balances 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-contract 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-council 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-democracy 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-executive 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-fees 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-grandpa 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-indices 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-session 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-staking 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-sudo 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-timestamp 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-treasury 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-upgrade-key 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-keyring 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - [[package]] name = "nodrop" version = "0.1.13" @@ -1865,7 +1856,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "nom" -version = "4.2.0" +version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1890,7 +1881,7 @@ name = "num_cpus" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1906,6 +1897,9 @@ dependencies = [ name = "once_cell" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "opaque-debug" @@ -1914,15 +1908,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl" -version = "0.10.18" +version = "0.10.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.41 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1932,12 +1926,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl-sys" -version = "0.9.41" +version = "0.9.43" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1964,21 +1959,23 @@ source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7 [[package]] name = "parity-codec" -version = "3.0.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "parity-codec-derive" -version = "3.0.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2002,7 +1999,7 @@ dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2033,7 +2030,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" 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)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2076,10 +2073,10 @@ name = "parking_lot_core" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2087,11 +2084,11 @@ name = "parking_lot_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2099,31 +2096,41 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "paste" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "paste-impl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "paste-impl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-hack 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "paste-impl" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-hack 0.5.4 (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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pbkdf2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2175,7 +2182,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2183,14 +2190,6 @@ name = "proc-macro-hack-impl" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "proc-macro2" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "proc-macro2" version = "0.4.27" @@ -2201,19 +2200,9 @@ dependencies = [ [[package]] name = "protobuf" -version = "2.3.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "pwasm-utils" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "quick-error" version = "0.1.4" @@ -2224,14 +2213,6 @@ name = "quick-error" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "quote" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "quote" version = "0.6.11" @@ -2245,7 +2226,7 @@ name = "rand" version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2255,10 +2236,10 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2268,9 +2249,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2279,16 +2260,16 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2334,22 +2315,22 @@ name = "rand_jitter" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_os" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2375,7 +2356,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2385,8 +2366,8 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2400,7 +2381,7 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.51" +version = "0.1.52" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2408,24 +2389,24 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "1.1.0" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2436,7 +2417,7 @@ name = "remove_dir_all" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2445,11 +2426,11 @@ version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2457,8 +2438,8 @@ name = "rocksdb" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - "librocksdb-sys 5.14.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", + "librocksdb-sys 5.17.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2467,7 +2448,7 @@ version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2498,12 +2479,12 @@ dependencies = [ [[package]] name = "rw-stream-sink" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2526,16 +2507,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "schannel" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "schnorrkel" -version = "0.0.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2545,6 +2526,7 @@ dependencies = [ "merlin 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "sha3 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2570,7 +2552,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2581,7 +2563,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2599,27 +2581,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2697,8 +2679,8 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2708,7 +2690,7 @@ version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2719,7 +2701,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "snow" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2731,6 +2713,7 @@ dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "static_slice 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2740,448 +2723,339 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sr-api-macros" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", "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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-io" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "environmental 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-trie 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-primitives" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "sr-sandbox" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "parity-codec 3.0.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "sr-std" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sr-version" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-aura" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-staking 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-timestamp 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-session 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-staking 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-timestamp 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-balances" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-keyring 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-consensus" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "srml-contract" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-sandbox 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-balances 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-fees 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-timestamp 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "srml-council" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-democracy 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "srml-democracy" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-executive" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] -name = "srml-fees" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +name = "srml-finality-tracker" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-grandpa" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-session 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-finality-grandpa-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-consensus 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-finality-tracker 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-session 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-finality-grandpa-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-indices" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-keyring 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-metadata" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-session" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-timestamp 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-consensus 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-timestamp 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-staking" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-session 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-keyring 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-consensus 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-session 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-sudo" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support-procedural 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support-procedural 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-support" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-metadata 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support-procedural 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "paste 0.1.5 (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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-metadata 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support-procedural 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-support-procedural" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support-procedural-tools 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-api-macros 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support-procedural-tools 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "srml-support-procedural-tools-derive 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-support-procedural-tools-derive" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "srml-system" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "srml-timestamp" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "srml-treasury" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" -dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-balances 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", -] - -[[package]] -name = "srml-upgrade-key" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] @@ -3201,7 +3075,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "stdweb" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3218,9 +3092,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (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)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3231,11 +3105,11 @@ dependencies = [ "base-x 0.2.4 (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)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (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)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3263,478 +3137,604 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "strum" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "strum_macros" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "heck 0.3.1 (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)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-basic-authorship" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-transaction-pool 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-transaction-pool 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", +] + +[[package]] +name = "substrate-bip39" +version = "0.2.1" +source = "git+https://github.com/paritytech/substrate-bip39#44307fda4ea17fe97aeb93af317fbc8f6ed34193" +dependencies = [ + "hmac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "schnorrkel 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-cli" -version = "0.3.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", + "exit-future 0.1.4 (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)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", "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)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-panic-handler 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-service 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-telemetry 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sysinfo 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-panic-handler 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-service 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sysinfo 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-client" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-keyring 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-telemetry 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-api-macros 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-trie 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-client-db" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-db 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-db 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-trie 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-consensus-aura" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", + "futures 0.1.26 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-aura 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura-slots 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-aura 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-consensus 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-aura-slots 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-authorities 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-consensus-aura-primitives" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-consensus-aura-slots" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", + "futures 0.1.26 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "substrate-consensus-authorities" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" +dependencies = [ + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-consensus-common" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p 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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-executor" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.2.2 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-panic-handler 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-serializer 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-panic-handler 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-serializer 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-trie 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", "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)", + "wasmi 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "substrate-finality-grandpa" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" +dependencies = [ + "finality-grandpa 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fork-tree 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "futures 0.1.26 (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.4.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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "srml-finality-tracker 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-finality-grandpa-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-service 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-finality-grandpa-primitives" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-inherents" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-keyring" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "hex-literal 0.1.4 (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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-keystore" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", "parity-crypto 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "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)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-network" version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "fork-tree 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "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)", + "fork-tree 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "linked_hash_set 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-network-libp2p 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-network-libp2p 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-peerset 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-network-libp2p" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p 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)", "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)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (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)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (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)", + "substrate-peerset 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "substrate-panic-handler" +name = "substrate-offchain" version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" +dependencies = [ + "futures 0.1.26 (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.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-offchain-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-transaction-pool 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "substrate-offchain-primitives" +version = "0.1.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" +dependencies = [ + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", +] + +[[package]] +name = "substrate-panic-handler" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", ] +[[package]] +name = "substrate-peerset" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" +dependencies = [ + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p 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)", + "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)", + "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)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "substrate-primitives" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "hash256-std-hasher 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hash256-std-hasher 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "schnorrkel 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "schnorrkel 0.1.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)", "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-bip39 0.2.1 (git+https://github.com/paritytech/substrate-bip39)", + "tiny-bip39 0.6.1 (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)", - "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-rpc" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-derive 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-pubsub 10.1.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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-transaction-pool 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "tokio 0.1.15 (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)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-transaction-pool 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-rpc-servers" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "jsonrpc-http-server 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-pubsub 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-ws-server 10.1.0 (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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-rpc 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-rpc 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-serializer" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", ] [[package]] name = "substrate-service" -version = "0.3.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (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)", + "serde_json 1.0.39 (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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client-db 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-keystore 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-rpc-servers 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-telemetry 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-transaction-pool 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client-db 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-keystore 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-offchain 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-rpc-servers 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-transaction-pool 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", "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)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-state-db" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-state-machine" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.4 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "trie-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "trie-root 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-panic-handler 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-trie 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "trie-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "trie-root 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "substrate-telemetry" -version = "0.3.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", "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)", + "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)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3744,44 +3744,45 @@ dependencies = [ [[package]] name = "substrate-transaction-graph" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (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.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "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 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-transaction-pool" -version = "0.1.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" 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)", + "futures 0.1.26 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.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 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", - "substrate-transaction-graph 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)", + "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", + "substrate-transaction-graph 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)", ] [[package]] name = "substrate-trie" -version = "0.4.0" -source = "git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d#df5e65927780b323482e2e8b5031822f423a032d" +version = "1.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991#89bbb7b6d0e076f0eda736b330f5f792aa2e2991" dependencies = [ - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memory-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "trie-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "trie-root 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memory-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "trie-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "trie-root 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3796,7 +3797,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "syn" -version = "0.15.26" +version = "0.15.30" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3811,19 +3812,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 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)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sysinfo" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3841,12 +3842,12 @@ name = "tempfile" version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3862,8 +3863,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3880,7 +3881,7 @@ name = "thread_local" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3888,9 +3889,23 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tiny-bip39" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "hmac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3906,31 +3921,32 @@ name = "tk-listen" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (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)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.15" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-sync 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3940,18 +3956,18 @@ name = "tokio-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-current-thread" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3959,64 +3975,66 @@ name = "tokio-dns-unofficial" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-executor" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-fs" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-io" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-reactor" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-sync" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4024,29 +4042,28 @@ name = "tokio-tcp" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-threadpool" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4055,9 +4072,9 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4065,9 +4082,17 @@ name = "tokio-tls" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-trace-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4075,13 +4100,13 @@ name = "tokio-udp" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4089,16 +4114,16 @@ name = "tokio-uds" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4106,7 +4131,7 @@ name = "toml" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4116,21 +4141,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "trie-db" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "trie-root" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4192,7 +4218,7 @@ dependencies = [ [[package]] name = "unicase" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4234,7 +4260,7 @@ name = "unsigned-varint" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4293,36 +4319,35 @@ name = "want" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasmi" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "websocket" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4330,10 +4355,11 @@ dependencies = [ [[package]] name = "which" -version = "1.0.5" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4343,7 +4369,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4365,7 +4391,7 @@ name = "winapi-util" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4378,7 +4404,7 @@ name = "wincolor" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4388,12 +4414,12 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" 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)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.18 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.20 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4409,6 +4435,16 @@ dependencies = [ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "x25519-dalek" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "curve25519-dalek 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "xdg" version = "2.2.0" @@ -4416,26 +4452,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "yamux" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "zeroize" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [metadata] "checksum MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eaf9f0d0b1cc33a4d2aee14fb4b2eac03462ef4db29c8ac4057327d8a71ad86f" "checksum aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee" "checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" "checksum aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" "checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" +"checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" "checksum aio-limited 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f10b352bc3fc08ae24dc5d2d3ddcac153678533986122dc283d747b12071000" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e73a24bad9bd6a94d6395382a6c69fe071708ae4409f763c5475e14ee896313d" @@ -4452,8 +4494,9 @@ dependencies = [ "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "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 bindgen 0.47.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df683a55b54b41d5ea8ebfaebb5aa7e6b84e3f3006a78f010dadc9ca88469260" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" +"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" @@ -4465,10 +4508,10 @@ dependencies = [ "checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" "checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" -"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" +"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" "checksum cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "389803e36973d242e7fecb092b2de44a3d35ac62524b3b9339e51d577d668e02" -"checksum cexpr 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "644d693ecfa91955ed32dcc7eda4914e1be97a641fb6f0645a37348e20b230da" -"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" +"checksum cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7fa24eb00d5ffab90eaeaf1092ac85c04c64aaf358ea6f84505b8116d24c6af" +"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" "checksum clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ef0c1bcf2e99c649104bd7a7012d8f8802684400e03db0ec0af48583c6fa0e4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" @@ -4481,15 +4524,17 @@ dependencies = [ "checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" +"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" +"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" "checksum crypto-mac 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "779015233ac67d65098614aec748ac1c756ab6677fa2e14cf8b37c08dfed1198" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -"checksum ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "044f882973b245404e90c90e7e42e8ee8d7a64edfd7adf83d684fb97e8e2c1b6" +"checksum ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736" "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" "checksum cuckoofilter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd43f7cfaffe0a386636a10baea2ee05cc50df3b77bea4a456c9572a939bf1f" "checksum curve25519-dalek 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1f8a6fc0376eb52dc18af94915cc04dfdf8353746c0e8c550ae683a0815e5c1" @@ -4499,40 +4544,43 @@ dependencies = [ "checksum discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" "checksum dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" "checksum ed25519-dalek 1.0.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)" = "81956bcf7ef761fb4e1d88de3fa181358a0d26cbcb9755b587a08f9119824b86" -"checksum either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c67353c641dc847124ea1902d69bd753dee9bb3beff9aa3662ecf86c971d1fac" -"checksum elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88d4851b005ef16de812ea9acdb7bece2f0a40dd86c07b85631d7dafa54537bb" -"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" -"checksum environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db746025e3ea695bfa0ae744dbacd5fcfc8db51b9760cf8bd0ab69708bb93c49" +"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" +"checksum elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "073be79b6538296faf81c631872676600616073817dd9a440c477ad09b408983" +"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" +"checksum environmental 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c7464757b80de8930c91c9afe77ddce501826bf9d134a87db2c67d9dc177e2c" "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" -"checksum exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "87559b08e99a81a92bbb867d237543e43495857749f688e0773390a20d56c61c" +"checksum exit-future 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d8013f441e38e31c670e7f34ec8f1d5d3a2bd9d303c1ff83976ca886005e8f48" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" "checksum fdlimit 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1ee15a7050e5580b3712877157068ea713b245b080ff302ae2ca973cfcd9baa" +"checksum finality-grandpa 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d415e902db2b87bd5a7df7a2b2de97a4566727a23b95ff39e1bfec25a66d4d1c" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -"checksum fork-tree 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" +"checksum fork-tree 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" "checksum fs-swap 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "921d332c89b3b61a826de38c61ee5b6e02c56806cade1b0e5d81bd71f57a71bb" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" +"checksum futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "62941eff9507c8177d448bd83a44d9b9760856e184081d8cd79ba9f03dd24981" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592" "checksum generic-array 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fceb69994e330afed50c93524be68c42fa898c2d9fd4ee8da03bd7363acd26f2" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4743617a7464bbda3c8aec8558ff2f9429047e025771037df561d383337ff865" -"checksum h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ddb2b25a33e231484694267af28fec74ac63b5ccf51ee2065a5e313b834d836e" -"checksum hash-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1b03501f6e1a2a97f1618879aba3156f14ca2847faa530c4e28859638bd11483" -"checksum hash256-std-hasher 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5c13dbac3cc50684760f54af18545c9e80fb75e93a3e586d71ebdc13138f6a4" +"checksum h2 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "910a5e7be6283a9c91b3982fa5188368c8719cce2a3cf3b86048673bf9d9c36b" +"checksum hash-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ba7fb417e5c470acdd61068c79767d0e65962e70836cf6c9dfd2409f06345ce0" +"checksum hash256-std-hasher 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f8b2027c19ec91eb304999abae7307d225cf93be42af53b0039f76e98ed5af86" +"checksum hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da" +"checksum hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8e04cb7a5051270ef3fa79f8c7604d581ecfa73d520e74f554e45541c4b5881a" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" -"checksum hex-literal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "27455ce8b4a6666c87220e4b59c9a83995476bdadc10197905e61dbe906e36fa" -"checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" +"checksum hex-literal 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ddc2928beef125e519d69ae1baa8c37ea2e0d3848545217f6db0179c5eb1d639" +"checksum hex-literal-impl 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "520870c3213943eb8d7803e80180d12a6c7ceb4ae74602544529d1643dc4ddda" "checksum hmac 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7a13f4163aa0c5ca1be584aace0e2212b2e41be5478218d4f657f5f778b2ae2a" "checksum hmac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f127a908633569f208325f86f71255d3363c79721d7f9fe31cd5569908819771" "checksum hmac-drbg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe727d41d2eec0a6574d887914347e5ff96a3b87177817e2a9820c5c87fecc2" @@ -4540,7 +4588,7 @@ dependencies = [ "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" "checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" -"checksum hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)" = "fdfa9b401ef6c4229745bb6e9b2529192d07b920eed624cdee2a82348cd550af" +"checksum hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" "checksum impl-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2050d823639fbeae26b2b5ba09aca8907793117324858070ade0673c49f793b" "checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" @@ -4549,7 +4597,6 @@ dependencies = [ "checksum interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "141340095b15ed7491bd3d4ced9d20cebfb826174b6bb03386381f62b01e3d77" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" -"checksum joystream-node-runtime 1.0.1 (git+https://github.com/joystream/substrate-runtime-joystream.git?tag=v3.4.0)" = "" "checksum jsonrpc-core 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dc15eef5f8b6bef5ac5f7440a957ff95d036e2f98706947741bfc93d1976db4c" "checksum jsonrpc-derive 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c2dae61ca8a3b047fb11309b00661bc56837085bd07e46f907b9c562c0b03e68" "checksum jsonrpc-http-server 10.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11d2a00824306155b8ef57fe957f31b8cd8ad24262f15cf911d84dcf9a3f206d" @@ -4561,42 +4608,40 @@ dependencies = [ "checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" +"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e" +"checksum libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)" = "bedcc7a809076656486ffe045abeeac163da1b558e963a31e29fbfbeba916917" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" -"checksum libp2p 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a018a1334df0db75852ebbb227f0235a998fb51446bf33fbd46c967d6ba21d9e" -"checksum libp2p-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c8dc95c7fda9de223bc195b637290918e8decb18e63fd3d03005f84b8ce380b" -"checksum libp2p-core-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5e9ff3bb639d0be41e1aff9d0d28715e54474e4d15e43aa4865bdec44867d8d3" -"checksum libp2p-dns 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63d310aa56671539a2bce6124cf4326482278b0d0b841c3ba1514e44d8597096" -"checksum libp2p-floodsub 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8256d778f0dc087be409d8cbd081a11bc41ea27ddcd4862814e50e8cfa9c6df0" -"checksum libp2p-identify 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8883b6c80b113925360c2c7e1cb987fc14f5c01efc36db1f04d50cf569486be2" -"checksum libp2p-kad 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0691fcca7648369798c6466c61139d31dbb7e2afad311e44fcc4e220ce1e4d78" -"checksum libp2p-mdns 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63289f296e39752180d8a45e024cc38d1028a6db41deab3943ff2ccb9d1224cd" -"checksum libp2p-mplex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "791e375a6a230568f0d8f56f6236403de8e4bf4bd870c3c5f605fd1778da70b2" -"checksum libp2p-noise 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "70d28b0ca9eb9818d45e037b4a8a0915553c5c1f8d878d8d6170f60451ad37d2" -"checksum libp2p-ping 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81d40e54b11bfbdb7eb2b19a9c7bfe90af8abae0a2b0b3840b26b50151476f45" -"checksum libp2p-plaintext 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4383404cba7e4483e0b7d78b3ac5e66f8b024233a5095df9da65d5a1e975d692" -"checksum libp2p-ratelimit 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bad4fe925d50cc886608ab3b3a7a962b5064ecc49db8b66fd063a950d469c757" -"checksum libp2p-secio 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f9a7641a314d54ad7797f0445685818edb4d3c2f21690cea900f12ea73501b" -"checksum libp2p-tcp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4625bedbb083d676903a8ede4c5c42f9bf7bd5dee788f3cba29d8e01b785d253" -"checksum libp2p-uds 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac5f5d900e381b02ebea2f0621555a2f25a7735772355291aeb70fd9e0da3692" -"checksum libp2p-websocket 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "96b6dfdd776a248d7494aeaf22f149b4d5f6784146546bc34f7b094c7162e141" -"checksum libp2p-yamux 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5a6197ae647c963f5a711c6fb00ba07b9a2812df26f6284870221f654fe9313" -"checksum librocksdb-sys 5.14.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b9024327233e7fac7982440f73301c00046d438c5b1011e8f4e394226ce19007" +"checksum libp2p 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5b9cd37b1ca54fa2fd0bbf0486adf2f55f8994f2be9410b65265050b24709b2" +"checksum libp2p-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bf9c56e6f04cb649fdeb806e963d2da223e3ed17748d9e924fdb836c09f76307" +"checksum libp2p-core-derive 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "debea88a3d5de9fdaf7082bd6d238f2c4c6a0420f14bdf9e1c1083b3e7c69286" +"checksum libp2p-dns 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350d0018af3668d954f61ce7311e7d64ab7c40f19a8eb895e4750efe24c3455f" +"checksum libp2p-floodsub 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfbcf36cc58ad5d0252d8ebe9c1a87190693fe2cdbe40fb01d8046779f9a75ad" +"checksum libp2p-identify 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "82e98435973e958d7dea3f5074d7fca53d0dfce2e1ac6924119a21c2991fe443" +"checksum libp2p-kad 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92bb0153418eaf0ea549008d1e22748a956c9c36af9374fbe7189d44607c14be" +"checksum libp2p-mdns 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dc915d0cde68a05d26a0dcb125eddce7dd2a425e97c5172ac300c1ee8716f55a" +"checksum libp2p-mplex 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "355bb370dd12809792dc020638b280e7aaf8625318018abd311c51affd0a612d" +"checksum libp2p-noise 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e86291401f4a83f9fa81c03f8a7ccf0b03ce6aaa40cba058a7ec1026a65a6fe4" +"checksum libp2p-ping 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3277f1f7eaadf5cdde6a76fb4afbf24e0eda6e2b04f288f526c6fa2e4293a6e" +"checksum libp2p-plaintext 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c4842a7ab54c12459b58b9e59cbeb03e3e1fd393fef48079472856f934352772" +"checksum libp2p-ratelimit 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "32ba52ee76aaa94af533526ce5a22fbfcc69a560174fccee82f4cdb557411d33" +"checksum libp2p-secio 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00f416e1e3d0214bd7df2be2b6be8ef61771d44292b973c9e02bfbbd7f62fe46" +"checksum libp2p-tcp 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "af47af9997d69fc70aa13e6e7cd0d766614ebe74005e69e763221a64d9a0a5ef" +"checksum libp2p-uds 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa72d81501aad6998d3b1b964f68f438ef99c3aaf54d921e144e0477fa87568" +"checksum libp2p-websocket 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "647bd8862afe6e912eb34b7614f731c0ff89e8777b57d9f2f5f0fd593ecc8d9a" +"checksum libp2p-yamux 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0dbb8d08cb536a964727e77b868a026c6d92993f08e387d49163565575a478d9" +"checksum librocksdb-sys 5.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7dfb546562f9b450237bb8df7a31961849ee9fb1186d9e356db1d7a6b7609ff2" "checksum libsecp256k1 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "688e8d65e495567c2c35ea0001b26b9debf0b4ea11f8cccc954233b75fc3428a" -"checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" -"checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" +"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" "checksum linked_hash_set 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7c91c4c7bbeb4f2f7c4e5be11e6a05bd6830bc37249c47ce1ad86ad453ff9c" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" -"checksum lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d06ff7ff06f729ce5f4e227876cb88d10bc59cd4ae1e09fbb2bde15c850dc21" -"checksum make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8ca8afbe8af1785e09636acb5a41e08a765f5f0340568716c18a8700ba3c0d3" +"checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" -"checksum memory-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94da53143d45f6bad3753f532e56ad57a6a26c0ca6881794583310c7cb4c885f" +"checksum memory-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7623b01a4f1b7acb7cf8e3f678f05e15e6ae26cb0b738dfeb5cc186fd6b82ef4" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" "checksum merlin 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "83c2dda19c01176e8e7148f7bdb88bbdf215a8db0641f89fc40e4b81736aeda5" "checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" @@ -4604,31 +4649,28 @@ dependencies = [ "checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multistream-select 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ed84364f0e921a32204896952ee80c7befc14a7a39f2c56cd955d71e8dae6" +"checksum multistream-select 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f989d40aab0ed0d83c1cdb4856b5790e980b96548d1a921f280e985eb049f38d" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" -"checksum node-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum node-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum node-runtime 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" "checksum nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d138afcce92d219ccb6eb53d9b1e8a96ac0d633cfd3c53cd9856d96d1741bb8" -"checksum nom 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b30adc557058ce00c9d0d7cb3c6e0b5bc6f36e2e2eabe74b0ba726d194abd588" +"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" "checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" "checksum once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "532c29a261168a45ce28948f9537ddd7a5dd272cc513b3017b1e82a88f962c37" "checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409" -"checksum openssl 0.10.18 (registry+https://github.com/rust-lang/crates.io-index)" = "b90119d71b0a3596588da04bf7c2c42f2978cfa1217a94119d8ec9e963c7729c" +"checksum openssl 0.10.20 (registry+https://github.com/rust-lang/crates.io-index)" = "5a0d6b781aac4ac1bd6cafe2a2f0ad8c16ae8e1dd5184822a16c50139f8838d9" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -"checksum openssl-sys 0.9.41 (registry+https://github.com/rust-lang/crates.io-index)" = "e4c77cdd67d31759b22aa72cfda3c65c12348f9e6c5420946b403c022fd0311a" +"checksum openssl-sys 0.9.43 (registry+https://github.com/rust-lang/crates.io-index)" = "33c86834957dd5b915623e94f2f4ab2c70dd8f6b70679824155d5ae21dbd495d" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" -"checksum parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88f69984317b736dceac3baa86600fc089856f69b44b07231f39b5648b02bcd4" -"checksum parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a58ba33211595f92cc2163ac583961d3dc767e656934146636b05256cc9acd7f" +"checksum parity-codec 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2edd80cdaf3b9c7b7f524299586bb4eae43cc5eb20c7b41aa0cd741200000e38" +"checksum parity-codec-derive 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00a486fd383382ddcb2de928364b1f82571c1e48274fc43b7667a4738ee4056c" "checksum parity-crypto 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b9db194dfbcfe3b398d63d765437a5c7232d59906e203055f0e993f6458ff1" "checksum parity-multiaddr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "61ae6944d4435d41f4d0f12108c5cbb9207cbb14bc8f2b4984c6e930dc9c8e41" "checksum parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e8eab0287ccde7821e337a124dc5a4f1d6e4c25d10cc91e3f9361615dd95076" @@ -4640,8 +4682,9 @@ dependencies = [ "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" -"checksum paste 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f50392d1265092fbee9273414cc40eb6d47d307bd66222c477bb8450c8504f9d" -"checksum paste-impl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a3cd512fe3a55e8933b2dcad913e365639db86d512e4004c3084b86864d9467a" +"checksum paste 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1f4a4a1c555c6505821f9d58b8779d0f630a6b7e4e1be24ba718610acf01fa79" +"checksum paste-impl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "26e796e623b8b257215f27e6c80a5478856cae305f5b59810ff9acdaa34570e6" +"checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" "checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" @@ -4650,13 +4693,10 @@ dependencies = [ "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3e90aa19cd73dedc2d0e1e8407473f073d735fef0ab521438de6da8ee449ab66" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" -"checksum proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4" "checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" -"checksum protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d82d117bc7565ce6be0150159251c9b1eeec7b129f5a2aa86e10acb5970de1cb" -"checksum pwasm-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "efb0dcbddbb600f47a7098d33762a00552c671992171637f5bb310b37fe1f0e4" +"checksum protobuf 2.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "524d165d95627ddebba768db728216c4429bbb62882f7e6ab1a6c3c54a7ed830" "checksum quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb6ccf8db7bbcb9c2eae558db5ab4f3da1c2a87e4e597ed394726bc8ea6ca1d" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8" "checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" "checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" @@ -4668,16 +4708,16 @@ dependencies = [ "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" -"checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d" +"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" +"checksum redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)" = "d32b3053e5ced86e4bc0411fec997389532bf56b000e66cb4884eeeb41413d69" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" -"checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" +"checksum regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "559008764a17de49a3146b234641644ed37d118d1ef641a0bb573d146edc6ce0" +"checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c" "checksum rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1651697fefd273bfb4fd69466cc2a9d20de557a0213b97233b22b5e95924b5e" @@ -4686,21 +4726,21 @@ dependencies = [ "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "108ad7c3d65ba866ec50a224b7b3b0cb6c682c3d805015cea859d491232346a5" +"checksum rw-stream-sink 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d548a40fe17c3a77d54b82457b79fcc9b8a288d509ca20fbf5aa1dac386d22d6" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f7bf422d23a88c16d5090d455f182bc99c60af4df6a345c63428acf5129e347" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" -"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" -"checksum schnorrkel 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe554f318830b48e5da8ab1ccb1ffd02b79228364dac7766b7cd1ec461ca5116" +"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" +"checksum schnorrkel 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b5eff518f9bed3d803a0d002af0ab96339b0ebbedde3bec98a684986134b7a39" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum secp256k1 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfaccd3a23619349e0878d9a241f34b1982343cdf67367058cd7d078d326b63e" "checksum security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfab8dda0e7a327c696d893df9ffa19cadc4bd195797997f5223cf5831beaf05" "checksum security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3d6696852716b589dff9e886ff83778bb635150168e83afa8ac6b8a78cb82abc" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)" = "9f301d728f2b94c9a7691c90f07b0b4e8a4517181d9461be94c04bddeb4bd850" -"checksum serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)" = "beed18e6f5175aef3ba670e57c60ef3b1b74d250d962a26604bff4c80e970dd4" -"checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9" +"checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560" +"checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c" +"checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" "checksum sha2 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d963c78ce367df26d7ea8b8cc655c651b42e8a1e584e869c1e17dae3ccb116a" "checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" @@ -4712,80 +4752,82 @@ dependencies = [ "checksum slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a" "checksum slog-scope 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60c04b4726fa04595ccf2c2dad7bcd15474242c4c5e109a8a376e8a2c9b1539a" "checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" -"checksum snow 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7251f8920e9043106cfe466c04ed3eb257b8315a7699259c4fd0af6dffb6aef6" +"checksum snow 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5a64f02fd208ef15bd2d1a65861df4707e416151e1272d02c8faafad1c138100" "checksum spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44363f6f51401c34e7be73db0db371c04705d35efbe9f7d6082e03a921a32c55" -"checksum sr-api-macros 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum sr-io 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum sr-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum sr-sandbox 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum sr-std 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum sr-version 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-aura 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-balances 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-consensus 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-contract 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-council 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-democracy 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-executive 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-fees 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-grandpa 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-indices 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-metadata 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-session 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-staking 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-sudo 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-support 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-support-procedural 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-support-procedural-tools 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-support-procedural-tools-derive 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-system 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-timestamp 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-treasury 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum srml-upgrade-key 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" +"checksum sr-api-macros 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-aura 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-balances 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-consensus 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-executive 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-finality-tracker 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-grandpa 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-indices 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-metadata 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-session 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-staking 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-sudo 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-support-procedural 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-support-procedural-tools 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-support-procedural-tools-derive 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-system 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum srml-timestamp 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" "checksum static_slice 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "92a7e0c5e3dfb52e8fbe0e63a1b947bbb17b4036408b151353c4491374931362" -"checksum stdweb 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5eafd45550bc406cfa179ea263ba0935da87adf220dab40e2c25c4675edc49d8" +"checksum stdweb 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a3edad410e603184d656e2abded5fd4d3d6e93d5763d21130dbaf99795db74eb" "checksum stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930" "checksum stdweb-internal-macros 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1635afd059cbfac7d5b1274f0c44cec110c1e013c48e8bbc22e07e52696cf887" "checksum stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a2a2f4a2eb556337b2d1a302630bbddf989ae383c70393e89b48152b9896cbda" "checksum stream-cipher 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8861bc80f649f5b4c9bd38b696ae9af74499d479dbfb327f0607de6b326a36bc" "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" -"checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum substrate-basic-authorship 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-cli 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-client 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-client-db 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-consensus-aura 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-consensus-aura-slots 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-consensus-common 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-executor 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-finality-grandpa-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-inherents 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-keyring 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-keystore 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-network-libp2p 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-panic-handler 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-rpc 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-rpc-servers 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-serializer 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-service 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-state-db 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-state-machine 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-telemetry 0.3.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-transaction-graph 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-transaction-pool 0.1.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" -"checksum substrate-trie 0.4.0 (git+https://github.com/joystream/substrate.git?rev=df5e65927780b323482e2e8b5031822f423a032d)" = "" +"checksum structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3d0760c312538987d363c36c42339b55f5ee176ea8808bbe4543d484a291c8d1" +"checksum structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "528aeb7351d042e6ffbc2a6fb76a86f9b622fdf7c25932798e7a82cb03bc94c6" +"checksum strum 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1810e25f576e7ffce1ff5243b37066da5ded0310b3274c20baaeccb1145b2806" +"checksum strum_macros 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "572a2f4e53dd4c3483fd79e5cc10ddd773a3acb1169bbfe8762365e107110579" +"checksum substrate-basic-authorship 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-bip39 0.2.1 (git+https://github.com/paritytech/substrate-bip39)" = "" +"checksum substrate-cli 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-client-db 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-consensus-aura 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-consensus-aura-slots 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-consensus-authorities 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-finality-grandpa 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-finality-grandpa-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-keystore 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-network 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-network-libp2p 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-offchain 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-offchain-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-panic-handler 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-peerset 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-rpc 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-rpc-servers 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-serializer 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-service 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-state-db 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-state-machine 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-telemetry 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-transaction-graph 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-transaction-pool 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" +"checksum substrate-trie 1.0.0 (git+https://github.com/joystream/substrate.git?rev=89bbb7b6d0e076f0eda736b330f5f792aa2e2991)" = "" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "702662512f3ddeb74a64ce2fbbf3707ee1b6bb663d28bb054e0779bbc720d926" -"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" +"checksum syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)" = "66c8865bf5a7cbb662d8b011950060b3c8743dca141b054bf7195b20d314d8e2" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum sysinfo 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4da1ccc493b46042d6f5352910a7f18ed8fe81307dd7db3f2e2d8a7db6f6284" +"checksum sysinfo 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a0cb7899e248ed0baa6ef6f8406352523c2f99bc7c4b1800f4cd6d5dde99eb" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" @@ -4794,27 +4836,29 @@ dependencies = [ "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" +"checksum tiny-bip39 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f5388a470627f97a01a6e13389ced797a42b1611f9de7e0f6ca705675ac55297" "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" "checksum tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5462b0f968c0457efe38fcd2df7e487096b992419e4f5337b06775a614bbda4b" -"checksum tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "e0500b88064f08bebddd0c0bed39e19f5c567a5f30975bee52b0c0d3e2eeb38c" +"checksum tokio 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "65641e515a437b308ab131a82ce3042ff9795bef5d6c5a9be4eb24195c417fd9" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" -"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" +"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" "checksum tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "82c65483db54eb91b4ef3a9389a3364558590faf30ce473141707c0e16fda975" -"checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" -"checksum tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9cbbc8a3698b7ab652340f46633364f9eaa928ddaaee79d8b8f356dd79a09d" -"checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" -"checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" -"checksum tokio-sync 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c73850a5ad497d73ccfcfc0ffb494a4502d93f35cb475cfeef4fcf2916d26040" +"checksum tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "83ea44c6c0773cc034771693711c35c677b4b5a4b21b9e7071704c54de7d555e" +"checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af" +"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" +"checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" +"checksum tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fda385df506bf7546e70872767f71e81640f1f251bdf2fd8eb81a0eaec5fe022" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" -"checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb" +"checksum tokio-threadpool 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ec5759cf26cf9659555f36c431b515e3d05f66831741c85b4b5d5dfb9cf1323c" "checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6" "checksum tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" +"checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3" "checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" "checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" -"checksum trie-db 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7319e28ca295f27359d944a682f7f65b419158bf1590c92cadc0000258d788" -"checksum trie-root 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3c6fef2705af3258ec46a7e22286090394a44216201a1cf7d04b78db825e543" +"checksum trie-db 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1ba73747fd3a64ab531274c04cb588dfa9d30d972d62990831e63fbce2cfec59" +"checksum trie-root 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cfa2e20c4f1418ac2e71ddc418e35e1b56e34022e2146209ffdbf1b2de8b1bd9" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum twofish 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d261e83e727c8e2dbb75dacac67c36e35db36a958ee504f2164fc052434e1" "checksum twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "555cd4909480122bbbf21e34faac4cb08a171f324775670447ed116726c474af" @@ -4823,7 +4867,7 @@ dependencies = [ "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum uint 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e7780bb27fd8a22295e0d9d53ae3be253f715a0dccb1808527f478f1c2603708" "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -"checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" +"checksum unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41d17211f887da8e4a70a45b9536f26fc5de166b81e2d5d80de4a17fd22553bd" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" "checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" @@ -4839,11 +4883,11 @@ dependencies = [ "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" -"checksum wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" -"checksum websocket 0.22.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d2c67346c042adbd4f5b2a49700e340befc5b772094fec8d36df6b825523d933" -"checksum which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e84a603e7e0b1ce1aa1ee2b109c7be00155ce52df5081590d1ffb93f4f515cb2" +"checksum wasmi 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f6a891b45c79e9f96fb66cc84a057211ef9cd2e5e8d093f3dbbd480e146a8758" +"checksum websocket 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7cc2d74d89f9df981ab41ae624e33cf302fdf456b93455c6a31911a99c9f0bb8" +"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" +"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" @@ -4851,5 +4895,7 @@ dependencies = [ "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +"checksum x25519-dalek 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ee1585dc1484373cbc1cee7aafda26634665cf449436fd6e24bfd1fad230538" "checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" -"checksum yamux 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "56626765982b12c2f4b59529e1d2ce0a7c25499865e6edf8b502dceb51b65fe2" +"checksum yamux 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "302defd1bed8a9a6d43b82f0e5a50510dfdfbbd02c270c93ff9d6f3f5e2dea89" +"checksum zeroize 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8ddfeb6eee2fb3b262ef6e0898a52b7563bb8e0d5955a313b3cf2f808246ea14" diff --git a/Cargo.toml b/Cargo.toml index ed4ef1f..fee1cad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,24 +1,34 @@ +[[bin]] +name = 'joystream-node' +path = 'src/main.rs' + +[package] +authors = ['Joystream'] +build = 'build.rs' +edition = '2018' +name = 'joystream-node' +version = '1.0.0' + [dependencies] error-chain = '0.12' exit-future = '0.1' futures = '0.1' hex-literal = '0.1' log = '0.4' -parity-codec = '3.0' +parity-codec = '3.2' parking_lot = '0.7.1' -slog = '^2' tokio = '0.1' -trie-root = '0.11.0' +trie-root = '0.12.0' [dependencies.basic-authorship] git = 'https://github.com/joystream/substrate.git' package = 'substrate-basic-authorship' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.consensus] git = 'https://github.com/joystream/substrate.git' package = 'substrate-consensus-aura' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.ctrlc] features = ['termination'] @@ -27,66 +37,59 @@ version = '3.0' [dependencies.inherents] git = 'https://github.com/joystream/substrate.git' package = 'substrate-inherents' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' -[dependencies.node-executor] +[dependencies.network] git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +package = 'substrate-network' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.joystream-node-runtime] -git = 'https://github.com/joystream/substrate-runtime-joystream.git' -tag = 'v3.4.0' -# When developing locally change the location of the dependency to a local directory -# comment out the "git" and "tag" lines above and replace with a "path" -# path = 'runtime' -# path = '../my-local-joystream-runtime-repo/' +# clone https://github.com/joystream/substrate-runtime-joystream to this path: +path = 'substrate-runtime-joystream' [dependencies.primitives] git = 'https://github.com/joystream/substrate.git' package = 'substrate-primitives' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.sr-io] git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.substrate-cli] git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.substrate-client] git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.substrate-executor] git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.substrate-network] -git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.substrate-service] git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' [dependencies.transaction-pool] git = 'https://github.com/joystream/substrate.git' package = 'substrate-transaction-pool' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' -[package] -authors = ['Joystream'] -build = 'build.rs' -edition = '2018' -name = 'joystream-node' -version = '0.10.1' +[dependencies.substrate-telemetry] +git = 'https://github.com/joystream/substrate.git' +package = 'substrate-telemetry' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' -[[bin]] -name = 'joystream-node' -path = 'src/main.rs' +[dependencies.grandpa] +git = 'https://github.com/joystream/substrate.git' +package = 'substrate-finality-grandpa' +rev = '89bbb7b6d0e076f0eda736b330f5f792aa2e2991' -[build-dependencies] -vergen = '3' [profile.release] panic = 'unwind' + +[build-dependencies] +vergen = '3' diff --git a/build-runtime.sh b/build-runtime.sh index edbcba8..25418d8 100755 --- a/build-runtime.sh +++ b/build-runtime.sh @@ -12,7 +12,7 @@ normal=$(tput sgr0) # Save current directory. pushd . >/dev/null -for SRC in runtime/wasm +for SRC in substrate-runtime-joystream/ do echo "${bold}Building webassembly binary in $SRC...${normal}" cd "$PROJECT_ROOT/$SRC" diff --git a/runtime/CHANGELOG.md b/runtime/CHANGELOG.md deleted file mode 100644 index 95faba3..0000000 --- a/runtime/CHANGELOG.md +++ /dev/null @@ -1,16 +0,0 @@ -### Version 4 - Bug Fixes - March 4th 2019 - `9941dd` - - Allow illiquid accounts to pay transaction fees. Fixes unstaking and setting memo, by permitting extrinsics which do not require more than a transaction fee to be accepted into mempool. - - Updated Cargo dependencies to use forked substrate repo `github.com/joystream/substrate` - - - On-chain runtime upgrade performed with sudo `consensus::setCode()` - -### Version 3 - Sparta - March 1st 2019 - `1ca4cc` - - Basic substrate node - based on substrate `1ca4cc0a16a357782bb1028bb57376594ca232a0` - - Block Authoring - only Aura (enabling GRANDPA in future release) - - Council Elections - - Council Runtime upgrade proposal - - Simple PoS validator staking - - Memo (account status message) - -Used in genesis block for first testnet (Sparta) diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml deleted file mode 100644 index 9433296..0000000 --- a/runtime/Cargo.toml +++ /dev/null @@ -1,164 +0,0 @@ -[package] -authors = ['Joystream'] -edition = '2018' -name = 'joystream-node-runtime' -version = '1.0.1' - -[features] -default = ['std'] -std = [ - 'parity-codec/std', - 'parity-codec-derive/std', - 'primitives/std', - 'substrate-client/std', - 'rstd/std', - 'runtime-io/std', - 'srml-support/std', - 'balances/std', - 'fees/std', - 'executive/std', - 'aura/std', - 'indices/std', - 'primitives/std', - 'system/std', - 'timestamp/std', - 'sudo/std', - 'version/std', - 'serde_derive', - 'serde/std', - 'safe-mix/std', - 'consensus-aura/std', - 'staking/std', - 'session/std', -] -[dependencies.aura] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-aura' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.balances] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-balances' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.consensus] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-consensus' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.consensus-aura] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'substrate-consensus-aura-primitives' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.executive] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-executive' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.fees] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-fees' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.indices] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-indices' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.parity-codec] -default-features = false -version = '3.0' - -[dependencies.parity-codec-derive] -default-features = false -version = '3.0' - -[dependencies.primitives] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'substrate-primitives' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.rstd] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'sr-std' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.runtime-io] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'sr-io' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.runtime-primitives] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'sr-primitives' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.safe-mix] -default-features = false -version = '1.0' - -[dependencies.serde] -default-features = false -version = '1.0' - -[dependencies.serde_derive] -optional = true -version = '1.0' - -[dependencies.srml-support] -default_features = false -git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.substrate-client] -default_features = false -git = 'https://github.com/joystream/substrate.git' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.sudo] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-sudo' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.system] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-system' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.timestamp] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-timestamp' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.version] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'sr-version' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.staking] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-staking' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' - -[dependencies.session] -default_features = false -git = 'https://github.com/joystream/substrate.git' -package = 'srml-session' -rev = 'df5e65927780b323482e2e8b5031822f423a032d' diff --git a/runtime/src/governance/council.rs b/runtime/src/governance/council.rs deleted file mode 100644 index f30d7c9..0000000 --- a/runtime/src/governance/council.rs +++ /dev/null @@ -1,170 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use srml_support::{StorageValue, StorageMap, dispatch::Result, decl_module, decl_event, decl_storage, ensure}; -use srml_support::traits::{Currency}; -use system::{self, ensure_signed}; -use runtime_primitives::traits::{As, Zero}; -use rstd::prelude::*; - -pub use super::election::{self, Seats, Seat, CouncilElected}; -pub use super::{ GovernanceCurrency, BalanceOf }; - -// Hook For announcing that council term has ended -pub trait CouncilTermEnded { - fn council_term_ended(); -} - -impl CouncilTermEnded for () { - fn council_term_ended() {} -} - -impl CouncilTermEnded for (X,) { - fn council_term_ended() { - X::council_term_ended(); - } -} - -pub trait Trait: system::Trait + GovernanceCurrency { - type Event: From> + Into<::Event>; - - type CouncilTermEnded: CouncilTermEnded; -} - -decl_storage! { - trait Store for Module as Council { - ActiveCouncil get(active_council) config(): Seats>; - TermEndsAt get(term_ends_at) config() : T::BlockNumber = T::BlockNumber::sa(1); - } -} - -/// Event for this module. -decl_event!( - pub enum Event where ::BlockNumber { - CouncilTermEnded(BlockNumber), - NewCouncilTermStarted(BlockNumber), - } -); - -impl CouncilElected>, T::BlockNumber> for Module { - fn council_elected(seats: Seats>, term: T::BlockNumber) { - >::put(seats); - - let next_term_ends_at = >::block_number() + term; - >::put(next_term_ends_at); - Self::deposit_event(RawEvent::NewCouncilTermStarted(next_term_ends_at)); - } -} - -impl Module { - - pub fn is_term_ended() -> bool { - >::block_number() >= Self::term_ends_at() - } - - pub fn is_councilor(sender: &T::AccountId) -> bool { - Self::active_council().iter().any(|c| c.member == *sender) - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; - - fn on_finalise(now: T::BlockNumber) { - if now == Self::term_ends_at() { - Self::deposit_event(RawEvent::CouncilTermEnded(now)); - T::CouncilTermEnded::council_term_ended(); - } - } - - // Sudo methods... - - /// Force set a zero staked council. Stakes in existing council will vanish into thin air! - fn set_council(accounts: Vec) { - let new_council: Seats> = accounts.into_iter().map(|account| { - Seat { - member: account, - stake: BalanceOf::::zero(), - backers: vec![] - } - }).collect(); - >::put(new_council); - } - - /// Adds a zero staked council member - fn add_council_member(account: T::AccountId) { - ensure!(!Self::is_councilor(&account), "cannot add same account multiple times"); - let seat = Seat { - member: account, - stake: BalanceOf::::zero(), - backers: vec![] - }; - - // add member to existing council - >::mutate(|council| council.push(seat)); - } - - fn remove_council_member(account_to_remove: T::AccountId) { - ensure!(Self::is_councilor(&account_to_remove), "account is not a councilor"); - let filtered_council: Seats> = Self::active_council() - .into_iter() - .filter(|c| c.member != account_to_remove) - .collect(); - >::put(filtered_council); - } - - /// Set blocknumber when council term will end - fn set_term_ends_at(ends_at: T::BlockNumber) { - ensure!(ends_at > >::block_number(), "must set future block number"); - >::put(ends_at); - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::governance::mock::*; - use parity_codec::Encode; - use runtime_io::with_externalities; - use srml_support::*; - - #[test] - fn add_council_member_test() { - with_externalities(&mut initial_test_ext(), || { - assert!(!Council::is_councilor(&1)); - - assert_ok!(Council::add_council_member(1)); - assert!(Council::is_councilor(&1)); - - assert_ok!(Council::add_council_member(2)); - assert!(Council::is_councilor(&1)); - assert!(Council::is_councilor(&2)); - }); - } - - #[test] - fn remove_council_member_test() { - with_externalities(&mut initial_test_ext(), || { - assert_ok!(Council::add_council_member(1)); - assert_ok!(Council::add_council_member(2)); - assert_ok!(Council::add_council_member(3)); - - assert_ok!(Council::remove_council_member(2)); - - assert!(!Council::is_councilor(&2)); - assert!(Council::is_councilor(&1)); - assert!(Council::is_councilor(&3)); - }); - } - - #[test] - fn set_council_test() { - with_externalities(&mut initial_test_ext(), || { - assert_ok!(Council::set_council(vec![4,5,6])); - assert!(Council::is_councilor(&4)); - assert!(Council::is_councilor(&5)); - assert!(Council::is_councilor(&6)); - }); - } -} diff --git a/runtime/src/governance/election.rs b/runtime/src/governance/election.rs deleted file mode 100644 index 282247e..0000000 --- a/runtime/src/governance/election.rs +++ /dev/null @@ -1,1667 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use rstd::prelude::*; -use srml_support::{StorageValue, StorageMap, dispatch::Result, decl_module, decl_event, decl_storage, ensure}; -use srml_support::traits::{Currency}; -use system::{self, ensure_signed}; - -use runtime_primitives::traits::{Hash, As, Zero, /*SimpleArithmetic*/}; -//use {balances}; - -use rstd::collections::btree_map::BTreeMap; -use rstd::ops::Add; - -use super::stake::Stake; -use super::sealed_vote::SealedVote; - -pub use super::{ GovernanceCurrency, BalanceOf }; -use super::council; - -pub trait Trait: system::Trait + council::Trait + GovernanceCurrency { - type Event: From> + Into<::Event>; - - type CouncilElected: CouncilElected>, Self::BlockNumber>; -} - -#[derive(Clone, Copy, Encode, Decode)] -pub enum ElectionStage { - Announcing(BlockNumber), - Voting(BlockNumber), - Revealing(BlockNumber), -} - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Encode, Decode, Default, Clone, PartialEq, Eq)] -pub struct Seat { - pub member: AccountId, - pub stake: Balance, - pub backers: Vec>, -} - -impl Seat - where Balance: Add + Copy, -{ - pub fn calc_total_stake(&self) -> Balance { - self.backers.iter().fold(self.stake, |acc, backer| acc + backer.stake) - } -} - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Encode, Decode, Default, Clone, PartialEq, Eq)] -pub struct Backer { - pub member: AccountId, - pub stake: Balance, -} - -pub type Seats = Vec>; - -// Hook for setting a new council when it is elected -pub trait CouncilElected { - fn council_elected(new_council: Elected, term: Term); -} - -impl CouncilElected for () { - fn council_elected(_new_council: Elected, term: Term) {} -} - -impl> CouncilElected for (X,) { - fn council_elected(new_council: Elected, term: Term) { - X::council_elected(new_council, term); - } -} - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Clone, Copy, Encode, Decode, Default)] -pub struct TransferableStake { - seat: Balance, - backing: Balance, -} - -decl_storage! { - trait Store for Module as CouncilElection { - // Flag for wether to automatically start an election after a council term ends - AutoStart get(auto_start) config() : bool = true; - - // Current stage if there is an election running - Stage get(stage): Option>; - - // The election round - Round get(round): u32; - - ExistingStakeHolders get(existing_stake_holders): Vec; - TransferableStakes get(transferable_stakes): map T::AccountId => TransferableStake>; - - Applicants get(applicants): Vec; - ApplicantStakes get(applicant_stakes): map T::AccountId => Stake>; - - Commitments get(commitments): Vec; - - // TODO value type of this map looks scary, is there any way to simplify the notation? - Votes get(votes): map T::Hash => SealedVote>, T::Hash, T::AccountId>; - - // Current Election Parameters - default "zero" values are not meaningful. Running an election without - // settings reasonable values is a bad idea. Parameters can be set in the TriggerElection hook. - AnnouncingPeriod get(announcing_period) config(): T::BlockNumber = T::BlockNumber::sa(100); - VotingPeriod get(voting_period) config(): T::BlockNumber = T::BlockNumber::sa(100); - RevealingPeriod get(revealing_period) config(): T::BlockNumber = T::BlockNumber::sa(100); - CouncilSize get(council_size) config(): u32 = 10; - CandidacyLimit get (candidacy_limit) config(): u32 = 20; - MinCouncilStake get(min_council_stake) config(): BalanceOf = BalanceOf::::sa(100); - NewTermDuration get(new_term_duration) config(): T::BlockNumber = T::BlockNumber::sa(1000); - MinVotingStake get(min_voting_stake) config(): BalanceOf = BalanceOf::::sa(10); - } -} - -/// Event for this module. -decl_event!( - pub enum Event where - ::BlockNumber, - ::AccountId, - ::Hash { - /// A new election started - ElectionStarted(), - AnnouncingStarted(u32), - AnnouncingEnded(), - VotingStarted(), - VotingEnded(), - RevealingStarted(), - RevealingEnded(), - CouncilElected(BlockNumber), - Applied(AccountId), - Voted(AccountId, Hash), - Revealed(AccountId, Hash, AccountId), - } -); - -impl Module { - // HELPERS - IMMUTABLES - - fn council_size_usize() -> usize { - Self::council_size() as usize - } - - fn candidacy_limit_usize() -> usize { - Self::candidacy_limit() as usize - } - - fn current_block_number_plus(length: T::BlockNumber) -> T::BlockNumber { - >::block_number() + length - } - - // TODO This method should be moved to Membership module once it's created. - fn is_member(sender: T::AccountId) -> bool { - !T::Currency::free_balance(&sender).is_zero() - } - - // PUBLIC IMMUTABLES - - /// Returns true if an election is running - pub fn is_election_running() -> bool { - Self::stage().is_some() - } - - /// Returns block number at which current stage will end if an election is running. - pub fn stage_ends_at() -> Option { - if let Some(stage) = Self::stage() { - match stage { - ElectionStage::Announcing(ends) => Some(ends), - ElectionStage::Voting(ends) => Some(ends), - ElectionStage::Revealing(ends) => Some(ends), - } - } else { - None - } - } - - // PRIVATE MUTABLES - - /// Starts an election. Will fail if an election is already running - /// Initializes transferable stakes. Assumes election parameters have already been set. - fn start_election(current_council: Seats>) -> Result { - ensure!(!Self::is_election_running(), "election already in progress"); - ensure!(Self::existing_stake_holders().len() == 0, "stake holders must be empty"); - ensure!(Self::applicants().len() == 0, "applicants must be empty"); - ensure!(Self::commitments().len() == 0, "commitments must be empty"); - - // Take snapshot of seat and backing stakes of an existing council - // Its important to note that the election system takes ownership of these stakes, and is responsible - // to return any unused stake to original owners and the end of the election. - Self::initialize_transferable_stakes(current_council); - - Self::deposit_event(RawEvent::ElectionStarted()); - - Self::move_to_announcing_stage(); - Ok(()) - } - - /// Sets announcing stage. Can be called from any stage and assumes all preparatory work - /// for entering the stage has been performed. - /// Bumps the election round. - fn move_to_announcing_stage() { - let next_round = >::mutate(|n| { *n += 1; *n }); - - let new_stage_ends_at = Self::current_block_number_plus(Self::announcing_period()); - - >::put(ElectionStage::Announcing(new_stage_ends_at)); - - Self::deposit_event(RawEvent::AnnouncingStarted(next_round)); - } - - /// Sets announcing stage. Can be called from any stage and assumes all preparatory work - /// for entering the stage has been performed. - fn move_to_voting_stage() { - let new_stage_ends_at = Self::current_block_number_plus(Self::voting_period()); - - >::put(ElectionStage::Voting(new_stage_ends_at)); - - Self::deposit_event(RawEvent::VotingStarted()); - } - - /// Sets announcing stage. Can be called from any stage and assumes all preparatory work - /// for entering the stage has been performed. - fn move_to_revealing_stage() { - let new_stage_ends_at = Self::current_block_number_plus(Self::revealing_period()); - - >::put(ElectionStage::Revealing(new_stage_ends_at)); - - Self::deposit_event(RawEvent::RevealingStarted()); - } - - /// Sorts applicants by stake, and returns slice of applicants with least stake. Applicants not - /// returned in the slice are the top `len` highest staked. - fn find_least_staked_applicants ( - applicants: &mut Vec, - len: usize) -> &[T::AccountId] - { - if len >= applicants.len() { - &[] - } else { - applicants.sort_by_key(|applicant| Self::applicant_stakes(applicant)); - &applicants[0 .. applicants.len() - len] - } - } - - fn on_announcing_ended() { - let mut applicants = Self::applicants(); - - if applicants.len() < Self::council_size_usize() { - // Not enough applicants announced candidacy - Self::move_to_announcing_stage(); - } else { - // upper limit on applicants that will move to voting stage - let limit = rstd::cmp::max(Self::council_size_usize(), Self::candidacy_limit_usize()); - let applicants_to_drop = Self::find_least_staked_applicants(&mut applicants, limit); - - Self::drop_applicants(applicants_to_drop); - - Self::move_to_voting_stage(); - } - } - - fn on_voting_ended() { - Self::move_to_revealing_stage(); - } - - fn on_revealing_ended() { - // tally the revealed votes - let mut votes = Vec::new(); - - for commitment in Self::commitments().iter() { - votes.push(Self::votes(commitment)); - } - - let mut new_council = Self::tally_votes(&votes); - - // Note here that applicants with zero votes dont appear in the tally. - // Is an applicant with some votes but less total stake than another applicant with zero votes - // more qualified to be on the council? - // Consider implications - if a council can be formed purely by staking are we fine with that? - - for applicant in Self::applicants().iter() { - if !new_council.contains_key(applicant) { - new_council.insert(applicant.clone(), Seat { - member: applicant.clone(), - stake: Self::applicant_stakes(applicant).total(), - backers: Vec::new(), - }); - } - } - - if new_council.len() == Self::council_size_usize() { - // all applicants in the tally will form the new council - } else if new_council.len() > Self::council_size_usize() { - // we have more than enough applicants to form the new council. - // select top staked - Self::filter_top_staked(&mut new_council, Self::council_size_usize()); - } else { - // Not enough applicants with votes to form a council. - // This may happen if we didn't add applicants with zero votes to the tally, - // or in future if we allow applicants to withdraw candidacy during voting or revealing stages. - // or council size was increased during voting, revealing stages. - } - - // unless we want to add more filtering criteria to what is considered a successful election - // other than just the minimum stake for candidacy, we have a new council! - - Self::teardown_election ( - &votes, - &new_council, - true /* unlock transferable stakes */ - ); - - let new_council = new_council.into_iter().map(|(_, seat)| seat).collect(); - T::CouncilElected::council_elected(new_council, Self::new_term_duration()); - - Self::deposit_event(RawEvent::CouncilElected(>::block_number())); - } - - fn teardown_election ( - votes: &Vec>, - T::Hash, T::AccountId>>, new_council: &BTreeMap>>, - unlock_ts: bool) - { - Self::refund_voting_stakes(&votes, &new_council); - Self::clear_votes(); - - Self::drop_unelected_applicants(&new_council); - Self::clear_applicants(); - - if unlock_ts { - Self::unlock_transferable_stakes(); - } - - Self::clear_transferable_stakes(); - - >::kill(); - } - - fn unlock_transferable_stakes() { - // move stakes back to account holder's free balance - for stakeholder in Self::existing_stake_holders().iter() { - let stake = Self::transferable_stakes(stakeholder); - if !stake.seat.is_zero() || !stake.backing.is_zero() { - T::Currency::unreserve(stakeholder, stake.seat + stake.backing); - } - } - } - - fn clear_transferable_stakes() { - for stakeholder in Self::existing_stake_holders() { - >::remove(stakeholder); - } - - >::kill(); - } - - fn clear_applicants() { - for applicant in Self::applicants() { - >::remove(applicant); - } - >::kill(); - } - - fn refund_applicant(applicant: &T::AccountId) { - let stake = >::get(applicant); - - // return new stake to account's free balance - if !stake.new.is_zero() { - T::Currency::unreserve(applicant, stake.new); - } - - // return unused transferable stake - if !stake.transferred.is_zero() { - >::mutate(applicant, |transferable| (*transferable).seat += stake.transferred); - } - } - - fn drop_applicants(drop: &[T::AccountId]) { - let not_dropped: Vec = Self::applicants().into_iter() - .filter(|id| !drop.iter().any(|x| *x == *id)) - .collect(); - - for applicant in drop { - Self::refund_applicant(applicant); - >::remove(applicant); - } - - >::put(not_dropped); - } - - fn drop_unelected_applicants(new_council: &BTreeMap>>) { - let applicants_to_drop: Vec = Self::applicants().into_iter() - .filter(|applicant| !new_council.contains_key(&applicant)) - .collect(); - - Self::drop_applicants(&applicants_to_drop[..]); - } - - fn refund_voting_stakes( - sealed_votes: &Vec>, T::Hash, T::AccountId>>, - new_council: &BTreeMap>>) - { - for sealed_vote in sealed_votes.iter() { - // Do a refund if commitment was not revealed, or the vote was for applicant that did - // not get elected to the council - // TODO critical: shouldn't we slash the stake in such a case? This is the whole idea behid staking on something: people need to decide carefully and be responsible for their bahavior because they can loose their stake - // See https://github.com/Joystream/substrate-node-joystream/issues/4 - let do_refund = match sealed_vote.get_vote() { - Some(applicant) => !new_council.contains_key(&applicant), - None => true - }; - - if do_refund { - // return new stake to account's free balance - let SealedVote { voter, stake, .. } = sealed_vote; - if !stake.new.is_zero() { - T::Currency::unreserve(voter, stake.new); - } - - // return unused transferable stake - if !stake.transferred.is_zero() { - >::mutate(voter, |transferable| (*transferable).backing += stake.transferred); - } - } - } - } - - fn clear_votes() { - for commitment in Self::commitments() { - >::remove(commitment); - } - >::kill(); - } - - fn tally_votes(sealed_votes: &Vec>, T::Hash, T::AccountId>>) -> BTreeMap>> { - let mut tally: BTreeMap>> = BTreeMap::new(); - - for sealed_vote in sealed_votes.iter() { - if let Some(applicant) = sealed_vote.get_vote() { - if !tally.contains_key(&applicant) { - // Add new seat - tally.insert(applicant.clone(), Seat { - member: applicant.clone(), - stake: Self::applicant_stakes(applicant).total(), - backers: vec![], - }); - } - if let Some(seat) = tally.get_mut(&applicant) { - // Add backer to existing seat - seat.backers.push(Backer { - member: sealed_vote.voter.clone(), - stake: sealed_vote.stake.total() - }); - } - } - } - - tally - } - - fn filter_top_staked(tally: &mut BTreeMap>>, limit: usize) { - - if limit >= tally.len() { - return; - } - - // use ordering in the applicants vector (not ordering resulting from btreemap iteration) - let mut seats: Vec = Self::applicants().into_iter() - .filter(|id| tally.contains_key(id)).collect(); - - // ensure_eq!(seats.len(), tally.len()); - - if limit >= seats.len() { - // Tally is inconsistent with list of applicants! - return; - } - - // TODO: order by number of votes, then number of backers - - seats.sort_by_key(|applicant| { - tally.get(&applicant).map_or(Zero::zero(), |seat| seat.calc_total_stake()) - }); - - // seats at bottom of list - let filtered_out_seats = &seats[0 .. seats.len() - limit]; - - for id in filtered_out_seats { - tally.remove(id); - } - } - - /// Checks if the current election stage has ended and calls the stage ended handler - fn check_if_stage_is_ending(now: T::BlockNumber) { - if let Some(stage) = Self::stage() { - match stage { - ElectionStage::Announcing(ends) => if ends == now { - Self::deposit_event(RawEvent::AnnouncingEnded()); - Self::on_announcing_ended(); - }, - ElectionStage::Voting(ends) => if ends == now { - Self::deposit_event(RawEvent::VotingEnded()); - Self::on_voting_ended(); - }, - ElectionStage::Revealing(ends) => if ends == now { - Self::deposit_event(RawEvent::RevealingEnded()); - Self::on_revealing_ended(); - }, - } - } - } - - /// Takes a snapshot of the stakes from the current council - fn initialize_transferable_stakes(current_council: Seats>) { - let mut stakeholder_accounts: Vec = Vec::new(); - - for seat in current_council.into_iter() { - let Seat { member, stake, .. } = seat; - - if >::exists(&member) { - >::mutate(&member, |transferbale_stake| *transferbale_stake = TransferableStake { - seat: transferbale_stake.seat + stake, - backing: transferbale_stake.backing, - }); - } else { - >::insert(&member, TransferableStake { - seat: stake, - backing: BalanceOf::::zero(), - }); - - stakeholder_accounts.push(member); - } - - for backer in seat.backers.into_iter() { - let Backer { member, stake, ..} = backer; - - if >::exists(&member) { - >::mutate(&member, |transferbale_stake| *transferbale_stake = TransferableStake { - seat: transferbale_stake.seat, - backing: transferbale_stake.backing + stake, - }); - } else { - >::insert(&member, TransferableStake { - seat: BalanceOf::::zero(), - backing: stake, - }); - - stakeholder_accounts.push(member); - } - } - } - - >::put(stakeholder_accounts); - } - - fn new_stake_reusing_transferable(transferable: &mut BalanceOf, new_stake: BalanceOf) -> Stake> { - let transferred = - if *transferable >= new_stake { - new_stake - } else { - *transferable - }; - - *transferable = *transferable - transferred; - - Stake { - new: new_stake - transferred, - transferred, - } - } - - fn try_add_applicant(applicant: T::AccountId, stake: BalanceOf) -> Result { - let mut transferable_stake = >::get(&applicant); - - let new_stake = Self::new_stake_reusing_transferable(&mut transferable_stake.seat, stake); - - ensure!(T::Currency::can_reserve(&applicant, new_stake.new), "not enough free balance to reserve"); - - ensure!(T::Currency::reserve(&applicant, new_stake.new).is_ok(), "failed to reserve applicant stake!"); - - let applicant_stake = >::get(&applicant); - let total_stake = applicant_stake.add(&new_stake); - - if >::exists(&applicant) { - >::insert(&applicant, transferable_stake); - } - - if !>::exists(&applicant) { - // insert element at the begining, this gives priority to early applicants - // when ordering applicants by stake if stakes are equal - >::mutate(|applicants| applicants.insert(0, applicant.clone())); - } - - >::insert(applicant.clone(), total_stake); - - Ok(()) - } - - fn try_add_vote(voter: T::AccountId, stake: BalanceOf, commitment: T::Hash) -> Result { - ensure!(!>::exists(commitment), "duplicate commitment"); - - let mut transferable_stake = >::get(&voter); - - let vote_stake = Self::new_stake_reusing_transferable(&mut transferable_stake.backing, stake); - - ensure!(T::Currency::can_reserve(&voter, vote_stake.new), "not enough free balance to reserve"); - - ensure!(T::Currency::reserve(&voter, vote_stake.new).is_ok(), "failed to reserve voting stake!"); - - >::mutate(|commitments| commitments.push(commitment)); - - >::insert(commitment, SealedVote::new(voter.clone(), vote_stake, commitment)); - - if >::exists(&voter) { - >::insert(&voter, transferable_stake); - } - - Ok(()) - } - - fn try_reveal_vote(voter: T::AccountId, commitment: T::Hash, vote_for: T::AccountId, salt: Vec) -> Result { - ensure!(>::exists(&commitment), "commitment not found"); - - let mut sealed_vote = >::get(&commitment); - - ensure!(sealed_vote.is_not_revealed(), "vote already revealed"); - // only voter can reveal their own votes - ensure!(sealed_vote.is_owned_by(voter), "only voter can reveal vote"); - ensure!(>::exists(&vote_for), "vote for non-applicant not allowed"); - - let mut salt = salt.clone(); - - // Tries to unseal, if salt is invalid will return error - sealed_vote.unseal(vote_for, &mut salt, ::Hashing::hash)?; - - // Update the revealed vote - >::insert(commitment, sealed_vote); - - Ok(()) - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; - - // No origin so this is a priviledged call - fn on_finalise(now: T::BlockNumber) { - Self::check_if_stage_is_ending(now); - } - - // Member can apply during announcing stage only. On first call a minimum stake will need to be provided. - // Member can make subsequent calls during announcing stage to increase their stake. - fn apply(origin, stake: BalanceOf) { - let sender = ensure_signed(origin)?; - ensure!(Self::is_member(sender.clone()), "Only members can apply to be on council"); - - let stage = Self::stage(); - ensure!(Self::stage().is_some(), "election not running"); - - let is_announcing = match stage.unwrap() { - ElectionStage::Announcing(_) => true, - _ => false - }; - ensure!(is_announcing, "election not in announcing stage"); - - // minimum stake on first attempt to apply - if !>::exists(&sender) { - ensure!(stake >= Self::min_council_stake(), "minimum stake must be provided"); - } - - Self::try_add_applicant(sender.clone(), stake)?; - - Self::deposit_event(RawEvent::Applied(sender)); - } - - fn vote(origin, commitment: T::Hash, stake: BalanceOf) { - let sender = ensure_signed(origin)?; - ensure!(Self::is_member(sender.clone()), "Only members can vote for an applicant"); - - let stage = Self::stage(); - ensure!(Self::stage().is_some(), "election not running"); - - let is_voting = match stage.unwrap() { - ElectionStage::Voting(_) => true, - _ => false - }; - ensure!(is_voting, "election not in voting stage"); - - ensure!(stake >= Self::min_voting_stake(), "voting stake too low"); - Self::try_add_vote(sender.clone(), stake, commitment)?; - Self::deposit_event(RawEvent::Voted(sender, commitment)); - } - - fn reveal(origin, commitment: T::Hash, vote: T::AccountId, salt: Vec) { - let sender = ensure_signed(origin)?; - - ensure!(salt.len() <= 32, "salt too large"); // at most 256 bits salt - - let stage = Self::stage(); - ensure!(Self::stage().is_some(), "election not running"); - - let is_revealing = match stage.unwrap() { - ElectionStage::Revealing(_) => true, - _ => false - }; - ensure!(is_revealing, "election not in revealing stage"); - - Self::try_reveal_vote(sender.clone(), commitment, vote.clone(), salt)?; - Self::deposit_event(RawEvent::Revealed(sender, commitment, vote)); - } - - fn set_stage_announcing(ends_at: T::BlockNumber) { - ensure!(ends_at > >::block_number(), "must end at future block number"); - >::put(ElectionStage::Announcing(ends_at)); - } - - fn set_stage_revealing(ends_at: T::BlockNumber) { - ensure!(ends_at > >::block_number(), "must end at future block number"); - >::put(ElectionStage::Revealing(ends_at)); - } - - fn set_stage_voting(ends_at: T::BlockNumber) { - ensure!(ends_at > >::block_number(), "must end at future block number"); - >::put(ElectionStage::Voting(ends_at)); - } - - fn set_param_announcing_period(period: T::BlockNumber) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - ensure!(!period.is_zero(), "period cannot be zero"); - >::put(period); - } - fn set_param_voting_period(period: T::BlockNumber) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - ensure!(!period.is_zero(), "period cannot be zero"); - >::put(period); - } - fn set_param_revealing_period(period: T::BlockNumber) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - ensure!(!period.is_zero(), "period cannot be zero"); - >::put(period); - } - fn set_param_min_council_stake(amount: BalanceOf) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - >::put(amount); - } - fn set_param_new_term_duration(duration: T::BlockNumber) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - ensure!(!duration.is_zero(), "new term duration cannot be zero"); - >::put(duration); - } - fn set_param_council_size(council_size: u32) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - ensure!(council_size > 0, "council size cannot be zero"); - ensure!(council_size <= Self::candidacy_limit(), "council size cannot greater than candidacy limit"); - >::put(council_size); - } - fn set_param_candidacy_limit(limit: u32) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - ensure!(limit >= Self::council_size(), "candidacy limit cannot be less than council size"); - >::put(limit); - } - fn set_param_min_voting_stake(amount: BalanceOf) { - ensure!(!Self::is_election_running(), "cannot change params during election"); - >::put(amount); - } - - fn force_stop_election() { - ensure!(Self::is_election_running(), "only running election can be stopped"); - - let mut votes = Vec::new(); - for commitment in Self::commitments() { - votes.push(Self::votes(commitment)); - } - - // no council gets elected - let empty_council = BTreeMap::new(); - - Self::teardown_election ( - &votes, - &empty_council, - false /* do not unlock transferable stakes */ - ); - } - - fn force_start_election() { - Self::start_election(>::active_council())?; - } - - fn set_auto_start (flag: bool) { - >::put(flag); - } - - } -} - -impl council::CouncilTermEnded for Module { - fn council_term_ended() { - if Self::auto_start() { - if Self::start_election(>::active_council()).is_ok() { - // emit ElectionStarted - } else { - // emit ElectionFailedStart - } - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::governance::mock::*; - use parity_codec::Encode; - use runtime_io::with_externalities; - use srml_support::*; - - #[test] - fn election_starts_when_council_term_ends() { - with_externalities(&mut initial_test_ext(), || { - System::set_block_number(1); - - assert!(Council::is_term_ended()); - assert!(Election::stage().is_none()); - - ::council_term_ended(); - - assert!(Election::stage().is_some()); - }); - } - - #[test] - fn new_stake_reusing_transferable_works() { - { - let mut transferable = 0; - let additional = 100; - let new_stake = Election::new_stake_reusing_transferable(&mut transferable, additional); - assert_eq!(new_stake.new, 100); - assert_eq!(new_stake.transferred, 0); - } - - { - let mut transferable = 40; - let additional = 60; - let new_stake = Election::new_stake_reusing_transferable(&mut transferable, additional); - assert_eq!(new_stake.new, 20); - assert_eq!(new_stake.transferred, 40); - assert_eq!(transferable, 0); - } - - { - let mut transferable = 1000; - let additional = 100; - let new_stake = Election::new_stake_reusing_transferable(&mut transferable, additional); - assert_eq!(new_stake.new, 0); - assert_eq!(new_stake.transferred, 100); - assert_eq!(transferable, 900); - } - } - - #[test] - fn check_default_params() { - // TODO missing test implementation? - } - - #[test] - fn should_not_start_new_election_if_already_started() { - with_externalities(&mut initial_test_ext(), || { - assert_ok!(Election::start_election(vec![])); - assert_err!(Election::start_election(vec![]), "election already in progress"); - }); - } - - fn assert_announcing_period(expected_period: ::BlockNumber) { - assert!(Election::is_election_running(), "Election Stage was not set"); - - let election_stage = Election::stage().unwrap(); - - match election_stage { - election::ElectionStage::Announcing(period) => { - assert_eq!(period, expected_period, "Election period not set correctly") - } - _ => { - assert!(false, "Election Stage was not correctly set to Announcing") - } - } - } - - #[test] - fn start_election_should_work() { - with_externalities(&mut initial_test_ext(), || { - System::set_block_number(1); - >::put(20); - let prev_round = Election::round(); - - assert_ok!(Election::start_election(vec![])); - - // election round is bumped - assert_eq!(Election::round(), prev_round + 1); - - // we enter the announcing stage for a specified period - assert_announcing_period(1 + Election::announcing_period()); - }); - } - - #[test] - fn init_transferable_stake_should_work () { - with_externalities(&mut initial_test_ext(), || { - - let existing_council = vec![ - Seat { - member: 1, - stake: 100, - backers: vec![ - Backer { - member: 2, - stake: 50, - }, - Backer { - member: 3, - stake: 40, - }, - Backer { - member: 10, - stake: 10, - }] - }, - - Seat { - member: 2, - stake: 200, - backers: vec![ - Backer { - member: 1, - stake: 10, - }, - Backer { - member: 3, - stake: 60, - }, - Backer { - member: 20, - stake: 20, - }] - }, - - Seat { - member: 3, - stake: 300, - backers: vec![ - Backer { - member: 1, - stake: 20, - }, - Backer { - member: 2, - stake: 40, - }] - } - ]; - - Election::initialize_transferable_stakes(existing_council); - let mut existing_stake_holders = Election::existing_stake_holders(); - existing_stake_holders.sort(); - assert_eq!(existing_stake_holders, vec![1,2,3,10,20]); - - assert_eq!(Election::transferable_stakes(&1).seat, 100); - assert_eq!(Election::transferable_stakes(&1).backing, 30); - - assert_eq!(Election::transferable_stakes(&2).seat, 200); - assert_eq!(Election::transferable_stakes(&2).backing, 90); - - assert_eq!(Election::transferable_stakes(&3).seat, 300); - assert_eq!(Election::transferable_stakes(&3).backing, 100); - - assert_eq!(Election::transferable_stakes(&10).seat, 0); - assert_eq!(Election::transferable_stakes(&10).backing, 10); - - assert_eq!(Election::transferable_stakes(&20).seat, 0); - assert_eq!(Election::transferable_stakes(&20).backing, 20); - - }); - } - - #[test] - fn try_add_applicant_should_work() { - with_externalities(&mut initial_test_ext(), || { - - assert!(Election::applicants().len() == 0); - - let applicant = 20 as u64; - - let starting_balance = 1000 as u32; - Balances::set_free_balance(&applicant, starting_balance); - - let stake = 100 as u32; - - assert!(Election::try_add_applicant(applicant, stake).is_ok()); - assert_eq!(Election::applicants(), vec![applicant]); - - assert_eq!(Election::applicant_stakes(applicant).new, stake); - assert_eq!(Election::applicant_stakes(applicant).transferred, 0); - - assert_eq!(Balances::free_balance(&applicant), starting_balance - stake); - }); - } - - #[test] - fn increasing_applicant_stake_should_work () { - with_externalities(&mut initial_test_ext(), || { - let applicant = 20 as u64; - let starting_stake = 100 as u32; - - >::put(vec![applicant]); - >::insert(applicant, Stake { - new: starting_stake, - transferred: 0, - }); - - let additional_stake = 100 as u32; - Balances::set_free_balance(&applicant, additional_stake); - assert!(Election::try_add_applicant(applicant, additional_stake).is_ok()); - - assert_eq!(Election::applicant_stakes(applicant).new, starting_stake + additional_stake); - assert_eq!(Election::applicant_stakes(applicant).transferred, 0) - }); - } - - #[test] - fn using_transferable_seat_stake_should_work() { - with_externalities(&mut initial_test_ext(), || { - - let applicant = 20 as u64; - Balances::set_free_balance(&applicant, 5000); - - >::put(vec![applicant]); - save_transferable_stake(applicant, TransferableStake {seat: 1000, backing: 0}); - - >::put(vec![applicant]); - let starting_stake = Stake { - new: 100, - transferred: 0, - }; - >::insert(applicant, starting_stake); - - // transferable stake covers new stake - assert!(Election::try_add_applicant(applicant, 600).is_ok()); - assert_eq!(Election::applicant_stakes(applicant).new, starting_stake.new); - assert_eq!(Election::applicant_stakes(applicant).transferred, 600); - assert_eq!(Election::transferable_stakes(applicant).seat, 400); - assert_eq!(Balances::free_balance(applicant), 5000); - - // all remaining transferable stake is consumed and free balance covers remaining stake - assert!(Election::try_add_applicant(applicant, 1000).is_ok()); - assert_eq!(Election::applicant_stakes(applicant).new, starting_stake.new + 600); - assert_eq!(Election::applicant_stakes(applicant).transferred, 1000); - assert_eq!(Election::transferable_stakes(applicant).seat, 0); - assert_eq!(Balances::free_balance(applicant), 4400); - - }); - } - - #[test] - fn moving_to_voting_without_enough_applicants_should_not_work() { - with_externalities(&mut initial_test_ext(), || { - System::set_block_number(1); - >::put(20); - >::put(10); - Election::move_to_announcing_stage(); - let round = Election::round(); - - // add applicants - >::put(vec![10,20,30]); - let stake = Stake { - new: 10, - transferred: 0, - }; - - let applicants = Election::applicants(); - - for applicant in applicants.iter() { - >::insert(applicant, stake); - } - - // make sure we are testing the condition that we don't have enough applicants - assert!(Election::council_size_usize() > applicants.len()); - - // try to move to voting stage - let ann_ends = Election::stage_ends_at().unwrap(); - System::set_block_number(ann_ends); - Election::on_announcing_ended(); - - // A new round should have been started - assert_eq!(Election::round(), round + 1); - - // A new announcing period started - assert_announcing_period(ann_ends + Election::announcing_period()); - - // applicants list should be unchanged.. - assert_eq!(Election::applicants(), applicants); - }); - } - - #[test] - fn top_applicants_move_to_voting_stage() { - with_externalities(&mut initial_test_ext(), || { - >::put(vec![10, 20, 30, 40]); - let mut applicants = Election::applicants(); - - for (i, applicant) in applicants.iter().enumerate() { - >::insert(applicant, Stake { - new: (i * 10) as u32, - transferred: 0, - }); - } - - let rejected = Election::find_least_staked_applicants(&mut applicants, 3); - assert_eq!(rejected.to_vec(), vec![10]); - - >::put(vec![40, 30, 20, 10]); - let mut applicants = Election::applicants(); - - for applicant in applicants.iter() { - >::insert(applicant, Stake { - new: 20 as u32, - transferred: 0, - }); - } - - // stable sort is preserving order when two elements are equivalent - let rejected = Election::find_least_staked_applicants(&mut applicants, 3); - assert_eq!(rejected.to_vec(), vec![40]); - }); - } - - #[test] - fn refunding_applicant_stakes_should_work () { - with_externalities(&mut initial_test_ext(), || { - Balances::set_free_balance(&1, 1000); - Balances::set_free_balance(&2, 2000); Balances::set_reserved_balance(&2, 5000); - Balances::set_free_balance(&3, 3000); Balances::set_reserved_balance(&3, 5000); - - >::put(vec![1,2,3]); - - save_transferable_stake(1, TransferableStake {seat: 50, backing: 0}); - save_transferable_stake(2, TransferableStake {seat: 0, backing: 0}); - save_transferable_stake(3, TransferableStake {seat: 0, backing: 0}); - - >::insert(1, Stake { - new: 100, - transferred: 200, - }); - - >::insert(2, Stake { - new: 300, - transferred: 400, - }); - - >::insert(3, Stake { - new: 500, - transferred: 600, - }); - - Election::drop_applicants(&vec![2,3][..]); - - assert_eq!(Election::applicants(), vec![1]); - - assert_eq!(Election::applicant_stakes(1).new, 100); - assert_eq!(Election::applicant_stakes(1).transferred, 200); - assert_eq!(Election::transferable_stakes(1).seat, 50); - assert_eq!(Balances::free_balance(&1), 1000); - - //assert_eq!(Election::applicant_stakes(2), Default::default()); - assert!(!>::exists(2)); - assert_eq!(Election::transferable_stakes(2).seat, 400); - assert_eq!(Balances::free_balance(&2), 2300); - - //assert_eq!(Election::applicant_stakes(3), Default::default()); - assert!(!>::exists(3)); - assert_eq!(Election::transferable_stakes(3).seat, 600); - assert_eq!(Balances::free_balance(&3), 3500); - }); - } - - #[test] - fn voting_should_work () { - with_externalities(&mut initial_test_ext(), || { - Balances::set_free_balance(&20, 1000); - let payload = vec![10u8]; - let commitment = ::Hashing::hash(&payload[..]); - - assert!(Election::try_add_vote(20, 100, commitment).is_ok()); - - assert_eq!(Election::commitments(), vec![commitment]); - assert_eq!(Election::votes(commitment).voter, 20); - assert_eq!(Election::votes(commitment).commitment, commitment); - assert_eq!(Election::votes(commitment).stake, Stake { - new: 100, - transferred: 0, - }); - assert_eq!(Balances::free_balance(&20), 900); - }); - } - - fn save_transferable_stake(id: u64, stake: TransferableStake) { - >::insert(id, stake); - } - - #[test] - fn votes_can_be_covered_by_transferable_stake () { - with_externalities(&mut initial_test_ext(), || { - Balances::set_free_balance(&20, 1000); - - save_transferable_stake(20, TransferableStake {seat: 0, backing: 500}); - - let payload = vec![10u8]; - let commitment = ::Hashing::hash(&payload[..]); - - assert!(Election::try_add_vote(20, 100, commitment).is_ok()); - - assert_eq!(Election::commitments(), vec![commitment]); - assert_eq!(Election::votes(commitment).voter, 20); - assert_eq!(Election::votes(commitment).commitment, commitment); - assert_eq!(Election::votes(commitment).stake, Stake { - new: 0, - transferred: 100, - }); - assert_eq!(Balances::free_balance(&20), 1000); - }); - } - - #[test] - fn voting_without_enough_balance_should_not_work () { - with_externalities(&mut initial_test_ext(), || { - Balances::set_free_balance(&20, 100); - - save_transferable_stake(20, TransferableStake { seat: 0, backing: 500 }); - - let payload = vec![10u8]; - let commitment = ::Hashing::hash(&payload[..]); - - assert!(Election::try_add_vote(20, 1000, commitment).is_err()); - assert_eq!(Election::commitments(), vec![]); - assert!(!>::exists(commitment)); - assert_eq!(Balances::free_balance(&20), 100); - }); - } - - #[test] - fn voting_with_existing_commitment_should_not_work () { - with_externalities(&mut initial_test_ext(), || { - Balances::set_free_balance(&20, 1000); - - save_transferable_stake(20, TransferableStake { seat: 0, backing: 500}); - - let payload = vec![10u8]; - let commitment = ::Hashing::hash(&payload[..]); - - assert!(Election::try_add_vote(20, 100, commitment).is_ok()); - - assert_eq!(Election::commitments(), vec![commitment]); - assert_eq!(Election::votes(commitment).voter, 20); - assert_eq!(Election::votes(commitment).commitment, commitment); - assert_eq!(Election::votes(commitment).stake, Stake { - new: 0, - transferred: 100, - }); - assert_eq!(Balances::free_balance(&20), 1000); - - assert!(Election::try_add_vote(30, 100, commitment).is_err()); - }); - } - - fn make_commitment_for_applicant(applicant: ::AccountId, salt: &mut Vec) -> ::Hash { - let mut payload = applicant.encode(); - payload.append(salt); - ::Hashing::hash(&payload[..]) - } - - #[test] - fn revealing_vote_works () { - with_externalities(&mut initial_test_ext(), || { - let applicant = 20 as u64; - let salt = vec![128u8]; - let commitment = make_commitment_for_applicant(applicant, &mut salt.clone()); - let voter = 10 as u64; - - >::insert(&applicant, Stake {new: 0, transferred: 0}); - - >::insert(&commitment, SealedVote::new(voter, Stake { - new: 100, transferred: 0 - }, commitment)); - - assert!(>::get(commitment).is_not_revealed()); - assert!(Election::try_reveal_vote(voter, commitment, applicant, salt).is_ok()); - assert_eq!(>::get(commitment).get_vote().unwrap(), applicant); - }); - } - - #[test] - fn revealing_with_bad_salt_should_not_work () { - with_externalities(&mut initial_test_ext(), || { - let applicant = 20 as u64; - let salt = vec![128u8]; - let commitment = make_commitment_for_applicant(applicant, &mut salt.clone()); - let voter = 10 as u64; - - >::insert(&applicant, Stake {new: 0, transferred: 0}); - - >::insert(&commitment, SealedVote::new(voter, Stake { - new: 100, transferred: 0 - }, commitment)); - - assert!(>::get(commitment).is_not_revealed()); - assert!(Election::try_reveal_vote(voter, commitment, applicant, vec![]).is_err()); - assert!(>::get(commitment).is_not_revealed()); - }); - } - - #[test] - fn revealing_non_matching_commitment_should_not_work () { - with_externalities(&mut initial_test_ext(), || { - let applicant = 20 as u64; - let salt = vec![128u8]; - let commitment = make_commitment_for_applicant(100, &mut salt.clone()); - let voter = 10 as u64; - - >::insert(&applicant, Stake {new: 0, transferred: 0}); - - assert!(Election::try_reveal_vote(voter, commitment, applicant, vec![]).is_err()); - }); - } - - #[test] - fn revealing_for_non_applicant_should_not_work () { - with_externalities(&mut initial_test_ext(), || { - let applicant = 20 as u64; - let salt = vec![128u8]; - let commitment = make_commitment_for_applicant(applicant, &mut salt.clone()); - let voter = 10 as u64; - - >::insert(&commitment, SealedVote::new(voter, Stake { - new: 100, transferred: 0 - }, commitment)); - - assert!(>::get(commitment).is_not_revealed()); - assert!(Election::try_reveal_vote(voter, commitment, applicant, vec![]).is_err()); - assert!(>::get(commitment).is_not_revealed()); - }); - } - - #[test] - fn revealing_by_non_committer_should_not_work () { - with_externalities(&mut initial_test_ext(), || { - let applicant = 20 as u64; - let salt = vec![128u8]; - let commitment = make_commitment_for_applicant(applicant, &mut salt.clone()); - let voter = 10 as u64; - let not_voter = 100 as u64; - - >::insert(&applicant, Stake {new: 0, transferred: 0}); - - >::insert(&commitment, SealedVote::new(voter, Stake { - new: 100, transferred: 0 - }, commitment)); - - assert!(>::get(commitment).is_not_revealed()); - assert!(Election::try_reveal_vote(not_voter, commitment, applicant, salt).is_err()); - assert!(>::get(commitment).is_not_revealed()); - }); - } - - pub fn mock_votes (mock: Vec<(u64, u32, u32, u64)>) -> Vec, primitives::H256, u64>> { - let commitment = make_commitment_for_applicant(1, &mut vec![0u8]); - - mock.into_iter().map(|(voter, stake_ref, stake_tran, applicant)| SealedVote::new_unsealed(voter as u64, Stake { - new: stake_ref as u32, transferred: stake_tran as u32 - }, commitment, applicant as u64)).collect() - } - - - #[test] - fn vote_tallying_should_work () { - with_externalities(&mut initial_test_ext(), || { - let votes = mock_votes(vec![ - // (voter, stake[new], stake[transferred], applicant) - (10, 100, 0, 100), - (10, 150, 0, 100), - - (10, 500, 0, 200), - (20, 200, 0, 200), - - (30, 300, 0, 300), - (30, 400, 0, 300), - ]); - - let tally = Election::tally_votes(&votes); - - assert_eq!(tally.len(), 3); - - assert_eq!(tally.get(&100).unwrap().member, 100); - assert_eq!(tally.get(&100).unwrap().backers, vec![ - Backer { - member: 10 as u64, - stake: 100 as u32, - }, - Backer { - member: 10 as u64, - stake: 150 as u32, - }, - ]); - - assert_eq!(tally.get(&200).unwrap().member, 200); - assert_eq!(tally.get(&200).unwrap().backers, vec![ - Backer { - member: 10 as u64, - stake: 500 as u32, - }, - Backer { - member: 20 as u64, - stake: 200 as u32, - } - ]); - - assert_eq!(tally.get(&300).unwrap().member, 300); - assert_eq!(tally.get(&300).unwrap().backers, vec![ - Backer { - member: 30 as u64, - stake: 300 as u32, - }, - Backer { - member: 30 as u64, - stake: 400 as u32, - } - ]); - }); - } - - #[test] - fn filter_top_staked_applicants_should_work () { - with_externalities(&mut initial_test_ext(), || { - // filter_top_staked depends on order of applicants - >::put(vec![100, 200, 300]); - - { - let votes = mock_votes(vec![ - // (voter, stake[new], stake[transferred], applicant) - (10, 100, 0, 100), - (10, 150, 0, 100), - - (10, 500, 0, 200), - (20, 200, 0, 200), - - (30, 300, 0, 300), - (30, 400, 0, 300), - ]); - - let mut tally = Election::tally_votes(&votes); - assert_eq!(tally.len(), 3); - Election::filter_top_staked(&mut tally, 3); - assert_eq!(tally.len(), 3); - } - - { - let votes = mock_votes(vec![ - // (voter, stake[new], stake[transferred], applicant) - (10, 100, 0, 100), - (10, 150, 0, 100), - - (10, 500, 0, 200), - (20, 200, 0, 200), - - (30, 300, 0, 300), - (30, 400, 0, 300), - ]); - - let mut tally = Election::tally_votes(&votes); - assert_eq!(tally.len(), 3); - Election::filter_top_staked(&mut tally, 2); - assert_eq!(tally.len(), 2); - assert!(tally.get(&200).is_some()); - assert!(tally.get(&300).is_some()); - } - }); - } - - #[test] - fn drop_unelected_applicants_should_work () { - with_externalities(&mut initial_test_ext(), || { - >::put(vec![100, 200, 300]); - - Balances::set_free_balance(&100, 1000); Balances::set_reserved_balance(&100, 1000); - - >::insert(100, Stake { - new: 20 as u32, - transferred: 50 as u32, - }); - - save_transferable_stake(100, TransferableStake {seat:100, backing: 0}); - - let mut new_council: BTreeMap> = BTreeMap::new(); - new_council.insert(200 as u64, Seat{ member: 200 as u64, stake: 0 as u32, backers: vec![]}); - new_council.insert(300 as u64, Seat{ member: 300 as u64, stake: 0 as u32, backers: vec![]}); - - Election::drop_unelected_applicants(&new_council); - - // applicant dropped - assert_eq!(Election::applicants(), vec![200, 300]); - assert!(!>::exists(100)); - - // and refunded - assert_eq!(Election::transferable_stakes(100).seat, 150); - assert_eq!(Balances::free_balance(&100), 1020); - assert_eq!(Balances::reserved_balance(&100), 980); - }); - } - - - #[test] - fn refunding_voting_stakes_should_work () { - with_externalities(&mut initial_test_ext(), || { - // voters' balances - Balances::set_free_balance(&10, 1000); Balances::set_reserved_balance(&10, 5000); - Balances::set_free_balance(&20, 2000); Balances::set_reserved_balance(&20, 5000); - Balances::set_free_balance(&30, 3000); Balances::set_reserved_balance(&30, 5000); - - save_transferable_stake(10, TransferableStake {seat: 0, backing: 100}); - save_transferable_stake(20, TransferableStake {seat: 0, backing: 200}); - save_transferable_stake(30, TransferableStake {seat: 0, backing: 300}); - - let votes = mock_votes(vec![ - // (voter, stake[new], stake[transferred], applicant) - (10, 100, 20, 100), - (20, 200, 40, 100), - (30, 300, 60, 100), - - (10, 500, 70, 200), - (20, 600, 80, 200), - (30, 700, 90, 200), - - (10, 800, 100, 300), - (20, 900, 120, 300), - (30, 1000, 140, 300), - ]); - - let mut new_council: BTreeMap> = BTreeMap::new(); - new_council.insert(200 as u64, Seat{ member: 200 as u64, stake: 0 as u32, backers: vec![]}); - new_council.insert(300 as u64, Seat{ member: 300 as u64, stake: 0 as u32, backers: vec![]}); - - Election::refund_voting_stakes(&votes, &new_council); - - assert_eq!(Balances::free_balance(&10), 1100); assert_eq!(Balances::reserved_balance(&10), 4900); - assert_eq!(Balances::free_balance(&20), 2200); assert_eq!(Balances::reserved_balance(&20), 4800); - assert_eq!(Balances::free_balance(&30), 3300); assert_eq!(Balances::reserved_balance(&30), 4700); - - assert_eq!(Election::transferable_stakes(10).backing, 120); - assert_eq!(Election::transferable_stakes(20).backing, 240); - assert_eq!(Election::transferable_stakes(30).backing, 360); - }); - } - - #[test] - fn unlock_transferable_stakes_should_work () { - with_externalities(&mut initial_test_ext(), || { - >::put(vec![10,20,30]); - - Balances::set_free_balance(&10, 1000); Balances::set_reserved_balance(&10, 5000); - save_transferable_stake(10, TransferableStake {seat: 50, backing: 100}); - - Balances::set_free_balance(&20, 2000); Balances::set_reserved_balance(&20, 5000); - save_transferable_stake(20, TransferableStake {seat: 60, backing: 200}); - - Balances::set_free_balance(&30, 3000); Balances::set_reserved_balance(&30, 5000); - save_transferable_stake(30, TransferableStake {seat: 70, backing: 300}); - - Election::unlock_transferable_stakes(); - - assert_eq!(Balances::free_balance(&10), 1150); - assert_eq!(Balances::free_balance(&20), 2260); - assert_eq!(Balances::free_balance(&30), 3370); - }); - } - - #[test] - fn council_elected_hook_should_work() { - with_externalities(&mut initial_test_ext(), || { - - let mut new_council: BTreeMap> = BTreeMap::new(); - new_council.insert(200 as u64, Seat{ member: 200 as u64, stake: 10 as u32, backers: vec![]}); - new_council.insert(300 as u64, Seat{ member: 300 as u64, stake: 20 as u32, backers: vec![]}); - - assert_eq!(Council::active_council().len(), 0); - - let new_council = new_council.into_iter().map(|(_, seat)| seat.clone()).collect(); - ::CouncilElected::council_elected(new_council, 10); - - assert_eq!(Council::active_council().len(), 2); - }); - } - - #[test] - fn simulation() { - with_externalities(&mut initial_test_ext(), || { - assert_eq!(Council::active_council().len(), 0); - assert!(Election::stage().is_none()); - - >::put(10); - >::put(50); - >::put(10); - >::put(10); - >::put(10); - >::put(20); - >::put(100); - >::put(10); - - for i in 1..30 { - Balances::set_free_balance(&(i as u64), 50000); - } - - System::set_block_number(1); - assert_ok!(Election::start_election(vec![])); - - for i in 1..20 { - if i < 21 { - assert!(Election::apply(Origin::signed(i), 150).is_ok()); - } else { - assert!(Election::apply(Origin::signed(i + 1000), 150).is_err()); // not enough free balance - assert!(Election::apply(Origin::signed(i), 20).is_err()); // not enough minimum stake - } - } - - let n = 1 + Election::announcing_period(); - System::set_block_number(n); - Election::on_finalise(n); - - for i in 1..20 { - assert!(Election::vote(Origin::signed(i), make_commitment_for_applicant(i, &mut vec![40u8]), 100).is_ok()); - - assert!(Election::vote(Origin::signed(i), make_commitment_for_applicant(i, &mut vec![41u8]), 100).is_ok()); - - assert!(Election::vote(Origin::signed(i), make_commitment_for_applicant(i + 1000, &mut vec![42u8]), 100).is_ok()); - } - - let n = n + Election::voting_period(); - System::set_block_number(n); - Election::on_finalise(n); - - for i in 1..20 { - assert!(Election::reveal(Origin::signed(i), make_commitment_for_applicant(i, &mut vec![40u8]), i, vec![40u8]).is_ok()); - //wrong salt - assert!(Election::reveal(Origin::signed(i), make_commitment_for_applicant(i, &mut vec![41u8]), i, vec![]).is_err()); - //vote not for valid applicant - assert!(Election::reveal(Origin::signed(i), make_commitment_for_applicant(i + 1000, &mut vec![42u8]), i + 1000, vec![42u8]).is_err()); - } - - let n = n + Election::revealing_period(); - System::set_block_number(n); - Election::on_finalise(n); - - assert_eq!(Council::active_council().len(), Election::council_size_usize()); - for (i, seat) in Council::active_council().iter().enumerate() { - assert_eq!(seat.member, (i + 1) as u64); - } - assert!(Election::stage().is_none()); - - // When council term ends.. start a new election. - assert_ok!(Election::start_election(vec![])); - }); - } -} \ No newline at end of file diff --git a/runtime/src/governance/mock.rs b/runtime/src/governance/mock.rs deleted file mode 100644 index 5cb193e..0000000 --- a/runtime/src/governance/mock.rs +++ /dev/null @@ -1,97 +0,0 @@ -#![cfg(test)] - -use rstd::prelude::*; -pub use super::{election, council, proposals, GovernanceCurrency}; -pub use system; - -pub use primitives::{H256, Blake2Hasher}; -pub use runtime_primitives::{ - BuildStorage, - traits::{BlakeTwo256, OnFinalise, IdentityLookup}, - testing::{Digest, DigestItem, Header, UintAuthorityId} -}; - -use srml_support::impl_outer_origin; - -impl_outer_origin! { - pub enum Origin for Test {} -} - -// For testing the module, we construct most of a mock runtime. This means -// first constructing a configuration type (`Test`) which `impl`s each of the -// configuration traits of modules we want to use. -#[derive(Clone, Eq, PartialEq)] -pub struct Test; -impl system::Trait for Test { - type Origin = Origin; - type Index = u64; - type BlockNumber = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type Digest = Digest; - type AccountId = u64; - type Header = Header; - type Event = (); - type Log = DigestItem; - type Lookup = IdentityLookup; -} -impl timestamp::Trait for Test { - type Moment = u64; - type OnTimestampSet = (); -} -impl consensus::Trait for Test { - type SessionKey = UintAuthorityId; - type InherentOfflineReport = (); - type Log = DigestItem; -} -impl council::Trait for Test { - type Event = (); - - type CouncilTermEnded = (Election,); -} -impl election::Trait for Test { - type Event = (); - - type CouncilElected = (Council,); -} -impl proposals::Trait for Test { - type Event = (); -} -impl balances::Trait for Test { - type Event = (); - - /// The balance of an account. - type Balance = u32; - - /// A function which is invoked when the free-balance has fallen below the existential deposit and - /// has been reduced to zero. - /// - /// Gives a chance to clean up resources associated with the given account. - type OnFreeBalanceZero = (); - - /// Handler for when a new account is created. - type OnNewAccount = (); - - /// A function that returns true iff a given account can transfer its funds to another account. - type EnsureAccountLiquid = (); -} - -impl GovernanceCurrency for Test { - type Currency = balances::Module; -} - -// TODO add a Hook type to capture TriggerElection and CouncilElected hooks - -// This function basically just builds a genesis storage key/value store according to -// our desired mockup. -pub fn initial_test_ext() -> runtime_io::TestExternalities { - let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; - - runtime_io::TestExternalities::new(t) -} - -pub type Election = election::Module; -pub type Council = council::Module; -pub type Proposals = proposals::Module; -pub type System = system::Module; -pub type Balances = balances::Module; diff --git a/runtime/src/governance/mod.rs b/runtime/src/governance/mod.rs deleted file mode 100644 index 544fa97..0000000 --- a/runtime/src/governance/mod.rs +++ /dev/null @@ -1,19 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use srml_support::traits::{Currency, ArithmeticType}; -use system; - -pub mod election; -pub mod council; -pub mod proposals; - -mod stake; -mod sealed_vote; - -pub trait GovernanceCurrency: system::Trait + Sized { - type Currency: ArithmeticType + Currency<::AccountId, Balance=BalanceOf>; -} - -pub type BalanceOf = <::Currency as ArithmeticType>::Type; - -mod mock; \ No newline at end of file diff --git a/runtime/src/governance/proposals.rs b/runtime/src/governance/proposals.rs deleted file mode 100644 index 2a08fe1..0000000 --- a/runtime/src/governance/proposals.rs +++ /dev/null @@ -1,1390 +0,0 @@ -use srml_support::{StorageValue, StorageMap, dispatch::Result, decl_module, decl_event, decl_storage, ensure}; -use srml_support::traits::{Currency}; -use primitives::{storage::well_known_keys}; -use runtime_primitives::traits::{As, Hash, Zero}; -use runtime_io::print; -use {balances, system::{self, ensure_signed}}; -use rstd::prelude::*; - -use super::council; -pub use super::{ GovernanceCurrency, BalanceOf }; - -const DEFAULT_APPROVAL_QUORUM: u32 = 60; -const DEFAULT_MIN_STAKE: u64 = 100; -const DEFAULT_CANCELLATION_FEE: u64 = 5; -const DEFAULT_REJECTION_FEE: u64 = 10; - -const DEFAULT_VOTING_PERIOD_IN_DAYS: u64 = 10; -const DEFAULT_VOTING_PERIOD_IN_SECS: u64 = DEFAULT_VOTING_PERIOD_IN_DAYS * 24 * 60 * 60; - -const DEFAULT_NAME_MAX_LEN: u32 = 100; -const DEFAULT_DESCRIPTION_MAX_LEN: u32 = 10_000; -const DEFAULT_WASM_CODE_MAX_LEN: u32 = 2_000_000; - -const MSG_STAKE_IS_TOO_LOW: &str = "Stake is too low"; -const MSG_STAKE_IS_GREATER_THAN_BALANCE: &str = "Balance is too low to be staked"; -const MSG_ONLY_MEMBERS_CAN_PROPOSE: &str = "Only members can make a proposal"; -const MSG_ONLY_COUNCILORS_CAN_VOTE: &str = "Only councilors can vote on proposals"; -const MSG_PROPOSAL_NOT_FOUND: &str = "This proposal does not exist"; -const MSG_PROPOSAL_EXPIRED: &str = "Voting period is expired for this proposal"; -const MSG_PROPOSAL_FINALIZED: &str = "Proposal is finalized already"; -const MSG_YOU_ALREADY_VOTED: &str = "You have already voted on this proposal"; -const MSG_YOU_DONT_OWN_THIS_PROPOSAL: &str = "You do not own this proposal"; -const MSG_PROPOSAL_STATUS_ALREADY_UPDATED: &str = "Proposal status has been updated already"; -const MSG_EMPTY_NAME_PROVIDED: &str = "Proposal cannot have an empty name"; -const MSG_EMPTY_DESCRIPTION_PROVIDED: &str = "Proposal cannot have an empty description"; -const MSG_EMPTY_WASM_CODE_PROVIDED: &str = "Proposal cannot have an empty WASM code"; -const MSG_TOO_LONG_NAME: &str = "Name is too long"; -const MSG_TOO_LONG_DESCRIPTION: &str = "Description is too long"; -const MSG_TOO_LONG_WASM_CODE: &str = "WASM code is too big"; - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Encode, Decode, Clone, PartialEq, Eq)] -pub enum ProposalStatus { - /// A new proposal that is available for voting. - Active, - /// If cancelled by a proposer. - Cancelled, - /// Not enough votes and voting period expired. - Expired, - /// To clear the quorum requirement, the percentage of council members with revealed votes - /// must be no less than the quorum value for the given proposal type. - Approved, - Rejected, - /// If all revealed votes are slashes, then the proposal is rejected, - /// and the proposal stake is slashed. - Slashed, -} - -impl Default for ProposalStatus { - fn default() -> Self { - ProposalStatus::Active - } -} - -use self::ProposalStatus::*; - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Encode, Decode, Clone, PartialEq, Eq)] -pub enum VoteKind { - /// Signals presence, but unwillingness to cast judgment on substance of vote. - Abstain, - /// Pass, an alternative or a ranking, for binary, multiple choice - /// and ranked choice propositions, respectively. - Approve, - /// Against proposal. - Reject, - /// Against the proposal, and slash proposal stake. - Slash, -} - -impl Default for VoteKind { - fn default() -> Self { - VoteKind::Abstain - } -} - -use self::VoteKind::*; - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Encode, Decode, Default, Clone, PartialEq, Eq)] -/// Proposal for node runtime update. -pub struct RuntimeUpgradeProposal { - id: u32, - proposer: AccountId, - stake: Balance, - name: Vec, - description: Vec, - wasm_hash: Hash, - proposed_at: BlockNumber, - status: ProposalStatus, -} - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[derive(Encode, Decode, Default, Clone, PartialEq, Eq)] -pub struct TallyResult { - proposal_id: u32, - abstentions: u32, - approvals: u32, - rejections: u32, - slashes: u32, - status: ProposalStatus, - finalized_at: BlockNumber, -} - -pub trait Trait: timestamp::Trait + council::Trait + GovernanceCurrency { - /// The overarching event type. - type Event: From> + Into<::Event>; -} - -decl_event!( - pub enum Event - where - ::Hash, - ::BlockNumber, - ::AccountId - { - // New events - - /// Params: - /// * Account id of a member who proposed. - /// * Id of a newly created proposal after it was saved in storage. - ProposalCreated(AccountId, u32), - ProposalCanceled(AccountId, u32), - ProposalStatusUpdated(u32, ProposalStatus), - - /// Params: - /// * Voter - an account id of a councilor. - /// * Id of a proposal. - /// * Kind of vote. - Voted(AccountId, u32, VoteKind), - - TallyFinalized(TallyResult), - - /// * Hash - hash of wasm code of runtime update. - RuntimeUpdated(u32, Hash), - - /// Root cancelled proposal - ProposalVetoed(u32), - } -); - -decl_storage! { - trait Store for Module as Proposals { - - // Parameters (defaut values could be exported to config): - - // TODO rename 'approval_quorum' -> 'quorum_percent' ?! - /// A percent (up to 100) of the council participants - /// that must vote affirmatively in order to pass. - ApprovalQuorum get(approval_quorum) config(): u32 = DEFAULT_APPROVAL_QUORUM; - - /// Minimum amount of a balance to be staked in order to make a proposal. - MinStake get(min_stake) config(): BalanceOf = - BalanceOf::::sa(DEFAULT_MIN_STAKE); - - /// A fee to be slashed (burn) in case a proposer decides to cancel a proposal. - CancellationFee get(cancellation_fee) config(): BalanceOf = - BalanceOf::::sa(DEFAULT_CANCELLATION_FEE); - - /// A fee to be slashed (burn) in case a proposal was rejected. - RejectionFee get(rejection_fee) config(): BalanceOf = - BalanceOf::::sa(DEFAULT_REJECTION_FEE); - - /// Max duration of proposal in blocks until it will be expired if not enough votes. - VotingPeriod get(voting_period) config(): T::BlockNumber = - T::BlockNumber::sa(DEFAULT_VOTING_PERIOD_IN_SECS / - >::block_period().as_()); - - NameMaxLen get(name_max_len) config(): u32 = DEFAULT_NAME_MAX_LEN; - DescriptionMaxLen get(description_max_len) config(): u32 = DEFAULT_DESCRIPTION_MAX_LEN; - WasmCodeMaxLen get(wasm_code_max_len) config(): u32 = DEFAULT_WASM_CODE_MAX_LEN; - - // Persistent state (always relevant, changes constantly): - - /// Count of all proposals that have been created. - ProposalCount get(proposal_count): u32; - - /// Get proposal details by its id. - Proposals get(proposals): map u32 => RuntimeUpgradeProposal, T::BlockNumber, T::Hash>; - - /// Ids of proposals that are open for voting (have not been finalized yet). - ActiveProposalIds get(active_proposal_ids): Vec = vec![]; - - /// Get WASM code of runtime upgrade by hash of its content. - WasmCodeByHash get(wasm_code_by_hash): map T::Hash => Vec; - - VotesByProposal get(votes_by_proposal): map u32 => Vec<(T::AccountId, VoteKind)>; - - // TODO Rethink: this can be replaced with: votes_by_proposal.find(|vote| vote.0 == proposer) - VoteByAccountAndProposal get(vote_by_account_and_proposal): map (T::AccountId, u32) => VoteKind; - - TallyResults get(tally_results): map u32 => TallyResult; - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - - fn deposit_event() = default; - - /// Use next code to create a proposal from Substrate UI's web console: - /// ```js - /// post({ sender: runtime.indices.ss58Decode('F7Gh'), call: calls.proposals.createProposal(2500, "0x123", "0x456", "0x789") }).tie(console.log) - /// ``` - fn create_proposal( - origin, - stake: BalanceOf, - name: Vec, - description: Vec, - wasm_code: Vec - ) { - - let proposer = ensure_signed(origin)?; - ensure!(Self::is_member(proposer.clone()), MSG_ONLY_MEMBERS_CAN_PROPOSE); - ensure!(stake >= Self::min_stake(), MSG_STAKE_IS_TOO_LOW); - - ensure!(!name.is_empty(), MSG_EMPTY_NAME_PROVIDED); - ensure!(name.len() as u32 <= Self::name_max_len(), MSG_TOO_LONG_NAME); - - ensure!(!description.is_empty(), MSG_EMPTY_DESCRIPTION_PROVIDED); - ensure!(description.len() as u32 <= Self::description_max_len(), MSG_TOO_LONG_DESCRIPTION); - - ensure!(!wasm_code.is_empty(), MSG_EMPTY_WASM_CODE_PROVIDED); - ensure!(wasm_code.len() as u32 <= Self::wasm_code_max_len(), MSG_TOO_LONG_WASM_CODE); - - // Lock proposer's stake: - T::Currency::reserve(&proposer, stake) - .map_err(|_| MSG_STAKE_IS_GREATER_THAN_BALANCE)?; - - let proposal_id = Self::proposal_count() + 1; - >::put(proposal_id); - - // See in substrate repo @ srml/contract/src/wasm/code_cache.rs:73 - let wasm_hash = T::Hashing::hash(&wasm_code); - - let new_proposal = RuntimeUpgradeProposal { - id: proposal_id, - proposer: proposer.clone(), - stake, - name, - description, - wasm_hash, - proposed_at: Self::current_block(), - status: Active - }; - - if !>::exists(wasm_hash) { - >::insert(wasm_hash, wasm_code); - } - >::insert(proposal_id, new_proposal); - >::mutate(|ids| ids.push(proposal_id)); - Self::deposit_event(RawEvent::ProposalCreated(proposer.clone(), proposal_id)); - - // Auto-vote with Approve if proposer is a councilor: - if Self::is_councilor(&proposer) { - Self::_process_vote(proposer, proposal_id, Approve)?; - } - } - - /// Use next code to create a proposal from Substrate UI's web console: - /// ```js - /// post({ sender: runtime.indices.ss58Decode('F7Gh'), call: calls.proposals.voteOnProposal(1, { option: "Approve", _type: "VoteKind" }) }).tie(console.log) - /// ``` - fn vote_on_proposal(origin, proposal_id: u32, vote: VoteKind) { - let voter = ensure_signed(origin)?; - ensure!(Self::is_councilor(&voter), MSG_ONLY_COUNCILORS_CAN_VOTE); - - ensure!(>::exists(proposal_id), MSG_PROPOSAL_NOT_FOUND); - let proposal = Self::proposals(proposal_id); - - ensure!(proposal.status == Active, MSG_PROPOSAL_FINALIZED); - - let not_expired = !Self::is_voting_period_expired(proposal.proposed_at); - ensure!(not_expired, MSG_PROPOSAL_EXPIRED); - - let did_not_vote_before = !>::exists((voter.clone(), proposal_id)); - ensure!(did_not_vote_before, MSG_YOU_ALREADY_VOTED); - - Self::_process_vote(voter, proposal_id, vote)?; - } - - // TODO add 'reason' why a proposer wants to cancel (UX + feedback)? - /// Cancel a proposal by its original proposer. Some fee will be withdrawn from his balance. - fn cancel_proposal(origin, proposal_id: u32) { - let proposer = ensure_signed(origin)?; - - ensure!(>::exists(proposal_id), MSG_PROPOSAL_NOT_FOUND); - let proposal = Self::proposals(proposal_id); - - ensure!(proposer == proposal.proposer, MSG_YOU_DONT_OWN_THIS_PROPOSAL); - ensure!(proposal.status == Active, MSG_PROPOSAL_FINALIZED); - - // Spend some minimum fee on proposer's balance for canceling a proposal - let fee = Self::cancellation_fee(); - let _ = T::Currency::slash_reserved(&proposer, fee); - - // Return unspent part of remaining staked deposit (after taking some fee) - let left_stake = proposal.stake - fee; - let _ = T::Currency::unreserve(&proposer, left_stake); - - Self::_update_proposal_status(proposal_id, Cancelled)?; - Self::deposit_event(RawEvent::ProposalCanceled(proposer, proposal_id)); - } - - // Called on every block - fn on_finalise(n: T::BlockNumber) { - if let Err(e) = Self::end_block(n) { - print(e); - } - } - - /// Cancel a proposal and return stake without slashing - fn veto_proposal(proposal_id: u32) { - ensure!(>::exists(proposal_id), MSG_PROPOSAL_NOT_FOUND); - let proposal = Self::proposals(proposal_id); - ensure!(proposal.status == Active, MSG_PROPOSAL_FINALIZED); - - let _ = T::Currency::unreserve(&proposal.proposer, proposal.stake); - - Self::_update_proposal_status(proposal_id, Cancelled)?; - - Self::deposit_event(RawEvent::ProposalVetoed(proposal_id)); - } - - fn set_approval_quorum(new_value: u32) { - ensure!(new_value > 0, "approval quorom must be greater than zero"); - >::put(new_value); - } - } -} - -impl Module { - - fn current_block() -> T::BlockNumber { - >::block_number() - } - - // TODO This method should be moved to Membership module once it's created. - fn is_member(sender: T::AccountId) -> bool { - !T::Currency::free_balance(&sender).is_zero() - } - - fn is_councilor(sender: &T::AccountId) -> bool { - >::is_councilor(sender) - } - - fn councilors_count() -> u32 { - >::active_council().len() as u32 - } - - fn approval_quorum_seats() -> u32 { - (Self::approval_quorum() * Self::councilors_count()) / 100 - } - - fn is_voting_period_expired(proposed_at: T::BlockNumber) -> bool { - Self::current_block() >= proposed_at + Self::voting_period() - } - - fn _process_vote(voter: T::AccountId, proposal_id: u32, vote: VoteKind) -> Result { - let new_vote = (voter.clone(), vote.clone()); - if >::exists(proposal_id) { - // Append a new vote to other votes on this proposal: - >::mutate(proposal_id, |votes| votes.push(new_vote)); - } else { - // This is the first vote on this proposal: - >::insert(proposal_id, vec![new_vote]); - } - >::insert((voter.clone(), proposal_id), &vote); - Self::deposit_event(RawEvent::Voted(voter, proposal_id, vote)); - Ok(()) - } - - fn end_block(now: T::BlockNumber) -> Result { - - // TODO refactor this method - - // TODO iterate over not expired proposals and tally - - Self::tally()?; - // TODO approve or reject a proposal - - Ok(()) - } - - /// Get the voters for the current proposal. - pub fn tally(/* proposal_id: u32 */) -> Result { - - let councilors: u32 = Self::councilors_count(); - let quorum: u32 = Self::approval_quorum_seats(); - - for &proposal_id in Self::active_proposal_ids().iter() { - let votes = Self::votes_by_proposal(proposal_id); - let mut abstentions: u32 = 0; - let mut approvals: u32 = 0; - let mut rejections: u32 = 0; - let mut slashes: u32 = 0; - - for (_, vote) in votes.iter() { - match vote { - Abstain => abstentions += 1, - Approve => approvals += 1, - Reject => rejections += 1, - Slash => slashes += 1, - } - } - - let proposal = Self::proposals(proposal_id); - let is_expired = Self::is_voting_period_expired(proposal.proposed_at); - - // We need to check that the council is not empty because otherwise, - // if there is no votes on a proposal it will be counted as if - // all 100% (zero) councilors voted on the proposal and should be approved. - - let non_empty_council = councilors > 0; - let all_councilors_voted = non_empty_council && votes.len() as u32 == councilors; - let all_councilors_slashed = non_empty_council && slashes == councilors; - let quorum_reached = quorum > 0 && approvals >= quorum; - - // Don't approve a proposal right after quorum reached - // if not all councilors casted their votes. - // Instead let other councilors cast their vote - // up until the proposal's expired. - - let new_status: Option = - if all_councilors_slashed { - Some(Slashed) - } else if all_councilors_voted { - if quorum_reached { - Some(Approved) - } else { - Some(Rejected) - } - } else if is_expired { - if quorum_reached { - Some(Approved) - } else { - // Proposal has been expired and quorum not reached. - Some(Expired) - } - } else { - // Councilors still have time to vote on this proposal. - None - }; - - // TODO move next block outside of tally to 'end_block' - if let Some(status) = new_status { - Self::_update_proposal_status(proposal_id, status.clone())?; - let tally_result = TallyResult { - proposal_id, - abstentions, - approvals, - rejections, - slashes, - status, - finalized_at: Self::current_block(), - }; - >::insert(proposal_id, &tally_result); - Self::deposit_event(RawEvent::TallyFinalized(tally_result)); - } - } - - Ok(()) - } - - /// Updates proposal status and removes proposal from active ids. - fn _update_proposal_status(proposal_id: u32, new_status: ProposalStatus) -> Result { - let all_active_ids = Self::active_proposal_ids(); - let all_len = all_active_ids.len(); - let other_active_ids: Vec = all_active_ids - .into_iter() - .filter(|&id| id != proposal_id) - .collect(); - - let not_found_in_active = other_active_ids.len() == all_len; - if not_found_in_active { - // Seems like this proposal's status has been updated and removed from active. - Err(MSG_PROPOSAL_STATUS_ALREADY_UPDATED) - } else { - let pid = proposal_id.clone(); - match new_status { - Slashed => Self::_slash_proposal(pid)?, - Rejected | Expired => Self::_reject_proposal(pid)?, - Approved => Self::_approve_proposal(pid)?, - Active | Cancelled => { /* nothing */ }, - } - >::put(other_active_ids); - >::mutate(proposal_id, |p| p.status = new_status.clone()); - Self::deposit_event(RawEvent::ProposalStatusUpdated(proposal_id, new_status)); - Ok(()) - } - } - - /// Slash a proposal. The staked deposit will be slashed. - fn _slash_proposal(proposal_id: u32) -> Result { - let proposal = Self::proposals(proposal_id); - - // Slash proposer's stake: - let _ = T::Currency::slash_reserved(&proposal.proposer, proposal.stake); - - Ok(()) - } - - /// Reject a proposal. The staked deposit will be returned to a proposer. - fn _reject_proposal(proposal_id: u32) -> Result { - let proposal = Self::proposals(proposal_id); - let proposer = proposal.proposer; - - // Spend some minimum fee on proposer's balance to prevent spamming attacks: - let fee = Self::rejection_fee(); - let _ = T::Currency::slash_reserved(&proposer, fee); - - // Return unspent part of remaining staked deposit (after taking some fee): - let left_stake = proposal.stake - fee; - let _ = T::Currency::unreserve(&proposer, left_stake); - - Ok(()) - } - - /// Approve a proposal. The staked deposit will be returned. - fn _approve_proposal(proposal_id: u32) -> Result { - let proposal = Self::proposals(proposal_id); - let wasm_code = Self::wasm_code_by_hash(proposal.wasm_hash); - - // Return staked deposit to proposer: - let _ = T::Currency::unreserve(&proposal.proposer, proposal.stake); - - // Update wasm code of node's runtime: - >::set_code(wasm_code)?; - - Self::deposit_event(RawEvent::RuntimeUpdated(proposal_id, proposal.wasm_hash)); - - Ok(()) - } -} - -#[cfg(test)] -mod tests { - - use super::*; - use runtime_io::with_externalities; - use primitives::{H256, Blake2Hasher}; - // The testing primitives are very useful for avoiding having to work with signatures - // or public keys. `u64` is used as the `AccountId` and no `Signature`s are requried. - use runtime_primitives::{ - BuildStorage, - traits::{BlakeTwo256, OnFinalise, IdentityLookup}, - testing::{Digest, DigestItem, Header, UintAuthorityId} - }; - use system::{EventRecord, Phase}; - use srml_support::*; - - impl_outer_origin! { - pub enum Origin for Test {} - } - - // For testing the module, we construct most of a mock runtime. This means - // first constructing a configuration type (`Test`) which `impl`s each of the - // configuration traits of modules we want to use. - #[derive(Clone, Eq, PartialEq)] - pub struct Test; - - impl consensus::Trait for Test { - type SessionKey = UintAuthorityId; - type InherentOfflineReport = (); - type Log = DigestItem; - } - - impl system::Trait for Test { - type Origin = Origin; - type Index = u64; - type BlockNumber = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type Digest = Digest; - type AccountId = u64; - type Lookup = IdentityLookup; - type Header = Header; - type Event = (); - type Log = DigestItem; - } - - impl balances::Trait for Test { - type Balance = u64; - type OnFreeBalanceZero = (); - type OnNewAccount = (); - type EnsureAccountLiquid = (); - type Event = (); - } - - impl timestamp::Trait for Test { - type Moment = u64; - type OnTimestampSet = (); - } - - impl council::Trait for Test { - type Event = (); - type CouncilTermEnded = (); - } - - impl GovernanceCurrency for Test { - type Currency = balances::Module; - } - - impl Trait for Test { - type Event = (); - } - - type System = system::Module; - type Balances = balances::Module; - type Proposals = Module; - - const COUNCILOR1: u64 = 1; - const COUNCILOR2: u64 = 2; - const COUNCILOR3: u64 = 3; - const COUNCILOR4: u64 = 4; - const COUNCILOR5: u64 = 5; - - const PROPOSER1: u64 = 11; - const PROPOSER2: u64 = 12; - - const NOT_COUNCILOR: u64 = 22; - - const ALL_COUNCILORS: [u64; 5] = [ - COUNCILOR1, - COUNCILOR2, - COUNCILOR3, - COUNCILOR4, - COUNCILOR5 - ]; - - // TODO Figure out how to test Events in test... (low priority) - // mod proposals { - // pub use ::Event; - // } - // impl_outer_event!{ - // pub enum TestEvent for Test { - // balances,system,proposals, - // } - // } - - // This function basically just builds a genesis storage key/value store according to - // our desired mockup. - fn new_test_ext() -> runtime_io::TestExternalities { - let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; - // We use default for brevity, but you can configure as desired if needed. - t.extend(balances::GenesisConfig::::default().build_storage().unwrap().0); - - let council_mock: council::Seats = - ALL_COUNCILORS.iter().map(|&c| council::Seat { - member: c, - stake: 0u64, - backers: vec![], - }).collect(); - - t.extend(council::GenesisConfig::{ - active_council: council_mock, - term_ends_at: 0, - }.build_storage().unwrap().0); - - // t.extend(GenesisConfig::{ - // // Here we can override defaults. - // }.build_storage().unwrap().0); - - t.into() - } - - /// A shortcut to get minimum stake in tests. - fn min_stake() -> u64 { - Proposals::min_stake() - } - - /// A shortcut to get cancellation fee in tests. - fn cancellation_fee() -> u64 { - Proposals::cancellation_fee() - } - - /// A shortcut to get rejection fee in tests. - fn rejection_fee() -> u64 { - Proposals::rejection_fee() - } - - /// Initial balance of Proposer 1. - fn initial_balance() -> u64 { - (min_stake() as f64 * 2.5) as u64 - } - - fn name() -> Vec { - b"Proposal Name".to_vec() - } - - fn description() -> Vec { - b"Proposal Description".to_vec() - } - - fn wasm_code() -> Vec { - b"Proposal Wasm Code".to_vec() - } - - fn _create_default_proposal() -> Result { - _create_proposal(None, None, None, None, None) - } - - fn _create_proposal( - origin: Option, - stake: Option, - name: Option>, - description: Option>, - wasm_code: Option> - ) -> Result { - Proposals::create_proposal( - Origin::signed(origin.unwrap_or(PROPOSER1)), - stake.unwrap_or(min_stake()), - name.unwrap_or(self::name()), - description.unwrap_or(self::description()), - wasm_code.unwrap_or(self::wasm_code()) - ) - } - - fn get_runtime_code() -> Option> { - storage::unhashed::get_raw(well_known_keys::CODE) - } - - macro_rules! assert_runtime_code_empty { - () => { assert_eq!(get_runtime_code(), None) } - } - - macro_rules! assert_runtime_code { - ($code:expr) => { assert_eq!(get_runtime_code(), Some($code)) } - } - - #[test] - fn check_default_values() { - with_externalities(&mut new_test_ext(), || { - assert_eq!(Proposals::approval_quorum(), DEFAULT_APPROVAL_QUORUM); - assert_eq!(Proposals::min_stake(), DEFAULT_MIN_STAKE); - assert_eq!(Proposals::cancellation_fee(), DEFAULT_CANCELLATION_FEE); - assert_eq!(Proposals::rejection_fee(), DEFAULT_REJECTION_FEE); - assert_eq!(Proposals::name_max_len(), DEFAULT_NAME_MAX_LEN); - assert_eq!(Proposals::description_max_len(), DEFAULT_DESCRIPTION_MAX_LEN); - assert_eq!(Proposals::wasm_code_max_len(), DEFAULT_WASM_CODE_MAX_LEN); - assert_eq!(Proposals::proposal_count(), 0); - assert!(Proposals::active_proposal_ids().is_empty()); - }); - } - - #[test] - fn member_create_proposal() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - assert_eq!(Proposals::active_proposal_ids().len(), 1); - assert_eq!(Proposals::active_proposal_ids()[0], 1); - - let wasm_hash = BlakeTwo256::hash(&wasm_code()); - let expected_proposal = RuntimeUpgradeProposal { - id: 1, - proposer: PROPOSER1, - stake: min_stake(), - name: name(), - description: description(), - wasm_hash, - proposed_at: 1, - status: Active - }; - assert_eq!(Proposals::proposals(1), expected_proposal); - - // Check that stake amount has been locked on proposer's balance: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance() - min_stake()); - assert_eq!(Balances::reserved_balance(PROPOSER1), min_stake()); - - // TODO expect event ProposalCreated(AccountId, u32) - }); - } - - #[test] - fn not_member_cannot_create_proposal() { - with_externalities(&mut new_test_ext(), || { - // In this test a proposer has an empty balance - // thus he is not considered as a member. - assert_eq!(_create_default_proposal(), - Err(MSG_ONLY_MEMBERS_CAN_PROPOSE)); - }); - } - - #[test] - fn cannot_create_proposal_with_small_stake() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_eq!(_create_proposal( - None, Some(min_stake() - 1), None, None, None), - Err(MSG_STAKE_IS_TOO_LOW)); - - // Check that balances remain unchanged afer a failed attempt to create a proposal: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - }); - } - - #[test] - fn cannot_create_proposal_when_stake_is_greater_than_balance() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_eq!(_create_proposal( - None, Some(initial_balance() + 1), None, None, None), - Err(MSG_STAKE_IS_GREATER_THAN_BALANCE)); - - // Check that balances remain unchanged afer a failed attempt to create a proposal: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - }); - } - - #[test] - fn cannot_create_proposal_with_empty_values() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - // Empty name: - assert_eq!(_create_proposal( - None, None, Some(vec![]), None, None), - Err(MSG_EMPTY_NAME_PROVIDED)); - - // Empty description: - assert_eq!(_create_proposal( - None, None, None, Some(vec![]), None), - Err(MSG_EMPTY_DESCRIPTION_PROVIDED)); - - // Empty WASM code: - assert_eq!(_create_proposal( - None, None, None, None, Some(vec![])), - Err(MSG_EMPTY_WASM_CODE_PROVIDED)); - }); - } - - #[test] - fn cannot_create_proposal_with_too_long_values() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - // Too long name: - assert_eq!(_create_proposal( - None, None, Some(too_long_name()), None, None), - Err(MSG_TOO_LONG_NAME)); - - // Too long description: - assert_eq!(_create_proposal( - None, None, None, Some(too_long_description()), None), - Err(MSG_TOO_LONG_DESCRIPTION)); - - // Too long WASM code: - assert_eq!(_create_proposal( - None, None, None, None, Some(too_long_wasm_code())), - Err(MSG_TOO_LONG_WASM_CODE)); - }); - } - - fn too_long_name() -> Vec { - vec![65; Proposals::name_max_len() as usize + 1] - } - - fn too_long_description() -> Vec { - vec![65; Proposals::description_max_len() as usize + 1] - } - - fn too_long_wasm_code() -> Vec { - vec![65; Proposals::wasm_code_max_len() as usize + 1] - } - - // ------------------------------------------------------------------- - // Cancellation - - #[test] - fn owner_cancel_proposal() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - assert_ok!(Proposals::cancel_proposal(Origin::signed(PROPOSER1), 1)); - assert_eq!(Proposals::proposals(1).status, Cancelled); - assert!(Proposals::active_proposal_ids().is_empty()); - - // Check that proposer's balance reduced by cancellation fee and other part of his stake returned to his balance: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance() - cancellation_fee()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalCancelled(AccountId, u32) - }); - } - - #[test] - fn owner_cannot_cancel_proposal_if_its_finalized() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - assert_ok!(Proposals::cancel_proposal(Origin::signed(PROPOSER1), 1)); - assert_eq!(Proposals::proposals(1).status, Cancelled); - - // Get balances updated after cancelling a proposal: - let updated_free_balance = Balances::free_balance(PROPOSER1); - let updated_reserved_balance = Balances::reserved_balance(PROPOSER1); - - assert_eq!(Proposals::cancel_proposal(Origin::signed(PROPOSER1), 1), - Err(MSG_PROPOSAL_FINALIZED)); - - // Check that proposer's balance and locked stake haven't been changed: - assert_eq!(Balances::free_balance(PROPOSER1), updated_free_balance); - assert_eq!(Balances::reserved_balance(PROPOSER1), updated_reserved_balance); - }); - } - - #[test] - fn not_owner_cannot_cancel_proposal() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::set_free_balance(&PROPOSER2, initial_balance()); - Balances::increase_total_stake_by(initial_balance() * 2); - assert_ok!(_create_default_proposal()); - assert_eq!(Proposals::cancel_proposal(Origin::signed(PROPOSER2), 1), - Err(MSG_YOU_DONT_OWN_THIS_PROPOSAL)); - }); - } - - // ------------------------------------------------------------------- - // Voting - - #[test] - fn councilor_vote_on_proposal() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - assert_ok!(_create_default_proposal()); - - assert_ok!(Proposals::vote_on_proposal( - Origin::signed(COUNCILOR1), 1, Approve)); - - // Check that a vote has been saved: - assert_eq!(Proposals::votes_by_proposal(1), vec![(COUNCILOR1, Approve)]); - assert_eq!(Proposals::vote_by_account_and_proposal((COUNCILOR1, 1)), Approve); - - // TODO expect event Voted(PROPOSER1, 1, Approve) - }); - } - - #[test] - fn councilor_cannot_vote_on_proposal_twice() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - assert_ok!(_create_default_proposal()); - - assert_ok!(Proposals::vote_on_proposal( - Origin::signed(COUNCILOR1), 1, Approve)); - assert_eq!(Proposals::vote_on_proposal( - Origin::signed(COUNCILOR1), 1, Approve), - Err(MSG_YOU_ALREADY_VOTED)); - }); - } - - #[test] - fn autovote_with_approve_when_councilor_creates_proposal() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&COUNCILOR1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - assert_ok!(_create_proposal( - Some(COUNCILOR1), None, None, None, None - )); - - // Check that a vote has been sent automatically, - // such as the proposer is a councilor: - assert_eq!(Proposals::votes_by_proposal(1), vec![(COUNCILOR1, Approve)]); - assert_eq!(Proposals::vote_by_account_and_proposal((COUNCILOR1, 1)), Approve); - }); - } - - #[test] - fn not_councilor_cannot_vote_on_proposal() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - assert_ok!(_create_default_proposal()); - assert_eq!(Proposals::vote_on_proposal( - Origin::signed(NOT_COUNCILOR), 1, Approve), - Err(MSG_ONLY_COUNCILORS_CAN_VOTE)); - }); - } - - #[test] - fn councilor_cannot_vote_on_proposal_if_it_has_been_cancelled() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - assert_ok!(_create_default_proposal()); - assert_ok!(Proposals::cancel_proposal(Origin::signed(PROPOSER1), 1)); - assert_eq!(Proposals::vote_on_proposal( - Origin::signed(COUNCILOR1), 1, Approve), - Err(MSG_PROPOSAL_FINALIZED)); - }); - } - - #[test] - fn councilor_cannot_vote_on_proposal_if_tally_has_been_finalized() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // All councilors vote with 'Approve' on proposal: - let mut expected_votes: Vec<(u64, VoteKind)> = vec![]; - for &councilor in ALL_COUNCILORS.iter() { - expected_votes.push((councilor, Approve)); - assert_ok!(Proposals::vote_on_proposal(Origin::signed(councilor), 1, Approve)); - assert_eq!(Proposals::vote_by_account_and_proposal((councilor, 1)), Approve); - } - assert_eq!(Proposals::votes_by_proposal(1), expected_votes); - - System::set_block_number(2); - Proposals::on_finalise(2); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Approved); - - // Try to vote on finalized proposal: - assert_eq!(Proposals::vote_on_proposal( - Origin::signed(COUNCILOR1), 1, Reject), - Err(MSG_PROPOSAL_FINALIZED)); - }); - } - - // ------------------------------------------------------------------- - // Tally + Outcome: - - #[test] - fn approve_proposal_when_all_councilors_approved_it() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // All councilors approved: - let mut expected_votes: Vec<(u64, VoteKind)> = vec![]; - for &councilor in ALL_COUNCILORS.iter() { - expected_votes.push((councilor, Approve)); - assert_ok!(Proposals::vote_on_proposal(Origin::signed(councilor), 1, Approve)); - assert_eq!(Proposals::vote_by_account_and_proposal((councilor, 1)), Approve); - } - assert_eq!(Proposals::votes_by_proposal(1), expected_votes); - - assert_runtime_code_empty!(); - - System::set_block_number(2); - Proposals::on_finalise(2); - - // Check that runtime code has been updated after proposal approved. - assert_runtime_code!(wasm_code()); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Approved); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: 0, - approvals: ALL_COUNCILORS.len() as u32, - rejections: 0, - slashes: 0, - status: Approved, - finalized_at: 2 - }); - - // Check that proposer's stake has been added back to his balance: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Approved) - }); - } - - #[test] - fn approve_proposal_when_all_councilors_voted_and_only_quorum_approved() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // Only a quorum of councilors approved, others rejected: - let councilors = Proposals::councilors_count(); - let approvals = Proposals::approval_quorum_seats(); - let rejections = councilors - approvals; - for i in 0..councilors as usize { - let vote = if (i as u32) < approvals { Approve } else { Reject }; - assert_ok!(Proposals::vote_on_proposal( - Origin::signed(ALL_COUNCILORS[i]), 1, vote)); - } - assert_eq!(Proposals::votes_by_proposal(1).len() as u32, councilors); - - assert_runtime_code_empty!(); - - System::set_block_number(2); - Proposals::on_finalise(2); - - // Check that runtime code has been updated after proposal approved. - assert_runtime_code!(wasm_code()); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Approved); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: 0, - approvals: approvals, - rejections: rejections, - slashes: 0, - status: Approved, - finalized_at: 2 - }); - - // Check that proposer's stake has been added back to his balance: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Approved) - }); - } - - #[test] - fn approve_proposal_when_voting_period_expired_if_only_quorum_voted() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // Only quorum of councilors approved, other councilors didn't vote: - let approvals = Proposals::approval_quorum_seats(); - for i in 0..approvals as usize { - let vote = if (i as u32) < approvals { Approve } else { Slash }; - assert_ok!(Proposals::vote_on_proposal( - Origin::signed(ALL_COUNCILORS[i]), 1, vote)); - } - assert_eq!(Proposals::votes_by_proposal(1).len() as u32, approvals); - - assert_runtime_code_empty!(); - - let expiration_block = System::block_number() + Proposals::voting_period(); - System::set_block_number(2); - Proposals::on_finalise(2); - - // Check that runtime code has NOT been updated yet, - // because not all councilors voted and voting period is not expired yet. - assert_runtime_code_empty!(); - - System::set_block_number(expiration_block); - Proposals::on_finalise(expiration_block); - - // Check that runtime code has been updated after proposal approved. - assert_runtime_code!(wasm_code()); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Approved); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: 0, - approvals: approvals, - rejections: 0, - slashes: 0, - status: Approved, - finalized_at: expiration_block - }); - - // Check that proposer's stake has been added back to his balance: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Approved) - }); - } - - #[test] - fn reject_proposal_when_all_councilors_voted_and_quorum_not_reached() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // Less than a quorum of councilors approved, while others abstained: - let councilors = Proposals::councilors_count(); - let approvals = Proposals::approval_quorum_seats() - 1; - let abstentions = councilors - approvals; - for i in 0..councilors as usize { - let vote = if (i as u32) < approvals { Approve } else { Abstain }; - assert_ok!(Proposals::vote_on_proposal( - Origin::signed(ALL_COUNCILORS[i]), 1, vote)); - } - assert_eq!(Proposals::votes_by_proposal(1).len() as u32, councilors); - - assert_runtime_code_empty!(); - - System::set_block_number(2); - Proposals::on_finalise(2); - - // Check that runtime code has NOT been updated after proposal slashed. - assert_runtime_code_empty!(); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Rejected); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: abstentions, - approvals: approvals, - rejections: 0, - slashes: 0, - status: Rejected, - finalized_at: 2 - }); - - // Check that proposer's balance reduced by burnt stake: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance() - rejection_fee()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Rejected) - }); - } - - #[test] - fn reject_proposal_when_all_councilors_rejected_it() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // All councilors rejected: - let mut expected_votes: Vec<(u64, VoteKind)> = vec![]; - for &councilor in ALL_COUNCILORS.iter() { - expected_votes.push((councilor, Reject)); - assert_ok!(Proposals::vote_on_proposal(Origin::signed(councilor), 1, Reject)); - assert_eq!(Proposals::vote_by_account_and_proposal((councilor, 1)), Reject); - } - assert_eq!(Proposals::votes_by_proposal(1), expected_votes); - - assert_runtime_code_empty!(); - - System::set_block_number(2); - Proposals::on_finalise(2); - - // Check that runtime code has NOT been updated after proposal rejected. - assert_runtime_code_empty!(); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Rejected); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: 0, - approvals: 0, - rejections: ALL_COUNCILORS.len() as u32, - slashes: 0, - status: Rejected, - finalized_at: 2 - }); - - // Check that proposer's balance reduced by burnt stake: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance() - rejection_fee()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Rejected) - }); - } - - #[test] - fn slash_proposal_when_all_councilors_slashed_it() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // All councilors slashed: - let mut expected_votes: Vec<(u64, VoteKind)> = vec![]; - for &councilor in ALL_COUNCILORS.iter() { - expected_votes.push((councilor, Slash)); - assert_ok!(Proposals::vote_on_proposal(Origin::signed(councilor), 1, Slash)); - assert_eq!(Proposals::vote_by_account_and_proposal((councilor, 1)), Slash); - } - assert_eq!(Proposals::votes_by_proposal(1), expected_votes); - - assert_runtime_code_empty!(); - - System::set_block_number(2); - Proposals::on_finalise(2); - - // Check that runtime code has NOT been updated after proposal slashed. - assert_runtime_code_empty!(); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Slashed); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: 0, - approvals: 0, - rejections: 0, - slashes: ALL_COUNCILORS.len() as u32, - status: Slashed, - finalized_at: 2 - }); - - // Check that proposer's balance reduced by burnt stake: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance() - min_stake()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Slashed) - // TODO fix: event log assertion doesn't work and return empty event in every record - // assert_eq!(*System::events().last().unwrap(), - // EventRecord { - // phase: Phase::ApplyExtrinsic(0), - // event: RawEvent::ProposalStatusUpdated(1, Slashed), - // } - // ); - }); - } - - // In this case a proposal will be marked as 'Expired' - // and it will be processed in the same way as if it has been rejected. - #[test] - fn expire_proposal_when_not_all_councilors_voted_and_quorum_not_reached() { - with_externalities(&mut new_test_ext(), || { - Balances::set_free_balance(&PROPOSER1, initial_balance()); - Balances::increase_total_stake_by(initial_balance()); - - assert_ok!(_create_default_proposal()); - - // Less than a quorum of councilors approved: - let approvals = Proposals::approval_quorum_seats() - 1; - for i in 0..approvals as usize { - let vote = if (i as u32) < approvals { Approve } else { Slash }; - assert_ok!(Proposals::vote_on_proposal( - Origin::signed(ALL_COUNCILORS[i]), 1, vote)); - } - assert_eq!(Proposals::votes_by_proposal(1).len() as u32, approvals); - - assert_runtime_code_empty!(); - - let expiration_block = System::block_number() + Proposals::voting_period(); - System::set_block_number(expiration_block); - Proposals::on_finalise(expiration_block); - - // Check that runtime code has NOT been updated after proposal slashed. - assert_runtime_code_empty!(); - - assert!(Proposals::active_proposal_ids().is_empty()); - assert_eq!(Proposals::proposals(1).status, Expired); - assert_eq!(Proposals::tally_results(1), TallyResult { - proposal_id: 1, - abstentions: 0, - approvals: approvals, - rejections: 0, - slashes: 0, - status: Expired, - finalized_at: expiration_block - }); - - // Check that proposer's balance reduced by burnt stake: - assert_eq!(Balances::free_balance(PROPOSER1), initial_balance() - rejection_fee()); - assert_eq!(Balances::reserved_balance(PROPOSER1), 0); - - // TODO expect event ProposalStatusUpdated(1, Rejected) - }); - } -} diff --git a/runtime/src/governance/sealed_vote.rs b/runtime/src/governance/sealed_vote.rs deleted file mode 100644 index 324e0a5..0000000 --- a/runtime/src/governance/sealed_vote.rs +++ /dev/null @@ -1,70 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use srml_support::{ensure}; -use parity_codec::Encode; -use rstd::vec::Vec; - -#[derive(Clone, Copy, Encode, Decode, Default)] -pub struct SealedVote - where Vote: Encode, Hash: PartialEq, AccountId: PartialEq -{ - pub voter: AccountId, - pub commitment: Hash, // 32 bytes - salted hash of serialized Vote - pub stake: Stake, - vote: Option, // will be set when unsealing -} - -impl SealedVote - where Vote: Encode, Hash: PartialEq, AccountId: PartialEq -{ - pub fn new(voter: AccountId, stake: Stake, commitment: Hash) -> SealedVote { - SealedVote { - voter, - commitment, - stake, - vote: None, - } - } - - pub fn new_unsealed(voter: AccountId, stake: Stake, commitment: Hash, vote: Vote) -> SealedVote { - SealedVote { - voter, - commitment, - stake, - vote: Some(vote), - } - } - - pub fn unseal(&mut self, vote: Vote, salt: &mut Vec, hasher: fn(&[u8]) -> Hash) -> Result<(), &'static str> { - // only unseal once - ensure!(self.is_not_revealed(), "vote already unsealed"); - - // seralize the vote and append the salt - let mut payload = vote.encode(); - payload.append(salt); - - // hash the payload, if it matches the commitment it is a valid revealing of the vote - if self.commitment == hasher(&payload) { - self.vote = Some(vote); - Ok(()) - } else { - Err("invalid salt") - } - } - - pub fn get_vote(&self) -> &Option { - &self.vote - } - - pub fn is_owned_by(&self, someone: AccountId) -> bool { - someone == self.voter - } - - pub fn is_revealed(&self) -> bool { - self.vote.is_some() - } - - pub fn is_not_revealed(&self) -> bool { - self.vote.is_none() - } -} \ No newline at end of file diff --git a/runtime/src/governance/stake.rs b/runtime/src/governance/stake.rs deleted file mode 100644 index 299f3e4..0000000 --- a/runtime/src/governance/stake.rs +++ /dev/null @@ -1,114 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use rstd::cmp::Ordering; -use runtime_primitives::traits::{SimpleArithmetic}; - -#[derive(Encode, Decode, Clone, Copy, Default, Debug)] -pub struct Stake - where Balance: Copy + SimpleArithmetic, -{ - pub new: Balance, - pub transferred: Balance, -} - -impl Stake - where Balance: Copy + SimpleArithmetic, -{ - pub fn total(&self) -> Balance { - self.new + self.transferred - } - - pub fn add(&self, v: &Self) -> Self { - Self { - new: self.new + v.new, - transferred: self.transferred + v.transferred - } - } -} - -impl PartialOrd for Stake { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(&other)) - } -} - -impl Ord for Stake { - fn cmp(&self, other: &Self) -> Ordering { - self.total().cmp(&other.total()) - } -} - -impl PartialEq for Stake { - fn eq(&self, other: &Self) -> bool { - self.total() == other.total() - } -} - -impl Eq for Stake {} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn total() { - let a: u128 = 4; - let b: u128 = 5; - let s = Stake { - new: a, - transferred: b, - }; - assert_eq!(a + b, s.total()); - } - - #[test] - fn adding() { - let a1: u128 = 3; let b1: u128 = 2; - let a2: u128 = 5; let b2: u128 = 7; - - let s1 = Stake { - new: a1, - transferred: b1, - }; - - let s2 = Stake { - new: a2, - transferred: b2, - }; - - let sum = s1.add(&s2); - - assert_eq!(sum.new, 8); - assert_eq!(sum.transferred, 9); - } - - #[test] - fn equality() { - let a1: u128 = 3; let b1: u128 = 2; - let a2: u128 = 2; let b2: u128 = 3; - let a3: u128 = 10; let b3: u128 = 10; - - let s1 = Stake { - new: a1, - transferred: b1, - }; - - let s2 = s1; - - assert_eq!(s1, s2); - - let s3 = Stake { - new: a2, - transferred: b2, - }; - - assert_eq!(s1, s3); - - let s4 = Stake { - new: a3, - transferred: b3, - }; - - assert_ne!(s1, s4); - } -} \ No newline at end of file diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs deleted file mode 100644 index 77adf18..0000000 --- a/runtime/src/lib.rs +++ /dev/null @@ -1,326 +0,0 @@ -//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm. - -#![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(not(feature = "std"), feature(alloc))] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit="256"] - -#[cfg(feature = "std")] -#[macro_use] -extern crate serde_derive; - -use substrate_client as client; - -#[macro_use] -extern crate parity_codec_derive; - -pub mod governance; -use governance::{election, council, proposals}; -mod memo; - -use rstd::prelude::*; -#[cfg(feature = "std")] -use primitives::bytes; -use primitives::{Ed25519AuthorityId, OpaqueMetadata}; -use runtime_primitives::{ - ApplyResult, transaction_validity::TransactionValidity, Ed25519Signature, generic, - traits::{self, Convert, BlakeTwo256, Block as BlockT, StaticLookup}, create_runtime_str -}; -use client::{ - block_builder::api::{CheckInherentsResult, InherentData, self as block_builder_api}, - runtime_api, impl_runtime_apis -}; -use version::RuntimeVersion; -#[cfg(feature = "std")] -use version::NativeVersion; - -// A few exports that help ease life for downstream crates. -#[cfg(any(feature = "std", test))] -pub use runtime_primitives::BuildStorage; -pub use consensus::Call as ConsensusCall; -pub use timestamp::Call as TimestampCall; -pub use balances::Call as BalancesCall; -pub use runtime_primitives::{Permill, Perbill}; -pub use timestamp::BlockPeriod; -pub use srml_support::{StorageValue, construct_runtime}; - -/// Alias to Ed25519 pubkey that identifies an account on the chain. -pub type AccountId = primitives::H256; - -/// A hash of some data used by the chain. -pub type Hash = primitives::H256; - -/// Index of a block number in the chain. -pub type BlockNumber = u64; - -/// Index of an account's extrinsic in the chain. -pub type Nonce = u64; - -/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know -/// the specifics of the runtime. They can then be made to be agnostic over specific formats -/// of data like extrinsics, allowing for them to continue syncing the network through upgrades -/// to even the core datastructures. -pub mod opaque { - use super::*; - - /// Opaque, encoded, unchecked extrinsic. - #[derive(PartialEq, Eq, Clone, Default, Encode, Decode)] - #[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] - pub struct UncheckedExtrinsic(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); - impl traits::Extrinsic for UncheckedExtrinsic { - fn is_signed(&self) -> Option { - None - } - } - /// Opaque block header type. - pub type Header = generic::Header>; - /// Opaque block type. - pub type Block = generic::Block; - /// Opaque block identifier type. - pub type BlockId = generic::BlockId; - /// Opaque session key type. - pub type SessionKey = Ed25519AuthorityId; -} - -/// This runtime version. -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("joystream-node"), - impl_name: create_runtime_str!("joystream-node"), - authoring_version: 3, - spec_version: 4, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, -}; - -/// The version infromation used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { - runtime_version: VERSION, - can_author_with: Default::default(), - } -} - -impl system::Trait for Runtime { - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = Indices; - /// The index type for storing how many extrinsics an account has signed. - type Index = Nonce; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The header digest type. - type Digest = generic::Digest; - /// The header type. - type Header = generic::Header; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous log type. - type Log = Log; - /// The ubiquitous origin type. - type Origin = Origin; -} - -impl aura::Trait for Runtime { - type HandleReport = aura::StakingSlasher; -} - -impl consensus::Trait for Runtime { - /// The identifier we use to refer to authorities. - type SessionKey = Ed25519AuthorityId; - // The aura module handles offline-reports internally - // rather than using an explicit report system. - type InherentOfflineReport = (); - /// The ubiquitous log type. - type Log = Log; -} - -/// Session key conversion. -pub struct SessionKeyConversion; -impl Convert for SessionKeyConversion { - fn convert(a: AccountId) -> Ed25519AuthorityId { - a.to_fixed_bytes().into() - } -} - -impl session::Trait for Runtime { - type ConvertAccountIdToSessionKey = SessionKeyConversion; - type OnSessionChange = (Staking, ); - type Event = Event; -} - -impl indices::Trait for Runtime { - /// The type for recording indexing into the account enumeration. If this ever overflows, there - /// will be problems! - type AccountIndex = u32; - /// Use the standard means of resolving an index hint from an id. - type ResolveHint = indices::SimpleResolveHint; - /// Determine whether an account is dead. - type IsDeadAccount = Balances; - /// The uniquitous event type. - type Event = Event; -} - -impl timestamp::Trait for Runtime { - /// A timestamp: seconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; -} - -impl balances::Trait for Runtime { - /// The type for recording an account's balance. - type Balance = u128; - /// What to do if an account's free balance gets zeroed. - type OnFreeBalanceZero = Staking; - /// What to do if a new account is created. - type OnNewAccount = Indices; - /// Restrict whether an account can transfer funds. We don't place any further restrictions. - type EnsureAccountLiquid = Staking; - /// The uniquitous event type. - type Event = Event; -} - -impl fees::Trait for Runtime { - type TransferAsset = Balances; - type Event = Event; -} - -impl sudo::Trait for Runtime { - /// The uniquitous event type. - type Event = Event; - type Proposal = Call; -} - -impl staking::Trait for Runtime { - type Currency = balances::Module; - type OnRewardMinted = (); - type Event = Event; -} - -impl governance::GovernanceCurrency for Runtime { - type Currency = balances::Module; -} - -impl governance::proposals::Trait for Runtime { - type Event = Event; -} - -impl governance::election::Trait for Runtime { - type Event = Event; - type CouncilElected = (Council,); -} - -impl governance::council::Trait for Runtime { - type Event = Event; - type CouncilTermEnded = (CouncilElection,); -} - -impl memo::Trait for Runtime { - type Event = Event; -} - -construct_runtime!( - pub enum Runtime with Log(InternalLog: DigestItem) where - Block = Block, - NodeBlock = opaque::Block, - UncheckedExtrinsic = UncheckedExtrinsic - { - System: system::{default, Log(ChangesTrieRoot)}, - Timestamp: timestamp::{Module, Call, Storage, Config, Inherent}, - Consensus: consensus::{Module, Call, Storage, Config, Log(AuthoritiesChange), Inherent}, - Aura: aura::{Module, Inherent(Timestamp)}, - Indices: indices, - Balances: balances, - Session: session, - Staking: staking::{default, OfflineWorker}, - Fees: fees::{Module, Storage, Config, Event}, - Sudo: sudo, - Proposals: proposals::{Module, Call, Storage, Event, Config}, - CouncilElection: election::{Module, Call, Storage, Event, Config}, - Council: council::{Module, Call, Storage, Event, Config}, - Memo: memo::{Module, Call, Storage, Event}, - } -); - -/// The type used as a helper for interpreting the sender of transactions. -type Context = system::ChainContext; -/// The address format for describing accounts. -type Address = ::Source; -/// Block header type as expected by this runtime. -pub type Header = generic::Header; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedMortalCompactExtrinsic; -/// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; -/// Executive: handles dispatch to the various modules. -pub type Executive = executive::Executive; - -// Implement our runtime API endpoints. This is just a bunch of proxying. -impl_runtime_apis! { - impl runtime_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn authorities() -> Vec { - Consensus::authorities() - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialise_block(header: &::Header) { - Executive::initialise_block(header) - } - } - - impl runtime_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - Runtime::metadata().into() - } - } - - impl block_builder_api::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalise_block() -> ::Header { - Executive::finalise_block() - } - - fn inherent_extrinsics(data: InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents(block: Block, data: InherentData) -> CheckInherentsResult { - data.check_extrinsics(&block) - } - - fn random_seed() -> ::Hash { - System::random_seed() - } - } - - impl runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction(tx: ::Extrinsic) -> TransactionValidity { - Executive::validate_transaction(tx) - } - } - - impl consensus_aura::AuraApi for Runtime { - fn slot_duration() -> u64 { - Aura::slot_duration() - } - } -} diff --git a/runtime/src/memo.rs b/runtime/src/memo.rs deleted file mode 100644 index 43892a7..0000000 --- a/runtime/src/memo.rs +++ /dev/null @@ -1,41 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use srml_support::{StorageMap, dispatch::Result, decl_module, decl_storage, decl_event, ensure}; -use srml_support::traits::{Currency}; -use runtime_primitives::traits::{Zero}; -use system::{self, ensure_signed}; -use rstd::prelude::*; -use crate::governance::GovernanceCurrency; - -pub trait Trait: system::Trait + GovernanceCurrency { - type Event: From> + Into<::Event>; -} - -decl_storage! { - trait Store for Module as Memo { - Memo get(memo) : map T::AccountId => Vec; - MaxMemoLength get(max_memo_length) : u32 = 4096; - } -} - -decl_event! { - pub enum Event where ::AccountId { - MemoUpdated(AccountId), - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; - - fn update_memo(origin, memo: Vec) { - let sender = ensure_signed(origin)?; - - ensure!(!T::Currency::total_balance(&sender).is_zero(), "account must have a balance"); - ensure!(memo.len() as u32 <= Self::max_memo_length(), "memo too long"); - - >::insert(sender.clone(), memo); - Self::deposit_event(RawEvent::MemoUpdated(sender)); - } - } -} diff --git a/runtime/wasm/Cargo.toml b/runtime/wasm/Cargo.toml deleted file mode 100644 index 625bcaf..0000000 --- a/runtime/wasm/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[profile.release] -lto = true -panic = 'abort' - -[workspace] -members = [] - -[lib] -crate-type = ['cdylib'] - -[features] -default = [] -std = ['joystream-node-runtime/std'] -[dependencies.joystream-node-runtime] -default-features = false -path = '..' - -[package] -authors = ['Joystream'] -edition = '2018' -name = 'joystream-node-runtime-wasm' -version = '1.0.1' diff --git a/runtime/wasm/build.sh b/runtime/wasm/build.sh deleted file mode 100755 index bf5d1b9..0000000 --- a/runtime/wasm/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -e - -if cargo --version | grep -q "nightly"; then - CARGO_CMD="cargo" -else - CARGO_CMD="cargo +nightly" -fi -$CARGO_CMD build --target=wasm32-unknown-unknown --release -for i in joystream_node_runtime_wasm -do - wasm-gc target/wasm32-unknown-unknown/release/$i.wasm target/wasm32-unknown-unknown/release/$i.compact.wasm -done diff --git a/runtime/wasm/src/lib.rs b/runtime/wasm/src/lib.rs deleted file mode 100644 index 65d525e..0000000 --- a/runtime/wasm/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -pub use joystream_node_runtime::*; diff --git a/src/chain_spec.rs b/src/chain_spec.rs index 4ada06c..b74f143 100644 --- a/src/chain_spec.rs +++ b/src/chain_spec.rs @@ -1,11 +1,16 @@ -use primitives::{Ed25519AuthorityId, ed25519}; +use hex_literal::{hex, hex_impl}; use joystream_node_runtime::{ - AccountId, GenesisConfig, ConsensusConfig, TimestampConfig, BalancesConfig, - SudoConfig, IndicesConfig, SessionConfig, StakingConfig, Permill, Perbill, - CouncilConfig, CouncilElectionConfig, ProposalsConfig, FeesConfig, + AccountId, BalancesConfig, ConsensusConfig, CouncilConfig, + CouncilElectionConfig, DataObjectStorageRegistryConfig, DataObjectTypeRegistryConfig, + DownloadSessionsConfig, GenesisConfig, GrandpaConfig, IndicesConfig, MembersConfig, Perbill, + ProposalsConfig, SessionConfig, StakerStatus, StakingConfig, SudoConfig, TimestampConfig, + ActorsConfig, }; +use primitives::{crypto::UncheckedInto, ed25519, sr25519, Pair}; use substrate_service; -use hex_literal::{hex, hex_impl}; +use substrate_telemetry::TelemetryEndpoints; + +use ed25519::Public as AuthorityId; // Note this is the URL for the telemetry server const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; @@ -18,132 +23,177 @@ pub type ChainSpec = substrate_service::ChainSpec; /// from a string (`--chain=...`) into a `ChainSpec`. #[derive(Clone, Debug)] pub enum Alternative { - /// Whatever the current runtime is, with just Alice as an auth. - Development, - /// Whatever the current runtime is, with simple Alice/Bob auths. - LocalTestnet, - /// Staging testnet - StagingTestnet, - /// Testnet - the current live testnet - LiveTestnet, + /// Whatever the current runtime is, with just Alice as an auth. + Development, + /// Whatever the current runtime is, with simple Alice/Bob auths. + LocalTestnet, + /// Staging testnet + StagingTestnet, + /// Testnet - the current live testnet + LiveTestnet, +} + +fn authority_key(s: &str) -> AuthorityId { + ed25519::Pair::from_string(&format!("//{}", s), None) + .expect("static values are valid; qed") + .public() +} + +fn account_key(s: &str) -> AccountId { + sr25519::Pair::from_string(&format!("//{}", s), None) + .expect("static values are valid; qed") + .public() } impl Alternative { - /// Get an actual chain config from one of the alternatives. - pub(crate) fn load(self) -> Result { - Ok(match self { - Alternative::Development => ChainSpec::from_genesis( - "Development", - "dev", - || testnet_genesis(vec![ - ed25519::Pair::from_seed(b"Alice ").public().into(), - ], vec![ - ed25519::Pair::from_seed(b"Alice ").public().0.into(), - ], - ed25519::Pair::from_seed(b"Alice ").public().0.into() - ), - vec![], - None, - None, - None, - None - ), - Alternative::LocalTestnet => ChainSpec::from_genesis( - "Local Testnet", - "local_testnet", - || testnet_genesis(vec![ - ed25519::Pair::from_seed(b"Alice ").public().into(), - ed25519::Pair::from_seed(b"Bob ").public().into(), - ], vec![ - ed25519::Pair::from_seed(b"Alice ").public().0.into(), - ed25519::Pair::from_seed(b"Bob ").public().0.into(), - ed25519::Pair::from_seed(b"Charlie ").public().0.into(), - ed25519::Pair::from_seed(b"Dave ").public().0.into(), - ed25519::Pair::from_seed(b"Eve ").public().0.into(), - ed25519::Pair::from_seed(b"Ferdie ").public().0.into(), - ], - ed25519::Pair::from_seed(b"Alice ").public().0.into() - ), - vec![], - None, - None, - None, - None - ), - Alternative::StagingTestnet => staging_testnet_config(), - Alternative::LiveTestnet => live_testnet_config()?, - }) - } + /// Get an actual chain config from one of the alternatives. + pub(crate) fn load(self) -> Result { + Ok(match self { + Alternative::Development => ChainSpec::from_genesis( + "Development", + "dev", + || { + testnet_genesis( + vec![ + // stash, controller, authority + ( + account_key("Alice//stash"), + account_key("Alice"), + authority_key("Alice"), + ), + ], + vec![ + // endowed account + account_key("Alice"), + ], + // sudo key + account_key("Alice"), + ) + }, + vec![], + None, + None, + None, + None, + ), + Alternative::LocalTestnet => ChainSpec::from_genesis( + "Local Testnet", + "local_testnet", + || { + testnet_genesis( + vec![ + ( + account_key("Alice//stash"), + account_key("Alice"), + authority_key("Alice"), + ), + ( + account_key("Bob//stash"), + account_key("Bob"), + authority_key("Bob"), + ), + ], + vec![ + account_key("Alice"), + account_key("Bob"), + account_key("Charlie"), + account_key("Dave"), + account_key("Eve"), + account_key("Ferdie"), + ], + account_key("Alice"), + ) + }, + vec![], + None, + None, + None, + None, + ), + Alternative::StagingTestnet => staging_testnet_config(), + Alternative::LiveTestnet => live_testnet_config()?, + }) + } - pub(crate) fn from(s: &str) -> Option { - match s { - "dev" => Some(Alternative::Development), - "local" => Some(Alternative::LocalTestnet), - "staging" => Some(Alternative::StagingTestnet), - "" | "testnet" => Some(Alternative::LiveTestnet), - _ => None, - } - } + pub(crate) fn from(s: &str) -> Option { + match s { + "dev" => Some(Alternative::Development), + "local" => Some(Alternative::LocalTestnet), + "staging" => Some(Alternative::StagingTestnet), + "" | "testnet" => Some(Alternative::LiveTestnet), + _ => None, + } + } } /// LiveTestnet generator pub fn live_testnet_config() -> Result { - ChainSpec::from_embedded(include_bytes!("../res/joy_testnet_1.json")) + ChainSpec::from_embedded(include_bytes!("../res/joy_testnet_1.json")) } /// Staging testnet config pub fn staging_testnet_config() -> ChainSpec { - let boot_nodes = vec![ - String::from("/dns4/testnet-boot.joystream.org/tcp/30333/p2p/QmRMZZQDsDDg2bsYRBFT9FiWsFXpWfgGHqJFYcRfz9Pfyi") + let boot_nodes = vec![ + String::from("/dns4/bootnode1.joystream.org/tcp/30333/p2p/QmeDa8jASqMRpTh4YCkeVEuHo6nbMcFDzD9pkUxTr3WxhM"), + String::from("/dns4/bootnode2.joystream.org/tcp/30333/p2p/QmbjzmNMjzQUMHpzqcPHW5DnFeUjM3x4hbiDSMkYv1McD3"), ]; - ChainSpec::from_genesis( - "Joystream Staging Testnet", - "joystream_staging_3", - staging_testnet_config_genesis, - boot_nodes, - Some(STAGING_TELEMETRY_URL.into()), - None, - None, - None, - ) + ChainSpec::from_genesis( + "Joystream Staging Testnet", + "joy_staging_4", + staging_testnet_config_genesis, + boot_nodes, + Some(TelemetryEndpoints::new(vec![( + STAGING_TELEMETRY_URL.to_string(), + 0, + )])), + None, + None, + None, + ) } -fn staging_testnet_config_genesis () -> GenesisConfig { - let initial_authorities = vec![ - hex!["313ef1233684209e8b9740be3da31ac588874efae4b59771863afd44c2b620c4"].into(), - ]; - let endowed_accounts = vec![ - hex!["6b7f25c05e367cbb8224681f9f8652f13e7de2953b4706f32e6daf42219ad31f"].into(), - ]; +fn staging_testnet_config_genesis() -> GenesisConfig { + let initial_authorities: Vec<(AccountId, AccountId, AuthorityId)> = vec![( + hex!["0610d1a2b1d704723e588c842a934737491688b18b052baae1286f12e96adb65"].unchecked_into(), // stash + hex!["609cee3edd9900e69be44bcbf7a1892cad10408840a2d72d563811d72d9bb339"].unchecked_into(), // controller + hex!["65179fd9c39ec301457d1ee47a13f3bb0fef65812a57b6c93212e609b10d35d2"].unchecked_into(), // session key + )]; + let endowed_accounts = vec![hex![ + "0ae55282e669fc55cb9529c0b12b989f2c5bf636d0de7630b5a4850055ed9c30" + ] + .unchecked_into()]; - const CENTS: u128 = 1; - const DOLLARS: u128 = 100 * CENTS; + const CENTS: u128 = 1; + const DOLLARS: u128 = 100 * CENTS; - const SECS_PER_BLOCK: u64 = 6; - const MINUTES: u64 = 60 / SECS_PER_BLOCK; - const HOURS: u64 = MINUTES * 60; - const DAYS: u64 = HOURS * 24; + const SECS_PER_BLOCK: u64 = 6; + const MINUTES: u64 = 60 / SECS_PER_BLOCK; + const HOURS: u64 = MINUTES * 60; + const DAYS: u64 = HOURS * 24; + const STASH: u128 = 100 * DOLLARS; + const ENDOWMENT: u128 = 100_000_000 * DOLLARS; - GenesisConfig { + GenesisConfig { consensus: Some(ConsensusConfig { - code: include_bytes!("../runtime/wasm/target/wasm32-unknown-unknown/release/joystream_node_runtime_wasm.compact.wasm").to_vec(), - authorities: initial_authorities.clone(), + code: include_bytes!("../substrate-runtime-joystream/wasm/target/wasm32-unknown-unknown/release/joystream_node_runtime_wasm.compact.wasm").to_vec(), + authorities: initial_authorities.iter().map(|x| x.2.clone()).collect(), }), system: None, timestamp: Some(TimestampConfig { - period: SECS_PER_BLOCK / 2, // due to the nature of aura the slots are 2*period + minimum_period: SECS_PER_BLOCK / 2, // due to the nature of aura the slots are 2*period }), indices: Some(IndicesConfig { - ids: endowed_accounts.clone(), + ids: vec![], }), balances: Some(BalancesConfig { - balances: endowed_accounts.iter().map(|&k| (k, 100_000_000 * DOLLARS)).collect(), + balances: endowed_accounts.iter().cloned() + .map(|k| (k, ENDOWMENT)) + .chain(initial_authorities.iter().map(|x| (x.0.clone(), STASH))) + .collect(), existential_deposit: 0, transfer_fee: 0, creation_fee: 0, vesting: vec![], - }), - fees: Some(FeesConfig { transaction_base_fee: 0, transaction_byte_fee: 0, }), @@ -151,22 +201,25 @@ fn staging_testnet_config_genesis () -> GenesisConfig { key: endowed_accounts[0].clone(), }), session: Some(SessionConfig { - validators: initial_authorities.iter().cloned().map(Into::into).collect(), + validators: initial_authorities.iter().map(|x| x.1.clone()).collect(), session_length: 10 * MINUTES, + keys: initial_authorities.iter().map(|x| (x.1.clone(), x.2.clone())).collect::>(), }), staking: Some(StakingConfig { current_era: 0, - intentions: initial_authorities.iter().cloned().map(Into::into).collect(), offline_slash: Perbill::from_millionths(10_000), // 1/ 100 => 1% session_reward: Perbill::from_millionths(1_000), // 1/1000 => 0.1% (min stake -> 1000 units for reward to be GT 0) - current_offline_slash: 0, current_session_reward: 0, validator_count: 10, sessions_per_era: 6, bonding_duration: 60 * MINUTES, offline_slash_grace: 4, minimum_validator_count: 1, - invulnerables: initial_authorities.iter().cloned().map(Into::into).collect(), + stakers: initial_authorities.iter().map(|x| (x.0.clone(), x.1.clone(), STASH, StakerStatus::Validator)).collect(), + invulnerables: initial_authorities.iter().map(|x| x.1.clone()).collect(), + }), + grandpa: Some(GrandpaConfig { + authorities: initial_authorities.iter().map(|x| (x.2.clone(), 1)).collect(), }), council: Some(CouncilConfig { active_council: vec![], @@ -193,31 +246,56 @@ fn staging_testnet_config_genesis () -> GenesisConfig { description_max_len: 10_000, wasm_code_max_len: 2_000_000, }), - + members: Some(MembersConfig { + default_paid_membership_fee: 100u128, + first_member_id: 1, + }), + data_object_type_registry: Some(DataObjectTypeRegistryConfig { + first_data_object_type_id: 1, + }), + data_object_storage_registry: Some(DataObjectStorageRegistryConfig{ + first_relationship_id: 1, + }), + downloads: Some(DownloadSessionsConfig{ + first_download_session_id: 1, + }), + actors: Some(ActorsConfig{ + enable_storage_role: true, + request_life_time: 300, + _genesis_phantom_data: Default::default(), + }) } } -fn testnet_genesis(initial_authorities: Vec, endowed_accounts: Vec, root_key: AccountId) -> GenesisConfig { - GenesisConfig { +fn testnet_genesis( + initial_authorities: Vec<(AccountId, AccountId, AuthorityId)>, + endowed_accounts: Vec, + root_key: AccountId, +) -> GenesisConfig { + const STASH: u128 = 100; + const ENDOWMENT: u128 = 100_000_000; + + GenesisConfig { consensus: Some(ConsensusConfig { - code: include_bytes!("../runtime/wasm/target/wasm32-unknown-unknown/release/joystream_node_runtime_wasm.compact.wasm").to_vec(), - authorities: initial_authorities.clone(), + code: include_bytes!("../substrate-runtime-joystream/wasm/target/wasm32-unknown-unknown/release/joystream_node_runtime_wasm.compact.wasm").to_vec(), + authorities: initial_authorities.iter().map(|x| x.2.clone()).collect(), }), system: None, timestamp: Some(TimestampConfig { - period: 3, // 3*2=6 second block time. + minimum_period: 3, // 3*2=6 second block time. }), indices: Some(IndicesConfig { - ids: endowed_accounts.clone(), + ids: vec![] }), balances: Some(BalancesConfig { - existential_deposit: 500, + existential_deposit: 0, transfer_fee: 0, creation_fee: 0, - balances: endowed_accounts.iter().map(|&k|(k, (1 << 60))).collect(), + balances: endowed_accounts.iter().cloned() + .map(|k| (k, ENDOWMENT)) + .chain(initial_authorities.iter().map(|x| (x.0.clone(), STASH))) + .collect(), vesting: vec![], - }), - fees: Some(FeesConfig { transaction_base_fee: 0, transaction_byte_fee: 0, }), @@ -225,22 +303,25 @@ fn testnet_genesis(initial_authorities: Vec, endowed_account key: root_key, }), session: Some(SessionConfig { - validators: initial_authorities.iter().cloned().map(Into::into).collect(), + validators: initial_authorities.iter().map(|x| x.1.clone()).collect(), session_length: 10, + keys: initial_authorities.iter().map(|x| (x.1.clone(), x.2.clone())).collect::>(), }), staking: Some(StakingConfig { current_era: 0, - intentions: initial_authorities.iter().cloned().map(Into::into).collect(), minimum_validator_count: 1, validator_count: 2, sessions_per_era: 5, bonding_duration: 2 * 60 * 12, offline_slash: Perbill::zero(), session_reward: Perbill::zero(), - current_offline_slash: 0, current_session_reward: 0, offline_slash_grace: 0, - invulnerables: initial_authorities.iter().cloned().map(Into::into).collect(), + stakers: initial_authorities.iter().map(|x| (x.0.clone(), x.1.clone(), STASH, StakerStatus::Validator)).collect(), + invulnerables: initial_authorities.iter().map(|x| x.1.clone()).collect(), + }), + grandpa: Some(GrandpaConfig { + authorities: initial_authorities.iter().map(|x| (x.2.clone(), 1)).collect(), }), council: Some(CouncilConfig { active_council: vec![], @@ -267,5 +348,23 @@ fn testnet_genesis(initial_authorities: Vec, endowed_account description_max_len: 10_000, wasm_code_max_len: 2_000_000, }), + members: Some(MembersConfig { + default_paid_membership_fee: 100u128, + first_member_id: 1, + }), + data_object_type_registry: Some(DataObjectTypeRegistryConfig { + first_data_object_type_id: 1, + }), + data_object_storage_registry: Some(DataObjectStorageRegistryConfig{ + first_relationship_id: 1, + }), + downloads: Some(DownloadSessionsConfig{ + first_download_session_id: 1, + }), + actors: Some(ActorsConfig{ + enable_storage_role: true, + request_life_time: 300, + _genesis_phantom_data: Default::default(), + }) } } diff --git a/src/cli.rs b/src/cli.rs index 1b8a7c0..391562e 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1,89 +1,104 @@ +use crate::chain_spec; use crate::service; -use futures::{future, Future, sync::oneshot}; +use futures::{future, sync::oneshot, Future}; +use log::info; use std::cell::RefCell; -use tokio::runtime::Runtime; -pub use substrate_cli::{VersionInfo, IntoExit, error}; -use substrate_cli::{informant, parse_and_execute, NoCustom}; -use substrate_service::{ServiceFactory, Roles as ServiceRoles}; -use crate::chain_spec; use std::ops::Deref; -use log::info; +pub use substrate_cli::{error, IntoExit, VersionInfo}; +use substrate_cli::{informant, parse_and_execute, NoCustom}; +use substrate_service::{Roles as ServiceRoles, ServiceFactory}; +use tokio::runtime::Runtime; /// Parse command line arguments into service configuration. -pub fn run(args: I, exit: E, version: VersionInfo) -> error::Result<()> where - I: IntoIterator, - T: Into + Clone, - E: IntoExit, +pub fn run(args: I, exit: E, version: VersionInfo) -> error::Result<()> +where + I: IntoIterator, + T: Into + Clone, + E: IntoExit, { - parse_and_execute::( - load_spec, &version, "joystream-node", args, exit, - |exit, _custom_args, config| { - info!("{}", version.name); - info!(" version {}", config.full_version()); - info!(" by {}, 2019", version.author); - info!("Chain specification: {}", config.chain_spec.name()); - info!("Node name: {}", config.name); - info!("Roles: {:?}", config.roles); - let runtime = Runtime::new().map_err(|e| format!("{:?}", e))?; - let executor = runtime.executor(); - match config.roles { - ServiceRoles::LIGHT => run_until_exit( - runtime, - service::Factory::new_light(config, executor).map_err(|e| format!("{:?}", e))?, - exit - ), - _ => run_until_exit( - runtime, - service::Factory::new_full(config, executor).map_err(|e| format!("{:?}", e))?, - exit - ), - }.map_err(|e| format!("{:?}", e)) - } - ).map_err(Into::into).map(|_| ()) + parse_and_execute::( + load_spec, + &version, + "joystream-node", + args, + exit, + |exit, _custom_args, config| { + info!("{}", version.name); + info!(" version {}", config.full_version()); + info!(" by {}, 2019", version.author); + info!("Chain specification: {}", config.chain_spec.name()); + info!("Node name: {}", config.name); + info!("Roles: {:?}", config.roles); + let runtime = Runtime::new().map_err(|e| format!("{:?}", e))?; + let executor = runtime.executor(); + match config.roles { + ServiceRoles::LIGHT => run_until_exit( + runtime, + service::Factory::new_light(config, executor) + .map_err(|e| format!("{:?}", e))?, + exit, + ), + _ => run_until_exit( + runtime, + service::Factory::new_full(config, executor).map_err(|e| format!("{:?}", e))?, + exit, + ), + } + .map_err(|e| format!("{:?}", e)) + }, + ) + .map_err(Into::into) + .map(|_| ()) } fn load_spec(id: &str) -> Result, String> { - Ok(match chain_spec::Alternative::from(id) { - Some(spec) => Some(spec.load()?), - None => None, - }) + Ok(match chain_spec::Alternative::from(id) { + Some(spec) => Some(spec.load()?), + None => None, + }) } -fn run_until_exit( - mut runtime: Runtime, - service: T, - e: E, -) -> error::Result<()> - where - T: Deref>, - C: substrate_service::Components, - E: IntoExit, +fn run_until_exit(mut runtime: Runtime, service: T, e: E) -> error::Result<()> +where + T: Deref>, + C: substrate_service::Components, + E: IntoExit, { - let (exit_send, exit) = exit_future::signal(); + let (exit_send, exit) = exit_future::signal(); + + let executor = runtime.executor(); + informant::start(&service, exit.clone(), executor.clone()); - let executor = runtime.executor(); - informant::start(&service, exit.clone(), executor.clone()); + let _ = runtime.block_on(e.into_exit()); + exit_send.fire(); - let _ = runtime.block_on(e.into_exit()); - exit_send.fire(); - Ok(()) + // we eagerly drop the service so that the internal exit future is fired, + // but we need to keep holding a reference to the global telemetry guard + let _telemetry = service.telemetry(); + drop(service); + Ok(()) } // handles ctrl-c pub struct Exit; impl IntoExit for Exit { - type Exit = future::MapErr, fn(oneshot::Canceled) -> ()>; - fn into_exit(self) -> Self::Exit { - // can't use signal directly here because CtrlC takes only `Fn`. - let (exit_send, exit) = oneshot::channel(); + type Exit = future::MapErr, fn(oneshot::Canceled) -> ()>; + fn into_exit(self) -> Self::Exit { + // can't use signal directly here because CtrlC takes only `Fn`. + let (exit_send, exit) = oneshot::channel(); - let exit_send_cell = RefCell::new(Some(exit_send)); - ctrlc::set_handler(move || { - if let Some(exit_send) = exit_send_cell.try_borrow_mut().expect("signal handler not reentrant; qed").take() { - exit_send.send(()).expect("Error sending exit notification"); - } - }).expect("Error setting Ctrl-C handler"); + let exit_send_cell = RefCell::new(Some(exit_send)); + ctrlc::set_handler(move || { + if let Some(exit_send) = exit_send_cell + .try_borrow_mut() + .expect("signal handler not reentrant; qed") + .take() + { + exit_send.send(()).expect("Error sending exit notification"); + } + }) + .expect("Error setting Ctrl-C handler"); - exit.map_err(drop) - } + exit.map_err(drop) + } } diff --git a/src/error.rs b/src/error.rs index a8aa94b..6d2eac6 100644 --- a/src/error.rs +++ b/src/error.rs @@ -3,11 +3,11 @@ use client; error_chain! { - foreign_links { - Io(::std::io::Error) #[doc="IO error"]; - Cli(::clap::Error) #[doc="CLI error"]; - } - links { - Client(client::error::Error, client::error::ErrorKind) #[doc="Client error"]; - } + foreign_links { + Io(::std::io::Error) #[doc="IO error"]; + Cli(::clap::Error) #[doc="CLI error"]; + } + links { + Client(client::error::Error, client::error::ErrorKind) #[doc="Client error"]; + } } diff --git a/src/main.rs b/src/main.rs index 36909bb..1f28fc2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,22 +4,22 @@ #![warn(unused_extern_crates)] mod chain_spec; -mod service; mod cli; +mod service; -pub use substrate_cli::{VersionInfo, IntoExit, error}; +pub use substrate_cli::{error, IntoExit, VersionInfo}; fn run() -> cli::error::Result<()> { - let version = VersionInfo { - name: "Joystream Node", - commit: env!("VERGEN_SHA_SHORT"), - version: env!("CARGO_PKG_VERSION"), - executable_name: "joystream-node", - author: "Joystream", - description: "Joystream substrate node", - support_url: "https://www.joystream.org/", - }; - cli::run(::std::env::args(), cli::Exit, version) + let version = VersionInfo { + name: "Joystream Node", + commit: env!("VERGEN_SHA_SHORT"), + version: env!("CARGO_PKG_VERSION"), + executable_name: "joystream-node", + author: "Joystream", + description: "Joystream substrate node", + support_url: "https://www.joystream.org/", + }; + cli::run(::std::env::args(), cli::Exit, version) } error_chain::quick_main!(run); diff --git a/src/service.rs b/src/service.rs index d0f505a..87447e7 100644 --- a/src/service.rs +++ b/src/service.rs @@ -2,24 +2,24 @@ #![warn(unused_extern_crates)] -use std::sync::Arc; -use transaction_pool::{self, txpool::{Pool as TransactionPool}}; -use log::info; -use joystream_node_runtime::{self, GenesisConfig, opaque::Block, RuntimeApi}; -use substrate_service::{ - FactoryFullConfiguration, LightComponents, FullComponents, FullBackend, - FullClient, LightClient, LightBackend, FullExecutor, LightExecutor, - TaskExecutor, -}; use basic_authorship::ProposerFactory; -use node_executor; -use consensus::{import_queue, start_aura, AuraImportQueue, SlotDuration, NothingExtra}; -use substrate_client as client; -use primitives::ed25519::Pair; +use consensus::{import_queue, start_aura, AuraImportQueue, NothingExtra, SlotDuration}; +use grandpa; use inherents::InherentDataProviders; -use substrate_network::construct_simple_protocol; +use joystream_node_runtime::{self, opaque::Block, GenesisConfig, RuntimeApi}; +use log::info; +use network::construct_simple_protocol; +use primitives::{ed25519::Pair, Pair as PairT}; +use std::sync::Arc; +use std::time::Duration; +use substrate_client as client; use substrate_executor::native_executor_instance; use substrate_service::construct_service_factory; +use substrate_service::{ + FactoryFullConfiguration, FullBackend, FullClient, FullComponents, FullExecutor, LightBackend, + LightClient, LightComponents, LightExecutor, TaskExecutor, +}; +use transaction_pool::{self, txpool::Pool as TransactionPool}; pub use substrate_executor::NativeExecutor; // Our native executor instance. @@ -27,86 +27,139 @@ native_executor_instance!( pub Executor, joystream_node_runtime::api::dispatch, joystream_node_runtime::native_version, - include_bytes!("../runtime/wasm/target/wasm32-unknown-unknown/release/joystream_node_runtime_wasm.compact.wasm") + include_bytes!("../substrate-runtime-joystream/wasm/target/wasm32-unknown-unknown/release/joystream_node_runtime_wasm.compact.wasm") ); -#[derive(Default)] -pub struct NodeConfig { - inherent_data_providers: InherentDataProviders, +pub struct NodeConfig { + pub grandpa_import_setup: Option<( + Arc>, + grandpa::LinkHalfForService, + )>, + inherent_data_providers: InherentDataProviders, +} + +impl Default for NodeConfig +where + F: substrate_service::ServiceFactory, +{ + fn default() -> NodeConfig { + NodeConfig { + grandpa_import_setup: None, + inherent_data_providers: InherentDataProviders::new(), + } + } } construct_simple_protocol! { - /// Demo protocol attachment for substrate. - pub struct NodeProtocol where Block = Block { } + /// Demo protocol attachment for substrate. + pub struct NodeProtocol where Block = Block { } } construct_service_factory! { - struct Factory { - Block = Block, - RuntimeApi = RuntimeApi, - NetworkProtocol = NodeProtocol { |config| Ok(NodeProtocol::new()) }, - RuntimeDispatch = node_executor::Executor, - FullTransactionPoolApi = transaction_pool::ChainApi, FullExecutor, Block, RuntimeApi>, Block> - { |config, client| Ok(TransactionPool::new(config, transaction_pool::ChainApi::new(client))) }, - LightTransactionPoolApi = transaction_pool::ChainApi, LightExecutor, Block, RuntimeApi>, Block> - { |config, client| Ok(TransactionPool::new(config, transaction_pool::ChainApi::new(client))) }, - Genesis = GenesisConfig, - Configuration = NodeConfig, - FullService = FullComponents - { |config: FactoryFullConfiguration, executor: TaskExecutor| - FullComponents::::new(config, executor) - }, - AuthoritySetup = { - |service: Self::FullService, executor: TaskExecutor, key: Option>| { - if let Some(key) = key { - info!("Using authority key {}", key.public()); - let proposer = Arc::new(ProposerFactory { - client: service.client(), - transaction_pool: service.transaction_pool(), - }); - let client = service.client(); - executor.spawn(start_aura( - SlotDuration::get_or_compute(&*client)?, - key.clone(), - client.clone(), - client, - proposer, - service.network(), - service.on_exit(), - service.config.custom.inherent_data_providers.clone(), - )?); - } + struct Factory { + Block = Block, + RuntimeApi = RuntimeApi, + NetworkProtocol = NodeProtocol { |config| Ok(NodeProtocol::new()) }, + RuntimeDispatch = Executor, + FullTransactionPoolApi = transaction_pool::ChainApi, FullExecutor, Block, RuntimeApi>, Block> + { |config, client| Ok(TransactionPool::new(config, transaction_pool::ChainApi::new(client))) }, + LightTransactionPoolApi = transaction_pool::ChainApi, LightExecutor, Block, RuntimeApi>, Block> + { |config, client| Ok(TransactionPool::new(config, transaction_pool::ChainApi::new(client))) }, + Genesis = GenesisConfig, + Configuration = NodeConfig, + FullService = FullComponents + { |config: FactoryFullConfiguration, executor: TaskExecutor| + FullComponents::::new(config, executor) + }, + AuthoritySetup = { + |mut service: Self::FullService, executor: TaskExecutor, key: Option>| { + let (block_import, link_half) = service.config.custom.grandpa_import_setup.take() + .expect("Link Half and Block Import are present for Full Services or setup failed before. qed"); + + if let Some(ref key) = key { + info!("Using authority key {}", key.public()); + let proposer = Arc::new(ProposerFactory { + client: service.client(), + transaction_pool: service.transaction_pool(), + inherents_pool: service.inherents_pool(), + }); + + let client = service.client(); + executor.spawn(start_aura( + SlotDuration::get_or_compute(&*client)?, + key.clone(), + client, + block_import.clone(), + proposer, + service.network(), + service.on_exit(), + service.config.custom.inherent_data_providers.clone(), + service.config.force_authoring, + )?); + + info!("Running Grandpa session as Authority {}", key.public()); + } + + let key = if service.config.disable_grandpa { + None + } else { + key + }; + + executor.spawn(grandpa::run_grandpa( + grandpa::Config { + local_key: key, + // FIXME #1578 make this available through chainspec + gossip_duration: Duration::from_millis(333), + justification_period: 4096, + name: Some(service.config.name.clone()) + }, + link_half, + grandpa::NetworkBridge::new(service.network()), + service.config.custom.inherent_data_providers.clone(), + service.on_exit(), + )?); + + Ok(service) + } + }, + LightService = LightComponents + { |config, executor| >::new(config, executor) }, + FullImportQueue = AuraImportQueue< + Self::Block, + > + { |config: &mut FactoryFullConfiguration , client: Arc>| { + let slot_duration = SlotDuration::get_or_compute(&*client)?; + let (block_import, link_half) = + grandpa::block_import::<_, _, _, RuntimeApi, FullClient>( + client.clone(), client.clone() + )?; + let block_import = Arc::new(block_import); + let justification_import = block_import.clone(); + + config.custom.grandpa_import_setup = Some((block_import.clone(), link_half)); - Ok(service) - } - }, - LightService = LightComponents - { |config, executor| >::new(config, executor) }, - FullImportQueue = AuraImportQueue< - Self::Block, - > - { |config: &mut FactoryFullConfiguration , client: Arc>| - import_queue( - SlotDuration::get_or_compute(&*client)?, - client.clone(), - None, - client, - NothingExtra, - config.custom.inherent_data_providers.clone(), - ).map_err(Into::into) - }, - LightImportQueue = AuraImportQueue< - Self::Block, - > - { |config: &mut FactoryFullConfiguration, client: Arc>| - import_queue( - SlotDuration::get_or_compute(&*client)?, - client.clone(), - None, - client, - NothingExtra, - config.custom.inherent_data_providers.clone(), - ).map_err(Into::into) - }, - } + import_queue::<_, _, _, Pair>( + slot_duration, + block_import, + Some(justification_import), + client, + NothingExtra, + config.custom.inherent_data_providers.clone(), + ).map_err(Into::into) + }}, + LightImportQueue = AuraImportQueue< + Self::Block, + > + { |config: &mut FactoryFullConfiguration, client: Arc>| + import_queue::<_, _, _, Pair>( + SlotDuration::get_or_compute(&*client)?, + client.clone(), + None, + client, + NothingExtra, + config.custom.inherent_data_providers.clone(), + ).map_err(Into::into) + }, + } }