From ec118fff9b497e080c1b02f219d853949a7a8ead Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Wed, 26 Feb 2020 10:02:50 +0000 Subject: [PATCH] Reduce wasm binary size with `cargo-xbuild` & removing `rlib` crate-type (#33) * WIP: building wasm with xargo * Fix compilation errors * Fmt * Run commands with `rustup run nightly` * Pass separate link-args in rustflags for xargo compat * Warn user if 'rlib' crate type * Colourise printed error * Ignore Xargo.toml in template * Refactor Xargo file generation, only remove if generated. * WIP: Add rlib crate-type when generating metadata * Add rlib when building metadata, remove when building wasm * Fmt * Make error bright red * Fix generating without modified Cargo.toml * Don't need to check nightly installed, the command will fail * Only load toml when ready to modify: allow for multi usage * Fmt * Show error context * Debug crate metadata * Disable rlib by default for template * Use correct working dir, not workspace root * Use `cargo-xbuild` as lib * Check for nightly channel * Check for correct xbuild configuration * Add xbuild config to template * Fix xbuild config check and use latest xbuild version * Fmt * Restore tempfile dev dependency * Move xbuild config to the end of the file * Enable rlib by default in template * Don't need nightly for generating the metadata * Actually do need nightly, and just run plain cargo * Not verbose: need to pass that flag through properly * Fmt * Fix tests * Error when xbuild config not present, and update README * Fix tests * Remove references to xargo and update readmes * Fmt * Add error context to cargo invocation * Fix tests compilation * Fmt * Nightly toolchain for CI * Add docs for nightly toolchain requirement * Link to nightly docs * Disable backtrace on CI * Make tests pass * Install rust-src * Disable backtrace to make tests pass * Move args closer to invocation * Create temporary Cargo.toml * Rework temp manifest api * Target dir is already absolute * temp dir prefix * xbuild config with sysroot path and explicit args * Use custom xbuild branch * Remove check for xbuild config * Rewrite relatives paths when using temp file * Fix dependency path rewrite * Update cargo-xbuild * workspaces: parse workspace member manifests * WIP workspaces * Implement temp workspace copy * Fmt * Rewrite bin relative path * Handle package rename for contracts * Fmt * Pass rustflags by setting env var * Fmt * Use abs path for lib default * Add 1 decimal place to file size * Make generate-metadata work, introduces ManifestPath * Fmt * cargo update * Rename manifest to workspace * Fix test compilation and fmt * Fix link * Add prerequisites section to readme * Remove rust-src component (added to image) * Fix deploy build * Use builder like method for amending root manifest * List installed components * Show active-toolchain and whether rust-src installed * Install nightly rust-src (temporary) * Fix metadata test * Fmt * Remove manual install of rust-src and diagnostics * More doc comments * Add verbosity flags * Add verbosity flags to metadata command * Fix working dir for generate-metadata * Add verbosity to tests * Add verbosity to tests * Make url optional and cargo update * Remove bk file from gitignore * Bump version * Fix comment and formatting * Add CHANGELOG.md --- .gitlab-ci.yml | 2 + CHANGELOG.md | 8 + Cargo.lock | 842 ++++++++++++++++++++++------------------- Cargo.toml | 12 +- README.md | 12 + src/cmd/build.rs | 128 +++++-- src/cmd/deploy.rs | 7 +- src/cmd/instantiate.rs | 5 +- src/cmd/metadata.rs | 80 ++-- src/cmd/mod.rs | 51 --- src/cmd/new.rs | 18 +- src/main.rs | 60 ++- src/util.rs | 103 +++++ src/workspace.rs | 393 +++++++++++++++++++ template/.cargo/config | 4 - template/.gitignore | 2 +- template/Cargo.toml | 3 +- 17 files changed, 1200 insertions(+), 530 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 src/util.rs create mode 100644 src/workspace.rs delete mode 100644 template/.cargo/config diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0884d5355..f1fdf8e8a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,8 @@ variables: CARGO_TARGET_DIR: "/ci-cache/${CI_PROJECT_NAME}/targets/${CI_COMMIT_REF_NAME}/${CI_JOB_NAME}" CI_SERVER_NAME: "GitLab CI" REGISTRY: registry.parity.io/parity/infrastructure/scripts + RUSTUP_TOOLCHAIN: nightly + RUST_LIB_BACKTRACE: 0 .collect-artifacts: &collect-artifacts artifacts: diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..38923c682 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# Version 0.4.0 (2020-02-26) + +- Minimize contract wasm binary size: + - Uses [`cargo-xbuild`](https://github.com/rust-osdev/cargo-xbuild) to build custom sysroot crates without panic string +bloat. + - Automatically removes the `rlib` crate type from `Cargo.toml`, removing redundant metadata. +- Removes requirement for linker args specified in `.cargo/config`. +- Added `--verbose` and `--quiet` flags for `build` and `generate-metadata` commands. diff --git a/Cargo.lock b/Cargo.lock index cb94e86fe..5551e7e9d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,10 +27,10 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -74,16 +74,16 @@ name = "async-std" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "async-task 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "async-task 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-io 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-timer 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "kv-log-macro 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -95,10 +95,10 @@ dependencies = [ [[package]] name = "async-task" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -109,7 +109,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", "webpki-roots 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -118,8 +118,8 @@ name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -135,12 +135,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "backtrace" -version = "0.3.43" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -150,7 +150,7 @@ version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -163,7 +163,7 @@ name = "base64" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -202,7 +202,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -221,15 +221,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bstr" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bumpalo" -version = "3.1.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -244,7 +244,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.3.2" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -262,25 +262,29 @@ dependencies = [ [[package]] name = "cargo-contract" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "async-std 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cargo-xbuild 0.5.28 (registry+https://github.com/rust-lang/crates.io-index)", "cargo_metadata 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "colored 1.9.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", "pwasm-utils 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "structopt 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-subxt 0.4.0 (git+https://github.com/paritytech/substrate-subxt/?rev=b7565ff435b9499ca1ff4dad519009e94a13111c)", "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -288,6 +292,24 @@ dependencies = [ "zip 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cargo-xbuild" +version = "0.5.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cargo_metadata 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", + "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cargo_metadata" version = "0.9.1" @@ -349,7 +371,7 @@ dependencies = [ [[package]] name = "colored" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -390,40 +412,43 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-deque" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-epoch" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-utils" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -447,7 +472,7 @@ name = "curve25519-dalek" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -459,7 +484,7 @@ name = "curve25519-dalek" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -468,12 +493,12 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.2" +version = "0.99.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -512,12 +537,20 @@ name = "environmental" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "error-chain" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "failure" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -526,9 +559,9 @@ name = "failure_derive" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -542,8 +575,8 @@ name = "fixed-hash" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -556,86 +589,95 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "frame-metadata" -version = "11.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "11.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "frame-support" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "bitmask 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "frame-metadata 11.0.0 (git+https://github.com/paritytech/substrate/)", - "frame-support-procedural 2.0.0 (git+https://github.com/paritytech/substrate/)", + "frame-metadata 11.0.0-dev (git+https://github.com/paritytech/substrate/)", + "frame-support-procedural 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "impl-trait-for-tuples 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "paste 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "paste 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-arithmetic 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-inherents 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-io 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-state-machine 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-arithmetic 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-inherents 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-io 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-state-machine 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "frame-support-procedural" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "frame-support-procedural-tools 2.0.0 (git+https://github.com/paritytech/substrate/)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "frame-support-procedural-tools 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "frame-support-procedural-tools" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "frame-support-procedural-tools-derive 2.0.0 (git+https://github.com/paritytech/substrate/)", + "frame-support-procedural-tools-derive 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "frame-system" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "frame-support 2.0.0 (git+https://github.com/paritytech/substrate/)", + "frame-support 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "impl-trait-for-tuples 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-io 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-version 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-io 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-version 2.0.0-dev (git+https://github.com/paritytech/substrate/)", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -706,9 +748,9 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -742,7 +784,7 @@ dependencies = [ "futures-macro 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-task 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -763,7 +805,7 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -777,8 +819,8 @@ name = "globset" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bstr 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bstr 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -795,7 +837,7 @@ dependencies = [ "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -843,15 +885,15 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "hex" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -977,14 +1019,14 @@ name = "impl-trait-for-tuples" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "indexmap" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1000,7 +1042,7 @@ name = "iovec" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1019,7 +1061,7 @@ dependencies = [ [[package]] name = "jsonrpsee" version = "1.0.0" -source = "git+https://github.com/paritytech/jsonrpsee/#0486b10c68423264ec159f239713460641df688d" +source = "git+https://github.com/paritytech/jsonrpsee/#f0f9d4b23ec7694f4de1a360200d9887bf31436d" dependencies = [ "async-std 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1029,13 +1071,13 @@ dependencies = [ "jsonrpsee-ws 1.0.0 (git+https://github.com/paritytech/jsonrpsee/)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpsee-core" version = "1.0.0" -source = "git+https://github.com/paritytech/jsonrpsee/#0486b10c68423264ec159f239713460641df688d" +source = "git+https://github.com/paritytech/jsonrpsee/#f0f9d4b23ec7694f4de1a360200d9887bf31436d" dependencies = [ "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1051,7 +1093,7 @@ dependencies = [ [[package]] name = "jsonrpsee-http" version = "1.0.0" -source = "git+https://github.com/paritytech/jsonrpsee/#0486b10c68423264ec159f239713460641df688d" +source = "git+https://github.com/paritytech/jsonrpsee/#f0f9d4b23ec7694f4de1a360200d9887bf31436d" dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1062,7 +1104,7 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1070,18 +1112,18 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" version = "1.0.0" -source = "git+https://github.com/paritytech/jsonrpsee/#0486b10c68423264ec159f239713460641df688d" +source = "git+https://github.com/paritytech/jsonrpsee/#f0f9d4b23ec7694f4de1a360200d9887bf31436d" dependencies = [ "Inflector 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpsee-server-utils" version = "1.0.0" -source = "git+https://github.com/paritytech/jsonrpsee/#0486b10c68423264ec159f239713460641df688d" +source = "git+https://github.com/paritytech/jsonrpsee/#f0f9d4b23ec7694f4de1a360200d9887bf31436d" dependencies = [ "globset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1093,7 +1135,7 @@ dependencies = [ [[package]] name = "jsonrpsee-ws" version = "1.0.0" -source = "git+https://github.com/paritytech/jsonrpsee/#0486b10c68423264ec159f239713460641df688d" +source = "git+https://github.com/paritytech/jsonrpsee/#f0f9d4b23ec7694f4de1a360200d9887bf31436d" dependencies = [ "async-std 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "async-tls 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1109,9 +1151,9 @@ dependencies = [ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", "soketto 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1143,7 +1185,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.66" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1166,7 +1208,7 @@ name = "lock_api" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1189,7 +1231,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.3.0" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1221,7 +1263,7 @@ name = "merlin" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "keccak 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "zeroize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1237,7 +1279,7 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (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)", @@ -1251,7 +1293,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1272,7 +1314,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1286,7 +1328,7 @@ name = "nom" version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1333,8 +1375,8 @@ name = "num_cpus" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1352,18 +1394,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pallet-indices" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "frame-support 2.0.0 (git+https://github.com/paritytech/substrate/)", - "frame-system 2.0.0 (git+https://github.com/paritytech/substrate/)", + "frame-support 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "frame-system 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-io 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-keyring 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-io 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-keyring 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] @@ -1384,9 +1426,9 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1407,8 +1449,8 @@ name = "parity-util-mem-derive" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1443,7 +1485,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (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.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1457,7 +1499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1465,22 +1507,22 @@ dependencies = [ [[package]] name = "paste" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "paste-impl 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "paste-impl 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "paste-impl" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1488,7 +1530,7 @@ name = "pbkdf2" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1515,9 +1557,9 @@ name = "pin-project-internal" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1561,25 +1603,25 @@ dependencies = [ [[package]] name = "proc-macro-error" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro-error-attr 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-error-attr 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustversion 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "proc-macro-error-attr" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustversion 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1588,9 +1630,9 @@ name = "proc-macro-hack" version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1600,7 +1642,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1611,7 +1653,7 @@ name = "pwasm-utils" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1626,7 +1668,19 @@ name = "quote" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand" +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.67 (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.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1635,7 +1689,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (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.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1653,7 +1707,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1727,7 +1781,7 @@ name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1739,7 +1793,7 @@ 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.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (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.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1780,8 +1834,8 @@ name = "regex" version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1801,12 +1855,12 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.9" +version = "0.16.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1843,9 +1897,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1853,9 +1907,9 @@ name = "rustversion" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1889,7 +1943,7 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1897,7 +1951,7 @@ name = "sct" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1928,9 +1982,9 @@ name = "serde_derive" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1992,7 +2046,7 @@ dependencies = [ "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2002,68 +2056,68 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "sp-api" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "hash-db 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-api-proc-macro 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-state-machine 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-version 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-api-proc-macro 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-state-machine 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-version 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-api-proc-macro" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-application-crypto" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-io 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-io 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-arithmetic" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "integer-sqrt 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-debug-derive 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-core" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" 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.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "ed25519-dalek 1.0.0-pre.3 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", "hash256-std-hasher 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "impl-serde 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2079,11 +2133,11 @@ dependencies = [ "schnorrkel 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-externalities 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime-interface 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-storage 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-debug-derive 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-externalities 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime-interface 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-storage 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "substrate-bip39 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-bip39 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-keccak 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2094,133 +2148,133 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-externalities" -version = "0.8.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "0.8.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "environmental 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-storage 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-storage 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-inherents" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-io" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "hash-db 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", "libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-externalities 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime-interface 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-state-machine 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-trie 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-wasm-interface 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-externalities 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime-interface 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-state-machine 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-trie 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-wasm-interface 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-keyring" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "strum 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-panic-handler" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-rpc" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-runtime" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "impl-trait-for-tuples 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-util-mem 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "paste 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "paste 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-application-crypto 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-arithmetic 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-inherents 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-io 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-application-crypto 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-arithmetic 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-inherents 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-io 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-runtime-interface" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime-interface-proc-macro 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-wasm-interface 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-externalities 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime-interface-proc-macro 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-wasm-interface 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "Inflector 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-state-machine" -version = "0.8.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "0.8.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "hash-db 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2228,78 +2282,78 @@ dependencies = [ "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-externalities 0.8.0 (git+https://github.com/paritytech/substrate/)", - "sp-panic-handler 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-trie 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-externalities 0.8.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-panic-handler 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-trie 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "trie-db 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-std" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" [[package]] name = "sp-storage" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "impl-serde 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-debug-derive 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-transaction-pool" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ - "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.99.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-api 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-api 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-trie" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "hash-db 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", "memory-db 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "trie-db 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-root 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-version" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "impl-serde 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", ] [[package]] name = "sp-wasm-interface" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate/#d43b9f3ff94eb1f914ef77b00489bb42e5e40424" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/substrate/#71d10b4564d1ffcb74ee8058c76d7f279a8a3842" dependencies = [ "impl-trait-for-tuples 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)", + "sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "wasmi 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2334,10 +2388,10 @@ version = "0.4.2" 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-macro-error 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-error 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2354,9 +2408,9 @@ version = "0.16.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 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2375,23 +2429,23 @@ name = "substrate-subxt" version = "0.4.0" source = "git+https://github.com/paritytech/substrate-subxt/?rev=b7565ff435b9499ca1ff4dad519009e94a13111c#b7565ff435b9499ca1ff4dad519009e94a13111c" dependencies = [ - "frame-metadata 11.0.0 (git+https://github.com/paritytech/substrate/)", - "frame-support 2.0.0 (git+https://github.com/paritytech/substrate/)", + "frame-metadata 11.0.0-dev (git+https://github.com/paritytech/substrate/)", + "frame-support 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpsee 1.0.0 (git+https://github.com/paritytech/jsonrpsee/)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "pallet-indices 2.0.0 (git+https://github.com/paritytech/substrate/)", + "pallet-indices 2.0.0-dev (git+https://github.com/paritytech/substrate/)", "parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-rpc 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-transaction-pool 2.0.0 (git+https://github.com/paritytech/substrate/)", - "sp-version 2.0.0 (git+https://github.com/paritytech/substrate/)", - "thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-rpc 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-transaction-pool 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "sp-version 2.0.0-dev (git+https://github.com/paritytech/substrate/)", + "thiserror 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2407,10 +2461,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "syn" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2420,9 +2474,9 @@ name = "syn-mid" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2430,19 +2484,28 @@ name = "synstructure" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "tempfile" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2467,20 +2530,20 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "thiserror-impl 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror-impl 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "thiserror-impl" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2496,7 +2559,7 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2532,7 +2595,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2571,7 +2634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "tracing-attributes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2580,12 +2643,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tracing-core" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2634,7 +2697,7 @@ name = "uint" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2778,12 +2841,12 @@ name = "wasm-bindgen-backend" version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bumpalo 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2801,9 +2864,9 @@ name = "wasm-bindgen-macro-support" version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2821,9 +2884,9 @@ dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2833,7 +2896,7 @@ name = "wasmi" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", "memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-rational 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2863,10 +2926,10 @@ dependencies = [ [[package]] name = "webpki" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2875,7 +2938,7 @@ name = "webpki-roots" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2892,7 +2955,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2959,9 +3022,9 @@ name = "zeroize_derive" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2978,7 +3041,7 @@ dependencies = [ "checksum Inflector 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" "checksum ahash 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" "checksum ahash 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0989268a37e128d4d7a8028f1c60099430113fdbc70419010601ce51a228e4fe" -"checksum aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5f56c476256dc249def911d6f7580b5fc7e875895b5d7ee88f5d602208035744" +"checksum aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "743ad5a418686aad3b87fd14c43badd828cf26e214a00f92a384291cf22e1811" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" "checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" @@ -2986,12 +3049,12 @@ dependencies = [ "checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" "checksum async-std 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "538ecb01eb64eecd772087e5b6f7540cbc917f047727339a472dafed2185b267" -"checksum async-task 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f20c6fda19d0fc02406779587ca4f9a4171cd32e4a5bda0bd016f0a1334c8d4a" +"checksum async-task 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0ac2c016b079e771204030951c366db398864f5026f84a44dafb0ff20f02085d" "checksum async-tls 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce6977f57fa68da77ffe5542950d47e9c23d65f5bc7cb0a9f8700996913eec7" "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" "checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -"checksum backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "7f80256bc78f67e7df7e36d77366f636ed976895d91fe2ab9efa3973e8fe8c4f" +"checksum backtrace 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)" = "e4036b9bf40f3cf16aba72a3d65e8a520fc4bafcdc7079aea8f848c58c5b5536" "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" @@ -3003,13 +3066,14 @@ dependencies = [ "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" "checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" "checksum bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b170cd256a3f9fa6b9edae3e44a7dfdfc77e8124dbc3e2612d75f9c3e2396dae" -"checksum bstr 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fe8a65814ca90dfc9705af76bb6ba3c6e2534489a72270e797e603783bb4990b" -"checksum bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8038c1ddc0a5f73787b130f4cc75151e96ed33e417fde765eb5a81e3532f4" +"checksum bstr 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "502ae1441a0a5adb8fbd38a5955a6416b9493e92b465de5e4a9bde6a539c2c48" +"checksum bumpalo 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f359dc14ff8911330a51ef78022d376f25ed00248912803b58f00cb1c27f742" "checksum byte-slice-cast 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" "checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" +"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" "checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" "checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" +"checksum cargo-xbuild 0.5.28 (registry+https://github.com/rust-lang/crates.io-index)" = "b8cf1fcfab5ef1b3aeacb5bc16c248ecc4ef9e3e81ed96087e3801b81b305ca0" "checksum cargo_metadata 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "46e3374c604fb39d1a2f35ed5e4a4e30e60d01fab49446e08f1b3e9a90aef202" "checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" @@ -3017,35 +3081,37 @@ dependencies = [ "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62" -"checksum colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8815e2ab78f3a59928fc32e141fbeece88320a240e43f47b2fd64ea3a88a5b3d" +"checksum colored 1.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" "checksum const-random 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" "checksum const-random-macro 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" "checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" -"checksum crossbeam-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "acec9a3b0b3559f15aee4f90746c4e5e293b701c0f7d3925d24e01645267b68c" -"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca" -"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac" -"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" +"checksum crossbeam-channel 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061" +"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +"checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" "checksum crunchy 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" "checksum curve25519-dalek 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8b7dcd30ba50cdf88b55b033456138b7c0ac4afdc436d82e1b79f370f24cc66d" "checksum curve25519-dalek 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "26778518a7f6cffa1d25a44b602b62b979bd88adb9e99ffec546998cf3404839" -"checksum derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8" +"checksum derive_more 0.99.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a806e96c59a76a5ba6e18735b6cf833344671e61e7863f2edb5c518ea2cac95c" "checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" "checksum ed25519-dalek 1.0.0-pre.3 (registry+https://github.com/rust-lang/crates.io-index)" = "978710b352437433c97b2bff193f2fb1dfd58a093f863dd95e225a19baa599a2" "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" "checksum environmental 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "516aa8d7a71cb00a1c4146f0798549b93d083d4f189b3ced8f3de6b8f11ee6c4" +"checksum error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" "checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9" "checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" "checksum fixed-hash 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3367952ceb191f4ab95dd5685dc163ac539e36202f9fcfd0cb22f9f9c542fefc" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum frame-metadata 11.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum frame-support 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum frame-support-procedural 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum frame-support-procedural-tools 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum frame-support-procedural-tools-derive 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum frame-system 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" +"checksum frame-metadata 11.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum frame-support 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum frame-support-procedural 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum frame-support-procedural-tools 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum frame-support-procedural-tools-derive 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum frame-system 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" "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" @@ -3070,8 +3136,8 @@ dependencies = [ "checksum hashbrown 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" "checksum hashbrown 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "728e7d31e63d53c436094370f1e6fa249f60a4bb318cc5dfbbbe0aa2bc5a29d7" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" -"checksum hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "023b39be39e3a2da62a94feb433e91e8bcd37676fbc8bea371daf52b7a769a3e" +"checksum hermit-abi 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8" +"checksum hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" "checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" "checksum hmac-drbg 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" "checksum http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b" @@ -3085,7 +3151,7 @@ dependencies = [ "checksum impl-serde 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "58e3cae7e99c7ff5a995da2cf78dd0a5383740eda71d98cf7b1910c301ac69b8" "checksum impl-serde 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5bbe9ea9b182f0fb1cabbd61f4ff9b7b7b9197955e95a7e4c27de5055eb29ff8" "checksum impl-trait-for-tuples 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" -"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc" +"checksum indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" "checksum integer-sqrt 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f65877bf7d44897a473350b1046277941cee20b263397e90869c50b6e766088b" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" @@ -3100,13 +3166,13 @@ dependencies = [ "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum kv-log-macro 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c54d9f465d530a752e6ebdc217e081a7a614b48cb200f6f0aee21ba6bc9aabb" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" +"checksum libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018" "checksum libsecp256k1 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" "checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b" "checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" -"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223" +"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" "checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9" "checksum memory-db 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "198831fe8722331a395bc199a5d08efbc197497ef354cb4c77b969c02ffc0fc4" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" @@ -3124,7 +3190,7 @@ dependencies = [ "checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" "checksum once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b" "checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -"checksum pallet-indices 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" +"checksum pallet-indices 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" "checksum parity-scale-codec 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f747c06d9f3b2ad387ac881b9667298c81b1243aa9833f086e05996937c35507" "checksum parity-scale-codec-derive 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "34e513ff3e406f3ede6796dcdc83d0b32ffb86668cea1ccf7363118abeb00476" "checksum parity-util-mem 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ef1476e40bf8f5c6776e9600983435821ca86eb9819d74a6207cca69d091406a" @@ -3134,8 +3200,8 @@ dependencies = [ "checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" "checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" "checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1" -"checksum paste 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "423a519e1c6e828f1e73b720f9d9ed2fa643dce8a7737fb43235ce0b41eeaa49" -"checksum paste-impl 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4214c9e912ef61bf42b81ba9a47e8aad1b2ffaf739ab162bf96d1e011f54e6c5" +"checksum paste 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "63e1afe738d71b1ebab5f1207c055054015427dbfc7bbe9ee1266894156ec046" +"checksum paste-impl 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6d4dc4a7f6f743211c5aab239640a65091535d97d43d92a52bca435a640892bb" "checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" @@ -3147,14 +3213,15 @@ dependencies = [ "checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" "checksum primitive-types 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e4336f4f5d5524fa60bcbd6fe626f9223d8142a50e7053e979acdf0da41ab975" "checksum proc-macro-crate 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e10d4b51f154c8a7fb96fd6dad097cb74b863943ec010ac94b9fd1be8861fe1e" -"checksum proc-macro-error 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "875077759af22fa20b610ad4471d8155b321c89c3f2785526c9839b099be4e0a" -"checksum proc-macro-error-attr 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c5717d9fa2664351a01ed73ba5ef6df09c01a521cb42cb65a061432a826f3c7a" +"checksum proc-macro-error 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "052b3c9af39c7e5e94245f820530487d19eb285faedcb40e0c3275132293f242" +"checksum proc-macro-error-attr 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d175bef481c7902e63e3165627123fff3502f06ac043d3ef42d08c1246da9253" "checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5" "checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e" -"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" +"checksum proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435" "checksum pwasm-utils 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f7a12f176deee919f4ba55326ee17491c8b707d0987aed822682c821b660192" "checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" +"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" "checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" @@ -3174,7 +3241,7 @@ dependencies = [ "checksum regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8" "checksum regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b28dfe3fe9badec5dbf0a79a9cccad2cfc2ab5484bdb3e44cbd1ae8b3ba2be06" "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" -"checksum ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6747f8da1f2b1fabbee1aaa4eb8a11abf9adef0bf58a41cee45db5d59cecdfac" +"checksum ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)" = "741ba1704ae21999c00942f9f5944f801e977f54302af346b596287599ad1862" "checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" "checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" "checksum rustc-hex 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" @@ -3184,7 +3251,7 @@ dependencies = [ "checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" "checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" "checksum schnorrkel 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "eacd8381b3c37840c9c9f40472af529e49975bdcbc24f83c31059fd6539023d3" -"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" +"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" "checksum sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" "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" @@ -3198,28 +3265,28 @@ dependencies = [ "checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" "checksum soketto 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c9dab3f95c9ebdf3a88268c19af668f637a3c5039c2c56ff2d40b1b2d64a25b" "checksum sourcefile 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3" -"checksum sp-api 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-api-proc-macro 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-application-crypto 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-arithmetic 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-core 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-debug-derive 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-externalities 0.8.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-inherents 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-io 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-keyring 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-panic-handler 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-rpc 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-runtime-interface 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-runtime-interface-proc-macro 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-state-machine 0.8.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-std 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-storage 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-transaction-pool 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-trie 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-version 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" -"checksum sp-wasm-interface 2.0.0 (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-api 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-api-proc-macro 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-application-crypto 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-arithmetic 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-core 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-debug-derive 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-externalities 0.8.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-inherents 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-io 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-keyring 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-panic-handler 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-rpc 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-runtime 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-runtime-interface 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-runtime-interface-proc-macro 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-state-machine 0.8.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-std 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-storage 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-transaction-pool 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-trie 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-version 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" +"checksum sp-wasm-interface 2.0.0-dev (git+https://github.com/paritytech/substrate/)" = "" "checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" "checksum static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" @@ -3231,14 +3298,15 @@ dependencies = [ "checksum substrate-subxt 0.4.0 (git+https://github.com/paritytech/substrate-subxt/?rev=b7565ff435b9499ca1ff4dad519009e94a13111c)" = "" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c65d530b10ccaeac294f349038a597e435b18fb456aadd0840a623f83b9e941" -"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" +"checksum syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)" = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859" "checksum syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a" "checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" +"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" "checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum thiserror 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "205684fd018ca14432b12cce6ea3d46763311a571c3d294e71ba3f01adcf1aad" -"checksum thiserror-impl 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "57e4d2e50ca050ed44fb58309bdce3efa79948f84f9993ad1978de5eebdce5a7" +"checksum thiserror 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ee14bf8e6767ab4c687c9e8bc003879e042a96fd67a3ba5934eadb6536bef4db" +"checksum thiserror-impl 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "a7b51e1fbc44b5a0840be594fbc0f960be09050f2617e61e6aa43bef97cd3ef4" "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" "checksum tiny-bip39 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1cd1fb03fe8e07d17cd851a624a9fff74642a997b67fbd1ccd77533241640d92" @@ -3249,7 +3317,7 @@ dependencies = [ "checksum tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" "checksum tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1e213bd24252abeb86a0b7060e02df677d367ce6cb772cef17e9214b8390a8d3" "checksum tracing-attributes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04cfd395def5a60236e187e1ff905cb55668a59f29928dec05e6e1b1fd2ac1f3" -"checksum tracing-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "13a46f11e372b8bd4b4398ea54353412fdd7fd42a8370c7e543e218cf7661978" +"checksum tracing-core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0aa83a9a47081cd522c09c81b31aec2c9273424976f922ad61c053b58350b715" "checksum trie-db 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de9222c50cc325855621271157c973da27a0dcd26fa06f8edf81020bd2333df0" "checksum trie-root 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cd" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" @@ -3282,7 +3350,7 @@ dependencies = [ "checksum wasmi 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bf617d864d25af3587aa745529f7aaa541066c876d57e050c0d0c85c61c92aff" "checksum wasmi-validation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea78c597064ba73596099281e2f4cfc019075122a65cdda3205af94f0b264d93" "checksum web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "aaf97caf6aa8c2b1dac90faf0db529d9d63c93846cca4911856f78a83cebf53b" -"checksum webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7e664e770ac0110e2384769bcc59ed19e329d81f555916a6e072714957b81b4" +"checksum webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef" "checksum webpki-roots 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a262ae37dd9d60f60dd473d1158f9fbebf110ba7b6a5051c8160460f6043718b" "checksum weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bb43f70885151e629e2a19ce9e50bd730fd436cfd4b666894c9ce4de9141164" "checksum which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8" diff --git a/Cargo.toml b/Cargo.toml index e4b95de80..6a73707c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-contract" -version = "0.3.0" +version = "0.4.0" authors = ["Parity Technologies "] build = "build.rs" edition = "2018" @@ -27,14 +27,19 @@ cargo_metadata = "0.9.1" codec = { package = "parity-scale-codec", version = "1.1" } which = "3.1.0" colored = "1.9" +toml = "0.5.4" +cargo-xbuild = "0.5.26" +rustc_version = "0.2.3" +serde_json = "1.0" +tempfile = "3.1.0" # dependencies for optional extrinsics feature async-std = { version = "1.5.0", optional = true } sp-core = { git = "https://github.com/paritytech/substrate/", package = "sp-core", optional = true } subxt = { git = "https://github.com/paritytech/substrate-subxt/", rev = "b7565ff435b9499ca1ff4dad519009e94a13111c", package = "substrate-subxt", optional = true } futures = { version = "0.3.2", optional = true } -url = { version = "2.1.1", optional = true } hex = { version = "0.4.0", optional = true } +url = { version = "2.1.1", optional = true } [build-dependencies] anyhow = "1.0.26" @@ -43,10 +48,9 @@ walkdir = "2.3.1" [dev-dependencies] assert_matches = "1.3.0" -tempfile = "3.1.0" wabt = "0.9.2" [features] default = [] -extrinsics = ["sp-core", "subxt", "async-std", "futures", "url", "hex"] +extrinsics = ["sp-core", "subxt", "async-std", "futures", "hex", "url"] test-ci-only = [] diff --git a/README.md b/README.md index dda99ea5c..190b94103 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,11 @@ A small CLI tool for helping setting up and managing WebAssembly smart contracts ## Installation +### Prerequisites + +- **rust-src**: `rustup component add rust-src` +- **wasm-opt**: https://github.com/WebAssembly/binaryen#tools + `cargo install --git https://github.com/paritytech/cargo-contract cargo-contract --force` Use the --force to ensure you are updated to the most recent cargo-contract version. @@ -35,6 +40,13 @@ SUBCOMMANDS: help Prints this message or the help of the given subcommand(s) ``` +## `build` requires the `nightly` toolchain + +`cargo contract build` must be run using the `nightly` toolchain. If you have +[`rustup`](https://github.com/rust-lang/rustup) installed, the simplest way to do so is `cargo +nightly contract build`. +To avoid having to add `+nightly` you can also create a `rust-toolchain` file in your local directory containing +`nightly`. Read more about how to [specify the rustup toolchain](https://github.com/rust-lang/rustup#override-precedence). + ## Features The `deploy` and `instantiate` subcommands are **disabled by default**, since they are not fully stable yet and increase the build time. diff --git a/src/cmd/build.rs b/src/cmd/build.rs index c054f591c..20671fff8 100644 --- a/src/cmd/build.rs +++ b/src/cmd/build.rs @@ -17,12 +17,17 @@ use std::{ fs::metadata, io::{self, Write}, - path::PathBuf, + path::{Path, PathBuf}, process::Command, }; +use crate::{ + util, + workspace::{ManifestPath, Workspace}, + Verbosity, +}; use anyhow::{Context, Result}; -use cargo_metadata::MetadataCommand; +use cargo_metadata::Package; use colored::Colorize; use parity_wasm::elements::{External, MemoryType, Module, Section}; @@ -30,24 +35,25 @@ use parity_wasm::elements::{External, MemoryType, Module, Section}; const MAX_MEMORY_PAGES: u32 = 16; /// Relevant metadata obtained from Cargo.toml. +#[derive(Debug)] pub struct CrateMetadata { + manifest_path: ManifestPath, + cargo_meta: cargo_metadata::Metadata, package_name: String, + root_package: Package, original_wasm: PathBuf, pub dest_wasm: PathBuf, } -/// Parses the contract manifest and returns relevant metadata. -pub fn collect_crate_metadata(working_dir: Option<&PathBuf>) -> Result { - let mut cmd = MetadataCommand::new(); - if let Some(dir) = working_dir { - cmd.current_dir(dir); +impl CrateMetadata { + pub fn target_dir(&self) -> &Path { + self.cargo_meta.target_directory.as_path() } - let metadata = cmd.exec()?; +} - let root_package_id = metadata - .resolve - .and_then(|resolve| resolve.root) - .context("Cannot infer the root project id")?; +/// Parses the contract manifest and returns relevant metadata. +pub fn collect_crate_metadata(manifest_path: &ManifestPath) -> Result { + let (metadata, root_package_id) = crate::util::get_cargo_metadata(manifest_path)?; // Find the root package by id in the list of packages. It is logical error if the root // package is not found in the list. @@ -55,7 +61,8 @@ pub fn collect_crate_metadata(working_dir: Option<&PathBuf>) -> Result) -> Result) -> Result<()> { - super::exec_cargo( - "build", - &[ +/// Uses [`cargo-xbuild`](https://github.com/rust-osdev/cargo-xbuild) for maximum optimization of +/// the resulting Wasm binary. +fn build_cargo_project(crate_metadata: &CrateMetadata, verbosity: Option) -> Result<()> { + util::assert_channel()?; + + // set RUSTFLAGS, read from environment var by cargo-xbuild + std::env::set_var( + "RUSTFLAGS", + "-C link-arg=-z -C link-arg=stack-size=65536 -C link-arg=--import-memory", + ); + + let verbosity = verbosity.map(|v| match v { + Verbosity::Verbose => xargo_lib::Verbosity::Verbose, + Verbosity::Quiet => xargo_lib::Verbosity::Quiet, + }); + + let xbuild = |manifest_path: &ManifestPath| { + let manifest_path = Some(manifest_path); + let target = Some("wasm32-unknown-unknown"); + let target_dir = crate_metadata.target_dir(); + let other_args = [ "--no-default-features", "--release", - "--target=wasm32-unknown-unknown", - "--verbose", - ], - working_dir, - ) + &format!("--target-dir={}", target_dir.to_string_lossy()), + ]; + let args = xargo_lib::Args::new(target, manifest_path, verbosity, &other_args) + .map_err(|e| anyhow::anyhow!("{}", e)) + .context("Creating xargo args")?; + + let config = xargo_lib::Config { + sysroot_path: target_dir.join("sysroot"), + memcpy: false, + panic_immediate_abort: true, + }; + + let exit_status = xargo_lib::build(args, "build", Some(config)) + .map_err(|e| anyhow::anyhow!("{}", e)) + .context("Building with xbuild")?; + log::debug!("xargo exit status: {:?}", exit_status); + Ok(()) + }; + + Workspace::new(&crate_metadata.cargo_meta, &crate_metadata.root_package.id)? + .with_root_package_manifest(|manifest| { + manifest.with_removed_crate_type("rlib")?; + Ok(()) + })? + .using_temp(xbuild)?; + + Ok(()) } /// Ensures the wasm memory import of a given module has the maximum number of pages. @@ -145,7 +194,11 @@ fn strip_custom_sections(module: &mut Module) { /// Performs required post-processing steps on the wasm artifact. fn post_process_wasm(crate_metadata: &CrateMetadata) -> Result<()> { // Deserialize wasm module from a file. - let mut module = parity_wasm::deserialize_file(&crate_metadata.original_wasm)?; + let mut module = + parity_wasm::deserialize_file(&crate_metadata.original_wasm).context(format!( + "Loading original wasm file '{}'", + crate_metadata.original_wasm.display() + ))?; // Perform optimization. // @@ -198,10 +251,10 @@ fn optimize_wasm(crate_metadata: &CrateMetadata) -> Result<()> { anyhow::bail!("wasm-opt optimization failed"); } - let original_size = metadata(&crate_metadata.dest_wasm)?.len() / 1000; - let optimized_size = metadata(&optimized)?.len() / 1000; + let original_size = metadata(&crate_metadata.dest_wasm)?.len() as f64 / 1000.0; + let optimized_size = metadata(&optimized)?.len() as f64 / 1000.0; println!( - " Original wasm size: {}K, Optimized: {}K", + " Original wasm size: {:.1}K, Optimized: {:.1}K", original_size, optimized_size ); @@ -213,19 +266,22 @@ fn optimize_wasm(crate_metadata: &CrateMetadata) -> Result<()> { /// Executes build of the smart-contract which produces a wasm binary that is ready for deploying. /// /// It does so by invoking build by cargo and then post processing the final binary. -pub(crate) fn execute_build(working_dir: Option<&PathBuf>) -> Result { +pub(crate) fn execute_build( + manifest_path: ManifestPath, + verbosity: Option, +) -> Result { println!( " {} {}", "[1/4]".bold(), "Collecting crate metadata".bright_green().bold() ); - let crate_metadata = collect_crate_metadata(working_dir)?; + let crate_metadata = collect_crate_metadata(&manifest_path)?; println!( " {} {}", "[2/4]".bold(), "Building cargo project".bright_green().bold() ); - build_cargo_project(working_dir)?; + build_cargo_project(&crate_metadata, verbosity)?; println!( " {} {}", "[3/4]".bold(), @@ -248,13 +304,15 @@ pub(crate) fn execute_build(working_dir: Option<&PathBuf>) -> Result { #[cfg(feature = "test-ci-only")] #[cfg(test)] mod tests { - use crate::cmd::{execute_new, tests::with_tmp_dir}; + use crate::{cmd::execute_new, util::tests::with_tmp_dir, workspace::ManifestPath}; #[test] fn build_template() { with_tmp_dir(|path| { execute_new("new_project", Some(path)).expect("new project creation failed"); - super::execute_build(Some(&path.join("new_project"))).expect("build failed"); + let manifest_path = + ManifestPath::new(&path.join("new_project").join("Cargo.toml")).unwrap(); + super::execute_build(manifest_path, None).expect("build failed"); }); } } diff --git a/src/cmd/deploy.rs b/src/cmd/deploy.rs index 4b7982333..733a93ccd 100644 --- a/src/cmd/deploy.rs +++ b/src/cmd/deploy.rs @@ -28,7 +28,7 @@ use crate::{cmd::build, ExtrinsicOpts}; fn load_contract_code(path: Option<&PathBuf>) -> Result> { let contract_wasm_path = match path { Some(path) => path.clone(), - None => build::collect_crate_metadata(path)?.dest_wasm, + None => build::collect_crate_metadata(&Default::default())?.dest_wasm, }; log::info!("Contract code path: {}", contract_wasm_path.display()); let mut data = Vec::new(); @@ -61,10 +61,7 @@ pub(crate) fn execute_deploy( mod tests { use std::{fs, io::Write}; - use crate::{ - cmd::{deploy::execute_deploy, tests::with_tmp_dir}, - ExtrinsicOpts, - }; + use crate::{cmd::deploy::execute_deploy, util::tests::with_tmp_dir, ExtrinsicOpts}; use assert_matches::assert_matches; const CONTRACT: &str = r#" diff --git a/src/cmd/instantiate.rs b/src/cmd/instantiate.rs index bb473b6c7..29a6d1c45 100644 --- a/src/cmd/instantiate.rs +++ b/src/cmd/instantiate.rs @@ -40,10 +40,7 @@ pub(crate) fn execute_instantiate( mod tests { use std::{fs, io::Write}; - use crate::{ - cmd::{deploy::execute_deploy, tests::with_tmp_dir}, - ExtrinsicOpts, HexData, - }; + use crate::{cmd::deploy::execute_deploy, util::tests::with_tmp_dir, ExtrinsicOpts, HexData}; use assert_matches::assert_matches; const CONTRACT: &str = r#" diff --git a/src/cmd/metadata.rs b/src/cmd/metadata.rs index 733a65c11..87d5cb2eb 100644 --- a/src/cmd/metadata.rs +++ b/src/cmd/metadata.rs @@ -14,57 +14,89 @@ // You should have received a copy of the GNU General Public License // along with ink!. If not, see . -use std::path::PathBuf; +use crate::{ + util, + workspace::{ManifestPath, Workspace}, + Verbosity, +}; +use anyhow::Result; -use anyhow::{Context, Result}; -use cargo_metadata::MetadataCommand; +const METADATA_FILE: &str = "metadata.json"; /// Executes build of the smart-contract which produces a wasm binary that is ready for deploying. /// /// It does so by invoking build by cargo and then post processing the final binary. -pub(crate) fn execute_generate_metadata(dir: Option<&PathBuf>) -> Result { +pub(crate) fn execute_generate_metadata( + manifest_path: ManifestPath, + verbosity: Option, +) -> Result { + util::assert_channel()?; println!(" Generating metadata"); - super::exec_cargo( - "run", - &[ - "--package", - "abi-gen", - "--release", - // "--no-default-features", // Breaks builds for MacOS (linker errors), we should investigate this issue asap! - "--verbose", - ], - dir, - )?; + let (metadata, root_package_id) = crate::util::get_cargo_metadata(&manifest_path)?; - let cargo_metadata = MetadataCommand::new() - .exec() - .context("Error invoking `cargo metadata`")?; - let mut out_path = cargo_metadata.target_directory; - out_path.push("metadata.json"); + let out_path = metadata.target_directory.join(METADATA_FILE); + let out_path_display = format!("{}", out_path.display()); + + let target_dir = metadata.target_directory.clone(); + + let generate_metadata = move |tmp_manifest_path: &ManifestPath| -> Result<()> { + let target_dir_arg = format!("--target-dir={}", target_dir.to_string_lossy()); + util::invoke_cargo( + "run", + &[ + "--package", + "abi-gen", + &tmp_manifest_path.cargo_arg(), + &target_dir_arg, + "--release", + // "--no-default-features", // Breaks builds for MacOS (linker errors), we should investigate this issue asap! + ], + manifest_path.directory(), + verbosity, + ) + }; + + Workspace::new(&metadata, &root_package_id)? + .with_root_package_manifest(|manifest| { + manifest.with_added_crate_type("rlib")?; + Ok(()) + })? + .using_temp(generate_metadata)?; Ok(format!( "Your metadata file is ready.\nYou can find it here:\n{}", - out_path.display() + out_path_display )) } #[cfg(feature = "test-ci-only")] #[cfg(test)] mod tests { - use crate::cmd::{execute_generate_metadata, execute_new, tests::with_tmp_dir}; + use crate::{ + cmd::{execute_generate_metadata, execute_new}, + util::tests::with_tmp_dir, + workspace::ManifestPath, + }; #[test] fn generate_metadata() { + env_logger::try_init().ok(); with_tmp_dir(|path| { execute_new("new_project", Some(path)).expect("new project creation failed"); let working_dir = path.join("new_project"); - execute_generate_metadata(Some(&working_dir)).expect("generate metadata failed"); + let manifest_path = ManifestPath::new(working_dir.join("Cargo.toml")).unwrap(); + let message = + execute_generate_metadata(manifest_path, None).expect("generate metadata failed"); + println!("{}", message); let mut abi_file = working_dir; abi_file.push("target"); abi_file.push("metadata.json"); - assert!(abi_file.exists()) + assert!( + abi_file.exists(), + format!("Missing metadata file '{}'", abi_file.display()) + ) }); } } diff --git a/src/cmd/mod.rs b/src/cmd/mod.rs index a7f998829..5b8c1b1e9 100644 --- a/src/cmd/mod.rs +++ b/src/cmd/mod.rs @@ -14,13 +14,6 @@ // You should have received a copy of the GNU General Public License // along with ink!. If not, see . -use anyhow::Result; -use std::{ - io::{self, Write}, - path::PathBuf, - process::Command, -}; - mod build; #[cfg(feature = "extrinsics")] mod deploy; @@ -38,47 +31,3 @@ pub(crate) use self::{ pub(crate) use self::{ deploy::execute_deploy, extrinsics::submit_extrinsic, instantiate::execute_instantiate, }; - -fn exec_cargo(command: &str, args: &[&'static str], working_dir: Option<&PathBuf>) -> Result<()> { - let mut cmd = Command::new("cargo"); - let mut is_nightly_cmd = Command::new("cargo"); - if let Some(dir) = working_dir { - cmd.current_dir(dir); - is_nightly_cmd.current_dir(dir); - } - - let is_nightly_default = is_nightly_cmd - .arg("--version") - .output() - .map_err(|_| ()) - .and_then(|o| String::from_utf8(o.stdout).map_err(|_| ())) - .unwrap_or_default() - .contains("-nightly"); - - if !is_nightly_default { - cmd.arg("+nightly"); - } - - let output = cmd.arg(command).args(args).output()?; - - if !output.status.success() { - // Dump the output streams produced by cargo into the stdout/stderr. - io::stdout().write_all(&output.stdout)?; - io::stderr().write_all(&output.stderr)?; - anyhow::bail!("Build failed"); - } - - Ok(()) -} - -#[cfg(test)] -mod tests { - use std::path::PathBuf; - use tempfile::TempDir; - - pub fn with_tmp_dir(f: F) { - let tmp_dir = TempDir::new().expect("temporary directory creation failed"); - - f(&tmp_dir.into_path()); - } -} diff --git a/src/cmd/new.rs b/src/cmd/new.rs index eee64c461..4291ed50e 100644 --- a/src/cmd/new.rs +++ b/src/cmd/new.rs @@ -97,7 +97,7 @@ pub(crate) fn execute_new(name: &str, dir: Option<&PathBuf>) -> Result { #[cfg(test)] mod tests { use super::*; - use crate::cmd::{execute_new, tests::with_tmp_dir}; + use crate::{cmd::execute_new, util::tests::with_tmp_dir}; #[test] fn rejects_hyphenated_name() { @@ -116,10 +116,12 @@ mod tests { let name = "test_contract_cargo_project_already_exists"; let _ = execute_new(name, Some(path)); let result = execute_new(name, Some(path)); + + assert!(result.is_err(), "Should fail"); assert_eq!( - format!("{:?}", result), - r#"Err(A Cargo package already exists in test_contract_cargo_project_already_exists)"# - ) + result.err().unwrap().to_string(), + "A Cargo package already exists in test_contract_cargo_project_already_exists" + ); }); } @@ -131,10 +133,12 @@ mod tests { fs::create_dir_all(&dir).unwrap(); fs::File::create(dir.join(".gitignore")).unwrap(); let result = execute_new(name, Some(path)); + + assert!(result.is_err(), "Should fail"); assert_eq!( - format!("{:?}", result), - r#"Err(New contract file .gitignore already exists)"# - ) + result.err().unwrap().to_string(), + "New contract file .gitignore already exists" + ); }); } } diff --git a/src/main.rs b/src/main.rs index 361847de1..7bd4cf929 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,12 +15,18 @@ // along with ink!. If not, see . mod cmd; +mod util; +mod workspace; #[cfg(feature = "extrinsics")] use sp_core::{crypto::Pair, sr25519, H256}; -use std::path::PathBuf; +use std::{ + convert::{TryFrom, TryInto}, + path::PathBuf, +}; -use anyhow::Result; +use anyhow::{Error, Result}; +use colored::Colorize; use structopt::{clap, StructOpt}; #[derive(Debug, StructOpt)] @@ -83,6 +89,32 @@ impl ExtrinsicOpts { } } +#[derive(Debug, StructOpt)] +struct VerbosityFlags { + #[structopt(long)] + quiet: bool, + #[structopt(long)] + verbose: bool, +} + +enum Verbosity { + Quiet, + Verbose, +} + +impl TryFrom<&VerbosityFlags> for Option { + type Error = Error; + + fn try_from(value: &VerbosityFlags) -> Result { + match (value.quiet, value.verbose) { + (false, false) => Ok(None), + (true, false) => Ok(Some(Verbosity::Quiet)), + (false, true) => Ok(Some(Verbosity::Verbose)), + (true, true) => anyhow::bail!("Cannot pass both --quiet and --verbose flags"), + } + } +} + #[derive(Debug, StructOpt)] enum Command { /// Setup and create a new smart contract project @@ -96,10 +128,16 @@ enum Command { }, /// Compiles the smart contract #[structopt(name = "build")] - Build {}, + Build { + #[structopt(flatten)] + verbosity: VerbosityFlags, + }, /// Generate contract metadata artifacts #[structopt(name = "generate-metadata")] - GenerateMetadata {}, + GenerateMetadata { + #[structopt(flatten)] + verbosity: VerbosityFlags, + }, /// Test the smart contract off-chain #[structopt(name = "test")] Test {}, @@ -148,15 +186,23 @@ fn main() { let Opts::Contract(args) = Opts::from_args(); match exec(args.cmd) { Ok(msg) => println!("\t{}", msg), - Err(err) => eprintln!("error: {}", err), + Err(err) => eprintln!( + "{} {}", + "ERROR:".bright_red().bold(), + format!("{:?}", err).bright_red() + ), } } fn exec(cmd: Command) -> Result { match &cmd { Command::New { name, target_dir } => cmd::execute_new(name, target_dir.as_ref()), - Command::Build {} => cmd::execute_build(None), - Command::GenerateMetadata {} => cmd::execute_generate_metadata(None), + Command::Build { verbosity } => { + cmd::execute_build(Default::default(), verbosity.try_into()?) + } + Command::GenerateMetadata { verbosity } => { + cmd::execute_generate_metadata(Default::default(), verbosity.try_into()?) + } Command::Test {} => Err(anyhow::anyhow!("Command unimplemented")), #[cfg(feature = "extrinsics")] Command::Deploy { diff --git a/src/util.rs b/src/util.rs new file mode 100644 index 000000000..4dd256027 --- /dev/null +++ b/src/util.rs @@ -0,0 +1,103 @@ +// Copyright 2018-2019 Parity Technologies (UK) Ltd. +// This file is part of ink!. +// +// ink! is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ink! is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with ink!. If not, see . + +use crate::{workspace::ManifestPath, Verbosity}; +use anyhow::{Context, Result}; +use cargo_metadata::{Metadata as CargoMetadata, MetadataCommand, PackageId}; +use rustc_version::Channel; +use std::{ffi::OsStr, path::Path, process::Command}; + +/// Get the result of `cargo metadata`, together with the root package id. +pub fn get_cargo_metadata(manifest_path: &ManifestPath) -> Result<(CargoMetadata, PackageId)> { + let mut cmd = MetadataCommand::new(); + let metadata = cmd + .manifest_path(manifest_path) + .exec() + .context("Error invoking `cargo metadata`")?; + let root_package_id = metadata + .resolve + .as_ref() + .and_then(|resolve| resolve.root.as_ref()) + .context("Cannot infer the root project id")? + .clone(); + Ok((metadata, root_package_id)) +} + +/// Check whether the current rust channel is valid: `nightly` is recommended. +pub fn assert_channel() -> Result<()> { + let meta = rustc_version::version_meta()?; + match meta.channel { + Channel::Dev | Channel::Nightly => Ok(()), + Channel::Stable | Channel::Beta => { + anyhow::bail!( + "cargo-contract cannot build using the {:?} channel. \ + Switch to nightly. \ + See https://github.com/paritytech/cargo-contract#build-requires-the-nightly-toolchain", + format!("{:?}", meta.channel).to_lowercase(), + ); + } + } +} + +/// Run cargo with the supplied args +pub(crate) fn invoke_cargo( + command: &str, + args: I, + working_dir: Option

, + verbosity: Option, +) -> Result<()> +where + I: IntoIterator + std::fmt::Debug, + S: AsRef, + P: AsRef, +{ + let cargo = std::env::var("CARGO").unwrap_or("cargo".to_string()); + let mut cmd = Command::new(cargo); + if let Some(path) = working_dir { + log::debug!("Setting cargo working dir to '{}'", path.as_ref().display()); + cmd.current_dir(path); + } + + cmd.arg(command); + cmd.args(args); + match verbosity { + Some(Verbosity::Quiet) => cmd.arg("--quiet"), + Some(Verbosity::Verbose) => cmd.arg("--verbose"), + None => &mut cmd, + }; + + let status = cmd + .status() + .context(format!("Error executing `{:?}`", cmd))?; + + if status.success() { + Ok(()) + } else { + anyhow::bail!("`{:?}` failed with exit code: {:?}", cmd, status.code()); + } +} + +#[cfg(test)] +pub mod tests { + use std::path::PathBuf; + use tempfile::TempDir; + + pub fn with_tmp_dir(f: F) { + let tmp_dir = TempDir::new().expect("temporary directory creation failed"); + + f(&tmp_dir.into_path()); + } +} diff --git a/src/workspace.rs b/src/workspace.rs new file mode 100644 index 000000000..37f74d8ff --- /dev/null +++ b/src/workspace.rs @@ -0,0 +1,393 @@ +// Copyright 2018-2019 Parity Technologies (UK) Ltd. +// This file is part of ink!. +// +// ink! is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ink! is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with ink!. If not, see . + +use anyhow::{Context, Result}; +use cargo_metadata::{Metadata as CargoMetadata, Package, PackageId}; +use std::convert::{TryFrom, TryInto}; +use std::{ + collections::{HashMap, HashSet}, + fs, + path::{Path, PathBuf}, +}; +use toml::value; + +const MANIFEST_FILE: &str = "Cargo.toml"; + +/// Path to a Cargo.toml file +#[derive(Clone, Debug)] +pub struct ManifestPath { + path: PathBuf, +} + +impl ManifestPath { + /// Create a new ManifestPath, errors if not path to `Cargo.toml` + pub fn new>(path: P) -> Result { + let manifest = path.as_ref(); + if let Some(file_name) = manifest.file_name() { + if file_name != MANIFEST_FILE { + anyhow::bail!("Manifest file must be a Cargo.toml") + } + } + Ok(ManifestPath { + path: manifest.into(), + }) + } + + /// Create an arg `--manifest-path=` for `cargo` command + pub fn cargo_arg(&self) -> String { + format!("--manifest-path={}", self.path.to_string_lossy()) + } + + /// The directory path of the manifest path. + /// + /// Returns `None` if the path is just the plain file name `Cargo.toml` + pub fn directory(&self) -> Option<&Path> { + let just_a_file_name = + self.path.iter().collect::>() == vec![Path::new(MANIFEST_FILE)]; + if !just_a_file_name { + self.path.parent() + } else { + None + } + } +} + +impl TryFrom<&PathBuf> for ManifestPath { + type Error = anyhow::Error; + + fn try_from(value: &PathBuf) -> Result { + ManifestPath::new(value) + } +} + +impl Default for ManifestPath { + fn default() -> ManifestPath { + ManifestPath::new(MANIFEST_FILE).expect("it's a valid manifest file") + } +} + +impl AsRef for ManifestPath { + fn as_ref(&self) -> &Path { + self.path.as_ref() + } +} + +/// Create, amend and save a copy of the specified `Cargo.toml`. +pub struct Manifest { + path: ManifestPath, + toml: value::Table, +} + +impl Manifest { + /// Create new CargoToml for the given manifest path. + /// + /// The path *must* be to a `Cargo.toml`. + pub fn new

(path: P) -> Result + where + P: TryInto, + { + let manifest_path = path.try_into()?; + let toml = fs::read_to_string(&manifest_path).context("Loading Cargo.toml")?; + let toml: value::Table = toml::from_str(&toml)?; + + Ok(Manifest { + path: manifest_path, + toml, + }) + } + + /// Get mutable reference to `[lib] crate-types = []` section + fn get_crate_types_mut(&mut self) -> Result<&mut value::Array> { + let lib = self + .toml + .get_mut("lib") + .ok_or(anyhow::anyhow!("lib section not found"))?; + let crate_types = lib + .get_mut("crate-type") + .ok_or(anyhow::anyhow!("crate-type section not found"))?; + + crate_types + .as_array_mut() + .ok_or(anyhow::anyhow!("crate-types should be an Array")) + } + + /// Add a value to the `[lib] crate-types = []` section. + /// + /// If the value already exists, does nothing. + pub fn with_added_crate_type(&mut self, crate_type: &str) -> Result<&mut Self> { + let crate_types = self.get_crate_types_mut()?; + if !crate_type_exists(crate_type, crate_types) { + crate_types.push(crate_type.into()); + } + Ok(self) + } + + /// Remove a value from the `[lib] crate-types = []` section + /// + /// If the value does not exist, does nothing. + pub fn with_removed_crate_type(&mut self, crate_type: &str) -> Result<&mut Self> { + let crate_types = self.get_crate_types_mut()?; + if crate_type_exists(crate_type, crate_types) { + crate_types.retain(|v| v.as_str().map_or(true, |s| s != crate_type)); + } + Ok(self) + } + + /// Replace relative paths with absolute paths with the working directory. + /// + /// Enables the use of a temporary amended copy of the manifest. + /// + /// # Rewrites + /// + /// - `[lib]/path` + /// - `[dependencies]` + /// + /// Dependencies with package names specified in `exclude_deps` will not be rewritten. + fn rewrite_relative_paths(&mut self, exclude_deps: I) -> Result<&mut Self> + where + I: IntoIterator, + S: AsRef, + { + let abs_path = self.path.as_ref().canonicalize()?; + let abs_dir = abs_path + .parent() + .expect("The manifest path is a file path so has a parent; qed"); + + let to_absolute = |value_id: String, existing_path: &mut value::Value| -> Result<()> { + let path_str = existing_path + .as_str() + .ok_or(anyhow::anyhow!("{} should be a string", value_id))?; + let path = PathBuf::from(path_str); + if path.is_relative() { + let lib_abs = abs_dir.join(path); + log::debug!("Rewriting {} to '{}'", value_id, lib_abs.display()); + *existing_path = value::Value::String(lib_abs.to_string_lossy().into()) + } + Ok(()) + }; + + let rewrite_path = |table_value: &mut value::Value, table_section: &str, default: &str| { + let table = table_value.as_table_mut().ok_or(anyhow::anyhow!( + "'[{}]' section should be a table", + table_section + ))?; + + match table.get_mut("path") { + Some(existing_path) => { + to_absolute(format!("[{}]/path", table_section), existing_path) + } + None => { + let default_path = PathBuf::from(default); + if !default_path.exists() { + anyhow::bail!( + "No path specified, and the default `{}` was not found", + default + ) + } + let path = abs_dir.join(default_path); + log::debug!("Adding default path '{}'", path.display()); + table.insert( + "path".into(), + value::Value::String(path.to_string_lossy().into()), + ); + Ok(()) + } + } + }; + + // Rewrite `[lib] path = /path/to/lib.rs` + if let Some(lib) = self.toml.get_mut("lib") { + rewrite_path(lib, "lib", "src/lib.rs")?; + } + + // Rewrite `[[bin]] path = /path/to/main.rs` + if let Some(bin) = self.toml.get_mut("bin") { + let bins = bin + .as_array_mut() + .ok_or(anyhow::anyhow!("'[[bin]]' section should be a table array"))?; + + // Rewrite `[[bin]] path =` value to an absolute path. + for bin in bins { + rewrite_path(bin, "[bin]", "src/main.rs")?; + } + } + + // Rewrite any dependency relative paths + if let Some(dependencies) = self.toml.get_mut("dependencies") { + let exclude = exclude_deps + .into_iter() + .map(|s| s.as_ref().to_string()) + .collect::>(); + let table = dependencies + .as_table_mut() + .ok_or(anyhow::anyhow!("dependencies should be a table"))?; + for (name, value) in table { + let package_name = { + let package = value.get("package"); + let package_name = package.and_then(|p| p.as_str()).unwrap_or(name); + package_name.to_string() + }; + + if !exclude.contains(&package_name) { + if let Some(dependency) = value.as_table_mut() { + if let Some(dep_path) = dependency.get_mut("path") { + to_absolute(format!("dependency {}", package_name), dep_path)?; + } + } + } + } + } + + Ok(self) + } + + /// Writes the amended manifest to the given path. + pub fn write(&self, path: &ManifestPath) -> Result<()> { + let manifest_path = path.as_ref(); + + if let Some(dir) = manifest_path.parent() { + fs::create_dir_all(&dir).context(format!("Creating directory '{}'", dir.display()))?; + } + + let updated_toml = toml::to_string(&self.toml)?; + log::debug!("Writing updated manifest to '{}'", manifest_path.display()); + fs::write(&manifest_path, updated_toml)?; + Ok(()) + } +} + +fn crate_type_exists(crate_type: &str, crate_types: &value::Array) -> bool { + crate_types + .iter() + .any(|v| v.as_str().map_or(false, |s| s == crate_type)) +} + +/// Make a copy of a cargo workspace, maintaining only the directory structure and manifest +/// files. Relative paths to source files and non-workspace dependencies are rewritten to absolute +/// paths to the original locations. +/// +/// This allows custom amendments to be made to the manifest files without editing the originals +/// directly. +pub struct Workspace { + workspace_root: PathBuf, + root_package: PackageId, + members: HashMap, +} + +impl Workspace { + /// Create a new Workspace from the supplied cargo metadata. + pub fn new(metadata: &CargoMetadata, root_package: &PackageId) -> Result { + let member_manifest = |package_id: &PackageId| -> Result<(PackageId, (Package, Manifest))> { + let package = metadata + .packages + .iter() + .find(|p| p.id == *package_id) + .expect(&format!( + "Package '{}' is a member and should be in the packages list", + package_id + )); + let manifest = Manifest::new(&package.manifest_path)?; + Ok((package_id.clone(), (package.clone(), manifest))) + }; + + let members = metadata + .workspace_members + .iter() + .map(member_manifest) + .collect::>>()?; + + if !members.contains_key(root_package) { + anyhow::bail!("The root package should be a workspace member") + } + + Ok(Workspace { + workspace_root: metadata.workspace_root.clone(), + root_package: root_package.clone(), + members, + }) + } + + /// Amend the root package manifest using the supplied function. + /// + /// # Note + /// + /// The root package is the current workspace package being built, not to be confused with + /// the workspace root (where the top level workspace Cargo.toml is defined). + pub fn with_root_package_manifest(&mut self, f: F) -> Result<&mut Self> + where + F: FnOnce(&mut Manifest) -> Result<()>, + { + let root_package_manifest = self + .members + .get_mut(&self.root_package) + .map(|(_, m)| m) + .expect("The root package should be a workspace member"); + f(root_package_manifest)?; + Ok(self) + } + + /// Writes the amended manifests to the `target` directory, retaining the workspace directory + /// structure, but only with the `Cargo.toml` files. + /// + /// Relative paths will be rewritten to absolute paths from the original workspace root, except + /// intra-workspace relative dependency paths which will be preserved. + /// + /// Returns the paths of the new manifests. + pub fn write>(&mut self, target: P) -> Result> { + let exclude_member_package_names = self + .members + .iter() + .map(|(_, (p, _))| p.name.clone()) + .collect::>(); + let mut new_manifest_paths = Vec::new(); + for (package_id, (package, manifest)) in self.members.iter_mut() { + // replace the original workspace root with the temporary directory + let mut new_path: PathBuf = target.as_ref().into(); + new_path.push(package.manifest_path.strip_prefix(&self.workspace_root)?); + let new_manifest = ManifestPath::new(new_path)?; + + manifest.rewrite_relative_paths(&exclude_member_package_names)?; + manifest.write(&new_manifest)?; + + new_manifest_paths.push((package_id.clone(), new_manifest)); + } + Ok(new_manifest_paths) + } + + /// Copy the workspace with amended manifest files to a temporary directory, executing the + /// supplied function with the root manifest path before the directory is cleaned up. + pub fn using_temp(&mut self, f: F) -> Result<()> + where + F: FnOnce(&ManifestPath) -> Result<()>, + { + let tmp_dir = tempfile::Builder::new() + .prefix(".cargo-contract_") + .tempdir()?; + log::debug!("Using temp workspace at '{}'", tmp_dir.path().display()); + let new_paths = self.write(&tmp_dir)?; + let root_manifest_path = new_paths + .iter() + .find_map(|(pid, path)| { + if *pid == self.root_package { + Some(path) + } else { + None + } + }) + .expect("root package should be a member of the temp workspace"); + f(root_manifest_path) + } +} diff --git a/template/.cargo/config b/template/.cargo/config deleted file mode 100644 index 9ed784e6e..000000000 --- a/template/.cargo/config +++ /dev/null @@ -1,4 +0,0 @@ -[target.wasm32-unknown-unknown] -rustflags = [ - "-C", "link-args=-z stack-size=65536 --import-memory" -] \ No newline at end of file diff --git a/template/.gitignore b/template/.gitignore index bf910de10..8de8f877e 100644 --- a/template/.gitignore +++ b/template/.gitignore @@ -6,4 +6,4 @@ # Remove Cargo.lock when creating an executable, leave it for libraries # More information here http://doc.crates.io/guide.html#cargotoml-vs-cargolock -Cargo.lock \ No newline at end of file +Cargo.lock diff --git a/template/Cargo.toml b/template/Cargo.toml index 8bb06c94d..8fe3cd7ac 100644 --- a/template/Cargo.toml +++ b/template/Cargo.toml @@ -19,7 +19,8 @@ path = "lib.rs" crate-type = [ # Used for normal contract Wasm blobs. "cdylib", - # Used for ABI generation. + # Required for ABI generation, and using this contract as a dependency. + # If using `cargo contract build`, it will be automatically disabled to produce a smaller Wasm binary "rlib", ]